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

 

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

Автор: admin от 31-08-2017, 17:31, посмотрело: 106

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



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



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



Детали атаки



Первые следы ботнет WireX оставил 2 августа в виде атак, которые в то время оставались незамеченными. Обнаружить их удалось, когда исследователи начали поиск записей User-Agent, состоящих из 26 символов в журналах. Первоначальные атаки были минимальными и вероятно, что вредоносное ПО находилось в разработке или на ранних этапах развертывания. Более длительные атаки были выявлены начиная с 15 августа, при этом в некоторых участвовало как минимум 70 000 IP-адресов (рисунок 1).



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



Как остановить DDoS-атаку + анализ кода WireX Botnet
Рисунок 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 Botnet

Рисунок 2: Скриншот поисковой выдачи с аналогичными вредоносными программами.



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



Мы идентифицировали приблизительно 300 приложений, связанных с проблемой, и заблокировали их в Play Маркет. Мы в процессе удаления их со всех заражённых устройств. Выводы исследователей в сочетании с нашим собственным анализом позволили нам лучше защитить пользователей Android .


Обзор вредоносных программ



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



Приложения с функциями участия в DDoS-атаках были доброкачественными для пользователей, которые их установили. Эти приложения также пользовались функциями сервисной архитектуры Android, позволяющей приложениям использовать системные ресурсы, даже находясь в фоновом режиме. Таким образом, атаки могли быть запущены, когда приложение не используется. В настоящее время антивирусы распознают эту вредоносную программу как троян «Android Clicker», но она не имеет ничего общего с мошенничеством на кликах. Вероятно, это вредоносное ПО было связано с подобным мошенничеством, но было перепрофилировано для DDoS-атак.



Анализ вредоносных программ



При проверке различных декомпилированных приложений было обнаружено несколько поддоменов одного корневого домена (axclick.store), которые, как предполагалось, были частью command and control (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 OK и, по-видимому, использовался для тестирования подключения к Интернету.



Второй домен (g [.] Axclick [.] Store) оказался связанным с DDoS-компонентами вредоносного ПО. Компонент приложения, ссылающийся на этот домен, отвечал за создание службы Android, оснащенной двумя экземплярами WebView. Android позволяет создать собственное окно для просмотра веб-страниц или даже создать свой клон браузера при помощи элемента WebView. Первый экземпляр WebView служил в качестве маяка, опрашивая сервер C2 для получения директив атаки. Второй служил ссылкой для клонирования WebView с целью атаки. Этот компонент также содержит логику для настройки этих атакующих экземпляров.



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



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



ServiceRunner



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



Псевдокод 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>


Пример команды к атаке



Значение, извлеченное из тега title, затем проверяется с помощью 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 Service

[code]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защите от DDoS, смогут узнать гораздо больше и минимизировать негативные последствия.



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





Источник: Хабрахабр

Категория: Программирование, Android

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

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *