Электролитный проезд, д.3, стр.47 115230 Россия, Москва 8 800 200 05 42

Как защитить Wordpress от XML-RPC атаки в Ubuntu?

Wordpress — наиболее популярная блоговая система управления контентом. Это значит, что на ней создано большое число сайтов, и это несомненно привлекает к ней излишнее внимание злоумышленников. И сегодня мы расскажем, как защититься от XML-RPC атаки на сайт. Атака сама по себе не несет угрозы взлома сайта с дальнейшим использованием уязвимости, но она может вызвать отказ в обслуживании атакуемого ресурса. В данном руководстве мы рассмотрим процесс защиты от такой атаки.

 

Что такое XML-RPC в Wordpress?

 

В Wordpress XML-RPC –  протокол, который вызывает удалённо некоторые действия на вашем сайте. Так, плагин JetPack используется XML-RPC для своей работы. Грешит этим и мобильное приложение Wordpress. Но с помощью XML-RPC можно «заддосить» сайт, отправляя к сайту в единицу времени большое число запросов на выполнение каких-то действий, что довольно часто вызывает отказ в обслуживании атакуемого ресурса.

 

Как определить атаку XML-RPC (в частности в Wordpress)?

 

Если в логах веб-сервера вы обнаружите большое количество записей типа "POST /xmlrpc.php HTTP/1.0”, то, скорее всего, вы подверглись XML-RPC атаке.

Расположение лог-файлов веб-сервера различается в зависимости от дистрибутива Linux.

Для выявления атак XML-RPC на Apache в Ubuntu используйте можно воспользоваться следующей командой:

grep xmlrpc /var/log/apache2/access.log

Если у вас работает Nginx, то используйте следующую команду:

grep xmlrpc /var/log/nginx/access.log

Если в результате работы этих команд вы получите большой список вида:

111.222.333.444:80 555.666.777.888 - - [24/Jan/2017:00:03:50 -0500] "POST /xmlrpc.php HTTP/1.0" 200 674 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

то вероятнее всего ваш проект был подвержен атаке XML-RPC.

 

Решение проблемы

 

Вариант 1: Установка плагина Jetpack.

В плагине JetPack есть функция Protect, которая блокирует запросы multicall протокола XML-RPC. Записи XML-RPC по-прежнему будут поступать в логи сервера, но Jetpack снизит нагрузку на базу данных сайта, создаваемую вредоносной активностью, до 80-90%.

 

Вариант 2: Блокировка трафика XML-RPC вручную.

Трафик можно заблокировать в настройках сервера Apache или Nginx. Хотим заметить, что при блокировке XML-RPC может не работать мобильное приложение и некоторые модули на сайте.

Внесите изменения в файл конфигурации Apache:

sudo nano /etc/apache2/sites-available/000-default.conf

Добавьте строки в блок :


……...



order allow,deny

deny from all



……...

Сохраните и закройте файл.

 

Необходимо перезапустить веб-сервер, чтобы применились настройки:

sudo service apache2 restart

Для редактирования Nginx-файла конфигурации, введите:

sudo vim  /etc/nginx/sites-available/example.com

**examle.com — нужно заменить на название файла конфигурации вашего сайта

 

Необходимо добавить в блок server следующие строки:

server {

……...

location /xmlrpc.php {

deny all;

}

……...

}

Сохраните и закройте файл, а также перезапустите Nginx:

sudo service nginx restart

 

Проверка защиты

Если вы выбрали метод блокировки трафика XML-RPC через файлы конфигураций apache и nginx, в логи по-прежнему будут записываться подключения, но код ответа с 200 изменится на 500.

Запись будет выглядеть так:

111.222.333.444:80 555.666.777.888 - - [24/Jan/2017:02:04:21  -0500] "POST /xmlrpc.php HTTP/1.0" 500 674 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

111.222.333.444:80 555.666.777.888 - - [24/Jan/2017:02:04:21  -0500] "POST /xmlrpc.php HTTP/1.0" 500 674 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

111.222.333.444:80 555.666.777.888 - - [24/Jan/2017:02:04:22  -0500] "POST /xmlrpc.php HTTP/1.0" 500 674 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"