WordPressのセキュリティを向上する方法
コンテンツ管理システム(CMS)は、ユーザーが自分でコードを記述することなく、Webサイトの構築、管理、カスタマイズをできるようにするソフトウェアアプリケーションです。WordPressは、世界で最も人気のあるコンテンツ管理システムの1つであり、サイバー攻撃者にとって価値の高い標的となっています。
WordPressの社内チームは定期的なセキュリティアップデートとシステムに新たに発見された脆弱性に対するパッチを提供していますが、 WordPressのユーザーも自身で既知の脅威や新たな脅威からサイトを確実に守るためにいくつかの手段を講じることができます。これらのステップのほとんどは、「脅威の排除」と「リスクの軽減」の2つのカテゴリーのいずれかに分類されます。
「脅威の排除」は、サイバー攻撃やその他の脅威を排除することに焦点を当てたものです。たとえば、 WordPressのユーザーは悪意のあるトラフィックをフィルタリングして分散サービス妨害(DDoS)攻撃を軽減するためにファイアウォールをインストールしたり、組み込みのセキュリティ機能を提供するホスティングプロバイダを選択することができます。
「リスクの軽減」は、攻撃者に簡単に見つけられないようにデフォルトのWordPressデータベースのプレフィックスを変更したり、厳格なユーザーアクセス要件を強制したり、定期的なセキュリティスキャンを実施するなどの事前対応型のセキュリティー対策を指します。
WordPressの安全性は?
WordPressは強力で柔軟性のあるツールですが、サイバー攻撃や脆弱性、ユーザーのミスによってもたらされるその他のリスクと無縁ではありません。
よくあるWordPressへの攻撃
- パスワードベースの攻撃:ブルートフォース攻撃は、攻撃者がログインページにさまざまなユーザー資格情報(ユーザー名とパスワードの組み合わせ)を繰り返し入力する攻撃で、WordPressのアカウントに不正侵入するために多く使用されます。その他のパスワード攻撃には、クレデンシャルスタッフィング、辞書攻撃などがあります。
- Cross-site scripting(XSS):XSSは、WordPressサイトに悪意のあるコードを注入することを可能にするものです。これは一般的に、WordPressのプラグインを使用して行われます。XSS攻撃を防ぐ方法の詳細は、こちらをご覧ください。
- SQLインジェクション(SQLi):データベースインジェクションと呼ばれることもあるSQLi攻撃は、データ入力フィールド(連絡フィールドなど)を介してWordPressサイトに悪意のあるコードを注入します。
- DDoS攻撃:DDoS攻撃は、大量の不要なトラフィックでWordPressのWebサイトを過負荷状態にして、深刻なパフォーマンスの低下やサービスの中断を引き起こします。
WordPressの脆弱性
- WordPressの古いバージョン:WordPressはコアソフトウェアの定期的な更新を行っており、既存の脆弱性を修正や、新たな脅威に対する防御を強化しています。古いバージョンのWordPressにはこのような保護機能がなく、攻撃を受けやすい状態のままになっている可能性があります。
- サードパーティ製のテーマとプラグイン:WordPress用のサードパーティ製のテーマとプラグインは幅広い機能を提供する一方で、必ずしも最新のセキュリティ要件に準拠しているとは限りません。そのため、これらをWordPressサイトに設置した場合、リスクが生じる可能性があります。
- バックドア:WordPressのアカウントが攻撃者に侵入されると、バックドア(セキュリティ対策を迂回する秘密の方法)を仕掛けられる恐れがあります。攻撃者はバックドアを通して WordPress サイトに繰り返しアクセスしたり、さらなる攻撃を仕掛けることができます。
- 脆弱なユーザー認証:適切なパスワードの衛生管理(強力なパスワードの作成、定期的なパスワードの変更など)の実践や、多要素認証(MFA)の実装を怠ると、侵害のリスクが高まる可能性があります。
- デフォルト設定のWordPress:WordPressには、一般的なエントリポイント(例 :/wp-login.php URL)や機密性の高いサイト情報(例:wp-config.phpファイル)を攻撃者が簡単に特定できるようなデフォルト設定がいくつか存在します。
WordPressセキュリティのベストプラクティス
一般的なサイバー脅威や既知の脆弱性からWordPressのWebサイトを保護するために、ユーザーが取ることができるいくつかのステップがあります。これらは一般的に、「サイトのセットアップ」、「事前対応型のセキュリティー機能」、「ユーザーアクセス」、「ユーザー権限」、「サイトのセキュリティ更新」のいずれかのカテゴリーに分類されます。
安全なサイト設定
- セキュアなWordPressホスティングを使用する。WordPressのWebサイトの安全性は、そのホスティングプロバイダー(ユーザーに代わってコンテンツを提供するサードパーティ・サービス)と同等になります。そのため、ホスト選択時には高度な攻撃を防御し、新たな脆弱性や脅威のスキャンを支援し、災害復旧リソースを提供できるものを選択しましょう。
- デフォルトのWordPressログインページのURLとデータベースのプレフィックスを変更する。これらのURL(それぞれ/wp-login.phpと/wp-adminで終わる)は、すべてのWordPressサイトでデフォルトで有効になっているため、攻撃者が簡単に見つけることができます。ブルートフォース攻撃やその他の標的型脅威を回避するために、名前を変更すると良いでしょう。
- wp-config.phpファイルを移動する。 wp-config.phpファイルには、WordPressのセキュリティキーや、その他の機密性の高いWordPressのインストールに関する詳細が記載されています。残念ながら、これも簡単に見つけることができてしまいます。攻撃者が見つけにくいように、ファイルをWordPressルートディレクトリの上位に移動しましょう。
- 安全なWordPressテーマをインストールする。WordPress テーマの中には、 WordPressの最新バージョンに更新されていないものや、既存のWordPressのセキュリティ標準に準拠していないものがあります。そのため、これらは攻撃者に悪用される可能性が高まります。WordPressのテーマディレクトリに含まれているテーマを選択するか、インストール前にWordPressテーマ検証ツールで検証しましょう。
- 使用中のWordPressのバージョンを非表示にする。多くのWordPressへの攻撃は、WordPressのバージョンごとに固有の脆弱性を悪用することで行います。使用しているWordPressのバージョンを隠蔽することで、ユーザーはこれらの脅威を回避したり、攻撃者にサイトの既存の脆弱性を特定されることを困難にすることができます。
事前対応型のセキュリティー機能をインストールする
- SSL/TLS証明書を使用する。セキュア・ソケット・レイヤー(SSL)は、トランスポート・レイヤー・セキュリティ(TLS)としても知られ、 Webを介して送信されるデータを暗号化して保護するセキュリティ・プロトコルです。SSL証明書は、ホスティングプロバイダーや、 Cloudflareのようなサードパーティのセキュリティサービスから取得できます。
- ファイアウォールを設置する。Webアプリケーションファイアウォール(WAF)は、WordPressサイトの前に設置され、不正なトラフィックをフィルタリングしてブロックします。WAFを設置することで、DoS攻撃やDDoS攻撃によってサイトサービスに甚大な影響が与えられることを防ぐことができます。
- XML-RPCプロトコルを使用したHTTPリクエストをブロックする。XML-RPCは、大量のサイバー攻撃やブルートフォース攻撃を行うためによく使用されます。プラグインまたはファイアウォールルールを使用して、XML-RPC機能を拒否すると良いでしょう。
- 直リンクを防ぐ。直リンクを使用すると、第三者が自分でホストすることなく、WordPressサイトのコンテンツを自分のサイトに埋め込むことができます。このようなことが繰り返されると、コンテンツの元のホストの帯域幅のコストが増加する可能性があります。
安全なユーザーアクセス
- MFAを強制する。MFAは、ユーザーが保護されたシステムやアカウントにアクセスする前に、追加の本人確認の提供を要求するため、攻撃者が正規のユーザーのユーザー名とパスワードの組み合わせを破ったとしても、 WordPressサイトへの侵入を困難なものにします。
- ログイン試行の失敗回数を制限する。攻撃者がログインページで無制限に認証情報の入力を試行できると、パスワード攻撃の成功の可能性が高くなります。
- アクティブでないユーザーを自動的にログアウトする。ユーザーの中には、公共のコンピューターから自分のWordPressアカウントにアクセスしたり、その他の安全でないブラウジング習慣を実践する人もいます。設定された一定時間内に操作がないと自動的にユーザーをログアウトさせることで、盗み見や第三者による不正アクセスの可能性を減らすことができます。
- 非アクティブなユーザーアカウントを削除する。ユーザーがWordPressサイトにアクセスするためのアカウントを使用しなくなった場合でも、そのアカウントとログイン資格情報は攻撃者に狙われる可能性があります。
ユーザー権限の管理
- ファイルやフォルダの権限を制限する。絶対に必要な場合を除き、ユーザーは管理者レベルの権限を持つべきではありません。WordPressのサイトでユーザーが実行できる機能を制限することで、望まないデータが共有される可能性を減らし、侵害の影響を最小限に抑えることができます。(最小特権の原則について、詳しくはこちらを参照してください。)
- ファイルの編集を許可しない。デフォルトのWordPressファイルエディターを使用すると、ユーザーは簡単にPHPファイルを編集することができます。WordPressアカウントが侵害された場合、攻撃者にこの機能を悪用されてサイトのファイルのコードが大幅に書き換えられてしまう可能性があります。
- ユーザーの行動を監視する。WordPressに対する攻撃は、外部と内部の両方から行われる可能性があります。ユーザーの行動を定期的にログに記録し、確認することで、疑わしい行動(ファイルの改ざん、不正なプラグインのインストールなど)を追跡します。
WordPressのセキュリティ機能の更新
- WordPressを最新バージョンにアップデートする。WordPressは、既知の脆弱性を防御するために定期的な更新が行われています。WordPressダッシュボードの上部にある、新しいバージョンが利用可能になったことをユーザーに知らせるお知らせを確認しましょう。
- WordPressのテーマとプラグインを更新する。すべてのテーマとプラグインは、攻撃者の潜在的な侵入口となります。古いバージョンのWordPressに致命的な弱点が含まれていることがあるように、攻撃者は古いテーマやプラグインを狙ってWordPressユーザーを攻撃することが多くあります。
- 定期的なセキュリティスキャンを実施する。信頼できるセキュリティプラグイン、ソフトウェア、またはサードパーティ製のサービスを使用して、マルウェアやその他のセキュリティリスクを自動的にチェックしましょう。
- 定期的にサイトデータのバックアップを作成する。攻撃が成功した場合、ユーザーは失われたデータを最近のサイトバックアップから復元することができるようになります。
CloudflareはWordPressサイトをどのように保護するか?
Cloudflareのプラットフォームの自動最適化(APO)は、CloudflareのWAFルールセット、Universal SSL、DDoS攻撃対策などの様々なセキュリティ対策機能やパフォーマンス向上機能にアクセスすることができる、WordPressのプラグインです。また、Cloudflare Zero Trustではを使用することで、MFAの有効化、ログイン試行の監視、内部資産へのユーザーアクセスを制限することができ、 WordPressのセキュリティをさらに強化することができます。CloudflareがどのようにWordPressサイトの保護に役立っているか、詳しくはこちらをご覧ください。