[WP Plugin] SiteGuard WP Plugin: 日本語対応 WordPress 用セキュリティプラグイン
リリースを見て導入。自分なりに確認してみました。
[markdown]
> [ニュースリリース 「SiteGuard WP Plugin」無償提供開始](http://www.jp-secure.com/cont/corp/news/2014/141024.html)
ちなみにここのような僻地のブログにもブルートフォース攻撃が毎日くるので対策は必須。
> [wp-login.php への不正アクセスを防ぐ | deadwood](https://www.d-wood.com/blog/2013/09/01_4531.html)
SiteGuard WP Plugin で検索すると、公式もしくは管理画面からインストールできます。
> * [動作環境 – SiteGuard WP Plugin](http://www.jp-secure.com/cont/products/siteguard_wp_plugin/system.html)
## 管理ページアクセス制限
mod_rewrite を利用する。
> 管理ページ(/wp-admin/以降)に対する攻撃から防御するための機能です。ログインが行われていない接続元IPアドレスに対して、管理ページのアクセスを、404(Not Found)で返します。ログインすると、接続元IPアドレスが記録され、当該ページのアクセスを許可します。24時間以上ログインが行われない接続元IPアドレスは、順次削除されます。この機能を除外するURL(/wp-admin/以降)を指定することができます。
* 除外パスとして、css, images, admin-ajax.php が設定済。
追加・編集も可能。
手動でやっていた admin-ajax.php 除外もやってくれるよう。
> [Re: WordPress使いならこれだけはやっておきたい本当のセキュリティ対策10項目 | memo.dogmap.jp](http://memo.dogmap.jp/2012/10/18/re-wordpress-security/)
また、管理ページに固定IPアドレス制限を掛けられない場合が多けれども、なるべく不要なアクセスをさせないようにできそう。
いちおう Basic 認証は残しました。
> [wp-login.php への不正アクセスを防ぐ | deadwood](https://www.d-wood.com/blog/2013/09/01_4531.html)
* ログイン履歴をダッシュボードから確認できる。
以前は、Crazy Bone でまかなっていた。
> [WordPress › Crazy Bone « WordPress Plugins](https://wordpress.org/plugins/crazy-bone/)
## ログインページ変更
mod_rewrite を利用する。
> ブルートフォース攻撃、リスト攻撃等の、不正にログインを試みる攻撃を受けにくくするための機能です。ログインページ(wp-login.php)の名前を変更します。初期値は、「login_<5桁の乱数>」ですが、お好みの名前に変更することができます。
* wp-login.php にアクセスしても 404 となる。
* .htaccess に設定が加わっている。
以前は、自作のスクリプトでファイル名を書き換えたりしたが、自動アップデートで面倒だった。
> [wp-login.php への不正アクセスを防ぐ | deadwood](https://www.d-wood.com/blog/2013/09/01_4531.html)
wp-admin でアクセスするとリダイレクトされるよう。
正しく動いてるのかな。
### 追記(2014/10/31)
Permalink の設定をカスタマイズしていると、リダイレクトでログイン画面へ遷移してしまうようです。
> * [JP-SecureのSiteGuard WP Pluginの機能は不正ログイン防止に役立つか](http://ounziw.com/2014/10/29/siteguard-wp-plugin/)
> * [本当は怖い WordPress – ログインURLを変更しても、URL/loginからリダイレクトされる](http://www.rescuework.jp/blog/wp-login.html)
[v1.0.3](https://wordpress.org/plugins/siteguard/changelog/) で対応したとのことなのですが、自分の環境ではまだ遷移することを確認しました。
WordPress の振るまいについて分からないことだらけなのですが、このあたりは引き続き情報収集します。
### 追記(2014/11/24)
[v1.1.1](https://wordpress.org/plugins/siteguard/changelog/) でログインページが変更されていることを確認しました。
`/wp-admin` や `/login` といったリダイレクトが設定されているアドレスにアクセスしても、404 not found となります。
下記のような ruby スクリプトで12桁の適当な文字列を生成して、プラグイン管理画面からログインページアドレスを変更しました。
“`ruby
((“a”..”z”).to_a + (“A”..”Z”).to_a + (0..9).to_a).shuffle[0..11].join
“`
## 画像認証
> ブルートフォース攻撃、リスト攻撃等の、不正にログインを試みる攻撃や、コメントスパムを受けにくくするための機能です。画像認証の文字は、ひらがなと英数字が選択できます。
* いわゆる CAPTCHA がログイン画面とコメント投稿につく。
* ひらがながつかえる(標準)。
他のプラグインでまかなっていた機能が利用できるようになる。
### 追記(2017/08/20)
[Jetpack](https://ja.wordpress.org/plugins/jetpack/) のコメント機能とぶつかると「エラー:画像認証が間違っています」が表示されます。
SiteGuard WP Plugin のコメントでの画像認証、もしくは Jetpack のコメント機能のどちらかを Off にする必要があります。
## ログイン詳細エラーメッセージの無効化
> ユーザー名の存在を調査する攻撃を受けにくくするための機能です。ログインに関するエラーメッセージがすべて同じ内容になります。ユーザー名、パスワード、画像認証のどれを間違えても同じエラーメッセージを表示します。
ログインユーザー名を探し回るために `/?author=1` あたりでくるアクセスへの対策は残しておいた。
> [wp-login.php への不正アクセスを防ぐ | deadwood](https://www.d-wood.com/blog/2013/09/01_4531.html)
## ログインロック
> ブルートフォース攻撃、リスト攻撃等の、不正にログインを試みる攻撃を受けにくくするための機能です。特に、機械的な攻撃から防御するための機能です。ログインの失敗が指定期間中に指定回数に達した接続元IPアドレスを指定時間ブロックします。ユーザーアカウント毎のロックは行いません。
Limit Login Attempts, Login LockDown あたりでまかなっていた機能が提供される。
### 追記(2014/10/31)
このプラグインとは直接関係が無いように思うので、誤解が生まれないよう取り消しておきます。
思ったよりこのページにアクセスがあるようで。。。
ただ、ログインの成功・失敗をメールでお知らせしてくれる WP Security Login Notification が動かなくなったので少し困っています。
> [WordPress › WP Security Login Notification « WordPress Plugins](https://wordpress.org/plugins/wp-security-login-notification/)
### 追記(2014/11/17)
後述の通り、[v1.1.0](https://wordpress.org/plugins/siteguard/changelog/) でログインアラートに対応しました。
ログインに成功すると管理者へメール通知がされます。
## ログインアラート
> 不正なログインに気づきやすくするための機能です。ログインすると、ログインユーザーにメールが送信されます。ログインした心当たりがないのにメールを受信した場合は、不正なログインを疑ってください。サブジェクトとメール本文には、次の変数が使用できます。(サイト名:%SITENAME%、ユーザ名:%USERNAME%、日付:%DATE%、時刻:%TIME%、IPアドレス:%IPADDRESS%、ユーザーエージェント:%USERAGENT%、リファラー:%REFERER%)
* ログインに成功すると管理者へメール通知される(成功のみ)。
## フェールワンス
> リスト攻撃を受けにくくするための機能です。正しいログイン情報を入力しても、1回だけログインが失敗します。5秒以降、60秒以内に再度正しいログイン情報を入力すると、ログインが成功します。
* 有効にすると必ず一度ログインに失敗する。
## ピンバック無効化
> ピンバック機能を無効にし、悪用を防ぎます。
Jetpack などのプラグインで利用していたりしますし、ピンバックないブログとかどうなんだとか。判断に迷います。
企業サイトにはいらないですけど。
> * [ピンバック悪用の踏み台攻撃防止に対応した Akismet 2.6 がリリース | ja.naoko.cc](http://ja.naoko.cc/2014/03/19/akismet-update-address-pinback-ddos-risks/)
> * [WordPressのXML-RPCの設定見直し | kwLog](http://blog.makotokw.com/2014/05/16/disable-wordpress-xml-rpc-again/)
すでに無効化している方も多そうなので、これを機会に一度停止してみます。
## WAFチューニングサポート
> WebサーバーにJP-Secure製のWAF ( SiteGuard Lite ) が導入されている場合に、WordPress内での誤検知(正常なアクセスなのに、403エラーが発生する等)を回避するためのルールを作成する機能です。WAFは、Webサーバーに対する外部からの攻撃を防ぎますが、WordPressの機能や、プラグインの機能によっては、WAFが攻撃でないのに攻撃と判断して、その機能をブロックする場合があります。除外ルールを作成することで、特定の機能での誤検知を防ぎつつ、全体としてのWAFの防御機能を活かすことができます。
## まとめ
対策を行うとなるとなかなか骨が折れるのですが、プラグインのインストールで一通りの対策と管理が行えるようになるのが大変ありがたいです。