Wordpressに対しての最近のDDosアタックへの対処法

Shunsuke Sawada

ほんとね。Wordpressって標的になりやすくて嫌…。
DOSアタックされて困ったのでその対処法。

EC2で動いているWordpressが落ちる、ssh接続もできない、みたいな状態が続いていて困った。
t2.small だから十分なはずなのに。。

ログを確認すると、ああ、これは攻撃されてるやん。

shell
1
2
3
4
5
6
7
8
9
10
11
12
13
$ sudo su - # you should avoid this though..

$ cd var/log/http
$ less access_log # or whatever

191.96.249.53 - - [12/Jun/2016:02:58:10 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [12/Jun/2016:02:58:11 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [12/Jun/2016:02:58:11 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.53 - - [12/Jun/2016:02:58:13 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [12/Jun/2016:02:58:14 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.53 - - [12/Jun/2016:02:58:13 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
104.233.88.236 - - [12/Jun/2016:02:58:14 +0000] "POST /xmlrpc.php HTTP/1.0" 500 251 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

Dos攻撃とDDos攻撃の違いと対策についてまとめてみた

原因は XML-RPCPingbackDDoS攻撃 というらしい。

以下対策。


Wordpressのpingback機能をオフ。

ピンバックについてはこちらに詳しく載ってる。
WordPressのピンバックの設定方法

強制的にリダイレクト

オフにしたけども攻撃がやまないので、ルートディレクトにある .htaccess に以下を追加。
これはこちらを参考にしました。
xmlrpc.phpにDoS攻撃を受けた時の対処法| WordPressテックラボ | [Smart]

1
RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]

一回インスタンスを再起動して様子見。
今のところサクサク動いている模様。

追記

それでもやまなかったDOS攻撃... orz

さらに対策しました。

shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# VirtualHost の設定を変更
# ファイルはお好きなやつで。デフォはhttpd.conf? 

$ vi /etc/httpd/conf.d/virtualhost.conf 


<VirtualHost>
…    
    <files xmlrpc.php>
      order allow,deny
      deny from all
    </files>
</VirtualHost>

対策前のログ

1
2
3
191.96.249.54 - - [26/Aug/2016:02:04:50 +0000] "POST /xmlrpc.php HTTP/1.0" 200 370 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [26/Aug/2016:02:05:00 +0000] "POST /xmlrpc.php HTTP/1.0" 200 370 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [26/Aug/2016:02:05:01 +0000] "POST /xmlrpc.php HTTP/1.0" 200 370 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

対策後のログ

1
2
3
191.96.249.54 - - [26/Aug/2016:02:15:06 +0000] "POST /xmlrpc.php HTTP/1.0" 403 212 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [26/Aug/2016:02:15:06 +0000] "POST /xmlrpc.php HTTP/1.0" 403 212 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
191.96.249.54 - - [26/Aug/2016:02:15:08 +0000] "POST /xmlrpc.php HTTP/1.0" 403 212 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

403でファイルへのアクセスが禁止されてる。
これで負荷へるかな。

追記

こんどはログインを仕掛けてきた。ブルートフォースアタック。
こんな感じでIPをホワイトリストしました。

shell
1
2
3
4
5
6
7
8
9
$ cd /var/www/your_wordpress_dir/
$ sudo vi .htaccess

<Files wp-login.php>
Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx #許可するIPアドレス
</Files>

サーバーを再起動。

shell
1
$ sudo service httpd restart

参考

https://gatespace.jp/2013/05/21/wp-admin-access-restriction-ver3-5-1/
https://codex.wordpress.org/Brute_Force_Attacks
https://blog.lysender.com/2013/02/white-listing-ip-addresses-for-your-apache-virtual-hosts/
IP確かめたければ
https://www.whatismyip.com/

以上です。

1
Shunsuke Sawada

おすすめの記事

Wordpressのアップロード作業を楽にする
qTranslateで Hide Untranslated Content オプションがうまく動かなくなった場合の対処
justhostがハッキングされてる件