DDoS-атаки стали обычным делом в последнее время. Для генерации флуда используются различные методы, иногда весьма креативные. Компания Sucuri рассказывает об одном таком случае, когда в атаке участвовали более 162 000 сайтов WordPress с включенным протоколом вызова удаленных процедур XML-RPC (который активирован по умолчанию).

В данном случае сайты генерируют поток запросов Layer 7. Каждый из них способен отправлять сотни тысяч запросов в секунду. В логах наблюдается следующая картина.

74.86.132.186 - - [09/Mar/2014:11:05:27 -0400] "GET /?4137049=6431829 HTTP/1.0" 403 0 "-" "WordPress/3.8; http://www.mtbgearreview.com"
121.127.254.2 - - [09/Mar/2014:11:05:27 -0400] "GET /?4758117=5073922 HTTP/1.0" 403 0 "-" "WordPress/3.4.2; http://www.kschunvmo.com" 
217.160.253.21 - - [09/Mar/2014:11:05:27 -0400] "GET /?7190851=6824134 HTTP/1.0" 403 0 "-" "WordPress/3.8.1; http://www.intoxzone.fr" 
193.197.34.216 - - [09/Mar/2014:11:05:27 -0400] "GET /?3162504=9747583 HTTP/1.0" 403 0 "-" "WordPress/2.9.2; http://www.verwaltungmodern.de"
.. 

Как можно заметить, все запросы содержат случайное значение (как “?4137049=643182″), чтобы пробить кэш и форсирорвать полную загрузку страницы каждый раз. Такая атака довольно быстро выводит сервер из строя. Самое интересное, что все запросы идут от нормальных сайтов WordPress.

162 тысячи — лишь небольшая часть сайтов WordPress, подверженных уязвимости XML-RPC. Теоретически, можно сделать ботнет и большего размера, считают в Sucuri. Чтобы проверить свой сайт на участие в DDoS-атаке, нужно поискать в логах POST-запросы к файлу XML-RPC или пройтипроверку в онлайне по базе сайтов, замеченных в таких атаках.

Для предотвращения нецелевого использования своего сайта специалисты рекомендуют прописать в шаблон следующий код.

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

By Ruslan Novikov

Интернет-предприниматель. Фулстек разработчик. Маркетолог. Наставник.