Брутфорс-атаки на WordPress через XML-RPC и способ борьбы с ними

Брутфорс-атаки на WordPress через XML-RPC и способ борьбы с ними | n-wp.ru

Разработчики WordPress в последних версиях упорно оставляют по-умолчанию активным протокол XML-RPC, причем, начиная с версии 3.5, такое поведение невозможно отключить. Я понимаю, для чего это им надо — таким образом они ангажируют использование мобильных приложений, активно использующих возможности этого протокола для постинга записей и комментариев с мобильных платформ. Конечно, это удобно, однако у XML-RPC есть и обратная — любые боты могут через файл xmlrpc.php проводить брутфорс-атаки, что и было незамедлительно применено ими.

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

Брутфорс-атаки на WordPress через XML-RPC и способ борьбы с ними

Видно лавинообразное увеличение обращений к этому файлу, которое на большинстве сайтов ничем не компенсируется. Обычно от брутфорс-атак защищают файл wp-login.php, например, с помощью популярного плагина Limit Login Attempts, пресекающего бесконечный перебор логинов и паролей. А вот про файл xmlrpc.php мало кто вспоминает, что в сочетании активным по-умолчанию протоколом XML-RPC дает взломщикам легкий способ получения доступа к сайту с помощью брутфорс-атаки.

Брутфорс-атаки на WordPress через XML-RPC и способ борьбы с ними

Я давно уже запретил в своих блогах использование XML-RPC, причем запретил полностью, вплоть до запрета обращения к файлу xmlrpc.php, о чем еще ни разу не пожалел.

Какие существуют способы защиты от брутфорс-атак на файл файл xmlrpc.php? Можно, а в большинстве случаев и нужно отключить протокол XML-RPC. Это можно сделать с помощью плагинов или вручную, внедрив коды в конфигурационные файлы.

Плагины

Полностью отключить использование этого протокола могут несколько плагинов:

  • WordPress XML-RPC Admin — плагин отключает протокол XML-RPC одним кликом.
  • Disable XML-RPC — просто отключает протокол при активации плагина.
  • Disable XML-RPC & Unset X-Pingback — вариант предыдущего плагина, не только запрещающего использование XML-RPC API, но и удаляет http-заголовок, передающий адрес файла xmlrpc.php.
  • Disable XML RPC Fully — плагин, аналогичный первым двум.
  • Disable XML-RPC Pingback — плагин, отключающий систему оповещений протокола XML-RPC.

Коды

Если вы не хотите использовать плагины, то запретить протокол XML-RPC можно вручную.

В файле .htaccess запретить прямой доступ к файлу xmlrpc.php:


  Satisfy any
  Order allow,deny
  Deny from all

Отключить протокол может настройка файла wp-config.php. После строчки

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

нужно вставить

add_filter('xmlrpc_enabled', '__return_false');

Отключить систему уведомлений, передаваемый через XML-RPC можно, если добавить в файл functions.php используемой вами темы следующий код:

function remove_x_pingback($headers) {
    unset($headers['X-Pingback']);
    return $headers;
}
add_filter('wp_headers', 'remove_x_pingback');

Надеюсь, что приведенные способы защиты от брутфорс-атак через XML-RPC сделают ваш сайт более защищенным.

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

1 Kомментарий

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

Ваш электронный адрес не будет опубликован.


*