WordPressのセキュリティ対策12項目を、専門用語なしで解説します

WordPressのセキュリティ対策12項目を、専門用語なしで解説します

記事
IT・テクノロジー
「WordPressのセキュリティ対策をした方がいい」とはよく言われますが、では具体的に何をするのか、なぜそれが効くのかまで説明されることは多くありません。

この記事では、WordPressのセキュリティ対策として実施すべき12項目を、専門用語をなるべく使わずに、ひとつずつ解説します。ご自身で対応される方の参考になれば幸いです。

読んでみて「これは自分には難しそう」と感じた項目があれば、その部分だけご相談いただいても構いません。

もくじ


1. なぜ「うちは大丈夫」が通用しないのか
2. ログインの入口を固める(項目1〜4)
3. 入られたときの被害を小さくする(項目5〜8)
4. 余計な情報を表に出さない(項目9〜11)
5. 万一に備える(項目12)
6. 12項目やっても、続かなければ意味がない
7. 時間がない方へ:まずこの3つだけ
8. 最後に

1. なぜ「うちは大丈夫」が通用しないのか


WordPressへの攻撃の大半は、人が「あなたのサイト」を選んで行うものではありません。プログラムが自動で、世界中のサイトを片っ端から叩いて回っています。

サイトの規模も、アクセス数も、業種も関係ありません。判断基準は「入れる穴が開いているかどうか」だけです。

だからこそ、穴を順番に塞ぐという地味な作業に意味があります。

2. ログインの入口を固める(項目1〜4)


攻撃の入口は、ほとんどが「ログイン画面」です。ここを固めるだけで大半は防げます。

▼項目1. ログイン画面のURLを変更する

WordPressのログイン画面は、初期状態ではどのサイトも同じ場所(/wp-login.php)にあります。攻撃プログラムはまずここを叩きに来ます。

場所を変えると、入口そのものが見つからなくなります。根本的な防御ではありませんが、無差別攻撃の記録が激減するため、本当の異常に気づきやすくなるという効果もあります。

※変更後のURLは必ず控えを取ってください。忘れるとご自身も入れなくなります。

▼項目2. ログインの失敗回数を制限する

初期状態のWordPressは、パスワードを何万回間違えても何も起きません。攻撃プログラムはこの性質を利用して、機械的にパスワードを試し続けます。

「5回失敗したら30分ロック」を設定するだけで、この攻撃手法そのものが成立しなくなります。手間に対する効果が最も大きい対策です。

▼項目3. 管理画面へのアクセスを日本国内に限定する

日本向けのサイトであれば、管理画面に海外からアクセスする必要はまずありません。攻撃の大半は海外からなので、これを一括で遮断すると攻撃の総量が劇的に減ります。

※海外出張中はご自身も入れなくなる点だけご注意ください。

▼項目4. XML-RPCという古い窓口を閉じる

外部アプリからWordPressを操作するための、古い仕組みです。この窓口には「1回の通信で大量のパスワードを試せてしまう」という性質があり、項目2の回数制限を回避する抜け道として悪用されます。

現在この機能が必要なケースはほとんどありません。ただし、スマートフォンのWordPressアプリやJetpackを使っている場合は動かなくなるため、事前の確認が必要です。

3. 入られたときの被害を小さくする(項目5〜8)


対策をしても、可能性はゼロになりません。「入られた後どうなるか」を変えておくことも、同じくらい重要です。

▼項目5. 管理画面からプログラムを書き換えられないようにする

WordPressには、管理画面からテーマやプラグインのプログラムを直接編集できる機能があります。便利な機能ですが、侵入された瞬間に「サーバー上で好きなプログラムを実行できる状態」に直結します。

この機能を止めておくと、被害が致命傷から軽傷に変わります。

▼項目6. 使っていないユーザーを整理する

制作会社、退職した担当者、過去の外注先のアカウントが「管理者」権限のまま残っているケースが、非常に多くあります。管理者権限は、サイトを丸ごと作り替えられる権限です。

