WordPressセキュリティの基本設定:ユーザー権限、二要素認証、ログイン保護
1. まずアカウントを洗い出す:多くのサイトは管理者が多すぎる
WordPressへの侵入の入り口は、必ずログイン画面です。そしてログイン画面が破られる前提は、攻撃者の手元に有効なアカウントとパスワードの組があること。だからセキュリティの出発点はプラグインの導入ではなく、管理画面に入れる人が何人いるかを正確に数えることです。
開設から2年たったサイトでは、管理者アカウントが7つ8つたまっていることがよくあります。外注先のもの、元同僚のもの、テスト用のもの。中にはパスワードが123456のままのものも。これらのどれか1つが漏れれば、管理画面の扉は全開です。
事例1:あるサイトに不正リンクを仕込まれ、後からログを調べると半年前に退職した外注先のアカウントでログインしていました。人は去ってもアカウントは残り、パスワードは当時のチャットに送ったそのまま。攻撃側は脆弱性を一切必要としません。
技術スタックを選ぶときにアカウントをどう設計するかはWordPress独立サイトの技術スタックを、侵入後の復旧手順はサイトが攻撃を受けた後。
| 役割 | 権限範囲 | 誰に与えるか |
|---|---|---|
| 管理者 | サイト全体:プラグイン追加、コード変更、ユーザー削除 | 実際に運営を担う人、2人まで |
| 編集者 | すべてのコンテンツとコメントを管理 | コンテンツ責任者 |
| 投稿者 | 自分の記事だけ作成・管理 | 寄稿者 |
| 寄稿者 | 下書きは書けるが公開はできない | 外部の執筆者 |
| 購読者 | コメントのみ | 一般の訪問者 |
2. 最小権限:記事を書く人にプラグインを入れさせない
権限の原則は、あるアカウントができることが、その仕事をこなすのに必要な最小範囲とちょうど一致することです。ブログを書く運用担当者にプラグイン追加やテーマ変更は不要で、EditorかAuthorで十分。サイトを実際に保守する人だけがAdministratorにふさわしいのです。
退職時の対応は2段階で行います。まず権限を下げて無効化し、1〜2週間様子を見てそのアカウントに依存する自動処理がないことを確認してから削除します。いきなり削除すると、その人が投稿した記事の著者情報が失われる可能性があります。
デフォルトのadminというユーザー名も削除しましょう。多くの総当たりツールは最初の試行でadminという名前を試します。管理画面にそれが残っていれば、パスワードの半分を渡しているようなものです。
パスワード自体も十分な長さが必要です。8桁の数字だけでは現代の総当たり攻撃の前ではほぼ無防備です。管理者パスワードは12桁以上で大文字小文字と記号を混ぜ、アカウントごとに別の文字列にしてください。パスワードの使い回しは、リスト型攻撃が成功する最大の原因です。
| 職種 | 推奨する権限 | 付与すべきでない権限 |
|---|---|---|
| サイト管理者/技術責任者 | 管理者 | — |
| コンテンツ編集 | 編集者 | プラグイン追加、コード変更 |
| 投稿者 | 投稿者 | 他人の記事の編集、テーマ変更 |
| 外部ライター | 寄稿者 | 直接公開 |
| インターン/臨時 | 寄稿者 | あらゆる公開権限 |
三、二要素認証:パスワードにもう一つ鍵をかける
二要素認証(2FA)の意義は、たとえパスワードが漏れても、攻撃者がスマホのワンタイムコードを持っていなければログインできない点にあります。リスト型攻撃への対策として最も効果が高い層です。リスト型攻撃はまさに「パスワードが他所で漏れている」ことを前提に成立するからです。
方式はTOTP認証アプリ(Google Authenticator、Authyなど)を選び、SMSは使わないでください。SMSのコードはSIMスワップで奪われる可能性がありますが、TOTPは端末内で生成され、通信事業者に依存しません。
強制は二段階で進めます。Administratorは即時強制し、未設定ならログインさせない。その他の権限には2週間の猶予を与え、期限を過ぎたら自動でロックします。設定方法はセキュリティ強化を参照してください。独立サイトのセキュリティ強化。
シナリオ例三:5人のチームで、当初は技術責任者だけが二要素認証を設定していました。ある時メールから運用担当のパスワードが漏れ、攻撃者が管理画面にリスト型攻撃を仕掛けましたが、運用担当のアカウントは2FA未設定だったため、二つ目の鍵は機能しませんでした。2週間後に全員へ強制設定して、この種のリスクはようやく塞がりました。
| 2FAの方式 | セキュリティ | おすすめ |
|---|---|---|
| TOTP認証アプリ | 高、端末内で生成し通信不要 | 全員に推奨 |
| SMSコード | 中、SIMスワップの恐れ | 主方式には非推奨 |
| メールコード | 低、メールも同じパスワードで漏れやすい | 予備のみ |
| ハードウェアキー | 最高 | 管理者は任意で導入可 |
四、ログイン保護:URL変更より制限と遮断が有効
ここでよくある誤解を正しておきます。多くの解説が/wp-adminを奇妙なパスに変えるよう勧め、それで攻撃者は管理画面を見つけられないと考えます。しかし標的型攻撃者はツールでログインページの場所を割り出します。パス変更は手間を少し増やすだけで、総当たり攻撃は防げません。
本当に効くのは二つです。ログイン失敗5回でそのIPを一定時間(例えば15分)ロックし、自動総当たり攻撃を止める。XML-RPCのシステム公開方法を無効にし、大量の総当たりスクリプトの入口を塞ぐ。
シナリオ例二:ログを見ると、あるIPが1時間で800組のパスワードを試し、ユーザー名はすべてよくある名前でした。失敗5回ロックを有効にすると、このIPは6回目の試行で締め出され、以降の試行はすべて即座に拒否されました。
もう一つの細かい点として、ログイン処理は失敗のたびにわずかに応答を遅らせると、スクリプトが大量に試すコストが上がります。サイトが大きくなったら、ログイン層の前にクラウドWAFを置けば、分散リスト型攻撃はWordPressに届く前に遮断されます。
| 保護の動作 | 役割 | 限界 |
|---|---|---|
| 失敗5回でIPをロック | 自動総当たり攻撃を停止 | 分散型攻撃にはクラウドWAFを併用 |
| XML-RPCを無効化 | 一括スクリプトの侵入経路を塞ぐ | アプリ投稿を使うなら残す |
| WPのバージョン番号を隠す | 旧バージョンの脆弱性を晒さない | 情報の露出が減るだけ |
| 管理画面のURLを変更 | スキャンの手間を少し増やす | 標的型攻撃は防げない |
| 管理画面からのファイル編集を禁止 | 乗っ取られた後のテーマ改ざんを防ぐ | コード変更はSFTP経由になる |
五、周辺対策:バックアップ、監視、攻撃面の最小化
どれだけ対策しても、いつか突破される前提で備えるべきです。だからこそバックアップが最後の保険になります。データベースとファイルを別々に取得し、遠隔地に保管し、四半期ごとに復元テストを実施しましょう。復元できないバックアップは無いのと同じです。方法はこちら独立サイトのバックアップ戦略。
攻撃面は継続的に狭めます。使っていないプラグインとテーマは削除しましょう。遊んでいるプラグインはそれぞれが潜在的な脆弱性です。管理画面の監視では、異常なログインを検知して通知します。たとえば普段と違う地域からのログインや、勤務時間外の管理者ログインです。監視のしきい値はこちら独立サイトの監視体制。
もう一つ絶対のルールがあります。どこかでパスワードが漏えいしたと分かったら、サイト全体の全アカウントのパスワードを交換してください。パスワードリスト攻撃ではそのパスワードを管理画面に試されます。パスワードが正しければ、これまでの対策はすべて無効になります。
| アクション | 頻度 | 合格基準 |
|---|---|---|
| 管理者アカウントを棚卸し | 毎月 | administratorは2個以下 |
| 未使用のプラグインとテーマを点検 | 四半期ごと | 無効化したら削除 |
| バックアップ復旧訓練 | 四半期に1回 | 2時間以内に復元できる |
| 異常ログインのアラート | リアルタイム | 遠隔地からのログインを即通知 |
| パスワードの定期交換 | 漏えい後すぐに | 全員がパスワード変更と2FAを設定 |
FAQ よくある質問
WordPressにセキュリティプラグインを1つ入れれば十分ですか?
/wp-admin を別のURLに変えればハッカーを防げますか?
2段階認証にSMS認証コードを使っても大丈夫ですか?
退職した従業員のWordPressアカウントはどう処理しますか?
Administratorアカウントはいくつ残すのが適切ですか?
ブルートフォース攻撃を受けたとき、ログにはどう記録されますか?
最後に
WordPressのセキュリティは直感に反します。複雑なプラグインや高度なルールが必要だと思われがちですが、実際にサイトの命運を分けるのは、余分な管理者を削除したか、各アカウントに2つ目の鍵をかけたかです。この2つは費用がかからず、ほとんどの侵入を防げます。
実行は3ステップです。今日中にユーザー一覧を見直し、administratorを2つ以内に減らす。すべての管理者にTOTPの2要素認証を必須にする。ログイン失敗5回でロックし、XML-RPCを無効にする。その後は月に一度アカウントを確認し、四半期に一度は復旧訓練を行ってください。
覚えておきたい一言。セキュリティとは鍵をどれだけ凝ったものにするかではなく、鍵を持つべきでない人から鍵を取り戻すことから始まります。
