WordPressを安全に利用するためのセキュリティチェックリスト

WordPressは、その利便性の高さから世界中で広く利用されています。しかし、その人気は同時に攻撃者の標的になりやすいという側面も持ち合わせています。適切なセキュリティ対策を講じることは、サイト運営者にとって不可欠な責務です。

この記事では、WordPress公式ドキュメント「WordPress の安全性を高める」に基づき、実施すべきセキュリティ対策を優先度別に解説します。

ご自身のサイトの安全性を確保するため、上から順にご確認ください。


【優先度:高】直ちに対応すべき最重要項目

これらはサイトセキュリティの根幹をなす項目です。対策を怠ると、不正アクセスや改ざんの被害に遭うリスクが著しく高まります。必ず対応してください。

  • コア、プラグイン、テーマの更新
    WordPress本体、プラグイン、テーマは、常に最新バージョンを使用してください。古いバージョンには既知の脆弱性が含まれていることがあり、攻撃の起点となる可能性があります。
  • 強力なパスワードとユーザー管理
    推測されにくい、長く複雑なパスワードを設定することは基本です。加えて、ログインのセキュリティを飛躍的に向上させる「二要素認証(2FA)」の導入を強く推奨します。
  • 定期的なバックアップの実施
    インシデント発生時にサイトを迅速に復旧できるよう、ファイルとデータベースのバックアップを定期的に取得し、安全な場所に保管してください。復旧手順の確認も重要です。
  • 信頼できるホスティングサーバーの利用
    セキュリティ対策が充実している信頼性の高いホスティング事業者を選定してください。サーバーレベルでの防御機能は、サイト単体での対策を補完する上で不可欠です。
  • 信頼できるテーマとプラグインのみ使用
    公式ディレクトリに登録されている、開発が活発で評価の高いものに限定して使用しましょう。できるならば、開発者の顔が見えているもの、日本人作者のものであるといいかと思います。
    不要なテーマやプラグインは、無効化ではなくサーバーから完全に削除してください。

【優先度:中】防御力を大幅に高めるための重要設定

基本対策を完了したら、次により具体的な設定でサイトの防御力を高めます。これらの対策を講じることで、一般的な攻撃の多くを未然に防ぐことが可能です。

  • セキュリティプラグインの導入
    マルウェアスキャン、ログイン試行回数制限など、多角的な防御機能を持つ総合的なセキュリティプラグインの導入を検討します。
  • Web Application Firewall (WAF) の導入
    Web Application Firewall(WAF)は、サイトへの不正な通信や攻撃を検知・遮断する、効果的な防御壁です。ホスティングサービスが提供する機能などを活用しましょう。
  • サイト全体のHTTPS化
    SSL/TLS証明書を導入し、サイト全体をHTTPS化してください。サーバー・クライアント間の通信が暗号化され、データの盗聴や改ざんを防ぎます。
  • PHPのバージョンを最新に保つ
    WordPressが稼働するサーバーのPHPは、常に最新の安定バージョンを使用してください。古いPHPにはセキュリティ上の脆弱性が含まれている可能性があります。
  • ファイルパーミッションの最適化
    ファイルやディレクトリには、必要最小限の権限のみを付与します。原則としてファイルは644、ディレクトリは755wp-config.php600など、より厳しい権限を設定します。
  • ユーザー権限の最小化
    「最小権限の法則」に基づき、各ユーザーにはその役割に必要な最低限の権限のみを割り当ててください。例えば、投稿者に管理者権限を付与するべきではありません。
  • セキュリティキーの設定
    wp-config.phpファイル内の「認証用ユニークキー(Security Keys)」を適切に設定します。これにより、認証情報の根幹であるCookieがより強固に暗号化されます。

【優先度:低】さらなるセキュリティ強化策

基本対策を完了した上で、サイトをさらに堅牢にするための追加設定です。専門知識を要するものもありますが、可能であれば実施を推奨します。

  • 管理画面へのアクセス制限
    特定のIPアドレスからのみ管理画面(wp-admin)にアクセスできるよう制限するか、サーバーのBASIC認証(.htpasswd)でディレクトリに二重のパスワードを設けることで、不正ログインの試みを大幅に削減できます。
  • 管理画面からのファイル編集の無効化
    wp-config.phpdefine('DISALLOW_FILE_EDIT', true);を追記します。これにより、万が一管理画面に侵入された場合でも、テーマやプラグインのコードが直接改ざんされるリスクを防ぎます。
  • wp-config.phpファイルの保護
    データベース接続情報を含む最重要ファイルであるため、サーバー設定(.htaccessなど)で外部からの直接アクセスを拒否します。可能であれば、公開ディレクトリの1階層上に移動させることが理想です。
  • 特定ディレクトリでのPHP実行の無効化
    アップロードディレクトリ(wp-content/uploadsなど)に不正なスクリプトが設置された場合に備え、サーバー側でPHPの実行を無効化する設定が有効です。
  • XML-RPC機能の無効化
    外部アプリケーション連携に利用される機能ですが、使用していない場合は無効化を推奨します。この機能はブルートフォース攻撃などに悪用される傾向があります。
  • ネットワークでのファイアウォールの利用
    WordPressを設置してあるサーバーとは別に外部サービスを利用して、サーバーにトラフィックが到達する前に遮断してしまう方法も検討しましょう。
    より安全になる上、攻撃による負荷を抑えることも可能です。

【優先度:最低】隠蔽によるセキュリティ向上

これらは「隠蔽によるセキュリティ(Security through obscurity)」と呼ばれるもので、攻撃者にヒントを与えにくくする対策です。本質的な脆弱性を解決するものではなく、他の強固な対策と組み合わせることで限定的な効果を発揮します。

  • データベースのテーブル接頭辞の変更
    デフォルトのwp_から推測されにくい独自の接頭辞に変更することで、自動化されたSQLインジェクション攻撃のリスクを低減する効果が期待できます。
  • 推測されにくいユーザー名の使用
    adminのような安易なユーザー名を避けることで、ブルートフォース攻撃の難易度をわずかに高めることができます。

まとめ

セキュリティ対策は継続的に行う必要がある

セキュリティ対策は一度行えば完了、というものではありません。ソフトウェアの更新、定期的な監査、そして新たな脅威への情報収集など、継続的な取り組みが不可欠です。

運営側で継続的に対策を取ることが難しい、情報の収集を行うことが困難であるという場合は、外部の保守・メンテナンスサービスを利用しましょう。

たぬきのWeb万屋としてもWordPressの保守メンテナンスサービス「WP Care」がありますので、お困り・ご不安の際は、ぜひご相談ください。