WordPressへのブルートフォース攻撃からサイトを守る9つの対策【徹底解説】
WordPressへのブルートフォース攻撃は、攻撃が成功する前からサイトに深刻な負担をもたらします。
多くのサイト管理者は、サーバーリソースが急速に消耗し、サイトが応答しなくなったり、最悪の場合クラッシュして正規ユーザーまでログインできなくなるという事態に直面します。ブルートフォースボットがログインページに殺到し、wp-adminへの侵入を試み続ける様子を目の当たりにすると、何もできない無力感を覚えるかもしれません。
しかし、あなたは決して無力ではありません。特定のユーザーに対して複数のIPアドレスから失敗したログイン試行が繰り返されているのに気づいたら、この記事はまさにそのためにあります。
本記事では、WordPressのブルートフォース攻撃の実態を解説し、サイトを守るための具体的な対策を詳しくご紹介します。
要点(TL;DR)
WordPressのブルートフォース攻撃からサイトを守るには、MalCareのログイン保護機能を有効化しましょう。強力なファイアウォールと統合型ボット保護により、悪意あるボットの攻撃を防げます。WordPressにおけるブルートフォース対策に最適なセキュリティプラグイン「MalCare」で、サイト・データ・ユーザーの安全を確保しましょう。
WordPressのブルートフォース攻撃とは?
WordPressのブルートフォース攻撃とは、さまざまなユーザー名とパスワードの組み合わせを総当たりで試し、wp-adminへの不正アクセスを狙う攻撃です。ハッカーはボットを使い、ログインページに大量の認証情報を送り込み続けます。
多くの場合、ボットは辞書に基づくパスワードのリストを順番に試すため、「辞書攻撃」や「パスワード推測攻撃」とも呼ばれます。また、攻撃は複数の異なるIPアドレスから行われるよう設定できるため、基本的なセキュリティ対策をすり抜けてしまうこともあります。その他のブルートフォース攻撃の種類については、後ほど詳しく解説します。
ブルートフォース攻撃の最終的な目的はwp-adminへのアクセス権を奪うことであり、その後、最も典型的な手口としてマルウェアをサイトにインストールされます。
WordPressのブルートフォース攻撃からサイトを守る9つの方法
ブルートフォース攻撃を受けるのは恐怖であり、特に「どうすることもできない」と感じてしまう点がつらいところです。さらに、攻撃の影響は即座に現れます。ほとんどのサイトはサーバーリソースが限られており、それが急速に消費されるため、攻撃を受けているサイトは完全にダウンしてしまうことも少なくありません。
幸いなことに、WordPressのブルートフォース攻撃を防ぐためにできることはたくさんあります。以下では、ほとんどの攻撃をブロックし、最悪の被害を軽減できる対策をリストアップしました。
1. ログイン試行回数を制限する
WordPressのブルートフォース攻撃を阻止する最も効果的な方法は、ログイン試行回数を制限することです。誤ったパスワードが一定回数以上入力されると、アカウントが一時的にロックされます。これにより、総当たり方式で認証情報を推測するブルートフォースボットの効果が失われます。さらに、ボットは数千通りの組み合わせを試せなくなるため、サーバーへリクエストが送られず、リソースも消耗しません。
デフォルトのWordPressはログイン試行回数を無制限に許可しているため、そもそもブルートフォース攻撃に脆弱です。MalCareを使用すれば、ログイン試行の制限が自動的に有効になります。実際、正規ユーザーがパスワードを忘れた場合でも、CAPTCHAを解けば簡単にロックを解除できます。つまり、ログイン試行の制限は、正規ユーザーに影響を与えることなくブルートフォースボットだけを締め出せるのです。
詳細については、WordPressでログイン試行回数を制限する方法のガイドをご覧ください。
2. 悪意あるボットをブロックする
ブルートフォース攻撃は、ほぼ常にボットによって実行されます。ボットは単純なタスクを反復的に実行するように設計された小さなプログラムであり、ブルートフォース攻撃に理想的なツールです。ボットはログインページで一致するものが見つかるまで、一連の認証情報を試し続けます。
ちなみに、ウェブサイトへのトラフィックの25%以上がボットだと言われており、多くのセキュリティシステムにボット対策が組み込まれています。ただし、ここで重要な区別があります。すべてのボットが悪いわけではないということです。検索エンジンのクローラーや稼働監視ボットのような「良いボット」も存在し、これらにはサイトへのアクセスを許可したいはずです。そのため、MalCareのように悪いボットだけを賢くブロックするボット保護を選ぶことが重要です。All in One WP Securityなどの他のボット対策プラグインもありますが、デフォルトではGooglebotを含むすべてのボットをブロックしてしまう点に注意が必要です。
3. Webアプリケーションファイアウォール(WAF)を導入する
ログイン保護はブルートフォース攻撃に特化した防御策ですが、ファイアウォールはブルートフォース攻撃を含むあらゆる種類の攻撃に対する防御策です。
ファイアウォールはルールに基づいて悪意のあるトラフィックをブロックし、ウェブサイトを大きく保護します。さらに、ファイアウォールはブルートフォース攻撃最大の問題であるサーバーリソースへの過剰な負荷も、悪意あるリクエストの反復を遮断することで軽減してくれます。
ブルートフォース攻撃は多くの場合、複数のIPアドレスから攻撃するよう設定されているため、ほとんどのファイアウォールを回避できます。しかし、MalCareのファイアウォールを使えば、あなたのサイトはグローバルIP保護ネットワークの一部となります。このファイアウォールは10万以上のサイトから記録された挙動をもとに悪意あるIPを学習し、それらからのトラフィックを先回りしてブロックします。これにより、ボットがログインページへの総当たり攻撃を始める前の段階で、悪質なトラフィックを大幅に減らせるのです。
4. 二要素認証(2FA)を導入する
ユーザー名とパスワードは推測され得るため、認証に動的要素を持たせる二要素認証(2FA)、さらには多要素認証(MFA)が登場しました。二要素認証では、OTPやQRコードなどのリアルタイムのログイントークンがユーザーのデバイスに共有されます。トークンの有効期限は通常10〜15分程度と短く、そのセッションでのみユーザーを認証できます。
追加のトークンはユーザー名やパスワードに加えて解読が困難なため、ログインページにもう一段階のセキュリティレイヤーを追加できます。WP 2FAのようなプラグインをインストールすれば、サイトに二要素認証を簡単に導入できます。
詳しくは、WordPress二要素認証のガイドをご覧ください。
5. 強固で一意なパスワードを使用する
セキュリティ上の最大の弱点はユーザー自身、ひいてはそのユーザーが設定するパスワードです。パスワードはあらゆるセキュリティシステムにおける最大の脆弱性です。理由は、覚えやすいパスワードを設定したり、複数のアカウントで使い回したりという、人間として理解できる傾向にあるからです。これは実は2つの別個の問題です。
まず、パスワードを複数のアカウントで使い回してはいけません。多くのブルートフォースボットは、データ漏洩で流出したパスワードを使ってログインページを攻撃します。次に、想像のとおり「password」のようなパスワードは非常に推測されやすいものです。最低でも12文字の無意味な文字列、あるいはさらに良いのはパスフレーズをパスワードとして使用しましょう。
LastPassや1Passwordのようなパスワード管理ツールを使えば、パスワードの使い回しを避け、必要に応じて強固なパスワードを生成できます。万が一アカウントが侵害された疑いがある場合は、MalCareダッシュボードのハードニングセクションから全パスワードを強制的にリセットできます。
詳細については、WordPressパスワードセキュリティに関する記事をご覧ください。
6. XML-RPCを無効化する
XML-RPCファイルは、ユーザー認証のもうひとつの経路です。つまり、管理ダッシュボードへのアクセス手段の代替ルートであり、ブルートフォース攻撃の標的になり得ます。このファイルは大部分が非推奨となっており、多くのプラグインやテーマで積極的に使われていません。後方互換性のためにWordPressに同梱され続けているため、無効化しても比較的安全です。
WordPressでXML-RPCを無効化する方法については、こちらのガイドをご覧ください。
7. 未使用のユーザーアカウントを定期的に見直し・削除する
休眠アカウントは、乗っ取られてもユーザーが気づきにくいため、ハッカーの格好の標的になります。さらに、休眠アカウントは同じパスワードが長期間使われ続けるため、ブルートフォース攻撃にも弱くなります。
そのため、ユーザーアカウントを定期的に見直し、使用されていないアカウントは削除しましょう。さらに望ましいのは、各アカウントにその業務に必要な最小限のユーザー権限のみを付与することです。たとえば、全員を管理者にするのは無謀な行為です。
8. ジオブロッキング(地域ブロック)を検討する
特定の地域から大量のボットトラフィックが発生している場合は、国単位でのブロックを検討できます。ただし、ジオブロッキングの使用には慎重さが求められます。その地域から正当なユーザーが一切来ないと確信できる場合にのみ有効です。
また、その地域の「良いボット」まで締め出してしまう可能性があることにも注意してください。たとえばGooglebotは世界中のどのサーバーロケーションからでも稼働しており、Googlebotにサイトへアクセスしてもらうことは絶対に必要です。
WordPressで特定の国をブロックする手順については、こちらのステップバイステップガイドをご覧ください。
9. ディレクトリリスティングを無効化する
デフォルト設定では、WordPressコアのフォルダやファイルの多くはブラウザから自由に閲覧可能です。たとえば、ブラウザのURLバーに yourwebsite.com/wp-includes と入力すると、フォルダの中身がすべて表示されてしまいます。
ディレクトリリスティング自体は脆弱性ではありませんが、サイトに関する情報を漏洩させ、それが脆弱性の悪用に利用される可能性があります。/wp-content フォルダにはプラグインやテーマが格納されており、ハッカーがインストール済みのプラグインやそのバージョン番号を確認できれば、脆弱性を見つけて悪用するかもしれません。これは「ディレクトリブルートフォース」と呼ばれる、やや特殊なタイプのブルートフォース攻撃です。
そのため、予防策としてディレクトリリスティングを完全に無効化しておくのが賢明です。
WordPressでディレクトリリスティングを無効化する完全ガイドはこちらをご覧ください。
他でよく勧められるが、避けるべき対策
世の中には善意に基づくものの、質の低いセキュリティアドバイスが溢れています。そこで、実施すべき対策のリストに加えて、やってはいけないこともご紹介します。
- wp-adminディレクトリにパスワード保護をかける:これは絶対にやめましょう。ブルートフォース対策の記事にはほぼ必ず登場する手法ですが、wp-adminディレクトリにBasic認証などをかけると、admin-ajax.phpファイルへのアクセスが制限され、非ログインユーザーのAJAXが壊れてしまいます。
AJAXはウェブサイトの動的な機能を支える技術です。たとえばサイトに検索バーがある場合、訪問者が商品を検索すると、検索結果部分だけが再読込され、ページ全体は読み込まれません。これは大きなリソース節約になり、ユーザー体験を大幅に高速化・向上させます。
admin-ajax.phpファイルを除外する回避策も多数見かけますが、常に完璧に機能するとは限りません。結論として、回避策の手間に見合うだけのセキュリティ向上は得られません。メリットが小さい割にリスクの大きい施策なのです。 - wp-loginのURLを変更する:WordPressハードニング系の記事でよく見かけるアドバイスですが、ログインURLを変更することは強くお勧めしません。URLを紛失した場合の復旧がほぼ不可能だからです。
- 「admin」というユーザー名を避ける:ブルートフォースボットはユーザー名とパスワードの組み合わせを推測しているため、「admin」のような安易なユーザー名を避けることには一定の価値があります。ただし、WordPressはダッシュボードからユーザー名を変更できないため、プラグインのインストールが必要です。
しかしこの対策の効果は限定的であり、多くの時間と労力を費やすことはお勧めしません。会員制サイトなどでは、他の方法でユーザー名を特定される可能性もあります。メンバーごとに一意のユーザー名を設定し、ポリシーを徹底し、忘れた場合の問い合わせ対応までする労力に見合う効果は期待できないのです。
WordPressにおけるブルートフォース攻撃の影響
ブルートフォース攻撃の影響は、2つの観点から考えることができます。第一に「攻撃を受けている間に何が起きるか」、第二に「攻撃が成功した場合に何が起きるか」です。
一般的な攻撃では、攻撃中はサイトへの影響がほとんどないため、最初の問いはあまり問題になりません。被害が顕在化するのは攻撃が成功した後です。しかし、ブルートフォース攻撃は事情が異なります。
サイトがブルートフォース攻撃を受けているときに起こること
サーバーリソースへの影響が即座に現れます。攻撃がログインページに大量のリクエストを浴びせるため、サーバーはそのすべてに応答しなければなりません。その結果、サーバー使用量の増加に伴うさまざまな症状が現れます。サイトの表示速度低下、一部ユーザーのログイン不可、ダウンタイム、サイトへのアクセス不能などです。ホスティング業者も、急騰するサーバー使用量を素早く制限してきます。特に共用サーバーを利用している場合は、業者全体の指標に影響するためです。
ブルートフォース攻撃が成功した場合に起こること
攻撃が成功した場合、マルウェアの感染や改ざんなどが起こると想定すべきです。ハッカーがあなたのサイトへのアクセスを求める理由はいくつもありますが、そのどれもが良い目的ではありません。
さらに厄介なことに、あなたのサイトはボットネットの一部にされ、同意なく他のウェブサイトへの攻撃に利用される可能性があります。これは重大な結果を招きます。ボットネットの一部となったサイトは、他のセキュリティシステムから悪意あるサイトとしてフラグを立てられてしまうからです。
WordPressのブルートフォース攻撃の被害への対処法
ブルートフォース攻撃が成功してしまった場合は、最悪の事態——サイトが侵害された——を想定してください。最優先すべきはサイトの安全確保です。被害を最小限に抑えるために、以下の主要なステップを実行しましょう。
- 全ユーザーを強制ログアウトし、すべてのパスワードを変更する
- 直ちにサイトのマルウェアスキャンを実行する
サイトがマルウェアに感染していないことを確認できたら、前述の予防策を実装しましょう。MalCareの導入を強くお勧めします。ログイン保護とボット保護に加えて、マルウェアスキャナー、クリーナー、高度なファイアウォールまで備えています。MalCareがあれば、WordPressの攻撃からサイトが守られていることを安心して信頼できます。
あなたのサイトはブルートフォース攻撃の標的になり得るのか?
答えはイエスです。すべてのシステムがブルートフォース攻撃に対して脆弱です。仕組み上、ブルートフォース攻撃はログインページを持つあらゆるシステムに対して仕掛けられます。WordPressサイトも例外ではありません。
WordPressの人気の高さこそが、ハッカーの標的になる理由です。第一に、インターネットの多くがWordPressで動いていること。第二に、WordPressの一部の仕様が広く知られていることです。ブルートフォース攻撃に関連する好例としては、WordPressは誤ったログイン試行を制限しないことが挙げられます。これは、対策セクションで述べたMalCareのログイン制限機能で修正できます。
さらに、多くのサイト所有者が覚えやすいユーザー名とパスワードを使いがちな点も問題です。よくある例としては、ユーザー名「admin」、パスワード「password1234」や「12345678」などが挙げられます。
これらの要因が、あなたのサイトをブルートフォース攻撃に対して脆弱にしているのです。
ブルートフォース攻撃の種類
ブルートフォース攻撃は、フィッシングなどのソーシャルエンジニアリング攻撃やXSS攻撃とは異なる脅威です。ソーシャルエンジニアリング攻撃は、信頼できる組織を装って人間から認証情報を引き出す手口であり、XSS攻撃はウェブサイトの脆弱性を悪用します。一方、ブルートフォース攻撃は弱いパスワードや流出した認証情報に依存して成功します。
実際の現場では、いくつかのバリエーションのブルートフォース攻撃が確認されています。いずれも総当たりという同じパターンですが、試す認証情報や使用する手法が異なります。代表的な種類は以下のとおりです。
- シンプル攻撃:ユーザーに関する知識(SNSから入手したペットの名前や誕生日など)をもとに、論理的に認証情報を推測する攻撃です。
- クレデンシャルスタッフィング:データ漏洩で入手した認証情報を使う攻撃です。「ユーザーは複数のサービスで同じユーザー名とパスワードを使い回す」という前提で動作します。
- 辞書攻撃:名前のとおり、ボットが辞書ファイルを使ってパスワードを試す攻撃です。実際の辞書の場合もあれば、パスワード推測用に特別に作成されたリストの場合もあります。
- レインボーテーブル攻撃:辞書攻撃と概念が似ていますが、レインボーテーブルは特別な辞書リストで、パスワードそのものではなく、ハッシュ化されたパスワードのリストを保持しています。
- パスワードスプレー:論理的には逆ブルートフォース攻撃です。通常のブルートフォース攻撃は特定のユーザー名を標的にしてパスワードを総当たりしますが、パスワードスプレーは逆に、複数のユーザー名に対して少数のパスワードを試し、一致を探します。標的型攻撃と比べて、より分散型の攻撃手法です。
サイト管理者として、各攻撃タイプの細かい違いを把握する必要はないかもしれません。しかし、これらの用語はしばしば混同して使われるため、背後にある仕組みを理解しておくと役立ちます。
その他の推奨セキュリティ対策
WordPressのブルートフォース攻撃防止は立派な目標ですが、それはウェブサイトセキュリティの一部にすぎません。サイトを安全に保ち、マルウェアから守るためのおすすめ対策をいくつかご紹介します。
- 優れたマルウェアスキャナーとクリーナーを備えたセキュリティプラグインを導入する
- すべてを最新の状態に保つ
- 毎日のバックアップに投資する
推奨事項の完全なリストについては、究極のセキュリティガイドをご覧ください。
まとめ
ブルートフォース攻撃は、成功しなかったとしてもウェブサイトを麻痺させる可能性があります。この潜在的な脅威に対処する最善の方法は、MalCareのようにボット保護が統合されたファイアウォールを導入することです。
仮にブルートフォース攻撃が成功してしまった場合でも、MalCareならマルウェアを迅速に検出し、除去できます。すべての感染症と同様、素早い対応こそが被害を大幅に抑える鍵となるのです。
よくある質問(FAQ)
WordPressにおけるブルートフォース攻撃とは何ですか?
WordPressのブルートフォース攻撃とは、ハッカーが正規ユーザーアカウントのログイン認証情報を推測しようとすることで、サイトのwp-adminへのアクセスを狙う攻撃です。ブルートフォース攻撃ではボットが使われ、wp-loginページに対して数百、数千、時には数百万ものパスワードを試し、正しいものを探し当てようとします。
ブルートフォース攻撃は、成功した場合の危険性だけでなく、サイトのパフォーマンスにも多大な影響を及ぼします。攻撃はサーバーリソースを消耗させ、場合によってはサイトをクラッシュさせることさえあります。
WordPressサイトをブルートフォース攻撃から守るにはどうすればよいですか?
ブルートフォース攻撃からサイトを守る最も効果的な方法は、ログイン試行回数を制限することです。デフォルトのWordPressはログイン試行を無制限に許可しているため、MalCareを使ってサイトを保護しましょう。ログイン保護に加えて、MalCareにはボット保護と高度なファイアウォールが含まれており、どちらもサイトの保護とブルートフォース攻撃の悪影響の軽減に役立ちます。
-
OpenCart・WordPressサイトからpub2srvマルウェアを完全に削除する方法
私たちは数か月にわたり、OpenCartおよびWordPressのウェブサイトを標的とする特定のマルウェア感染を監視してきました。この感染は一般に「pub2srvマルウェア」と呼ばれ、サイト訪問者を以下のような悪意のあるドメインへ強制的にリダイレクトさせるのが特徴です。 go.pub2srv[.]com go.mobisla[.]com go.oclaserver[.com] deloton.com/afu.php?zoneid= site Dolohen.com さらに、サイト上の悪意あるリンクが原因で、Googleアドセンスなどの広告アカウントが停止されるケースも報告されています
-
マルウェアの脅威からパソコンを守る方法|初心者にもわかる対策ガイド
マルウェア(悪意あるソフトウェア)は、コンピュータを使用する上で最も深刻かつ身近な脅威の一つです。私たちのシステムには、さまざまな経路から「PUP(望ましくない可能性のあるプログラム)」と呼ばれる不要なソフトウェアが次々と侵入してきます。インターネットを一切使わない限り、これらを完全にシャットアウトすることは不可能です。だからこそ、被害が発生する前にマルウェアを検出・駆除できるアプリが必要になります。本記事では、マルウェアの脅威からパソコンを守る具体的な方法を解説します。 Advanced PC Cleanup:信頼できるマルウェア対策ツール マルウェア攻撃からパソコンを守るためには、システ