こんにちは!合同会社エーデルハーツの代表、矢部です。埼玉県川越市から、WordPressサイトの安全性を高めるための情報をお届けしています。私自身、日々WordPressを触る中で、セキュリティの重要性を痛感しています。
これまでのセキュリティシリーズでは、WordPressのコア、プラグイン、テーマを常に最新の状態に保つことの重要性と、その安全な更新手順について解説してきました。私たちにとって、アップデートはセキュリティ対策の最も基本的な土台だと考えています。ですが、残念ながらそれだけでは十分とは言えず、いくら注意しても、新たな脅威は次々と現れるものです。
今回はシリーズ第6回として、アップデートという土台の上に、さらにサイトの防御力を高めるための具体的な方法、特に「セキュリティプラグイン」の導入と「基本的な設定による強化(Hardening)」について、経験も踏まえてお話ししたいと思います。これらの対策は自身のサイトはもちろん、お客様のサイトにも施するよう心がけています。
なぜ、もう一歩踏み込んだセキュリティ対策が必要なのでしょうか?
WordPress本体やプラグイン・テーマのアップデートは、既知の脆弱性を修正するために行われます。これはもちろん大切なことですが、世の中には以下のような厄介な脅威も存在します。冒頭でも触れましたが、いくら対策を講じても、攻撃者もまた新たな手口を考えてくるのが現実です。
- 未知の脆弱性(ゼロデイ攻撃): 修正パッチが提供される前に、その脆弱性を悪用してくる攻撃です。これは本当に読めない攻撃で、私たちも常に最新の動向を追っています。
- 総当たり攻撃(Brute Force Attack): ログイン画面に対し、パスワードを機械的に試行し続ける攻撃のことです。シンプルながら非常に多く、当社のクライアントサイトでもたびたび観測されます。実際に、ログイン履歴を見てその試行回数の多さに驚くこともありますよ。
- 設定の不備: WordPressやサーバーの設定ミスが原因で、意図せずセキュリティホールが生まれてしまうことも。うっかり設定を間違えてしまうことは、誰にでも起こりえますよね。私自身も、過去に設定ミスでヒヤリとした経験があります。
- ユーザー自身のミス: 例えば、安易なパスワードの使用や、不要な権限を付与してしまうといったケースです。私たちもお客様には口を酸っぱくして、複雑なパスワードを推奨しています。
こうした複合的な脅威に対抗するためには、アップデートに加えて、多層的な防御策を講じることが非常に重要になり、特にセキュリティプラグインや設定の強化は、そのための強力な味方になってくれます。私たちが日々クライアントのサイトを運用する中で、これらの対策がいかに重要かを感じています。
おすすめセキュリティプラグインの役割と選び方
WordPressには、サイトのセキュリティを強化するためのさまざまなプラグインが存在します。これらは、まるでサイトの警備員のように多くの防御機能を提供してくれます。私自身も、複数のプラグインを比較検討し、自分のサイトに最適なものを選んで導入しています。
セキュリティプラグインでできること(主な機能)
具体的にどんなことができるのか、主な機能をご紹介します。これらの機能が組み合わさることで、より強固な防御体制を築くことができます!
- ファイアウォール(WAF – Web Application Firewall): サイトへの不正なアクセスや攻撃的な通信を検知・ブロックします。まるで門番のように怪しい侵入者を防いでくれます。私の場合、ファイアウォール機能は特に重視しています。
- マルウェアスキャン: サイト内のファイルに不正なコード(マルウェア)が埋め込まれていないかを定期的にスキャンしてくれます。万が一感染しても、早期発見につながります。私も定期的にスキャン結果を確認して、安全性をチェックしています。
- ログイン保護: 総当たり攻撃からの保護(ログイン試行回数制限、CAPTCHA認証など)や、二段階認証(2FA)の導入などをサポートします。これにより、不正ログインのリスクを大幅に減らせます。ログイン関連の機能は、私たちがお客様に最も推奨する項目の一つです。
- ファイル整合性チェック: WordPressコアファイルなどが改ざんされていないかを監視します。もしファイルが書き換えられたらすぐに検知してくれるので安心です。これは、私が以前お客様のサイトでマルウェア感染を早期に発見できた要因の一つです。
- セキュリティログ: 不審なログイン試行やファイルの変更など、セキュリティ関連のアクティビティを記録します。何かあったときに、原因究明の手がかりになります。ログを定期的に確認することは、サイトの状態を把握する上で欠かせません。
- 基本的な設定強化(Hardening)の補助: 後ほど詳しくお話しするような設定変更を、プラグインの管理画面から簡単に行えるようにする機能です。専門知識がなくても、手軽に強化できるのは助かりますよね。
代表的なプラグイン紹介(例)
当社でもお客様のサイトに導入を検討する際によく挙がる、代表的なプラグインをいくつかご紹介しますね(順不同)。私自身もこれらのプラグインの特性を理解し、サイトの状況に合わせて選び分けています。
- Wordfence Security: ファイアウォール、マルウェアスキャン、ログイン保護など、非常に包括的な機能を提供してくれます。多機能なので、これ一つでかなりの範囲をカバーできます。特にこだわりがなければ、Wordfence一択ですね。
- 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」の使用禁止: WordPressをインストールしたときにデフォルトで「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プラグインや特定の外部連携機能を利用していない場合は、プラグインやサーバー設定で無効化することも、攻撃対象領域(アタックサーフェス)を減らす一助になります。もし使っていないなら、これを機に無効化を検討してもいいでしょう。私自身は、Jetpackなど特定のプラグインで利用していない限り、この機能は無効にしています。
まとめ:多層防御でWordPressをしっかり守りましょう!
今回は、セキュリティプラグインの活用と基本的な設定強化(Hardening)について解説しました。私たちがいつもお伝えしていることですが、WordPressのセキュリティは、「アップデート」「プラグイン/テーマ管理」「設定強化」「サーバー環境」「ユーザー管理」「バックアップ」など、本当に様々な要素を組み合わせた多層防御によって成り立っています。
もちろん、100%安全という保証はできません。しかし、これらの対策を一つ一つ着実に実施していくことで、リスクを大幅に低減し、安心してサイトを運営できる状態に近づけることができます。ぜひ、ご自身のサイトの状況に合わせて、できるところから対策を進めてみてくださいね。もし「どこから手をつけて良いか分からない…」といった不安があれば、いつでも私たちにご相談ください。私たちが培ってきた経験と知識が、きっとお役に立てるはずです。
どのような対策から手をつければ良いか分からない、設定に不安がある、という場合は、合同会社エーデルハーツにご相談ください。サイト診断から具体的な対策提案までサポートいたします。私たちと一緒に、安全なサイト運営を目指しませんか?
執筆者: 合同会社エーデルハーツ 代表 矢部