新手のWordPressを狙うパスワード総当り攻撃(ブルートフォースアタック)に注意

by 管理者
7月 26日 2014 年

新手のブルートフォースアタック

1日にせいぜい10件程度だったWordpressのログイン画面を狙った、ユーザIDと力任せにパスワードを変更した組み合わせで何度も不正ログインを試みる攻撃が7月22日の朝から7月24日の朝まで延々と続いた。
下の画面は4回ログインに失敗するとプラグインのLimit Login Attemptsから送信されてくるメールの一覧だが約1500通あるので2日間で約6000回の不正ログインがあったことになる。

ブルートフォースアタック

一番初めのユーザIDはadminで始まり、次はtestに変わり、今度はサブドメイン名のitをユーザIDに変更してログインを試みているが、今回はいくら待っても終わる気配が無い。

既にWordpressを狙うパスワード総当り攻撃(ブルートフォースアタック)の対策として、数回パスワードを間違えるとログインできないようにIPアドレスを指定してロックを掛けているのだが、今回はいつもと様子が違う。

今までいくら長くても数時間で終わるのだが、どうしたのだろうか?

ユーザIDもパスワードも長くて複雑なものにしているので、何回不正ログインを試みても成功することはありえない。
しかし少なからずサーバのリソースを使っており、VPSサーバも共有サーバなので、こんな無駄なことにまともな対応をしたくない。
よって有無を言わせずアクセス拒否すべく、どこの国からアクセスしに来ているのか確認すると、アメリカが多いものの国際色豊かで一部の国を規制すれば良いというものではない。
そこで国内のIPアドレスのみログイン画面(wp-login.php)にアクセスできるように以下のコードを.htaccessに記述して制限することにした。

Options +FollowSymLinks
RewriteEngine On

<Files wp-login.php>
order deny,allow
deny from all

allow from 1.0.16.0/20
allow from 1.0.64.0/18
allow from 1.1.64.0/18
allow from  ・
allow from  ・
allow from  ・
</Files>

ところが、一向に不正アクセスは収まらない。おかしい。

そこで、アクセスログを確認すると、wp-login.phpと同じ階層にあるxmlrpc.phpにアクセスしていることが分かった。

xmlrpc.phpって何だろうと思って、ブラウザからアクセスすると「XML-RPC server accepts POST requests only.」のメッセージが表示される。

ようするにxmlrpc.phpにユーザIDとパスワードを引数に持たせるとログイン画面(wp-login.php)を経由しなくてもログインできるみたいだ。

この方法なら、wp-login.phpの名称を変えようが、場所を変えようが関係ない。
本当にスパマーって良く考えるな~とあきれるばかり。

対策方法

そこで、wp-login.phpだけじゃなく、xmlrpc.phpも国外からアクセスできないように.htaccessを作成した。
この.htaccessをwp-login.phpとxmlrpc.phpのある場所(同じ場所)に配置するだけ。

試しに海外からアクセスするとhttpレスポンスコードが403(アクセス禁止)になるので、おそらく大丈夫だろう。
もちろん自分のパソコンからログイン画面にアクセスできることも確認済み。

ステータスチェッカー

この記事へのトラックバックURL