Специалисты по защите от DDoS из компании Imperva столкнулись с необычной атакой. Ее авторы использовали легитимную опцию HTML5 — команду ping, чтобы заставить браузеры посетителей сайта создавать и направлять на мишени мусорный поток интенсивностью до 7,5 тыс. запросов в секунду.
Атрибут ping позволяет владельцам сайтов отслеживать переходы по ссылкам и определять уровень обращений к различному контенту — например, рекламным окнам — или другим страницам в Интернете. (Этой же цели служит переадресация HTTP и JavaScript.)
Чтобы получить пинг-сигнал, в HTML-тэг <a> включается переменная ping=»». В этом случае при переходе по ссылке браузер вначале подает POST-запрос на URL пинга, а затем открывает целевую страницу или сайт. Запрос включает заголовки Ping-From и Ping-To (с URL в качестве значения), а тип содержимого указан как text/ping. DDoS-атака, зафиксированная Imperva, проводилась с помощью именно этого механизма.
Как удалось определить, большая часть мусорного потока исходила с территории Китая — его создавали тысячи подневольных смартфонов с установленным QQBrowser разработки Tencent. В ходе атаки исследователи насчитали около 4 тыс. IP-адресов — источников вредоносного трафика, с которых за четыре часа было суммарно подано порядка 70 млн ping-запросов. Примечательно, что значения в заголовках Ping-From и Ping-To всех запросов были одинаковыми.
Анализ страницы по этой ссылке показал, что она загружает два JavaScript-файла — ou.js и yo.js. Первый содержит список атакуемых сайтов (в основном игровых), второй создает для каждого пинг-URL и активирует эту ссылку, инициируя отправку запроса на сайт-мишень. Данный сценарий отрабатывает ежесекундно — до тех пор, пока посетитель не покинет страницу.
Судя по строке User-Agent, пользователей мобильных устройств заманивали на вредоносную страницу в основном через WeChat. Для открытия ссылок в сообщениях этот клиент использует дефолтный браузер, а QQBrowser очень популярен в Китае, и владельцы смартфонов охотно используют его по умолчанию. Исследователи подчеркнули, что подобную DDoS-атаку можно провести с использованием и других браузеров, поддерживающих ping.
Во избежание злоупотреблений оператор сайта может заблокировать пинг-запросы на уровне сетевого экрана. Владельцы большинства браузеров в настоящее время имеют возможность деактивировать ping, если его поддержка включена по умолчанию, — как в Chrome, Edge, Safari и Opera. К сожалению, производители этих браузеров недавно приняли решение убрать опцию отключения трекинга, и это уже вызвало опасения, что подобный шаг грозит потерей приватности.
В Firefox и Brave поддержка ping по умолчанию отключена, и, насколько известно, изменений здесь не предвидится. Стоит также отметить, что пингбэк не первый раз используется для проведения DDoS-атак. Подобная опция предусмотрена в WordPress (она работает по протоколу вызова удаленных процедур XML-RPC), и несколько лет назад злоумышленники уже пытались задействовать ее в атаках на сайты, притом не без успеха.
Атрибут ping позволяет владельцам сайтов отслеживать переходы по ссылкам и определять уровень обращений к различному контенту — например, рекламным окнам — или другим страницам в Интернете. (Этой же цели служит переадресация HTTP и JavaScript.)
Чтобы получить пинг-сигнал, в HTML-тэг <a> включается переменная ping=»». В этом случае при переходе по ссылке браузер вначале подает POST-запрос на URL пинга, а затем открывает целевую страницу или сайт. Запрос включает заголовки Ping-From и Ping-To (с URL в качестве значения), а тип содержимого указан как text/ping. DDoS-атака, зафиксированная Imperva, проводилась с помощью именно этого механизма.
Как удалось определить, большая часть мусорного потока исходила с территории Китая — его создавали тысячи подневольных смартфонов с установленным QQBrowser разработки Tencent. В ходе атаки исследователи насчитали около 4 тыс. IP-адресов — источников вредоносного трафика, с которых за четыре часа было суммарно подано порядка 70 млн ping-запросов. Примечательно, что значения в заголовках Ping-From и Ping-To всех запросов были одинаковыми.
Анализ страницы по этой ссылке показал, что она загружает два JavaScript-файла — ou.js и yo.js. Первый содержит список атакуемых сайтов (в основном игровых), второй создает для каждого пинг-URL и активирует эту ссылку, инициируя отправку запроса на сайт-мишень. Данный сценарий отрабатывает ежесекундно — до тех пор, пока посетитель не покинет страницу.
Судя по строке User-Agent, пользователей мобильных устройств заманивали на вредоносную страницу в основном через WeChat. Для открытия ссылок в сообщениях этот клиент использует дефолтный браузер, а QQBrowser очень популярен в Китае, и владельцы смартфонов охотно используют его по умолчанию. Исследователи подчеркнули, что подобную DDoS-атаку можно провести с использованием и других браузеров, поддерживающих ping.
Во избежание злоупотреблений оператор сайта может заблокировать пинг-запросы на уровне сетевого экрана. Владельцы большинства браузеров в настоящее время имеют возможность деактивировать ping, если его поддержка включена по умолчанию, — как в Chrome, Edge, Safari и Opera. К сожалению, производители этих браузеров недавно приняли решение убрать опцию отключения трекинга, и это уже вызвало опасения, что подобный шаг грозит потерей приватности.
В Firefox и Brave поддержка ping по умолчанию отключена, и, насколько известно, изменений здесь не предвидится. Стоит также отметить, что пингбэк не первый раз используется для проведения DDoS-атак. Подобная опция предусмотрена в WordPress (она работает по протоколу вызова удаленных процедур XML-RPC), и несколько лет назад злоумышленники уже пытались задействовать ее в атаках на сайты, притом не без успеха.