Защита Wordpress от брутфорс атаки через XML-RPC

Безопасность XML-RPC

В CMS Wordpress есть возможность удаленной публикации, редактирования и удаления постов и комментариев. Функциональность реализована через протокол XML-RPC.

До версии 3.5 в настройках Wordpress была возможность отключить XML-RPC.

Теперь такой возможности нет, протокол подключается по умолчанию с момента установки/обновления CMS.

Использование XML-RPC небезопасно. Проблема в том, что злоумышленники могут использовать протокол для взлома вашего сайта через подбор пароля (брутфорс-атака). Вы не увидите информацию об ошибке, но заметите что скорость работы сайта сильно снизится.

 

Как выявить атаку?

Для выявления атаки у вас должна быть установлена панель управления ISPmanager со стандартными настройками.
Подключитесь к серверу по SSH и выполните команду:

grep -h $(date "+%d/%b/%Y") /var/www/httpd-logs/*.access.log | awk '{print $1" "$7}' | sort | uniq -c | sort -rnk1 | head -10 | grep -i xmlprc

 

В ответе на команду отобразятся столбцы: количество_запросов, адрес_запроса и url_запроса.

Пример:

2213 66.249.91.145 /bitrix/tools/conversion/ajax_counter.php

33 22.111.21.123 /bitrix/tools/conversion/ajax_counter.php

2 5.10.12.13 /bitrix/components/bitrix/sale.gift.product/ajax.php

Если среди этих запросов вы видите много обращений к xmlrpc.php,  скорее всего ваш сервер атакуют xmlrpc-bruteforce.

 

Как защититься?

Рассмотрим три способа защиты.
Если вы выявили проблему, но не уверены, что самостоятельно можете настроить защиту — напишите в службу поддержки.

 

Первый способ: редактируем wp-config.php

Подключитесь к серверу по FTP. Откройте каталог вашего сайта.Обычно это /var/www/www-root/data/www/ваш домен
В нем расположен файл wp-config.php. Откройте его для редактирования.

Найдите строку:

require_once(ABSPATH . 'wp-settings.php');

После нее допишите: 

add_filter('xmlrpc_enabled', '__return_false');

 

Второй способ: редактируем .htaccess

Как и в первом способе подключитесь к каталогу вашего сайта. Найдите файл .htaccess и откройте его для редактирования.

Добавьте в файл:

<Files xmlrpc.php> 

   Order Deny,Allow

   Deny from all

</Files>

 

Если на вашем сервере  Apache 2.4 нужно добавить другие строки:

<Files xmlrpc.php> 

 Satisfy any

 Order allow,deny

 Deny from all

</Files>

 

Третий способ: сторонний плагин

Вы можете установить модуль Disable XML-RPC Pingback.
Дополнение можно загрузить с официального сайта Wordpress или админ-панели вашего сайта.