WordPressセキュリティの基本設定:ユーザー権限、二要素認証、ログイン保護

WordPressが侵入される原因は、9割が脆弱性ではなく、漏洩したアカウントとパスワードで直接ログインされることです。基本設定でやることは3つ。ユーザー権限を最小限まで絞る(administratorは2つまで)、

WordPress安全基线:角色、两因素与登录保护WordPress Security Baseline: roles, 2FA, login hardening 绝大多数入侵不是被攻破的,是用泄露的密码直接登进来的Most breaches log in with a leaked password, not a zero-day 用户角色最小权限Least-privilege roles 编辑给Editor 运营给AuthorEditors get Editor, writers get Author administrator不超过2个Max 2 admins 两因素认证 全员强制Enforce 2FA for all TOTP验证器 而非短信TOTP app, not SMS 管理员强制 其余角色限期开启Admins forced, others on deadline 登录保护:失败5次锁定 · 禁XML-RPC暴力破解 · 隐藏版本号 · 关文件编辑Login: lockout after 5 fails · block XML-RPC brute force · hide version · disable file edit 反直觉:改 /wp-admin 路径几乎挡不住定向攻击,限流加2FA才挡掉九成爆破Counterintuitive: renaming wp-admin barely helps; rate limit + 2FA stops 90% 离职账号先降权再删除 保留备份可恢复Demote then delete leavers; keep backups 红线:泄露过的密码必须全站轮换 一次撞库会清空所有防护Red line: rotate all passwords once leaked; credential stuffing defeats every layer 安全不是装一堆插件 是删掉没用的账号和插件 再锁死入口Security is not more plugins; it is fewer accounts and a locked door 每月审一次账号清单 每季度做一次恢复演练Audit users monthly; restore drill quarterly
WordPressセキュリティの基本は3層:最小権限のユーザー、全員に二要素認証、ログイン試行の制限

WordPressセキュリティの基本設定:ユーザー権限、二要素認証、ログイン保護

結論から言うと:WordPressが侵入される原因は、9割が脆弱性ではなく、漏洩したアカウントとパスワードで直接ログインされることです。基本設定でやることは3つ。ユーザー権限を最小限まで絞る(administratorは2つまで)、全員にTOTPの二要素認証を必須にする、ログイン失敗5回でロックしXML-RPCの総当たり攻撃を無効化する。直感に反する点が1つあります。管理画面のパス/wp-adminを変えても標的型攻撃はほぼ防げず、総当たり攻撃の9割を実際に防ぐのは試行制限と二要素認証です。

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つ入れれば十分ですか?
十分ではありません。プラグインはアクセス制限やスキャンを追加できますが、管理者アカウントがいくつあるか、パスワードが漏えいしていないか、2段階認証を有効にしているかまでは管理できません。侵入のほとんどは漏えいしたパスワードで直接ログインされるもので、プラグインは正しいパスワードを防げません。正しい順序は、まずアカウントを棚卸しし、権限を絞り、全員に2FAを設定し、そのうえでプラグインでログイン制限と異常スキャンを行うことです。逆ではありません。
/wp-admin を別のURLに変えればハッカーを防げますか?
最も手抜きなスキャンしか防げず、標的型攻撃には効きません。攻撃者はツールを使えば新しいログインページのURLをすぐに見つけ出します。本当に効果があるのは、ログイン失敗5回でIPをロックすること、XML-RPCのブルートフォース経路を閉じること、そして2段階認証を必須にすることです。URL変更はあくまで追加の一手で、主力の防御線にはしないでください。
2段階認証にSMS認証コードを使っても大丈夫ですか?
主な方式としてはおすすめしません。SMSはSIMジャックで傍受され、通信事業者の経路にも遅延や遮断があります。優先すべきはTOTP認証アプリで、たとえばGoogle AuthenticatorやAuthyです。ワンタイムコードは端末内で生成され、ネットワークや通信事業者に依存しません。管理者はさらにハードウェアキーを追加してもよいでしょう。有効化したら必ずバックアップコードを保管してください。スマホを失うと自分が締め出されます。
退職した従業員のWordPressアカウントはどう処理しますか?
2段階で進めます。まずアカウントの権限をContributorに下げてログインを無効化し、1〜2週間様子を見て、そのアカウントに依存する定期処理や記事の投稿者がいないことを確認してから削除します。いきなり削除すると、その人が投稿した記事の投稿者情報が失われます。削除前に、サイト全体のパスワードを変更済みか確認してください。退職者は管理画面のパスワードを覚えている可能性が高いからです。
Administratorアカウントはいくつ残すのが適切ですか?
実際に管理する人は2人以内です。コンテンツ編集はEditor、執筆者はAuthor、外部への執筆依頼はContributorにします。余分な管理者が1人増えるたびに、パスワードが漏れる入口も1つ増えます。月に一度ユーザー一覧を見直し、使われていないアカウント、退職者のアカウント、テスト用の管理者を降格または削除してください。これが最も低コストで効果の大きいセキュリティ対策です。
ブルートフォース攻撃を受けたとき、ログにはどう記録されますか?
同じIP、または同じIP群から、短時間にwp-adminのログイン画面へ大量のPOSTリクエストが送られ、ユーザー名はよくある名前を次々と変えながら401で失敗します。5回失敗でロックを有効にしていれば、6回目以降は即座に拒否されます。複数のIP帯から同時に試行されている場合は、サイト単位の制限では足りません。WordPressに到達する前にクラウドWAFやCDN層のルールで遮断する必要があります。

最後に

WordPressのセキュリティは直感に反します。複雑なプラグインや高度なルールが必要だと思われがちですが、実際にサイトの命運を分けるのは、余分な管理者を削除したか、各アカウントに2つ目の鍵をかけたかです。この2つは費用がかからず、ほとんどの侵入を防げます。

実行は3ステップです。今日中にユーザー一覧を見直し、administratorを2つ以内に減らす。すべての管理者にTOTPの2要素認証を必須にする。ログイン失敗5回でロックし、XML-RPCを無効にする。その後は月に一度アカウントを確認し、四半期に一度は復旧訓練を行ってください。

覚えておきたい一言。セキュリティとは鍵をどれだけ凝ったものにするかではなく、鍵を持つべきでない人から鍵を取り戻すことから始まります。

环形山
环形山 クレーター専門家

公式アカウント · 環形山 Crater

環形山(Crater)は、WordPress独立サイト開発+Google SEO+GEO全域成長に特化した海外展開支援会社で、スマートハードウェア、産業機器、SaaS、新エネルギーなどの分野を手がけています。

プロダクト能力方法論ホワイトペーパー業界レポート
965件のシェア
78件のナレッジベース