В начале текущего месяца веб-сайт одного из клиентов ИБ-компании Sucuri лег под мощной DDoS-атакой, в которой было задействовано более 162 тыс. «популярных и чистых» WordPress-сайтов. Чтобы заставить этих посредников работать на себя, атакующие использовали пингбэк-механизм этой системы управления контентом.

Хотя случаи аналогичных злоупотреблений нередки, команда WordPress вряд ли будет когда-нибудь латать эту лазейку. Пингбэк — дефолтная опция данной CMS, а не дефект, поэтому решать проблему возможных абьюзов приходится самим разработчикам сайтов.

Атакующие использовали ряд веб-сайтов с включенным пингбэком, который работает по протоколу вызова удаленных процедур XML-RPC и значительно облегчает процесс создания перекрестных ссылок между блогами. По словам Дэниела Сида (Daniel Cid), технического директора Sucuri, DDoS-атака была проведена на уровне 7 (приложений) и обернулась многочасовым HTTP flood, в ходе которого на атакуемый сервер поступали сотни запросов в секунду.

Эксперт отмечает, что такие атаки труднее детектировать: все обращения выглядят так, будто поступают с легитимных ресурсов. В данном случае это оказалось правдой, все 162+ тыс. легитимных веб-сайтов подавали на сервер «произвольные запросы в очень большом объеме». Каждый POST-запрос при этом содержал случайное значение, что позволяло обойти кэш и из раза в раз вызывать полную загрузку страницы. «Мы бы, наверное, обнаружили намного больше сайтов, — признается Сид, — однако решили, что увиденного достаточно, и заблокировали запросы на пограничном экране, чтобы не забивать логи мусором».

«Участником DDoS-атак на другие сайты может стать любой WordPress-сайт с активным пингбэком (который по умолчанию включен), — предупреждает руководитель Sucuri. — Атакующий может задействовать тысячи популярных и чистых WordPress-сайтов, оставаясь при этом в тени, а виной всему будет простой пингбэк-запрос».

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

93.174.93.72 – – [09/Mar/2014:20:11:34 -0400]

POST /xmlrpc.php HTTP/1.0″ 403 4034 “-” “-” “POSTREQUEST:\x0A\x0Apingback.ping\x0A\x0A\x0A\x0Ahttp://сайтмишень.домен/?1698491=8940641\x0A\x0A\x0A\x0A \x0A вашсайт.домен\x0A \x0A \x0A\x0A\x0A”

 94.102.63.238 – – [09/Mar/2014:23:21:01 -0400]

“POST /xmlrpc.php HTTP/1.0″ 403 4034 “-” “-” “POSTREQUEST:\x0A\x0Apingback.ping\x0A\x0A \x0A \x0A http://www.сайтмишень.домен/?7964015=3863899\x0A \x0A \x0A \x0A \x0A вашсайт.домен\x0A \x0A \x0A\x0A\x0A”

Можно также воспользоваться скан-сервисом, специально запущенным Sucuri. Кстати, вслед за неназванным клиентом этой компании злоумышленники аналогичным образом атаковали блог известного журналиста и исследователя Брайана Кребса. По его словам, в этой DDoS приняли невольное участие свыше 42 тыс. WordPress-сайтов, так что запущенная злоумышленниками кампания еще не окончена.

Если вы обнаружили, что ваш сайт тоже используется в текущих DDoS-атаках, эксперты рекомендуют создать API-фильтр, прописав в шаблон следующий код:

add_filter( ‘xmlrpc_methods’, function( $methods ) { unset( $methods[‘pingback.ping’] ); return $methods; } );

Отключать пингбэк-функцию путем удаления xmlrpc.php не рекомендуется, так как встанут и другие механизмы, использующие данный API.

Категории: DoS-атаки