Атаки на WordPress-сайт через XML-RPC: как защититься

Сегодня случайно заметил, что сайты на сервере как-то медленно загружаются. Проверил нагрузку на ресурсы, оказалось что процессор практически на 100% загружен (и это началось еще в полдень):

Загрузка процессора

В этом посте решил поделиться информацией о том, как найти и обезвредить уязвимость (интересно будет тем, кто не сильно разбирается в администрировании, но хочет защитить свой сайт).

Что это такое

XML-RPC — протокол, с помощью которого можно удаленно управлять сайтом: добавлять записи/файлы, удалять и редактировать их.

Однако, злоумышленники на сайтах созданных на WordPress используют его для своих нужд:

  • организуют DDoS-атаки;
  • подбирают пароль брутфорсом.

Как определить

Для профилактики, советую использовать плагины типа Wordfence Security, который и был установлен у меня.

В данном плагине есть функционал «Live Traffic«, с помощью, которого в реальном времени можно наблюдать все обращения к страницам сайта. Я заметил, что каждую секунду с различных IP идет запрос к файлу http://IP/xmlrpc.php:

Обращения к файлу http://IP/xmlrpc.php

Если плагин не установлен и его невозможно установить по различным причинам, то на этот случай также есть метод (через настройки httpd.conf). Но в любом случае имейте ввиду: если имеется непонятная нагрузка на сервер, то попробуйте первым делом проверить, доступен ли файл xmlrpc.php для чтения.

Способы защиты

Рассмотрим несколько вариантов, которые, в принципе, можно выполнить все вместе.

Отключение XML-RPC

Disable XML-RPC — плагин отключающий функционал XML-RPC: просто устанавливаем и активируем.

Запрет доступа к xmlrpc.php

С помощью файла .htaccess закрываем доступ к xmlrpc.php:

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

После чего по адресу, например, https://moneyscience.ru/xmlrpc.php будет отображаться следующее сообщение:

xmlrpc.php

Выключение уведомлений и обратных ссылок

Еще не будет лишним в настройках Worpdress (раздел «Обсуждение«) снять галочки со след. пунктов:

Уведомления и обратные ссылки

После выполнения всех действий, нагрузка на сервер вернулась к нормальным значениям.

Сообщение Атаки на WordPress-сайт через XML-RPC: как защититься появились сначала на НаукаДенег.

Источник

Комментарии (8):

seoonly.ru18.07.2017 11:44

У тебя именно сервер или сайты на хостинге были?

VPSadm18.07.2017 11:59

при запрете через htaccess или плагином будет все равно идти некоторая нагрузка на апач и сам wp. поэтому при большой активности может не спасти. лучше закрыться в nginx:
location /xmlrpc.php
{
return 444;
}
это при любых попытках атак сводит нагрузку к нулю. Точно так же можно закрывать и wp-admin и wp-login.php на время атак. Не путай кстати, через xmlrpc пароли не брутят, это разные атаки.

moneyman18.07.2017 11:59

Виртуальный сервер, но, в принципе, указанные методы можно и на шареде использовать.

moneyman18.07.2017 11:59

Спасибо за дополнение!
Вот инфа по брутфорсу через xmlrpc.php — https://github.com/1N3/Wordpress-XMLRPC-Brute-Force-Exploit, вроде бы довольно известный эксплойт для WP

Алексей18.07.2017 15:04

Вместо установки плагинов, если файл не нужен, ещё один способ, это просто закомментировать (удалить) содержимое файла.

Тоже немножко админ18.07.2017 15:42

Коллега, ну ты чего пугаешь молодёжь? Какая нагрузка на вп может быть, если файл заблокирован на уровне апача? До вп запрос даже не дойдёт. «Нагрузка на апач» — тоже смешно, ведь апач (при всей моей любви к nginx) такой же вебсервер, и умеет эффективно запрещать доступ, к тому же не всегда перед апачем ставят nginx.
В общем, аргументация так себе, но способ предложен рабочий, особенно для тех, кто использует nginx + php-fpm.

VPSadm19.07.2017 02:08

а ты проверь, ради интереса) хотя б на 10-20 запросах в секунду. такой себе лайтовый школоло-«ддос». Посмотришь, в каком там месте и насколько эффективно апач это отпинывает. Там на одном только чтении файла htacces io будет висеть и поднимет load average в небеса. Не говоря уж о том что апач и cpu будет грузить. А о плагинах для «защиты» так и говорить смешно. Могу даже поискать контакты ддосера, где-то попадался средь клиентов) глядишь и поможет тебе в таких экспериментах

Тоже немножко админ19.07.2017 08:18

Да, провёл эксперимент, и всё оказалось несколько печальнее, чем ожидал. Я лет 8 не уже не использовал апач ни на одном проекте, и надеялся, но он за эти годы стал лучше, но увы. Как-то перешёл на более крупные проекты, и апач стал не нужен, везде nginx, где-то мощные сервера, где-то бэки с nginx за балансировщиком на HAproxy/nginx и т.д. Площадки для эксперимента с hdd не нашлось, а на ssd io мне la практически не поднял, но cpu грузится сильнее, чем с использованием nginx. В любом случае, думаю ты согласишься с двумя утверждениями из моего предыдущего коммента:
1. до вп дело не дойдёт
2. апач вполне может фильтровать доступ (но что лучше апач вообще не использовать, и что лучше сервер на ssd — тема для отдельного разговора).

Посетителям, которые придут на эту страницу из поиска при борьбе с нагрузкой рекомендую обращаться за помощью к VPSadm — он спец в своём деле и технические статьи хорошие пишет ).

Войдите или зарегистрируйтесь чтобы оставить комментарий