WordPressセキュリティのベストプラクティス

公開: 2022-03-10

WordPressのセキュリティについては、多くの神話やFUD(恐れ、不確実性、疑い)があります。 そして、潜在的な攻撃に対してWebサイトを強化する際には、考慮すべきことがたくさんあります。 では、企業はどのようにして、可能な限り最高のWeb保護を提供するWordPressセキュリティのベストプラクティスを学ぶことができるでしょうか。

先週、WordPressのセキュリティ上の懸念をわかりやすく説明するためにウェビナーの会話を主催しました。 セッションに参加したのは、Ayush Malakar(Fresh ConsultingのフルスタックおよびWordPress開発者)とSean O'Shaughnessy(WordPress VIPソリューションエンジニアリングリード)でした。

これらの2人の専門家は、4つのガイド質問を通じて、開発者、管理者、サイト所有者、および経営幹部が留意すべきセキュリティのベストプラクティスを調査しました。 私たちが話したことを要約しましょう。

オープンソースソフトウェアは安全ですか?

すべてのオープンソースが同じように作成されているわけではありません。 しかし、WordPressは18年前から存在しており、世界のWebサイトの40%以上に電力を供給しているため、採用が拡大していることは明らかです。 しかし、世界で最も人気のあるオープンソースソフトウェアであっても、そのセキュリティの脆弱性について疑問が生じます。 そのすべてのコードは、公開されており、攻撃に対して脆弱ではありませんか?

必ずしもそうとは限りませんが、アユッシュ氏は次のように述べています。

直感に反しているように見えるかもしれませんが、オープンソースソフトウェアは、実際には、クローズドソースのプロプライエタリソフトウェアよりも安全です。 これが理由です。

潜在的な脅威にもっと目を向ける

オープンソースはオープンで動作するため、隠すものは何もありません。 コミュニティの多くの開発者はそれを見て更新を行い、自信と信頼を鼓舞しています。 脆弱性が見つかった場合は、できるだけ早く(多くの場合、1〜2日以内に)パッチが適用されます。

継続的なコードテストとバグバウンティ

誰でもWordPressに貢献でき、コードは何千ものWordPressコア貢献者のコミュニティによってテストされています。 コードは継続的にテストされているため、信頼性はますます高まっています。

さらに、バグバウンティプログラムは、ブルートフォース攻撃、DDoS、フィッシングなどを含む穴や脆弱性を見つけることを一般の人々に促します。

セキュリティアップデート

セキュリティ更新が発生した場合、Webサイトの開発者は、コアコードを最新の状態に保ち、最新の攻撃ベクトルから保護する必要があります。 自動更新も利用可能であり、エンタープライズ開発者は、これらが各プロジェクトにとって正しい選択であるかどうかを検討する必要があります。

私のコードは安全ですか?

WordPressコアは、WordPressWebサイトを構成するコードの「バケット」の1つにすぎません。 コミュニティで開発されたソフトウェアの上にあるのは、Webサイトのアプリケーションコード(テーマまたはフロントエンド)とプラグインです。

オープンソースのWordPressコアコードはコミュニティによって開発されていますが、個々のWebサイト用に作成または展開されたアプリケーションコードもセキュリティの脆弱性をもたらす可能性があります。

アプリケーションコードを攻撃に対して可能な限り強化するために実行できるさまざまな対策があります。 許容できるリスクのレベルに応じて、プロジェクトごとに異なる決定を下す可能性がありますが、最も重要なことは、潜在的な攻撃ベクトルを認識することです。

ここでは、ウェビナーの専門家がアドバイスを提供しています。

WordPressセキュリティのためのツール

開発者がファーストパーティとサードパーティの両方のコードのセキュリティ上の欠陥を特定するために使用できるさまざまなツールがあります。

「ツールについて話すときはいつでも、これらのツールの長所と短所は何か、そしてツールをどのように活用すればよいのかを理解する必要があります。」

— Ayush Malakar、フレッシュコンサルティング

これらのツールは、静的または動的なコード分析を実行できます。 静的分析はコードを実行せずに実行され、通常、コードの欠陥の約85%を検出できます。 動的コード分析は、実行中のコードの動作の調査に依存しており、SQLデータベース、アプリケーションサーバー、Webサービスなどの他のシステムコンポーネントとのコードの相互作用によって引き起こされるセキュリティの問題を見つける追加の機能を備えています。

このコード分析を実行する人間と機械の利点を比較検討することが重要です。 機械学習(ML)と人工知能(AI)は、一般的な証券を確実に特定するための最初の防衛線として使用できます。 しかし、後でコードを人間に見てもらうことにも価値があります。 これにより、人間は機能ベースの脆弱性、エッジケースなどのさまざまな側面に取り組むことができます。

専門家が推奨するいくつかのツール:

  • WPScanは、開発者がコードをスキャンしてセキュリティホールを探すために使用できるCLIツールです。 Ayushは、開発者がこれをcronジョブで実行することを推奨しています。
  • PHP_CodeSniffer(PHPCS)はコードを検査し、構文からセキュリティの脆弱性に至るまでの問題を強調します。 WordPressには一連の特定の標準があります。 これは、継続的インテグレーション(CI)パイプラインで実行するように設定でき、すべてのWordPressVIPリポジトリで実行されます。
  • 静的コード分析のためにFreshConsultingによって使用されるSonarCloudは、PHPコードとJSコードの両方をスキャンして、脆弱性とより安全な実装を探します。

「適切な量の入力検証を行っていますか? コード内にあるあらゆる種類の出力を適切にサニタイズしていますか?」

— Sean O'Shaughnessy、WordPress VIP

セキュリティとWordPressプラグイン

サードパーティのプラグインを選択するときは、レビューと評価が高く、ダウンロード数が多く、Webサイトで使用できる柔軟性のあるプラグインを探してください。 プラグインが更新され、最新バージョンのWordPressと互換性があることを確認してください。

自分で作成できるプラグインは使用しないでください。 特に、必要なコードが少ない場合は、プラグインを使用する代わりに、テーマにこのコードを記述してください。 これにより、プラグインの更新時に脆弱性が発生することはありません。

「私がお勧めするのは、テーマ自体の中にコードを書くことです。過去に見たのは、更新を行うために最小限の仕事をするプラグインだからです。 そして、テクノロジーが進化するにつれて、それらのプラグインはそうではない可能性があります。 これらのプラグインが脆弱性を導入する可能性は、私たちが予想するよりも高い可能性があります。」

— Ayush Malakar、フレッシュコンサルティング

いつものように、コードを最新の状態に保つことが重要です。 コアとプラグインの更新に注意し、WordPress、プラグイン、テーマを最新の状態に保ちます。

セキュリティとWordPressエンドポイント

XML-RPCとRESTAPIは、WordPressが他のシステムまたはアプリケーションのフロントエンドと通信するために使用するエンドポイントです。 これらのエンドポイントは、必要がなければ無効にできる潜在的な攻撃ベクトルであるため、これらのエンドポイントを理解し、アプリケーションにとって重要であるかどうかを理解することが重要です。

潜在的な攻撃ベクトルとしてのXML-RPC

XML-RPCは、WordPressと他のシステム間の通信を可能にする仕様です。 WordPressの初期のバージョンでは、XML-RPCはデフォルトでオフにされていました。 ただし、バージョン3.5以降、デフォルトで有効になっています。 これの主な理由は、WordPressモバイルアプリがWordPressインストールと通信できるようにすることでした。

潜在的な攻撃ベクトルとしてのRESTAPI

WordPress REST APIを使用するときは、セキュリティのベストプラクティスを使用してください。 たとえば、コンテンツが分離されたフロントエンドに流れる必要があるヘッドレスアーキテクチャでは、企業はそれらを開いたままにしておく必要がありますが、公開されたままのユーザーが適切な認証と承認を受けていることを確認してください。

