以前、WordPress Meetup Shizuoka で利用したスライド「WordPressを利用するときに気をつけるセキュリティの話」をコラムとしてまとめ直したものです。
セキュリティに関しては別のコラムとしてまとめたものもあり、内容が重複する部分もありますがどちらも読んでいただければと思います。
目次
WordPressでの不安を今すぐ解消!
WordPressやWebに関する問題解決をプロがサポートします。
安心してWebサイトが運用できるよう、調査からご提案、実対策まで行います。
お気軽にご相談ください。
1. WordPressへの攻撃の種類
1-1. 無差別型攻撃と特定標的型攻撃
攻撃には大きく分けて2種類があります。
- 特定標的型攻撃
特定の組織や企業を狙い、情報を盗み取ったりシステムを破壊したりする攻撃。ターゲットに応じた精巧な手口が用いられる。
ニュースなどになるサイバー攻撃はこのタイプが多く、サイバー攻撃と聞くとこういう形をイメージする人が多い。 - 無差別型攻撃
不特定多数のWebサイトを対象に、自動化された攻撃ツールで侵入を試みる攻撃。一般のWordPressサイトは主にこの攻撃を受ける。
実際に被害が多いのはこちらの形の攻撃。
1-2. よくある攻撃手法
① ログイン総当たり攻撃(ブルートフォースアタック)
ブルートフォース攻撃は、攻撃者が大量のパスワードを試してログインを突破しようとする方法です。
- 影響:簡単なパスワードを使用している場合、短時間で突破される可能性がある。
- 対策:複雑なパスワードを設定し、試行回数を制限するプラグインを導入する。
② ログインリスト型攻撃
既に流出しているID・パスワードのリストを使い、不正ログインを試みる攻撃。
- 影響:過去にデータ漏洩したアカウントを使っていると、不正アクセスされるリスクが高い。
- 対策:パスワードの使い回しを避け、定期的に変更する。
③ 脆弱性を突いた攻撃
WordPress本体やプラグイン、テーマのセキュリティホールを狙った攻撃。
- 影響:サイトの改ざん、情報漏洩、サイトの乗っ取りなどが発生する可能性がある。
- 対策:最新バージョンへのアップデートを常に行い、不要なプラグイン・テーマを削除する。
2. WordPressの具体的なセキュリティ対策
2-1. ログイン周りの対策
- 「admin」というユーザー名を使用しない
- デフォルトの「admin」は攻撃者が最初に試すユーザー名。
- ユーザー作成時に別の名前を設定し、「admin」がユーザーに含まれている場合は削除する。
- 推測されにくい複雑なパスワードを設定する
- 12文字以上の長さ、大文字・小文字・数字・記号を含むパスワードを推奨。
- パスワード管理ツール(例:1Password, Bitwarden)を利用すると便利。
- ログイン試行回数を制限する(プラグインを活用)
- 「WP Limit Login Attempts」などを利用し、一定回数ログインに失敗するとアクセスをブロック。
- xmlrpc.phpを無効化する
- 外部からのAPIアクセスを利用しない場合は、xmlrpc.phpを無効化することで攻撃を防ぐ。
- ログインページ(wp-login.php、wp-admin)へのアクセス制限を行う
- IPアドレス制限を設定し、特定のIPからのみログインできるようにする。
- BASIC認証を導入し、ログインページに追加の認証をかける(ただし、BASIC認証は平文で認証情報を送信するため、強固なセキュリティ対策としては不十分)。
- IPアドレス制限を設定し、特定のIPからのみログインできるようにする。
2-2. ログインリスト型攻撃への対策
- 他のサイトと同じID・パスワードを使わない
- もし1つのサイトで流出すると、他のサイトにも影響が及ぶ可能性がある。
- 利用していないアカウントの削除
- 定期的にアカウントの棚卸が行えるとよい
- 利用者ごとにユーザーを発行し権限を分ける
2-3. 脆弱性攻撃への対策
- WordPress本体・プラグイン・テーマを最新の状態に保つ
- アップデートを放置すると、既知の脆弱性を突かれるリスクが高まる。
- 更新前には必ずバックアップを取る。
- 更新が長く行われていないプラグインの使用を避ける。
- アップデートを放置すると、既知の脆弱性を突かれるリスクが高まる。
- 更新前には必ずバックアップを取る。
- 動作環境(PHP、MySQLなど)も利用できる最新版を利用する
3. セキュリティ対策に役立つプラグイン
XO Security
- ログイン試行制限
- 2要素認証
- ログ取得
- 日本語のドキュメントが充実
SiteGuard WP Plugin
- 管理画面アクセス制限
- ログインページ変更
- 画像認証
Wordfence Security(中・上級者向け)
- 2要素認証
- ログ取得・ブラックリスト管理
- セキュリティスキャン
4. 改ざんされた場合の対応手順
Step 1. 隔離環境を作る
- 影響を広げないために、Webサイトの公開を一時停止。
- ローカル環境や仮想環境で復旧作業を行う。
Step 2. データを徹底的にチェック・修正する
- データベースの確認:
不明なURLやスクリプトが埋め込まれていないか調査。 - テーマ・プラグインのチェック:
改ざんされた可能性があるため、最新の公式版に置き換える。 - そのほかのファイル:
画像フォルダやWordPressデフォルトにはないディレクトリにあるようなファイルもチェックが必要
Step 3. 修正データで再公開する
- 新しい環境で再構築し、バックアップデータと比較しながら復旧。
- パスワードや権限設定を見直し、再発防止策を講じる。
ここまでやっても元に戻らない、バックドアが別の領域にあり対応しきれないなどということもある。
5. まとめ
知識を持つことの重要性
- まずはセキュリティリスクを知ることが重要。
- すべてのWebサイトは機械的に狙われている という意識を持つ。
- Webサイトを運用する限り、 常に攻撃対象になっている という前提で管理する。
運用と対策の徹底
- 改ざんされた場合の修正は容易ではない。
- 信用・信頼の喪失は、そのまま自分や企業に降りかかる。
- 定期的なメンテナンスを行い、緊急的な対策も行うことで、リスクを最小限に抑える。
- サイトが「見れなくなる」よりも、「改ざんされる」ほうが遥かに怖い。
制作者・運営者が持つべき意識
- Web制作会社やWeb制作者のスキルの差が開いている。
- WordPressの スキルと知識を持つ制作者に依頼することが重要。
- 定期メンテナンスの実施は必須。緊急対応ができる体制を持つこと。
- バックアップは必ず取得し、迅速に復旧できる環境を整える。
最後に
何かが起こってしまってからでは遅い。
セキュリティは「対応する」ものではなく、「予防する」もの。 攻撃を受けてから考えるのではなく、事前に適切な対策を講じることが不可欠 です。
WordPressのセキュリティを守るのは 運営者と制作者の責任 です。
適切な知識と対策で、安心できる運用を心がけましょう!
- WordPressサイトは常に攻撃の対象であることを認識する。
- パスワード管理、アップデート、プラグイン活用を徹底する。
- 攻撃を受ける前に防御策を講じることで、リスクを大幅に軽減できる。
セキュリティ対策を怠ると、サイトの改ざんや情報漏洩などの重大なトラブルにつながります。しっかりと対策を行い、安全なWordPress運用を心がけましょう!