wp-loginへの大量アクセス・不正ログインの対策

「身に覚えのないログイン試行の通知が大量に来る」「管理画面が重い気がする」——WordPressのログインページ(wp-login.php)は、世界中の攻撃ツールから常に狙われています。結論として、不正ログインの大半は人間ではなく自動化された総当たり攻撃(ブルートフォース)であり、いくつかの基本的な防御設定を入れるだけで、その大半は無力化できます。特別なセキュリティ製品を入れる前に、まずは「狙われにくくする」「破られにくくする」「侵入を検知する」の3段構えを整えましょう。本記事では、ログの見方と具体的な防御設定を解説します。
まず攻撃の実態を知る
不正ログインの試みは、特定の誰かに狙われているというより、インターネット全体を自動でスキャンするツールが、無差別にWordPressサイトのログインページを叩いているのがほとんどです。「admin」などのありがちなユーザー名と、よくあるパスワードの組み合わせを高速で試し続けます。つまり、推測されやすいユーザー名・パスワードを使っているサイトほど破られやすく、逆に基本を押さえれば、自動攻撃の前ではほとんどが弾かれます。過剰に怖がる必要はありませんが、無防備は禁物です。
ログの見方
サーバーのアクセスログを見ると、wp-login.php や xmlrpc.php への大量のPOSTアクセスが記録されています。短時間に同じIPから何十回もログインを試みている記録があれば、それが総当たり攻撃です。多くのセキュリティプラグインは、こうしたログイン失敗を管理画面で見やすく集計し、どのIPから何回試行があったかを表示してくれます。まずは「実際に攻撃が来ている」ことを自分の目で確認すると、対策の必要性が腑に落ちます。
具体的な防御設定
- 推測されにくい認証情報にする:「admin」など定番のユーザー名を避け、パスワードは長く複雑なものにします。これだけで総当たりの成功率は激減します。
- ログイン試行回数を制限する:一定回数失敗したIPを一時的にロックする設定を入れます。総当たりは「何度でも試せる」前提なので、回数制限は非常に効果的です。
- 二段階認証を導入する:パスワードが漏れても、もう一つの認証がなければ入れない状態にします。
- ログインページを保護する:必要に応じてログインURLの変更や、特定IPのみ許可する設定で、そもそも攻撃者が到達しにくくします。
- 使っていない入口を閉じる:利用していない xmlrpc.php など、攻撃に悪用されやすい機能を無効化します。
二段階認証は「最後の砦」になる
数ある対策の中でも、二段階認証(2FA)はとくに効果が高い防御です。仮にパスワードが何らかの形で漏れても、もう一つの認証要素(スマートフォンのアプリに表示される使い捨てコードなど)がなければログインできないため、総当たり攻撃はもちろん、漏えいしたパスワードを使った侵入も防げます。導入は専用のプラグインで行え、管理者だけでも設定しておく価値は十分にあります。注意点としては、認証アプリを入れたスマートフォンを機種変更・紛失したときに自分がログインできなくなるリスクがあるため、リカバリーコード(緊急用のバックアップコード)を必ず安全な場所に保管しておくことです。また、複数人で管理画面を使っている場合は、全員に二段階認証を設定してもらわないと、設定していない人のアカウントが穴になります。手間が一つ増えるのは事実ですが、その一手間が、サイトを守る最後の砦になります。特に、売上や個人情報を扱うサイトでは導入を強くおすすめします。
保守現場メモ:「ログイン試行の通知が大量に来て怖い」という相談は多いのですが、通知が来ること自体は、むしろ攻撃を検知・記録できている良い状態です。本当に危険なのは、何の対策もログもなく、破られたことにすら気づけないサイトです。現場の感覚では、ログイン試行回数の制限と強固なパスワードという2つの基本だけで、自動攻撃の被害はほぼ防げます。高価な対策を足す前に、まずこの土台を固めるのが費用対効果として最も高いです。
侵入されてしまった場合は
万一ログインを突破され、サイトを改ざんされた場合は、初動が肝心です。被害を広げない手順は 改ざんされた時に最初の1時間でやること にまとめています。退職者アカウントの放置など、内部に起因するリスクの整理も大切です。ログイン防御の設定、監視、万一の復旧までまとめて任せたい場合は、月額保守でお引き受けします。まずは無料診断で、いまのサイトの防御状況をご確認ください。
