Закрытие 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 подтвердили догадки и посоветовали:
- Обновить WordPress до последней версии вместе с плагинами. Вообще, если вы следите за новостями WordPress, то могли читать о необходимости установки последней 4.2.3. из-за критических замечаний в безопасности (точно также как предыдущих версий). Короче говоря, обновляться полезно.
- Установить плагин Disable XML-RPC Pingback.
Отключение XML-RPC в WordPress
Раньше, как мне кажется, опция включения/отключения XML-RPC была где-то в настройках системы, однако сейчас не могу ее там найти. Поэтому самый простой метод избавиться от нее — использовать соответствующий плагин.
Найти и скачать 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 к статье “Закрытие XML-RPC уязвимости в WordPress”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Защита текстов от выделения и копирования – плагин WP-CopyProtect (5,75 из 7, голосов - 12)
- Как легко раскодировать футер (footer) в wordpress (5,15 из 7, голосов - 13)
- WordPress File Monitor — мониторинг изменений в файлах системы (5,73 из 7, голосов - 11)
- Топ-5 плагинов для обеспечения безопасности WordPress сайтов (4,23 из 7, голосов - 13)
- Решение проблемы (хака) в wordpress «hacked by Badi» (6,75 из 7, голосов - 8)
- WebTotem WordPress Security – бесплатный плагин безопасности сайта + услуга аудита (4,70 из 7, голосов - 10)
- Theme Authenticity Checker (TAC) — проверка внешних ссылок в шаблоне (4,00 из 7, голосов - 10)
- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
- Для каких проектов нужна аренда виртуального сервера и что такое VPS
Не у всех есть возможность редактирования конфигурационных файлов. Да и хорошие знания по системе нужны. А вот поставить плагин который бы защитил от наездов ботнетов и подбора пароля надо. Полезный Limit Login Attempts уже устарел, я себе поставил WP Cerber https://wordpress.org/plugins/wp-cerber/
Антон, смущает малое число скачиваний) я обычно подобные модули не ставлю, т.к. в каждом из них могут быть дыры, предпочитаю более популярные решения. Тем не менее, спасибо за наводку.
Ребята, помогите, а как быть, если сайт уже атакуется и нет возможности поставить и активировать плагин, так как вообще зайти нельзя на сайт.
Виктор, первый делом просите помощи у хостера, где размещается сайт — они должны помочь. Если хотите решить вопрос самостоятельно, то в статье про защиту от Flood была парочка советов. Вкратце — закрываете доступ к админке для всех IP кроме своего.