CloudFlare представляет из себя популярный CDN-сервис поддержки веб-сайтов и включает в себя различные виды обслуживания, такие как, ускорение загрузки веб-страниц для конечного пользователя, функции обеспечения безопасности, например, anti-DDoS. Мы обнаружили вредоносную программу — Win32/DoS.OutFlare.A, которая нацелена на обход этого сервиса с целью осуществления DoS-атак на сайты, которые находятся под контролем CloudFlare. Наш анализ посвящен Win32/DoS.OutFlare.A.
Поведение вредоносного кода особенно ничем не примечательно. На старте он пытается создать мьютекс Globalsad_day, как свидетельство своего пребывания в системе. В случае успеха, он копирует себя в каталог %APPDATA%, добавляет себя в автозапуск и перезапускается. После этого OutFlare запускает копию процесса браузера Internet Explorer — iexplore.exe в приостановленном состоянии (suspend) и осуществляет внедрение в него своей полезной нагрузки.
Рис. CloudFlare выполняет важные задачи в отдельных потоках.
Перед подключением к своему управляющему C&C серверу, вредоносный код выполняет три теста для измерения скорости исходящей загрузки, используя публичные сервисы www.speakeasy.net и сохраняет эти результаты в памяти. После этого, бот подключается к IRC-серверу, используя TCP-порт 9835 и канал #main. На этом этапе бот будет находится в состоянии Idle, ожидая команды со стороны сервера. Большинство из этих команд относятся к DoS-атакам. Одна из них — “cf”, особенно интересна. Эта команда отвечает за реализацию обхода anti-DDoS механизма CloudFlare на стороне клиента.
Рис. Список команд, поддерживаемых ботом.
Сервис CloudFlare использует специальный метод, направленный на предотвращение DDoS-атак. В такой системе клиент должен выполнить некоторые условия при доступе к сайту, находящемуся под контролем CloudFlare, который в свою очередь должен быть уверен, что запрос является легитимным и поступает именно от браузера пользователя. Сервис просит браузер выполнить спецальный Java-скрипт, представляющий из себя математическое выражение, при этом визуально, проверка со стороны CloudFlare для пользователя выглядит как на рисунке ниже:
Страница содержит специальную форму POST-запроса, который будет использован для отправки ответа серверу. Сразу же под этой формой располагается фрагмент кода на Javascript, который подсчитывает математическое выражение и выполняет POST-запрос из предыдущей формы.
Рис. Форма POST HTTP-запроса.
Рис. Подсчет математического выражения.
Веб-браузер пользователя будет исполнять этот Javascript и выполнит HTTP POST-запрос, который будет выглядеть как на скриншоте ниже. В этом отправленном серверу ответе, будет содержаться рассчитанное значение математического выражения.
Если выражение было рассчитано верно, сервис CloudFlare ответит установкой специальных cookie, подтверждающих подключение к серверу. Ссылки на этот cookie в дальнейших запросах, в течении этого открытого сеанса работы с сервером, приведут к тому, что CloudFlare будет отправлять запрос к серверу напрямую, минуя специальную проверку.
Win32/DoS.OutFlare.A содержит функционал, который направлен на обход этого защитного механизма. Он анализирует часть кода веб-страницы и ищет совпадения по необходимой части функционала JS CloudFlare. После того, как необходимые параметры были идентифицированы, вредоносный код рассчитывает математическое выражение и отправляет его на сервер для получения необходимого cookie, который необходим для проведения DDoS-атаки на реальный веб-сервер.
Рис. Извлечение выражения, которое необходимо вычислить.
Рис. Расчет выражения.
Автор: esetnod32