こんにちは!合同会社エーデルハーツの代表、矢部です。埼玉県川越市より、WordPressサイトの安全性を高めるための情報をお届けしています。
これまでのセキュリティシリーズでは、WordPressのコア、プラグイン、テーマを常に最新の状態に保つことの重要性と、その安全な更新手順について解説してきました。アップデートはセキュリティ対策の最も基本的な土台です。しかし、残念ながらそれだけでは十分とは言えません。
今回はシリーズ第6回として、アップデートという土台の上に、さらにサイトの防御力を高めるための具体的な方法、特に「セキュリティプラグイン」の導入と「基本的な設定による強化(Hardening)」について解説します。
なぜ追加のセキュリティ対策が必要なのか?
WordPress本体やプラグイン・テーマのアップデートは、既知の脆弱性を修正するために行われます。しかし、世の中には以下のような脅威も存在します。
- 未知の脆弱性(ゼロデイ攻撃): 修正パッチが提供される前に、脆弱性を悪用する攻撃。
- 総当たり攻撃(Brute Force Attack): ログイン画面に対して、パスワードを機械的に試行し続ける攻撃。
- 設定の不備: WordPressやサーバーの設定ミスが原因で、意図せずセキュリティホールが生まれてしまうこと。
- ユーザー自身のミス: 安易なパスワードの使用、不要な権限の付与など。
これらの複合的な脅威に対抗するためには、アップデートに加えて、多層的な防御策を講じることが重要になります。セキュリティプラグインや設定の強化は、そのための有効な手段です。
おすすめセキュリティプラグインの役割と選び方
WordPressには、サイトのセキュリティを強化するための様々なプラグインが存在します。これらは多くの防御機能を提供してくれます。
セキュリティプラグインでできること(主な機能)
- ファイアウォール(WAF – Web Application Firewall): サイトへの不正なアクセスや攻撃的な通信を検知・ブロックします。
- マルウェアスキャン: サイト内のファイルに不正なコード(マルウェア)が埋め込まれていないかを定期的にスキャンします。
- ログイン保護: 総当たり攻撃からの保護(ログイン試行回数制限、CAPTCHA認証など)、二段階認証(2FA)の導入などを支援します。
- ファイル整合性チェック: WordPressコアファイルなどが改ざんされていないかを監視します。
- セキュリティログ: 不審なログイン試行やファイルの変更など、セキュリティ関連のアクティビティを記録します。
- 基本的な設定強化(Hardening)の補助: 後述するような設定変更を、プラグインの管理画面から簡単に行えるようにする機能。
代表的なプラグイン紹介(例)
多くのセキュリティプラグインがありますが、代表的なものとしては以下のようなものが挙げられます(順不同)。
- Wordfence Security: ファイアウォール、マルウェアスキャン、ログイン保護など包括的な機能を提供。
- Sucuri Security: セキュリティ監視、マルウェアスキャン、WAF連携(別途サービス)などに強み。
- iThemes Security (旧 Better WP Security): 多くの設定項目でWordPressを強化(Hardening)することに重点。
- WP Cerber Security: 強力なログイン保護、スパム対策、マルウェアスキャン機能。
- All In One WP Security & Firewall: 分かりやすいUIで、基本的なセキュリティ対策を幅広くカバー。
注意: これらのプラグインは多機能ですが、設定項目も多岐にわたります。ご自身のサイトの状況やサーバー環境、知識レベルに合わせて最適なものを選ぶことが重要です。無料版と有料版で機能差がある場合も多いので、よく比較検討しましょう。また、複数の総合セキュリティプラグインを同時に有効化することは、予期せぬ競合やパフォーマンス低下を招く可能性があるため、通常は避けるべきです。
選ぶ際の注意点
- パフォーマンスへの影響: 多機能なプラグインは、サーバーに負荷をかけ、サイトの表示速度に影響を与える可能性があります。
- 互換性: お使いのテーマや他のプラグイン、ホスティング環境との互換性問題が発生しないか注意が必要です。
- 設定の複雑さ: 設定項目が多すぎると、かえって設定ミスを招く可能性もあります。
いますぐできる!基本的なWordPress設定強化(Hardening)
セキュリティプラグインを導入しなくても、あるいは併用して、WordPressの設定自体を見直すことで、基本的なセキュリティレベルを向上させることができます。
ログインセキュリティの強化
- 強力なパスワードの使用: 推測されにくい、長く複雑なパスワードを設定し、定期的に変更しましょう。パスワードマネージャーの利用も有効です。
- ログイン試行回数の制限: 短時間に何度もログイン失敗した場合に、一定時間ログインをロックする機能です。多くのセキュリティプラグインで設定できますが、サーバー側(.htaccessなど)で設定することも可能です。
- ユーザー名「admin」の使用禁止: デフォルトの「admin」は攻撃者に推測されやすいため、異なる管理者ユーザー名を使用しましょう。
- 二段階認証(2FA)の導入: パスワードに加えて、スマートフォンアプリなどで生成される一時的なコードの入力を必須にする方法です。不正ログイン対策として非常に効果的です。多くのセキュリティプラグインや専用プラグインで導入できます。
- (検討)ログインURLの変更: デフォルトの
/wp-login.php
や/wp-admin/
を変更することで、自動化された攻撃をある程度回避できる場合があります。ただし、利便性とのトレードオフになります。(主にプラグインで実現)
ユーザー権限の見直し(最小権限の原則)
サイトの運営に関わるユーザーには、その役割に必要な最低限の権限(ロール)のみを付与しましょう。例えば、記事を執筆するだけなら「寄稿者」や「投稿者」で十分です。安易に全員を「管理者」にしないことが重要です。
ファイル編集機能の無効化
WordPressの管理画面には、テーマやプラグインのファイルを直接編集できる機能がありますが、万が一管理者アカウントが乗っ取られた場合、ここから悪意のあるコードを埋め込まれる可能性があります。wp-config.php
ファイルに以下の1行を追加することで、この機能を無効化できます。
define( 'DISALLOW_FILE_EDIT', true );
これにより、管理画面からのコード改ざんリスクを低減できます。
(参考)WordPressバージョン情報の非表示
サイトのソースコードなどからWordPressのバージョン情報を隠す設定が紹介されることがありますが、攻撃者は他の方法でもバージョンを推測できるため、セキュリティ効果は限定的(気休め程度)と考えられています。本質的な対策ではありません。
(参考)XML-RPCの無効化(必要なければ)
XML-RPCは、外部アプリケーション(古いスマホアプリなど)からWordPressを操作するための機能ですが、過去に総当たり攻撃などに悪用された経緯があります。Jetpackプラグインや特定の外部連携機能を利用していない場合は、プラグインやサーバー設定で無効化することも、攻撃対象領域(アタックサーフェス)を減らす一助になります。
まとめ:多層防御でWordPressを守る
今回は、セキュリティプラグインの活用と基本的な設定強化(Hardening)について解説しました。WordPressのセキュリティは、「アップデート」「プラグイン/テーマ管理」「設定強化」「サーバー環境」「ユーザー管理」「バックアップ」など、様々な要素を組み合わせた多層防御によって成り立ちます。
100%安全という保証はありませんが、これらの対策を一つ一つ着実に実施していくことで、リスクを大幅に低減し、安心してサイトを運営できる状態に近づけることができます。ぜひ、ご自身のサイトの状況に合わせて、できるところから対策を進めてみてください。
(CTA)どのような対策から手をつければ良いか分からない、設定に不安がある、という場合は、合同会社エーデルハーツにご相談ください。サイト診断から具体的な対策提案までサポートいたします。
執筆者: 合同会社エーデルハーツ 代表 矢部