
WordPressは最も利用者の多いオープンソースのCMS。
それだけに脆弱性も発見されやすいです。
2013年にはロリポップを利用しているサイトへの大規模攻撃により、多くのサイトが改ざんされる事件が起きました。
当時自分のブログも改ざんされ、元のサイトに戻すのに大苦戦しました(笑)。
そこでWordPressのセキュリティ対策を簡単に設定できるプラグイン、「SiteGuard WP Plugin」を使ってみることにしました。
「SiteGuard WP Plugin」の導入
「SiteGuard WP Plugin」はレンタルサーバーのロリポップでWordPressを簡単インストールすると、デフォルトでインストールされています。
少し前に「有効化」していないプラグインは全て削除してしまったので、再インストールして有効化しました。
「SiteGuard WP Plugin」の設定
「SiteGuard WP Plugin」をインストールして有効化すると、管理画面に「ログインページURLが変更されました」と、通知が表示されました。
どうやら不正アクセスの予防のため、ログインページのURLが変更されたようです。
「これはなかなか凄いかもしれない!」
と思い、「SiteGuard WP Plugin」の設定を確認してみました。
設定できる項目は思ったより多いです。
管理ページアクセス制限
ログインされていない状態で管理画面にアクセスしようとした接続元(IPアドレス)から保護する機能。
ログインしていない状態で管理画面にアクセスすると、404(Not Found)ページが表示されるようになります。
初期設定ではOFFになっていましたが、ONにしました。
ログインページ変更
ログインページのURLが変更されます。
WordPressのログインページのURLはデフォルトでは「login_」ですが、機能をONにすると「login_5桁の数字」に変更されます。
「5桁の数字」は任意の文字に変更することができます。
ログインページ変更の注意点
ログインページのURLが変更されればログインページに簡単にアクセスできなくなるので、不正アクセスの防止になるかもしれません。
けれど、WordPressはログインしていない状態で管理画面にアクセスすると、リダイレクトされてログインページに自動的に移動します。
ログインページを変更してもリダイレクトされ、URLが変更されたログインページが表示されてしまいます。
「リダイレクトされるなら意味ないのでは。。」
と思いましたが、管理ページアクセス制限の機能をONにすると、ログインしていない接続元が管理画面「wp-admin」にアクセスすると、404ページが表示されてログインページにリダイレクトされないはずです。
「ログインページ変更」の機能は「管理ページアクセス制限」の機能と合わせて利用すると威力を発揮すると思います。
ただ、管理ページアクセス制限をONにするとログインしてから24時間以上経過後、「ログインしていない接続元」になり管理者にも404ページが表示されるようになります。
ログインページのURLを忘れてしまうと自分までログインできなくなってしまいます。
ログインページの変更の機能をONにしたら、新しいログインページをブックマークに保存した方がいいかもしれません。
画像認証
「ログインページ」「コメントページ」「パスワード確認ページ」「ユーザー登録ページ」で画像認証画面を表示させることができます。
画像認証の文字は「ひらがな」「英数字」から選択できます。
プログラムでは画像を認識して文字を入力することはできません。
画像認証をONにすることで、プログラムによる不正アクセスを防ぐことができます。
画像認証で心配になったこと
画像認証では画像が表示されるたびに新しく画像が生成され、/wp-content/plugins/siteguard/really-simple-captcha/tmpに生成された画像が保存されていきます。
たとえば123456789.pngのような「数字.png」のファイルが画像認証用の画像です。

画像が貯まり過ぎてデータベースが肥大するんじゃ…
と不安になりましたが、画像の保存期間は約60分。
1時間経過したら自動的に画像は削除されるようなので安心しました。
ログイン詳細エラーメッセージの無効化
機能をONにすると、ログインに失敗した時のエラーメッセージが同じになります。
同じメッセージしか表示されないので、ユーザー名が合ってるかどうか推測できなくなります。
ログインロック
ログインロックの機能をONにすると、指定期間中に指定回数ログインを失敗した接続元IPアドレスを指定時間ブロックします。
機械的な不正アクセスを防ぐことができますが、ロック時間を長くし過ぎると自分がログインできなかった場合に長時間待たなくてはいけません(笑)。
ログインアラート
誰かがログインするたびにメールに通知が来ます。
第三者が不正にログインした場合もすぐに通知が来るので、被害を最小限に抑えることができます。
フェールワンス
フェールワンスをONにすると、ユーザー名とパスワードが合っていても最初の1回目はログインに失敗します。
そして1回目の試行から5秒経過後、60秒以内に正しいユーザー名とパスワードを入力することでログインできます。
1回目のログインは必ず失敗するので、リスト型攻撃の防止にもなります。
XMLRPC防御
XMLRPC防御では「ピンバックの無効化」か、「XMLRPCの無効化」をすることができます。
XMLRPCとはXML形式のデータをHTTPでやり取りすることですが、難しいのでよくわかりません。
デフォルトでは「ピンバック無効化」にチェックが入っています。
更新通知
更新通知をONにすると、テーマやプラグインが更新されたら通知が来ます。
機能の向上だけでなく、脆弱性を修正したセキュリティ面のアップデートもされるので、テーマやプラグインは常に最新のバージョンを使った方が安全です。
更新通知はアップデートされたら来るので、セキュリティ対策でも重要かもしれません。
WAFチューニングサポート
このブログで使用しているロリポップではWAFが全プランで利用可能です。
WAF(ウェブアプリケーションファイアウォール)は、不正アクセスによるサイトの改ざんや情報漏洩を防いでくれます。
ただ誤検知も多く、正常なアクセスでも403エラーが表示されることがあります。
SiteGuard WP PluginはWAFチューニングサポートで除外設定をすることができます。
除外設定すると、正常なアクセスで403エラーが表示されないようになります。
ロリポップを使用しているのでロリポップを例にすると、「セキュリティ」→「WAF設定」→「ログ参照」をクリックするとログの履歴が表示されます。
そしてシグネクチャID(赤い四角で囲んだところ)をコピーします。
そしてシグネクチャの項目にシグネクチャIDをペーストします。
ファイル名は任意ですが、ファイル名を入力するとファイル単位で除外設定できます。
記入が終わったら保存をクリック。
すると除外設定が保存されているので、「ルールを適用」をクリックすることでWAFの除外設定ができます。
まとめ
SiteGuard WP Pluginは日本語のプラグインなことと、設定画面に機能の説明ページへのリンクが貼られていて、とても使いやすいプラグインだと思います。
ただ、SiteGuard WP Pluginの機能だけではセキュリティ対策は万全ではないかもしれません。
けれど難しい設定はなく、簡単にセキュリティ対策ができるプラグイン。
もっと早くに有効化しておけばよかったと思います。
関連記事:プラグインは10個もいらない!賢威7に絶対必要なプラグインのまとめ
今日のたつじんへの一歩

「自分は平気だろ!」と思っていましたが、以前サイトを改ざんされた経験があります(笑)。
知識がないとセキュリティ対策は難しいと思いますが、少しずつ対策していこうと思います。