「あなたはこの城、WordPress、あなたのアプリケーションを持っています、そして跳ね橋の存在を持っていることはあなたのアプリケーションを本質的に安全にするわけではありません。 しかし、それは道です。 それはその城への道です。 したがって、これらのことをよく理解し、理解し、説明することは、アプリケーションのセキュリティをより適切に把握するために不可欠です。」

— Sean O'Shaughnessy、WordPress VIP

私のホスティングは安全ですか?

ホストがニーズに対して十分に安全であるかどうかを判断する際には、考慮すべきことがたくさんあります。 利用可能なすべてのセキュリティオプションを検討することをお勧めします。また、セキュリティインシデントを引き起こすプラグインの更新など、緊急時の迅速なサポートの重要性を忘れないでください。

「あなたのホスティングプロバイダーは、迅速でプロアクティブなサポートを提供していますか? さらに、アプリケーションまたはプラグインの脆弱性が公開された場合、彼らはどのように対応していますか?」

— Sean O'Shaughnessy、WordPress VIP

全体として、責任の共有を検討するプラットフォームを探してください。 考慮すべきいくつかの機能は次のとおりです。

ファイルシステムのアクセス許可

一部のホストは、ファイルを書き込むことができるのではなく、読み取り専用のファイルシステムを提供します。 これにより、Webプロセスのユーザーがどこにでもファイルを書き込めなくなり、潜在的な攻撃ベクトルが閉じられます。

コンテナ化

サイトのリソースを他の顧客のWebサイトから分離しているホストを探します。 これは包括的なセキュリティ対策ではありませんが、コンテナ化はセキュリティの基本的な対策を提供します。 ボーナスとして、水平または垂直のスケーラビリティのための専用リソースも許可されます。

バージョン管理

WordPressホスティングプラットフォームがSFTPをブロックし、バージョン管理されたシステムを介してコードを更新できるようにすると、アプリケーションの攻撃対象領域が減少します。 さらに、バージョン管理を通じてアプリケーションのソースコードを管理すると、そのコードの完全で監査可能なコンテキストが豊富な履歴とともに、信頼できる情報源としてのコードの「元の」コピーが提供されます。

私の会社はどのようにしてWordPressのセキュリティを強化できますか?

セキュリティは、コードまたはホストレベルでの単なる考慮事項ではありません。 人的要因もあり、企業は定期的なセキュリティチェックやパスワード衛生ルールなどのプロセスを組み込むことができます。これは、Webサイトのセキュリティを強化するのに大いに役立ちます。

「組織レベルでは、継続的な認証または検証の複数のレイヤーを導入するという観点から考えることが重要です。」

— Sean O'Shaughnessy、WordPress VIP

ゼロトラストおよび最小特権アクセス管理

慎重に検討された役割とアクセス管理を通じて、組織は、可能な限り最小限の特権、つまり最小限のリスクで仕事をするように人々を整えることができます。 ユーザーの役割と機能を適切に定義して割り当てるようにしてください。 この機能はWordPressに付属しており、あらゆるユースケースに拡張できます。

パスワードの衛生

ユーザーは、アプリケーションごとに一意で推測しにくいパスワードを作成する必要があります。 ショーンは、文字、数字、記号の組み合わせではなく、ランダムな単語のコレクションを使用することを提唱するこの漫画が特に好きです。

XKCDコミック

2FAおよびSSO

2要素認証(2FA)およびシングルサインオン(SSO)テクノロジは、本質的にWebサイトのセキュリティを向上させることはありませんが、サポートされているすべてのアプリケーションでユーザー管理を一元化できるという利点があります。

WordPressのセキュリティに関する重要なポイント

  • オープンソースにはセキュリティ上の利点があります
  • WordPressとプラグインを最新の状態に保つ
  • バージョン管理を使用する
  • WordPressのエンドポイントを理解する
  • セキュリティを考慮したホストを探す
  • 組織レベルで成熟したセキュリティ慣行を採用する

1時間にわたるウェビナーでは、WordPressのセキュリティについてさらに多くのことを取り上げました。 ライブで見逃した方は、こちらのレコーディングをチェックすることをお勧めします。