仕事でWEB制作に携わる中で、WrodPressサイトをつく際に必ず入れているセキュリティプラグイン「SiteGuard WP Plugin」を紹介します。
WordPressのセキュリティ対策
筆者
そもそもなぜWordPressにセキュリティ対策が必要なの?
W3Techsによると、WordPressは2025年1月現在でインターネット上にある全てのウェブサイトの43.6%を占めているという報告があります。
参考:Usage statistics and market share of WordPress
世界中にあるウェブサイトの数は約20億とも言われていますから、そのうち約9億がWordPressで作られているということになります。
数が増えればそこを狙う悪い人間や組織がいます。コンピューターウィルスの大半がWindows向けに作られるように、ユーザーが多ければ多いほど狙われやすいということです。
筆者
WordPressにセキュリティ対策をしないとどうなるの?
10年以上前の話になりますが、当時はWordPressに自動更新の機能はなかったので、一度作ったらそのままでバージョンアップもせずほったらかしということがよくありました。
そこで相談されたのが、ウェブサイトが改ざんされてしまったというもの。
ウェブサイトやサーバーにログインして詳しく調査したところ、WordPressのテンプレートファイル内にスクリプトが仕込まれて海外のスパムサイトにリダイレクトされるように改ざんされていました。
おそらくアップデートしていないシステムやプラグインのセキュリティホールを突かれて不正にアクセスされたものと思われます。
ターゲットにされなければこのようなことは起こりませんが、こういった不正アクセスはツールを使ってサイトを巡回して大小問わず様々なWordPressサイトにアタックを仕掛けているので、いつターゲットにされるかはわかりません。
なのでセキュリティ対策は必須となります。
SiteGuard WP Pluginとは?
プラグインの開発元はEGセキュアソリューションズ株式会社です。
情報セキュリティやシステムの監査・コンサルティングを始め、セキュリティ製品の開発・販売なども行う会社です。
その会社が開発したWordPress用セキュリティプラグインが「SiteGurad WP Plugin」です。無料で利用できます。
SiteGuard WP Pluginのインストール・設定
インストールはWordPressのプラグインで「SiteGurad WP Plugin」を検索してインストールできます。
以下、各設定項目を解説します。
ダッシュボード
ダッシュボードは全ての設定の一覧が表示されます。ここから各項目の設定にリンクしています。
管理ページアクセス制限
重要度:
/wp-admin/から始まる管理ページへのアクセスを制限する設定です。
ログインしていない状態で管理ページや管理ページのリソースにアクセスされることを防ぎます。
ログインページ変更
重要度:
ログインページである wp-login.php の名前を変更して外部からログインページが分からないようにできます。
これは個人的に重要と考えています。WordPressのログインページは全て(インストールしたURL)/wp-login.phpとなっており、無関係なユーザーでも簡単にアクセスできてしまうという難点があります。
このURLを変更して管理するユーザーだけが分かるようにしておけば、無関係な人間にアクセスされるのを防ぎ、ブルートフォース攻撃でパスワードが破られたりすることも無くなります。
画像認証
重要度:
ログインする際にユーザー名とパスワードの他に毎回ランダムな文字列を入力してログインします。
海外からの不正アクセスを防ぐならひらがにしておくのがおすすめです。
コメントにも付けることができます。
具体的には上記のようにランダムな4文字のひらがなが表示されるのでそれを入力します。
ログインエラーメッセージの無効化
重要度:
ログインに失敗したときに、通常ではユーザー名が存在しないやパスワードが違うなど、何が違っているのか表示されてしまうため、存在するユーザー名がどうか分かってしまうというリスクがあります。
どの項目を間違えても全て「エラー: 入力内容を確認の上、もう一度送信してください。」とすることで何が間違っているかの情報を与えないようにすることができます。
ログインロック
重要度:
ログインを失敗した場合に、一定期間の間に一定回数失敗したら一定期間ロックするという設定です。
ブルートフォースのような総当たりの攻撃は短い期間で何度もログインを試行するので、そのようなアクセスを遮断することができますが、そもそもブルートフォースはロックされたか関係なく仕掛けてくるのでアクセス自体が減るわけではありません。
ログインアラート
重要度:
ログインが行われた際に、管理者宛にメールが送信されます。
多人数で管理していると通知が膨大になる場合があるのでそのような場合が無効にした方がいいかもしれません。
私はいちいち確認するのも面倒なので無効にしてます。
フェールワンス
重要度:
正しい情報を入力しても必ず1回目は失敗するという機能です。
情報漏洩した際などの不正アクセスを防ぐことができます。
XMLRPC防御
重要度:
ピンバックは、誰かがあなたのブログを参考にした場合に、その通知が自動で行われる機能です。
XMLRPCはWordPressサイトを外部のシステムやサービスと連動させる機能です。
この機能を使って改ざんや乗っ取り等をされるケースもあり、どちらも何か特別な理由が無い限り無効にしておうた方が安全です。
ユーザー名漏洩防御
重要度:
WordPressを使用するサイトにて、(インストールしたURL)/?author=数字と入力してアクセスするとユーザー名が漏えいしてしまうというリスクがあります。本来はユーザーのプロフィール等を表示するための機能ですが、特別な理由がないのであれば無効にしましょう。
例えば当サイト
更新通知
重要度:
WordPressやプラグイン、テーマにアップデートがあった際にメール通知してくれる機能です。
頻繁にログインしているのであれば不要かと思います。
WAFチューニングサポート
サーバーにWAF(SiteGuard Lite)が導入されている場合に誤検知でエラーが出るのを防ぐ機能です。
導入されていない、不明な場合は必要ありません。
ログイン履歴
管理画面へのログイン履歴が保存されています。
ログインの成功・失敗・ロックのステータスが記録されており、不正にアクセスを試みている履歴を見ることができます。上記の「ログインページ変更」を行っていないとログインページが簡単に特定されてこのような履歴が膨大になります。
私が制作・管理するWordPressサイトではほぼ全てに「SiteGuard WP Plugin」を導入しています。
その結果過去に不正なアクセスをされたことは一度もありません。