NULL

WordPress – xmlrpc.phpのPOSTアクセス

某サイトがつながりにくい状態が最近出てきました。
本当は以前からつながりにくい状態が続いていたかもしれません。(サイトの性質上、アクセスの振れ幅が大きいのも発見が遅れた要因ですorz)
最初はベンダーがメンテナンスしているのだろうと思い込んでいたのですが、
(メンテナンス情報にも記載があったので。。)
実際は(ブルートフォースなのかDDosなのか不明ですが)攻撃を受けてました。

以下、攻撃されていた時のログ。
これが毎秒流れてました(汗

127.0.0.1 - - [09/May/2016:17:49:56 +0900] "POST /xmlrpc.php HTTP/1.1" 200 392 "-" "Googlebot/2.1 (+http://www.google.com/bot.html)"
127.0.0.1 - - [09/May/2016:17:49:56 +0900] "POST /xmlrpc.php HTTP/1.1" 200 392 "-" "Googlebot/2.1 (+http://www.google.com/bot.html)"
127.0.0.1 - - [09/May/2016:17:49:56 +0900] "POST /xmlrpc.php HTTP/1.0" 200 392 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
127.0.0.1 - - [09/May/2016:17:49:56 +0900] "POST /xmlrpc.php HTTP/1.0" 200 392 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
127.0.0.1 - - [09/May/2016:17:49:56 +0900] "POST /xmlrpc.php HTTP/1.0" 200 392 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
127.0.0.1 - - [09/May/2016:17:49:56 +0900] "POST /xmlrpc.php HTTP/1.0" 200 392 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
127.0.0.1 - - [09/May/2016:17:49:56 +0900] "POST /xmlrpc.php HTTP/1.0" 200 392 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
127.0.0.1 - - [09/May/2016:17:49:56 +0900] "POST /xmlrpc.php HTTP/1.0" 200 392 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
127.0.0.1 - - [09/May/2016:17:49:56 +0900] "POST /xmlrpc.php HTTP/1.0" 200 392 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
127.0.0.1 - - [09/May/2016:17:49:56 +0900] "POST /xmlrpc.php HTTP/1.0" 200 392 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

 

wordpressのfunctions.phpにxmlrpcを無効にできるような記事もありますが
Jetpackが使えなくなる等、少々心許ないのでhtaccessにてアクセス制御かけることにしました。

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

これで、アクセスステータスが200から403に変わります。
大量に沸いたhttpdプロセスも落ち着きを取り戻しました。

 

 

ログを辿ると、かなり前から攻撃されていた模様。
全く気づかなかった。。。

[root@****** httpd]# ls -alh /var/log/httpd/
total 4.4G
drwx------ 2 root root 4.0K May 8 05:10 .
drwxr-xr-x. 10 root root 4.0K May 8 05:10 ..
-rw-r--r-- 1 root root 476M May 9 18:09 access_log
-rw-r--r-- 1 root root 437M Apr 17 05:09 access_log-20160417
-rw-r--r-- 1 root root 1.9G Apr 24 06:42 access_log-20160424
-rw-r--r-- 1 root root 661M May 1 04:47 access_log-20160501
-rw-r--r-- 1 root root 1005M May 8 05:10 access_log-20160508

 

 

アクセス制御しただけですので、依然としてアクセスログは残ってしまいます。
記録しないようにアクセスログからxmlrpcに対してフィルターをかけます。

httpd.confに以下のように設定しました。
1行目はvarnish導入していた頃の名残です。
2行目でxmlrpcがリクエストURIに含まれる場合はnologとしています。

SetEnvIf User-Agent "internal dummy connection" nolog
SetEnvIf Request_URI "xmlrpc" nolog
CustomLog logs/access_log combined env=!nolog
#CustomLog logs/access_log common

 

便利とはいえ何が起こるか不透明なオープンソース。

定期的に見ないとですね。。。

コメントする

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください