API Hammering как способ избежать детектирования в песочнице

API Hammering как способ избежать детектирования в песочнице

Исследователи из Palo Alto Networks обнаружили образцы вредоносов Zloader и BazarLoader, использующие необычные способы реализации механизма API Hammering (от hammer — стучать, долбить). Эта техника маскировки позволяет сдержать исполнение вредоносного кода в песочнице за счет многочисленных мусорных вызовов API-функций Windows: пока они обрабатываются, зловред спит, и его намерения неясны.

Чаще всего для выполнения операции сна в контролируемой среде вредоносы, со слов экспертов, используют API-функцию Sleep. Более изощренный способ самозащиты предполагает циклическую отсылку ICMP-пакетов на какой-нибудь IP. Отправка и получение этих бесполезных пингов требуют времени, и запуск вредоносных функций в итоге происходит с задержкой.

Многие песочницы уже умеют выявлять подобные трюки, поэтому вирусописателям приходится искать другие способы, чтобы уберечь свои коды от детектирования во враждебном окружении. Одним из известных и менее распространенных способов антисэндбокса является API Hammering — использование огромного количества бессмысленных обращений к Windows API.

Загрузчик BazarLoader ранее с этой целью вызывал 1550 раз функцию printf. Новая версия, попавшая в поле зрения Palo Alto, использует длинный цикл обращений к произвольным ключам системного реестра (вполне легитимное поведение), который может повторяться произвольное число раз.

Количество итераций и список ключей реестра генерируются по месту. Зловред считывает из папки System32 первый файл подходящего размера, кодирует его, удаляя почти все нулевые байты, и вычисляет для итераций значение на основе сдвига первого нулевого байта в этом файле. Список ключей реестра тоже составляется с помощью закодированного файла — из фрагментов данных фиксированной длины.

Исследователи подчеркивают, что на разных Windows-машинах число итераций маскировочного цикла и создаваемые списки ключей реестра неодинаковы — из-за разницы в версиях ОС, наборах установленных обновлений и содержимого папки System32. Механизм API Hammering встроен в упаковщик BazarLoader и тормозит, таким образом, распаковку полезной нагрузки.

Модульный троян Zloader применяет ту же технику обхода сэндбокса, но вместо длинных повторяющихся циклов использует четыре больших подпрограммы с вложенными вызовами множества мелких процедур. Последние при выполнении обращаются к Windows API (каждая вызывает по четыре функции — GetFileAttributesW, ReadFile, CreateFileW и WriteFile). В сумме количество вводящих в заблуждение вызовов, которые генерирует зловред, превышает 1 млн, при этом его поведение схоже с легитимной программой, выполняющей файловые операции ввода-вывода.

Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

Волокна Windows позволяют выполнить вредоносный шеллкод незаметно для EDR

На проходящей в Сингапуре конференции Black Hat Asia были представлены два новых способа использования волокон Windows (fibers) для выполнения вредоносного кода. Один из них, Poison Fiber, допускает проведение атаки удаленно.

Автором обоих PoC является независимый ИБ-исследователь Даниел Джэри (Daniel Jary). По его словам, атаки Poison Fiber и Phantom Thread представляют собой улучшенные варианты opensource-разработок: они позволяют надежнее скрыть сторонний шеллкод или другую полезную нагрузку в системе, находящейся под защитой EDR.

Поддержка волокон была введена в Windows 3 и ранних версиях macOS в обеспечение многозадачной работы по упрощенной схеме. В те времена у процессоров было меньше ядер, и разделение рабочей нагрузки на потоки не всегда давало нужный эффект.

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

Для ядра ОС волокна невидимы (к планировщику заданий обращаются потоки, они и считаются исполнителями всех операций), из памяти их извлечь трудно. Подобные свойства очень привлекательны для злоумышленников: они позволяют внедрить в систему вредоносный код в обход антивирусной защиты.

Волокна и по сей день используются некоторыми процессами Windows, а также облегчают перенос приложений с других платформ. Возможность злоупотреблений проверялась неоднократно; так, в 2022 году были опубликованы PoC-методы сокрытия в волокне шеллкода и маскировки стека вызовов с помощью спящего волокна (добавлен в набор Cobalt Strike).

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

Второй PoC, созданный Джэри (Poison Fiber), перечисляет запущенные процессы Windows и фиксирует потоки, использующие волокна, а затем предоставляет возможность внедрить пейлоад или шеллкод в спящее волокно — такие всегда найдутся на стеке. Вредоносная инъекция защиту не насторожит, как случае с остановом потока, а исполнение запустит легальная программа.

«Атаки через волокна — это не повышение привилегий, не обход UAC, но доставка полезной нагрузки при этом привлекает намного меньше внимания, — пояснил исследователь для Dark Reading. — Их легко реализовать и труднее детектировать, поэтому волокна — прекрасный вариант для любого скрипт-кидди».

Публиковать другие подробности и PoC-коды Джэри пока не собирается, но советует ИБ-службам включить Windows Fibers в список потенциальных векторов атаки, а EDR-защиту постоянно проверять на готовность к новым угрозам.

Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

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