記事を書くだけの人は「投稿者」に権限を下げる。心当たりのないアカウントは削除する。これだけでリスクが減ります。

▼項目7. 設定ファイルを外から読めないようにする

wp-config.php というファイルには、サイトのデータベースに接続するための情報が、そのままの文字で書かれています。この1ファイルが読まれるだけで、中身をすべて持っていかれる可能性があります。

外部から直接アクセスできないよう、サーバー側で蓋をします。

▼項目8. フォルダの中身が一覧表示されないようにする

サーバーの設定によっては、フォルダのアドレスに直接アクセスすると、中のファイル一覧がそのまま表示されてしまいます。使っているプラグインもテーマも筒抜けになり、攻撃者に「どこを攻めればいいか」の地図を渡すことになります。

4. 余計な情報を表に出さない(項目9〜11)


▼項目9. 投稿者名とログイン用の名前を分ける

初期設定のままだと、記事の「投稿者」欄にログイン用のユーザー名がそのまま表示されます。ログインに必要な2つの情報のうち、片方をサイト上で公開しているのと同じ状態です。

▼項目10. ユーザー名の一覧が外部から取れないようにする

実は初期状態のWordPressは、ある特定のアドレスにアクセスするだけで、サイトの全ユーザー名を誰にでも返してしまいます。

ご自身のサイトURLの末尾に /wp-json/wp/v2/users を付けてアクセスしてみてください。名前が出てきたら、対策が必要な状態です。

▼項目11. WordPressのバージョン情報を隠す

ページのソースに、バージョン番号が書き出されています。攻撃側から見ると「このバージョンに効く攻撃はどれか」を調べる手がかりになります。単体の危険度は低いですが、渡す必要のない情報は渡さないに越したことはありません。

5. 万一に備える(項目12)


▼項目12. 自動バックアップを設定する

ここまでの11項目は「入られないための対策」でした。この項目だけは「入られた後に助かるための対策」です。

どれだけ対策しても、可能性はゼロになりません。復旧できるバックアップが1つあるかどうかで、被害額が数十倍変わります。

ポイントは、サーバーとは別の場所に保管することです。サーバー自体が侵害された場合、同じサーバー上のバックアップも汚染されている可能性があるためです。

6. 12項目やっても、続かなければ意味がない


12項目をすべて実施しても、半年放置すれば元の状態に戻ります。新しい弱点は毎月見つかり、更新は毎月必要になるからです。

セキュリティ対策は一度きりの工事ではなく、歯磨きに近い性質のものです。実際、被害に遭うサイトの大半は「対策していなかった」のではなく「対策した後、続かなかった」サイトです。

毎月30分、カレンダーに予定を入れてください。
①バックアップを取る → ②プラグインを更新する → ③本体とテーマを更新する → ④表示を確認する

この4ステップです。金曜の夜や連休前は避けて、問題が起きても対応できる時間帯に行ってください。

7. 時間がない方へ:まずこの3つだけ


ログインの失敗回数を制限する(10分)
パスワードを推測できないものに変える(10分)
自動バックアップを設定する(20分)

合計40分です。これだけでも、実際に起きている被害のかなりの部分は防げます。

8. 最後に


セキュリティに「絶対」はありません。それを保証するサービスがあれば、むしろ疑った方がいいと思います。

できるのは、狙われる確率を下げることと、万一のときに素早く戻せる状態を用意しておくこと。この2つだけです。逆に言えば、この2つは確実に効果があります。

ご自身での対応が難しい場合は、下記のサービスでお引き受けしています。作業後は、どの項目をなぜ実施したかをまとめたレポートをお渡しするので、「何をしたか分からない」状態にはなりません。

▼WordPressのセキュリティ対策を代行します

また、サービスをお気に入り登録いただいた方には、全24項目版のチェックリスト(PDF・17ページ)を無料でお渡ししています。ご購入は不要ですので、お気軽にお気に入り登録をお願いします。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す