====== Wordpress: DDoS через XML-RPC ======
===== Что случилось? =====
* [[https://habrahabr.ru/post/232129/|И опять атака на сайты Wordpress — перебор + XMLRPC]]
* [[https://habrahabr.ru/post/215543/|Более 162.000 сайтов на WordPress использовались для масштабной DDOS-атаки]]
* [[https://habrahabr.ru/company/eset/blog/326198/|Sathurbot: распределенная атака на WordPress-сайты]]
* [[https://blog.sucuri.net/2014/07/new-brute-force-attacks-exploiting-xmlrpc-in-wordpress.html|New Brute Force Attacks Exploiting XMLRPC in WordPress]]
* [[https://blog.sucuri.net/2015/10/brute-force-amplification-attacks-against-wordpress-xmlrpc.html|Brute Force Amplification Attacks Against WordPress XMLRPC]]
===== Как обнаружить? =====
Пример access лога с POST запросами к xmlrpc.php
# grep xmlrpc /var/log/nginx/access.log
96.30.6.77 - - [17/May/2016:04:34:53 +0300] "POST /xmlrpc.php HTTP/1.1" 200 125935 "-" "-" "-"
108.179.197.218 - - [17/May/2016:07:48:06 +0300] "POST /xmlrpc.php HTTP/1.1" 200 125935 "-" "-" "-"
89.161.231.28 - - [17/May/2016:08:04:36 +0300] "POST /xmlrpc.php HTTP/1.1" 200 125935 "-" "-" "-"
89.111.177.110 - - [17/May/2016:08:08:15 +0300] "POST /xmlrpc.php HTTP/1.1" 200 125935 "-" "-" "-"
81.177.135.201 - - [17/May/2016:08:08:26 +0300] "POST /xmlrpc.php HTTP/1.1" 200 125935 "-" "-" "-"
46.229.230.48 - - [17/May/2016:08:08:28 +0300] "POST /xmlrpc.php HTTP/1.1" 200 125935 "-" "-" "-"
50.62.176.19 - - [17/May/2016:10:31:43 +0300] "POST /xmlrpc.php HTTP/1.1" 200 652 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0" "-"
74.63.250.11 - - [17/May/2016:10:39:16 +0300] "POST /xmlrpc.php HTTP/1.1" 200 125935 "-" "-" "-"
159.8.34.18 - - [17/May/2016:10:53:40 +0300] "POST /xmlrpc.php HTTP/1.1" 200 652 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0" "-"
{{:web:wordpress:wordpress_this_is_fine.jpg?nolink&600|}}
TL;DR если вы не используете XML-RPC, то отключите его.
Это можно сделать через .htaccess или с помощью плагина.
===== Отключение xmlrpc через .htaccess =====
Для Apache 2.2
Order Deny,Allow
Deny from all
Для Apache 2.4
Satisfy any
Order allow,deny
Deny from all
Если вы используете [[https://apps.wordpress.com/mobile/|мобильное приложение Wordpress]], то для его работы дополнительно нужно добавить строку ''Allow from Ваш-IP''.
Если используется Jetpack, то htaccess будет таким
Order Deny,Allow
Deny from all
Allow from 192.0.64.0/18
Satisfy All
ErrorDocument 403 http://127.0.0.1/
===== Отключение xmlrpc в nginx =====
location /xmlrpc.php {
deny all;
allow Ваш-IP;
}
===== Отключение xmlrpc через плагин =====
Плагины для отключения XML-RPC можно найти на сайте Wordpress [[https://ru.wordpress.org/plugins/tags/xmlrpc/|по тегу xmlrpc]].
* [[https://wordpress.org/plugins/disable-xml-rpc-pingback/|Disable XML-RPC Pingback]]
* [[https://wordpress.org/plugins/disable-xml-rpc/|Disable XML-RPC]]
{{tag>wordpress xml-rpc linux}}