Daniel Bohannon на KazHackStan: как атаки становятся детекциями

На форуме KazHackStan выступил Daniel Bohannon, Principal Threat Researcher, с докладом «Developing Resilient Detections (with Obfuscation & Evasion in Mind)». Его лекция стала одной из самых обсуждаемых: яркие примеры из практики, живые истории и неожиданные инсайты о том, как мир атак и защит меняется буквально на глазах.

Один из самых сильных моментов выступления — рассказ о том, как собственный инструмент Bohannon по обфускации PowerShell-кода (Invoke-Obfuscation) спустя всего пару месяцев после релиза начали использовать реальные APT-группировки.

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

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

Вторая история — про открытие коллеги Bohannon, Кейси Смита. Тот обнаружил, что стандартная утилита Windows Regsvr32.exe в сочетании с компонентом SCROBJ.DLL может использоваться для загрузки удалённых скриптов без записи файлов на диск.

Кейси пошутил об этом в Twitter утром, а уже через несколько часов техника, прозванная «Squiblydoo», фиксировалась в реальных атаках.

«От открытия до эксплуатации в дикой природе прошло меньше дня», — подчеркнул Bohannon.

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

Bohannon детально разобрал механику атаки через Regsvr32:

  1. Запуск команды с Regsvr32 и SCROBJ.DLL.
  2. Загрузка удалённого .sct-файла.
  3. Исполнение JavaScript-кода внутри SCT.
  4. Дальнейшие вредоносные действия.

На первый взгляд — ничего криминального: файлов почти не создаётся. Но при этом остаются артефакты: Event Logs, Prefetch, ShimCache, Sysmon.

Главный урок: даже «безфайловые» техники оставляют следы, и задача защитника — знать, где именно их искать.

Bohannon поделился целым набором трюков, которые используют злоумышленники для обхода детекций:

  • Сокращённые флаги и токены: многие бинарники Windows принимают урезанные варианты (-u0, -u1 и т.д.). Атакующие играют на этом, чтобы ломать простые регулярные выражения.
  • Unicode-символы: дефис может оказаться не обычным -, а похожим на него символом из другой кодировки. Визуально одно и то же, но для детекций — разные вещи.
  • Вставка специальных символов: «разрывание» токенов с помощью необычных символов делает сигнатуры бесполезными.

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

Bohannon предложил несколько практических подходов, которые работают даже против таких хитростей:

  • искать характерные Base64-субстримы, а не пытаться декодировать весь массив данных;
  • использовать устойчивые маркеры — например, заголовки/хвосты закодированных JScript и VBScript;
  • анализировать не только сам процесс, но и его родительское окружение: цепочку «веб-сервер → PowerShell → Regsvr32» не видно, если смотреть только на последний процесс;
  • строить семейные деревья процессов, а не отдельные правила под каждый бинарь.
«Не ищите только имя процесса; думайте о семье процессов и их аргументах», — напомнил эксперт.

Заканчивая выступление, Daniel Bohannon сделал акцент на том, что киберзащита — это не только технологии, но и креативность. Он назвал свои эксперименты «IQ-вопросами»: «А что, если этот процесс внезапно откроет нетипичный порт? А что, если PowerShell выполнит странный аргумент?».

Даже простое правило может стать источником открытия, если правильно поставить вопрос.

«Перфекционизм — враг прогресса. Главное — пробовать и экспериментировать», — подчеркнул он.

Выступление Bohannon стало для аудитории KazHackStan настоящим мастер-классом по киберзащите. Истории из практики — от Invoke-Obfuscation до Regsvr32 — показали, как быстро меняется мир угроз. А советы по построению устойчивых детекций напомнили: успех защиты зависит не только от инструментов, но и от способности мыслить шире, чем атакующий.