Ботнет, атаковавший Южную Корею, выводит из строя зомби-машины после их использования

Ботнет, атаковавший Южную Корею, выводит из строя зомби-машины после их использования

На прошлой неделе десятки правительственных сайтов Южной Кореи подверглись DDoS-атакам. Сами по себе нападения, нацеленные на отказ в обслуживании, сегодня уже никого не удивляют, однако каждый раз что-то интересное обнаруживается в 'сопутствующих' материалах; вот и теперь исследовательская лаборатория McAfee, вскрыв бот-клиент, который использовался для направления и координации потоков мусорных запросов, нашла в нем разрушительную начинку.



Эксперт компании Георг Вичерски рассказал о находке в корпоративном блоге еще в понедельник, однако зарубежные СМИ отреагировали лишь несколько дней спустя. Тем не менее, лучше поздно, чем никогда: сообщить об опасном коде важно, поскольку он характеризуется высоким уровнем деструктивности и нацелен на необратимую порчу данных, хранящихся на инфицированном компьютере.


Итак, согласно блог-записи, после установки в систему бот-клиент создает файл noise03.dat, куда записывает отметку о дате / времени заражения, а также количество дней, которое отведено компьютеру. Оператор вредоносной сети может увеличить последний параметр с помощью особых команд, но общая продолжительность "срока дожития" не может превышать 10 дней. Как только время истечет, будет запущен деструктивный функционал:
- первые секторы всех физических жестких дисков перезаписываются нулями (т.е. уничтожается MBR),
- все файлы, хранящиеся на дисках, просматриваются и тоже перезаписываются нулями, если их расширения совпадают с указанными в специальном списке. Список невелик, но содержателен: в него входят популярные форматы документов (doc, docx, docm, xls, xlsx, pdf, eml) и файлов данных для некоторых языков программирования (c, cpp, h, java).
Любопытно, что разработчики бот-клиента предусмотрели даже защиту от перевода системной даты: если установить день, предшествующий моменту инфицирования, то разрушительные процедуры будут запущены немедленно.


Есть у ботнета и другая особенность: он обладает двухуровневой системой контрольных серверов, почти равномерно распределенных по всему миру. Серверы первого уровня указаны в файле конфигурации, который может обновляться оператором вредоносной сети; при обращении к ним инфицированный компьютер получает список серверов второго уровня, от которых уже поступают конкретные инструкции. Секторная диаграмма географического расположения контрольных точек ботнета, построенная аналитиками McAfee, говорит сама за себя.



(изображение из первоисточника blogs.mcafee.com. Щелкните для увеличения...)


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


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


McAfee

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

Этот механизм, пришедший на смену webRequest API, позволяет расширениям сообщать браузеру, что следует изменить или заблокировать на загружаемой странице (заголовки, реклама, трекеры).

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

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

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

RSS: Новости на портале Anti-Malware.ru