Исследователи в области безопасности раскрыли недавнюю DDoS-атаку, в которой использовались порядка 162,000 WordPress-сайтов для «выключения» другого сайта (адрес которого по понятным причинам не называется).
Методика позволяла злоумышленникам, обладающим скромными ресурсами, заметно расширить свою пропускную полосу путем подключения к атаке сайтов на WordPress, владельцы которых обычно ничего не подозревали. Передавая spoof-запросы, которые выглядели так, будто они пришли с целевого сайта, атакующий получал возможность подключить WordPress-серверы к «бомбардировке» цели крупными объемами трафика, превышающими те, которые она могла обработать. Помимо того, что в атаке было задействовано такое огромное количество посторонних сайтов, сама атака отличалась ориентацией на XML-RPC — протокол, который сайты на WordPress и другие веб-приложения используют для реализации различных сервисов: уведомлений, обратных ссылок, удаленного доступа и т.д.
Исследователи из компании Sucuri недавно насчитали более 162 000 сайтов на WordPress, которые атаковали один веб-сайт. Исследователи полагают, что количество сайтов в перспективе только бы выросло, если бы сотрудники Sucuri не завершили атаку путем блокировки запросов.
«Вы видели, насколько мощной может быть такая атака?», отметил технический директор Sucuri Daniel Cid в своей записи, опубликованной в понедельник. «Один атакующий может использовать тысячи популярных и проверенных сайтов WordPress, чтобы провести DDoS-атаку, оставаясь в тени, и все это происходит из-за простого pingback-запроса к XML-RPC файлу».
Вот цитата из статьи Дэниела:
«Любой WordPress-сайт с включенным протоколом XML-RPC (который включен по умолчанию) может использоваться в DDoS-атаках против других сайтов. Сам по себе протокол используется для обратных ссылок, уведомлений, удаленного доступа через мобильные устройства и для многих других особенностей, которые, скорее всего, вы давно успели полюбить. Но, как вы видите, его можно использовать и с другими, не самыми лучшими намерениями»
Результат: на целевой сайт обрушивается поток из сотен запросов в секунду. Сотни запросов в секунду, возможно, звучит не так ужасно, особенно по сравнению с недавними атаками, некоторые из которых достигали объемов примерно 400 гигабит в секунду. Важно помнить, что XML-RPC трафик направлен на уровень 7 (прикладной уровень) целевого сайта, который обрабатывает HTTP, FTP, DNS и некоторые другие коммуникационные протоколы. Большая часть DDoS-техник направляет потоки трафика на более низкие уровни – обычно на уровень 3 (сетевой уровень). Атаки на уровень 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
Все запросы содержали в себе случайное значение (как, к примеру, “?4137049=643182?), которое позволяло обойти кэширование и приводило к полной перезагрузке страницы. В итоге сервер выходил из строя достаточно быстро.
Запись в блоге Cid’а содержит в себе массу полезной информации по DDoS-атакам, которые используют протокол XML-RPC. Также в статье представлен сканер, позволяющий проверить, был ли замечен определенный Web-адрес в атаке, блокированной Sucuri. Дэниел также предлагает инструкции, с помощью которых владельцы сайтов WordPress могут защититься от выполнения таких типов атак. Метод включает в себя добавление следующего кода в тему:
add_filter( ‘xmlrpc_methods’, function( $methods ) { unset( $methods['pingback.ping'] ); return $methods; } );
Cid ничего не говорит о том, будут ли какие-либо негативные последствия для владельцев сайтов от добавления фильтра. Поскольку XML-RPC обеспечивает полезную и необходимую функциональность, читатели должны обязательно рассмотреть все «за и против» перед тем, как сделать такие изменения на рабочем сервере.
Атаки через WordPress – это лишь одна из техник, имеющихся в растущем арсенале средств DDoS. Часто в DDoS-атаках участвуют целые ботнеты, состоящие из WordPress-серверов, что уже происходило в богатой истории WP.
Источники: arstechnica.com, www.indexwp.com
Вот бы использовать весь этот ум и талант в конструктивном направлении… Хотя для некоторых это всего лишь игра, а для других серьёзный бизнес.
Порой мне кажется, что эти люди не вполне психически здоровы.
Аналогично думаю. Вот совсем недавно на одном из серверов по Warcraft, который поддерживается энтузиастами, провели DDoS-атаку. Причем провела команда хакеров, которые прикрываются вывеской Anonymous. Причина была одна — один из администраторов не вполне адекватен в своих действиях, злоупотребляет полномочиями и банит просто так людей. Хакеры потребовали сместить этого админа, а владельцы сервера отказались это делать. В итоге уже недели две сервер лежит, играть практически нереально. Причем сами хакеры объясняют это «борьбой за права игроков». И пофигу, что в итоге простые игроки, которые жертвовали даже свои средства, не могут теперь играть.
А разве не делает то же самое отключение опций «Пытаться оповестить блоги, упоминаемые в статье» и «Разрешить оповещения с других блогов (уведомления и обратные ссылки)» в настройках блога, на странице «Параметры — Настройки обсуждения»? Обязательно этот код добавлять или достаточно отключить эти опции?
Хм, про опции не видел упоминаний. Скорее всего, простым отключением опций тут не обойтись.
А уязвимость то старая — perishablepress.com/wordpress-xmlrpc-pingback-vulnerability
Мне понравилась идея блокировать доступ к файлу xmlrpc.php через htaccess. Думаю это более универсальный метод, который будет работать на всех шаблонах и подблогах. Ведь после смены шаблона можно забыть отключить пингбеки.
Ну, относительно старая, я бы так сказал) Первый коммент датирован 10 февраля. Но вообще да, уязвимость известная.
А много ли таких старых уязвимостей в WP?
В основном они быстро исправляются новыми версиями. На данный момент из известных — только эта.