WordPressは利用者が多く、ログインページの場所も初期設定のままでは誰でも分かるので、管理画面を狙われやすいCMSです。管理画面に入られると、ページの書き換えや不正なプログラムの埋め込みなど、ホームページを自由に操作されてしまいます。SiteGuard WP Pluginを入れておけば、1つのプラグインで管理画面の守りを固められます。
この記事では、SiteGuard WP Pluginでできることと各項目の内容、導入するときの注意点を解説します。
SiteGuard WP Pluginとは
SiteGuard WP Pluginは、株式会社ジェイピー・セキュアが開発しているWordPressのプラグインです。ジェイピー・セキュアは、Webサーバー向けのWAF「SiteGuard」シリーズを提供している日本のセキュリティ会社です。SiteGuard WP Pluginは無料で使えて、設定画面や説明もすべて日本語なので、WordPressに詳しくない担当者でも設定内容を確認しやすくなっています。
SiteGuard WP Pluginの役割は、WordPressの管理画面への不正ログインを防ぐことです。不正ログインとは、他人のユーザー名やパスワードを使って管理画面に入り込むことです。SiteGuard WP Pluginは、不正ログインから管理画面を守るための機能を中心に作られています。
SiteGuard WP Pluginでできること
SiteGuard WP Pluginを入れると、WordPressの管理画面を守りやすくなるだけでなく、管理の面でも負担が少なく済みます。ここでは、SiteGuard WP Pluginでできることを紹介します。
管理画面の安全性が高まる
WordPressの管理画面は、ログインページを見つけ、ユーザー名とパスワードを当てれば誰でも入れてしまいます。初期設定のままのWordPressでは、ログインページの場所は誰でも分かり、ログインに何度失敗しても止められることはありません。
SiteGuard WP Pluginを入れると、ログインページを見つけにくくする、ログインを試せる回数を減らす、ユーザー名を知られにくくするといった守りを重ねられます。1つの守りを破られても次の守りで止められるので、WordPressの管理画面に入られる危険を大きく下げられます。
管理画面にログインがあったときにメールで知らせることもできるので、万が一入られた場合でも早く気づけます。
複数のセキュリティプラグインを入れなくて済む
WordPressの管理画面を守る対策を1つずつ別のプラグインで行おうとすると、ログインページの変更、画像認証、ログインの回数制限など、対策ごとにプラグインを入れることになります。プラグインが増えるほど、バージョンアップの手間が増え、プラグイン同士がうまく動かなくなるおそれも高くなります。プラグインの弱点を狙われる入口も増えてしまいます。
SiteGuard WP Pluginなら、管理画面を守るための対策を1つのプラグインでまとめて行えます。設定も1つの画面で済み、バージョンアップもSiteGuard WP Pluginの分だけで済むので、WordPressに入れるプラグインの数を抑えられます。
運用の手間がほとんどない
SiteGuard WP Pluginは、最初に設定しておけば、その後は自動で動き続けます。ログインに何度も失敗した接続元のロックや、管理画面にログインがあったときのメール通知も自動で行われるので、担当者が毎日何かを操作する必要はありません。
公開した後に担当者が行うのは、SiteGuard WP Pluginのバージョンアップと、ときどきログイン履歴を見て身に覚えのないログインがないか確認する程度です。WordPressの管理画面の守りを、少ない手間で保ち続けられます。
SiteGuard WP Pluginの各項目の内容
SiteGuard WP Pluginの各項目は、WordPressの管理画面のメニューにある「SiteGuard」から設定できます。項目ごとに「有効」を選び、「変更を保存」をクリックすれば有効になります。
当社では基本的にすべての項目を有効にしていますが、制作するホームページによっては無効にする項目もあります。ここでは、各項目の内容を紹介するので、SiteGuard WP Pluginを設定するときの参考にしてください。
管理ページアクセス制限
管理ページアクセス制限は、WordPressの管理画面のディレクトリ(/wp-admin/)への不正なアクセスを止める項目です。
WordPressの初期設定では、ログインしていない状態で /wp-admin/ を開くと、ログインページに転送されます。管理ページアクセス制限を有効にすると、この転送が行われず、404ページが表示されるようになります。対象になるのは、24時間以内にログインしていないIPアドレスからのアクセスです。/wp-admin/ からログインページの場所を知られることがなくなります。
ただし、プラグインの中には、ログインしていないユーザーがホームページを見ているときにも、/wp-admin/ の中のファイルを使うものがあります。このようなファイルまで止めてしまうと、プラグインが正しく動かなくなります。
そのため、管理ページアクセス制限には除外パスという入力欄があり、止めないファイルを1行に1つずつ指定できます。初期設定では、admin-ajax.php、load-styles.php、load-scripts.php、site-health.php が入っています。
当社では管理ページアクセス制限を有効にし、ホームページで使うプラグインが正しく動くかを公開前に確認しています。動かない機能があれば、その機能が使うファイルを除外パスに追加します。
ログインページ変更
WordPressのログインページは、初期設定では「/wp-login.php」というURLになっています。どのWordPressサイトでも同じURLなので、自動でログインを試すプログラムもこのURLを知っています。
ログインページ変更を有効にすると、ログインページのURLを「/wp-login.php」から好きな文字列に変えられます。URLを変えると、元の「/wp-login.php」を開いても404ページが表示されるようになり、ログインページにアクセスされる可能性を大きく減らせます。
ログインページ変更には、2つのオプションがあります。
1つ目は「管理者ページからログインページへリダイレクトしない」です。チェックを入れると、ログアウトした状態で /wp-admin/ を開いても、ログインページへ転送されなくなります。
管理ページアクセス制限では、24時間以内にログインしたIPアドレスからのアクセスは転送されますが、このオプションではそのアクセスも転送されません。/wp-admin/ から新しいログインページの場所を知られることがなくなります。
2つ目は「ログイン URL レスキュー」です。有効にすると、ホームページのURLの末尾に「?siteguard_rescue=1」を付けて開いたときに、画像認証付きの画面が表示されます。この画面でWordPressに登録しているメールアドレスを入力すると、そのメールアドレスにログインページのURLが届きます。
変更したログインページのURLを忘れても、自分でログインページを確認できます。
当社ではログインページ変更を有効にし、推測されにくいURLに変えたうえで、2つのオプションにもチェックを入れています。お客様には、変更したログインページのURLとログイン URL レスキューの使い方をお伝えし、ブックマークを登録し直していただいています。
画像認証
画像認証は、ログインページなどに、画像で表示した文字を入力する欄を追加する項目です。自動でログインを試すプログラムは画像の文字を読み取りにくいので、パスワードを何度も自動で試す攻撃を止めやすくなります。
画像認証は、ログインページ、パスワード確認ページ、コメントページ、ユーザー登録ページの4つのページに追加でき、ページごとに、ひらがな・英数字・無効から選べます。不正ログインを試すプログラムの多くは海外で作られていて、英数字の画像を読み取れるプログラムでも、ひらがなの画像は読み取りにくくなっています。
当社では、ログインページとパスワード確認ページの画像認証を、ひらがなで有効にしています。コメントやユーザー登録の機能を使っていないホームページでは、コメントページとユーザー登録ページの画像認証は無効にしています。
ログイン詳細エラーメッセージの無効化
WordPressの初期設定では、ログインに失敗したときに「ユーザー名が登録されていない」「パスワードが違う」のように、間違えた内容が表示されます。この表示があると、入力したユーザー名が正しいかどうかが分かってしまい、ユーザー名を当てる手がかりを与えることになります。
ログイン詳細エラーメッセージの無効化を有効にすると、どこを間違えても同じエラーメッセージが表示されるようになり、どこに問題があったのかをプログラムに知られなくなります。当社では必ず有効にしています。
ログインロック
ログインロックは、短い時間にログインの失敗を繰り返した接続元を、一定の時間ログインできないようにする項目です。パスワードを自動で試すプログラムは、短い時間に何度もログインを試すので、ロックをかければ試せる回数を大きく減らせます。
ログインロックでは、失敗を数える期間、ロックするまでの失敗の回数、ロックする時間の3つを選びます。当社では、期間を5秒、回数を3回、ロック時間を5分にしています。人の手で入力していれば、5秒の間に3回も失敗することはほとんどありません。担当者がロックされて困ることはなく、プログラムによる連続したログインだけを止められます。
ログインアラート
ログインアラートは、WordPressの管理画面にログインがあったときに、ログインしたユーザーのメールアドレスへ通知を送る項目です。自分がログインしていないのに通知が届いたら、不正ログインされた可能性が高いとすぐに気づけます。
ログインアラートには、通知を管理者だけに送るかどうかのオプションがあります。当社ではログインアラートを有効にし、このオプションにはチェックを入れずに、管理者以外のユーザーにも通知が届くようにしています。お客様には、身に覚えのない通知が届いたときは当社へ連絡していただくようお伝えしています。
フェールワンス
フェールワンスは、正しいユーザー名とパスワードを入力しても、1回目のログインを必ず失敗させる項目です。どこかから漏れたユーザー名とパスワードを使って、プログラムが不正にログインしようとしても、1回で入れないので不正ログインを防げます。
ログインに失敗した画面が表示されたら、5秒ほど待ってから、60秒以内にもう一度同じユーザー名とパスワードを入力すればログインできます。フェールワンスを知らない担当者は、パスワードを間違えたと思って別のパスワードを試してしまうので、当社では有効にするときに、ログインの手順をお客様にお伝えしています。
XML-RPC 防御
XML-RPCは、WordPressの管理画面を使わずに、外部から投稿などの操作をするための仕組みです。画像認証やフェールワンスなどはログインページに対する対策なので、XML-RPCを使ったログインには効きません。XML-RPC 防御は、この入口の悪用を防ぐ項目です。
XML-RPC 防御では、ピンバックだけを無効にするか、XML-RPC全体を無効にするかを選べます。XML-RPC全体を無効にすると、スマートフォンのWordPressアプリや外部のツールから投稿できなくなります。当社では、ホームページで使っているプラグインにXML-RPCを使うものがなく、アプリや外部のツールから投稿していなければ、XML-RPC全体を無効にしています。
ユーザー名漏えい防御
WordPressでは、「/?author=1」のようなURLを開くと、ユーザー名の入ったURLに転送されるので、ログインに使うユーザー名を調べられてしまいます。ユーザー名漏えい防御を有効にすると、この転送が行われなくなり、ユーザー名を知られにくくなります。
ユーザー名は、REST APIという仕組みからも調べられます。ユーザー名漏えい防御にはREST APIを止めるオプションもありますが、REST APIはプラグインやホームページの機能が裏で使っていることがあり、止めると動かなくなる可能性があります。
当社では、ユーザー名漏えい防御を有効にしたうえで、REST APIは止めていません。ユーザー名を知られても、ログインページ変更や画像認証などでログインそのものを防いでいます。
更新通知
更新通知は、WordPressやプラグイン、テーマに新しいバージョンが出たときに、管理者にメールで知らせる項目です。管理画面を開かなくても、バージョンアップが必要なことに気づけます。
ただし、通知はバージョンアップがあることを知らせるだけで、セキュリティ上急いで行うべきものかどうかは分かりません。プラグインの数が多いホームページでは通知が頻繁に届き、そのうちメールを見なくなってしまいます。
当社では、そのようなホームページでは更新通知を無効にし、管理画面でバージョンアップの有無を定期的に確認しています。
WAF チューニングサポート
WAF チューニングサポートは、サーバーにSiteGuard Server EditionというWAFが入っている場合に使う項目です。WAFは、不正な通信を止める仕組みですが、ページの保存などの正常な操作を攻撃と判断して止めてしまうことがあります。WAF チューニングサポートでは、止められた操作だけを例外にするルールを作れます。
当社では、WAFによる問題が起きていなければ、WAF チューニングサポートは無効のままにしています。
ログイン履歴
ログイン履歴は、WordPressの管理画面にいつ、どのユーザー名で、どの接続元からログインがあったかを確認できる項目です。ログインの成功と失敗が分かれて記録されます。
当社では、お客様にログイン履歴を定期的に確認していただくようお願いしています。同じユーザー名でログインの失敗が続いていたら、そのユーザー名が漏れている可能性があります。WordPressのユーザー名は管理画面から変更できないので、当社では新しいユーザー名でアカウントを作り直し、パスワードも強いものに変更しています。
なお、フェールワンスを有効にしている場合は、1回目にわざと失敗したログインも記録されるので、ログインの直前に失敗が1件あるのは正常です。
SiteGuard WP Pluginを導入するときの注意点
SiteGuard WP Pluginを入れれば、WordPressの管理画面の守りを大きく固められますが、すべての危険を防げるわけではありません。ここでは、SiteGuard WP Pluginを導入するときに知っておきたい注意点を紹介します。
不安がある場合は二段階認証も実装する
SiteGuard WP Pluginには、二段階認証の機能がありません。二段階認証は、ユーザー名とパスワードに加えて、SMSやメールに届く番号を入力しないとログインできない仕組みです。
SiteGuard WP Pluginの画像認証やフェールワンスは、プログラムによる自動のログインには強い一方で、人が手で入力すれば通り抜けられます。ユーザー名とパスワードがそのまま漏れて、人の手でログインされた場合は防げません。
二段階認証を入れておけば、ユーザー名とパスワードを知られても、本人の携帯電話やメールに届く番号が分からなければログインできなくなります。
管理画面にログインする人が多い、ECサイトなどで大切な情報を扱っているなど、SiteGuard WP Pluginだけでは不安がある場合は、二段階認証のプラグインも入れておくと安心です。
当社では、国内のドメイン・サーバー会社であるバリュードメインが提供している「Value-Auth Twofactor Login」をおすすめしています。ただし、ログインのたびにSMSやメールで番号を確認する手間が増えるので、ログインする担当者と相談したうえで導入します。
SiteGuard WP Pluginはログイン後の操作を制限できない
SiteGuard WP Pluginが守るのは、WordPressの管理画面にログインするまでです。ログインした後に何ができるかは、そのアカウントに設定された権限グループで決まり、SiteGuard WP Pluginでは制限できません。
すべての担当者に管理者のアカウントを使わせていると、どれか1つのアカウントでログインされただけで、プラグインの追加やテーマファイルの書き換えなど、ホームページのあらゆる操作をされてしまいます。担当者ごとにアカウントを作り、更新作業に必要な権限だけを与えておけば、万が一ログインされても被害を小さく抑えられます。
権限グループの分け方は、WordPressサイトのユーザー権限は担当者ごとに分けるの記事で紹介しています。
まとめ
SiteGuard WP Pluginは、1つでWordPressの管理画面の守りを固められる便利なプラグインです。ただし、各項目をどう設定するかは、ホームページで使っている機能や運用の仕方に合わせて判断する必要があります。
当社では、WordPressサイトの制作時にSiteGuard WP Pluginを入れ、ホームページに合わせて各項目を設定してから公開しています。必要に応じて、二段階認証の導入や、担当者ごとのユーザー権限の設定まで行います。
今のホームページの管理画面の守りに不安があり、リニューアルを検討している場合は、お気軽にご相談ください。ヒアリングした内容をもとに、管理画面の安全性まで含めて御社に合ったホームページ制作をご提案します。
