> 記事 > GITS関連 WordPress ウェブ制作 プログラミング マメ知識 > 自社運営サイトへのブルートフォースアタックへの対処

自社運営サイトへのブルートフォースアタックへの対処

2016.01.19.(Tue)Masahiro Natori By.Masahiro Natori

こんにちは、masaです。

ここのところ、自社で運営しているサイトの一つにブルートフォースアタックがかけられている、というワーニングメールが来るようになり、それの対処を行いました。

Sponsored Link

ブルートフォース攻撃の状況について


ワードプレスのプラグインより、以下のようなメールが送られてきました。

Your website, ****** ****** ******,
is undergoing a brute force attack.

There have been at least 50 failed attempts to log
in during the past 120 minutes that used one or
more of the following components:

Component Count Value from Current Attempt
———————— —– ——————————–
Network IP 50 46.148.22.*
Username 14 **********.net
Password MD5 1 aea2faee8466ecd00a731b9771f52cf2

The most recent attempt came from the following IP
address: 46.148.22.18

The Login Security Solution plugin (0.44.0) for
WordPress is repelling the attack by making their
login failures take a very long time. This
attacker will also be denied access in the event
they stumble upon valid credentials.

Further notifications about this attacker will
only be sent if the attack stops for at least 120
minutes and then resumes.


46.148.22.18 というのはウクライナのIPアドレスで、
それほど激しい攻撃ではないですが、継続的に来ているようなので、
対処を行いました。

.htaccessでの対処


とりあえず、このウクライナのIPアドレスからの全てのアクセスについて遮断を試みました。

# AccessControl IP/HOST
order allow,deny
allow from all
deny from 46.148.22.*


これを行うと、攻撃のあったIPアドレスからこのサイトにアクセスすると403エラーで返るようになるので、アクセスのシャットアウトができるはずでした。

しかし攻撃されているメールは届き続ける


残念ながら、先ほどの.htaccessでは対処できないようで、引き続き「攻撃されている」メールが届き続ける状況でした。

アクセスログを確認すると、

46.148.22.18 – – [Mon Jan 16 03:06:55 2016] “POST /xmlrpc.php HTTP/1.1” 200 370 …..


このような感じでした。メールの文面から、WordPressへのログイン試行が行われているのかと思っていたのですが、そうではなく、xmlrpc.php へのPOSTが発生しているようでした。xmlrpc.php のアクセスについて調べてみると、直接こちらのサイトを攻撃している可能性と、このサイトを利用して、他のサイトを攻撃している可能性とがあるようです。直接こちらのサイトを攻撃している場合には毎秒などの高頻度で行われるようですが、アクセスの頻度がそれほど多くないことから、おそらく他のサイトへのDoS攻撃の踏み台に利用されていたようです。

サーバーが高負荷の原因はWordPressのxmlrpc.phpを狙った攻撃だった | イリテク

DoSの踏み台にされているJPドメインのWordPressをまとめてみた – piyolog

どうやら、バージョン3.5以上WordPressには全てxmlrpc.php が入っているようなので、WordPressで運営されているほとんどのサイトがこの攻撃の中継に使われてしまうというのが実際のところのようです。

xmlrpc.phpへのアクセス拒否


このまま放置しておくのも問題なので、.htaccessファイルを編集し、xmlrpc.php ファイルへのアクセスを全て拒否にしてみました。コードはこのような感じです。

<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>


最初にIPアドレスを遮断しただけのときは、アクセスログにPOSTのレコードが記録されていたのですが、xmlrpc.php へのアクセスを拒否にした後は、エラーログの方に記録されるようになりました。

[Mon Jan 18 03:42:25 2016] [error] [client 46.148.22.18] client denied by server configuration: /servic…
[Mon Jan 18 03:42:31 2016] [error] [client 46.148.22.18] client denied by server configuration: /servic…
[Mon Jan 18 08:47:00 2016] [error] [client 46.148.22.18] client denied by server configuration: /servic…
[Mon Jan 18 08:47:06 2016] [error] [client 46.148.22.18] client denied by server configuration: /servic…
[Mon Jan 18 13:05:56 2016] [error] [client 27.33.231.21] client denied by server configuration: /servic…


今でも5時間おきに2回ずつアクセスがあるようです。残念ながらこれ以上は対処のしようがなさそうです。

まとめ


今回調査した xmlrpc.php は、WordPressの機能のうちのひとつで、他の誰かが自分の書いた記事に対してリンクを作成したときに自動的に送られるPingbackという機能で使われているものです。WordPress3.5以上では基本的に有効になっていて、WordPressのバージョンによっては簡単に変更できないようになっています。
問題なのはWordPressで作成されているサイトであれば、かなりの高確率で、xmlrpc.php が有効になっており、ファイルの置き場所、名前も簡単に特定できてしまうので、悪意のある目的にも簡単に利用することが出来てしまう、というところです。

現時点では、残念ながらこの問題に対する根本的な解決法はないようで、継続的に攻撃を受ける場合、そのIPアドレスからのアクセスを遮断するといった場当たり的な対処方法しかないようです。もちろん、完全にXML-RPCを無効化してしまうというのも、一つの方法ですが、またそれによる不具合などもあるようで、イタチごっこです。

今日のところはひとまずはこの状態でブロックして沖、他にもとれる対策がないか調べてみることにします。

Masahiro Natori

Masahiro Natori
こんにちはMasaです。39歳の時に16年勤めた会社を辞め、2013年4月に家族で日本からパースに引っ越してきました。2013年6月よりGITSに勤務。2014年1月にGITSのサポートでProgrammerとして457ビザを取得。 趣味は音楽を聴くことと、部屋のレイアウトを変えること、ドライブすること。
    関連する記事は見当たりません。
  • facebook
  • twitter