====== 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}}