WordPressは中小企業のWebサイト構築において広く利用されていますが、その人気の高さゆえにサイバー攻撃の標的にもなりやすいという側面があります。一度サイトが改ざんされたり、顧客情報が漏洩したりすれば、企業の信用は大きく損なわれ、事業継続にも影響を及ぼしかねません。本ガイドでは、専門的な知識がなくても実践できる、中小企業のWeb担当者向けの具体的なWordPressセキュリティ対策を解説します。基本原則から緊急時の対応まで、一歩ずつ対策を進めていきましょう。
WordPressセキュリティ対策の基本原則

効果的なセキュリティ対策は、複雑な技術を導入することよりも、基本的な対策を確実に実行し続けることが何よりも重要です。ここでは、すべての対策の土台となる二つの基本原則を押さえます。
常に最新バージョンを使用する重要性
WordPress本体、プラグイン、テーマの更新は、セキュリティ対策の最優先事項です。更新プログラムには、発見された脆弱性(セキュリティ上の穴)を修正する「セキュリティアップデート」が含まれることが多く、これを適用しないことは、ドアの鍵をかけずに出かけるようなものです。特に、公式アナウンスで「セキュリティリリース」と明記されている更新は、速やかに適用してください。更新前には必ずバックアップを取得する習慣をつけ、テスト環境があればそこで動作確認を行うことが理想です。更新を怠ると、既知の脆弱性を悪用した自動化された攻撃(ボット)の標的となるリスクが飛躍的に高まります。
不要な機能の無効化でリスクを低減
使っていない機能は、潜在的な攻撃経路になる可能性があります。リスクを減らすために、以下の点を見直しましょう。
- 未使用のプラグインとテーマは完全に削除する:無効化(Deactivate)しただけではファイルが残り、脆弱性を含んでいる可能性があります。完全に削除(Delete)しましょう。
- 不要なユーザーアカウントを削除する:退職した社員やテスト用のアカウントは権限を剥奪し、削除します。
- XML-RPCを無効化する:多くのサイトで必要のないこの機能は、ブルートフォース攻撃(総当たり攻撃)に悪用されることがあります。セキュリティプラグインで無効化することを検討してください。
- ファイル編集機能を無効化する:管理画面からテーマやプラグインのファイルを直接編集する機能は、管理者アカウントが乗っ取られた際の被害を拡大させます。wp-config.phpファイルに1行コードを追加することで無効化できます。
プラグインとテーマの安全な管理方法
WordPressの脆弱性の多くは、プラグインとテーマに起因します。機能拡張の利便性と安全性のバランスを考えた管理が求められます。
信頼できるプラグインの選び方と評価基準
新しいプラグインを導入する際は、安易にインストールせず、以下のポイントで評価してください。
- 公式ディレクトリからのインストールを原則とする:信頼性が一定以上担保されています。
- 最終更新日を確認する:2年以上更新されていないプラグインは、サポートが終了している可能性が高く、使用を避けるべきです。
- アクティブインストール数と評価をチェックする:多くのユーザーが利用し、高評価を得ているプラグインは、一般的に信頼性が高いと言えます。
- サポートフォーラムを閲覧する:開発者がユーザーの質問にきちんと対応しているか、未解決のバグ報告がないかを確認します。
- 必要最小限の導入に留める:「念のため」で導入するプラグインは、セキュリティリスクと管理コストを増加させます。本当に必要な機能かどうか、再検討しましょう。
定期的な更新と脆弱性チェックの手順
導入後も継続的な管理が必要です。以下の手順をルーチン化しましょう。
- 更新通知を確認する:管理画面のダッシュボードに表示される更新通知を見逃さないようにします。メールで通知を受け取る設定にもしておくと良いでしょう。
- 更新前のバックアップ:必ずサイト全体のバックアップを取得してから更新を行います。
- 更新の実施:WordPress本体→プラグイン→テーマの順で更新するのが一般的です。
- サイトの動作確認:更新後、サイトの表示や主要機能(問い合わせフォーム等)に問題がないかを確認します。
- 脆弱性情報の収集:利用している主要プラグインやテーマについて、セキュリティニュースサイトや開発元のブログで情報を収集する習慣をつけます。
ログインセキュリティの強化策
管理者ログイン画面は攻撃者の格好の標的です。ここを強化することで、多くの自動化された攻撃を防ぐことができます。
二段階認証の導入と設定方法
IDとパスワードに加えて、別の要素(スマートフォンのアプリで生成するコードなど)による認証を要求する二段階認証(2FA)は、ログインセキュリティを飛躍的に高める最も効果的な手段の一つです。導入方法は非常に簡単です。
- 「Two Factor Authentication」や「Google Authenticator」などの二段階認証プラグインをインストール・有効化します。
- プラグインの設定画面に従い、スマートフォンにAuthenticatorアプリ(Google AuthenticatorやAuthyなど)をインストールします。
- 管理画面でQRコードを表示し、アプリで読み取ります。
- アプリに表示される6桁のコードを管理画面に入力し、設定を完了します。
次回からログイン時には、パスワード入力後にアプリのコードの入力が求められるようになります。すべての管理者アカウントに適用することを強く推奨します。
強力なパスワードとユーザー権限の管理
二段階認証を導入しても、パスワード管理は重要です。
- 強力なパスワードの使用:大文字・小文字・数字・記号を組み合わせた12文字以上のランダムなパスワードを生成し、パスワード管理ツールで管理します。「admin」「password」「会社名123」などの推測されやすいパスワードは絶対に使用しないでください。
- デフォルトの管理者ユーザー名「admin」を変更する:初期設定のままの「admin」アカウントは攻撃の対象となります。新規に管理者権限を持つアカウントを作成し、「admin」アカウントは削除しましょう。
- ユーザー権限の最小限の付与:投稿者や編集者など、作業に必要な最小限の権限のみをユーザーに付与する「最小権限の原則」を徹底します。例えば、記事の投稿のみを行う担当者には「管理者」権限は不要です。
- ログイン試行回数の制限:ログイン失敗を一定回数繰り返すとIPアドレスを一時的にブロックする機能を、セキュリティプラグインで有効にします。これによりブルートフォース攻撃を効果的に防ぎます。
データのバックアップと復旧対策
どれだけ対策を講じても、セキュリティインシデントは起こり得ます。その際に最後の砦となるのが「完璧なバックアップ」です。バックアップは「取得する」「安全な場所に保管する」「復元できることを確認する」の3点が揃って初めて意味を持ちます。
自動バックアップの設定と定期的な実行
手動でのバックアップは忘れがちです。必ず自動化を設定しましょう。
- バックアップ対象:WordPressのデータベース(投稿、ページ、コメント、設定など)と、wp-contentディレクトリ内のファイル(テーマ、プラグイン、アップロードした画像など)の両方をバックアップします。
- バックアップ頻度:サイトの更新頻度に応じて設定します。毎日更新するサイトなら日次、週1回なら週次が目安です。データベースはより頻繁に、ファイルは少し間隔を空けて取得する設定も可能です。
- バックアップ先:サーバー内だけにバックアップを置くのは危険です(サーバーごと被害に遭う可能性)。Dropbox、Google Drive、Amazon S3などのクラウドストレージ、または別のサーバーに自動転送する設定にしましょう。
- バックアップの世代管理:直近の1つだけではなく、過去数世代分のバックアップを保持できるように設定します。マルウェア感染に気付かずにバックアップを上書きしてしまうことを防ぎます。
緊急時の復旧手順とテスト方法
バックアップは、実際に復元できなければ意味がありません。
- 復旧手順書の作成:使用しているバックアッププラグインのマニュアルを参考に、具体的な復旧手順をドキュメントにまとめます。パニックになった時でも手順に従って作業できるようにします。
- 定期的な復元テストの実施:半年に1度など、定期的にテスト環境やローカル環境でバックアップデータからの復元テストを行います。このテストにより、バックアップが正常に取得できていること、手順に問題がないことを確認できます。
- 連絡先の確認:万一の際に、ホスティング会社や開発委託先に連絡する必要がある場合は、連絡先とサポート範囲を事前に確認しておきます。
監視とインシデント対応のポイント
予防策と並行して、異常を早期に発見し、適切に対応する体制を整えることが重要です。
セキュリティプラグインを活用したリアルタイム監視
専門家でなくても監視を実現するには、セキュリティプラグインが有効です。代表的なプラグインでは以下のような監視・防御機能を提供しています。
- ファイル変更検知:コアファイル、テーマ、プラグインファイルが不正に変更されていないかを監視し、変更があれば通知します。
- マルウェアスキャン:既知のマルウェアパターンに基づき、サイト内のファイルを定期的にスキャンします。
- ファイアウォール(WAF)機能:悪意のあるトラフィック(SQLインジェクション、XSS攻撃など)をサイトに到達する前にブロックします。
- ブラックリスト監視:サイトがGoogleやブラウザーのブラックリストに登録されていないかをチェックします。
- ログの記録と分析:ログイン試行、404エラーなどのログを記録し、不審な活動を可視化します。
これらのプラグインを設定し、警告通知は必ずメールなどで確実に受け取れる状態にしておくことが肝心です。
不正アクセス検知時の具体的な対応フロー
警告を受け取ったり、サイトの挙動がおかしいと感じたりした場合の初動対応フローを決めておきましょう。
- 状況確認と隔離:まず、どのような警告か、サイトのどの部分に異常があるかを確認します。被害が拡大するのを防ぐため、可能であればサイトをメンテナンスモードに切り替え、一般ユーザーから見えないようにします。
- バックアップの確保:現時点でのサイトの状態をバックアップとして取得します(感染状態のバックアップも、後の調査に必要になる場合があります)。
- 復旧作業:取得済みの「清潔な」バックアップ(感染前のバックアップ)からサイトを復元します。この際、パスワードはすべて変更します。
- 原因の調査と対策:どの経路から侵入されたのか(古いプラグイン、脆弱なパスワードなど)を調査し、同じ侵害を繰り返さないための恒久対策を講じます。
- 関係者への報告:必要に応じて、経営層や関係部門に事実経過と再発防止策を報告します。
WordPressのセキュリティは「終わりのない旅」です。新しい脅威は常に生まれています。本ガイドで紹介した対策は、一度設定して終わりではなく、定期的な見直しと更新を継続することが不可欠です。基本を着実に実行し、自動化できる部分はツールに任せながら、自社のWebサイトをビジネスを支える強固な資産として守り抜いていきましょう。
このガイドを参考に、今日からWordPressセキュリティ対策を始めましょう。定期的なメンテナンスでサイトを保護し、ビジネスの信頼性を高めることができます。詳細なチェックリストをダウンロードして、実践を進めてください。