Авг
4
4

Закрытие XML-RPC уязвимости в WordPress

XML-RPC в WordPressТехнология XML-RPC применяется в системе WordPress для разных приятных фишек по типу пингбэков, трекбеков, удаленного управления сайтом без входа в админку и т.п. К сожалению, злоумышленники могут использовать ее для DDoS атаки на сайты. То есть вы создаете красивые интересные WP проекты для себя или на заказ и при этом, ничего не подозревая, можете быть частью ботнета для DDoS`а. Соединяя воедино десятки и сотни тысяч площадок, нехорошие люди создают мощнейшую атаку на свою жертву. Хотя при этом ваш сайт также страдает, т.к. нагрузка идет на хостинг, где он размещен.

Свидетельством такой нехорошей активности могут быть логи сервера (access.log в nginx), содержащие следующие строки:

103.238.80.27 - - [30/Jul/2015:23:59:01 +0300] "POST /xmlrpc.php HTTP/1.0" 499 0 "-"
103.238.80.27 - - [30/Jul/2015:23:59:01 +0300] "POST /xmlrpc.php HTTP/1.0" 499 0 "-"

Вы видите, что обращения идут к файлу xmlrpc.php причем с кодом 499, означающим, что клиент закрыл соединение до получения ответа сервера.

Если же вы наблюдаете запросы по типу:

103.238.80.27 - - [30/Jul/2015:23:59:01 +0300] «POST /wp-login.php HTTP/1.0» 200 5791 "-" "-"

То это свидетельствует о попытках перебора пароля для взлома админки. По этой теме советую почитать про защиту от Flood (Brute Force) атак. Если речь идет о WordPress, то в той же статье есть несколько полезных плагинов. Также можно использовать Protected wp-login или Login Attempts который многие считают необходимым.

Но вернемся к уязвимости XML-RPC. Визуально она проявляется в медленном открытии сайтов на вашем сервере или же невозможностью их загрузки вообще (502 ошибка Bad Gateway). В тех.поддержке моего хостера FASTVPS подтвердили догадки и посоветовали:

  1. Обновить WordPress до последней версии вместе с плагинами. Вообще, если вы следите за новостями WordPress, то могли читать о необходимости установки последней 4.2.3. из-за критических замечаний в безопасности (точно также как предыдущих версий). Короче говоря, обновляться полезно.
  1. Установить плагин Disable XML-RPC Pingback.

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

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

Плагин Disable XML-RPC Pingback

Найти и скачать Disable XML-RPC Pingback можно тут либо установив его непосредственно из админки системы. Вам не нужно ничего дополнительно настраивать, модуль сразу же начинает работать. Он удаляет методы pingback.ping и pingback.extensions.getPingbacks из XML-RPC интерфейса. Кроме того, удаляет X-Pingback из HTTP заголовков.

В одном из блогов нашел еще парочку вариантов удаления отключения XML-RPC.

1. Отключение XML-RPC в шаблоне.

Для этого в файл функций темы functions.php добавляется строка:

add_filter('xmlrpc_enabled', '__return_false');

Минусом есть то, что при смене темы настройка пропадет. Кстати, в некоторых шаблонах в header.php есть вызов XML-RPC — его можно оттуда удалить вручную.

2. Отключение XML-RPC в htaccess

Вам нужно отредактировать файл .htaccess в корневой директории системы (там где wp-config.php). Добавляете в него строки:

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

Последние два метода лично я не использовал, т.к. подключил плагин Disable XML-RPC Pingback — думаю, его будет достаточно. Просто для тех, кто не любит лишние установки, предложил альтернативные варианты.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 4, средний балл: 7,00 из 7)
Загрузка...

категория Категории: Безопасность;
теги Теги: , , , , , .

комментария 4 к статье “Закрытие XML-RPC уязвимости в WordPress”

  • Антон   11.09.2015

    Не у всех есть возможность редактирования конфигурационных файлов. Да и хорошие знания по системе нужны. А вот поставить плагин который бы защитил от наездов ботнетов и подбора пароля надо. Полезный Limit Login Attempts уже устарел, я себе поставил WP Cerber https://wordpress.org/plugins/wp-cerber/

  • Tod   12.09.2015

    Антон, смущает малое число скачиваний) я обычно подобные модули не ставлю, т.к. в каждом из них могут быть дыры, предпочитаю более популярные решения. Тем не менее, спасибо за наводку.

  • Виктор   19.08.2016

    Ребята, помогите, а как быть, если сайт уже атакуется и нет возможности поставить и активировать плагин, так как вообще зайти нельзя на сайт.

  • Tod   23.08.2016

    Виктор, первый делом просите помощи у хостера, где размещается сайт — они должны помочь. Если хотите решить вопрос самостоятельно, то в статье про защиту от Flood была парочка советов. Вкратце — закрываете доступ к админке для всех IP кроме своего.

Оставить комментарий

(предыдущая статья)

Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Последние посты
Лучшее в категории
Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости