Начнем с названия статьи: довольно компрометирующее, не правда ли? Звучит так, будто мы предоставляем злоумышленникам гайд для успешного сокрытия хакерских атак в сети... Но все не так просто! Ни для кого не секрет, что сеть — это основа инфраструктуры компании, а хакеры пытаются скрыться в ней с помощью разных способов обхода средств анализа трафика. Именно поэтому важно использовать лучшие практики для обеспечения ее безопасности.
Прежде чем говорить о самих средствах анализа сетевого трафика, нужно понять, какой он вообще бывает. Можно построить аналогию «Пирамиды боли» — назовем ее «Пирамида технологий анализа сетевого трафика». Пойдем снизу вверх, увеличивая сложность технологий и их гибкость:
- Анализ по репутационным спискам — на основе встречающихся в трафике опасных индикаторов (хеши, домены, IP-адреса, порты).
- Сигнатурный анализ — сетевые правила на встречаемость в трафике определенных байтов, их последовательностей, длин, связей и других отличительных особенностей.
- Файловый анализ — изучение поведения файлов, генерирующих определенный трафик или присутствующих в нем (например, с помощью песочниц).
- Поведенческий анализ:
- нечеткий поиск (подходит для определения не только одинаковых, но и приблизительно совпадающих данных);
- скриптовые модули (позволяют реализовать дополнительный функционал обработки и анализа трафика, который нельзя провести в сигнатурных правилах);
- профилирование (процесс выделения поведенческих паттернов профиля эндпоинтов для более качественного наблюдения и отслеживания аномальной активности);
- ML-решения.
Ниже мы будем рассматривать разные техники хакеров в формате диалога: Мустангер будет отвечать за сторону атакующих и расскажет об изощренных способах обхода СЗИ, а Ксения покажет нюансы обнаружения и детектирования для каждого из них.
Мимикрия под легитимные коммуникации
Мустангер: Злоумышленники часто используют разные техники мимикрии, самая распространенная — TLS-мимикрия. Можно реализовать самописный TLS-протокол, который якобы является настоящим, то есть все рукопожатия, шифрование и т. д. будут проходить как в оригинале.
Ксения: Сливаясь с общим трафиком, мимикрия помогает обходить решения, в которых недостаточно глубоко разобраны определенные протоколы или реализовано распознавание отдельных приложений. Однако ее все-таки можно вычислить: мимикрия, в отличие от подлинного трафика, содержит инородные байты (поля в передаваемых данных). В качестве примера возьмем Toneshell backdoor (см. рис. 2).
Перечислю основные технологии, которые помогут вычислить мимикрию: механизм глубокого разбора протоколов и приложений; поиск зависимостей с помощью анализа данных и ML-решений; функционал профилирования трафика (выделение паттернов поведения пользователя для поиска аномалий и подозрительной активности); использование дополнительных скриптовых модулей, основанных на сочетании нескольких типов анализа. Однако при качественном разборе структуры трафика, которую используют злоумышленники, мимикрию можно покрывать и сигнатурно (для конкретных семейств вредоносов).
Стеганография
Мустангер: Достаточно распространенная практика — внедрение команд и данных в медиафайлы (изображения, аудио, видео). Рассмотрим способы сокрытия информации на примере фотографий:
- Метод наименее значимого бита — визуально фото не меняется, но из его содержимого можно извлечь информацию. Плюсы: неизменность визуальной составляющей, простой алгоритм встраивания и извлечения информации.
- Маскировка (фильтрация) — в этом случае визуальная составляющая фотографии незначительно меняется (добавляются шумы или текстуры). Плюсы: можно скрыть большие объемы информации.
- Сокрытие информации в метаданных — информация встраивается в метаданные, чаще всего EXIF. Это могут быть данные о месте съемки, дате, времени, модели фотоаппарата, параметрах оптики и т. д.
Ксения: Как и мимикрия, стеганография вносит изменения в данные — это позволяет средствам анализа трафика обнаруживать вредоносное вмешательство. Например, можно найти пакеты с передаваемыми файлами, в которых есть несоответствие изначально передаваемому типу данных. Недавно мы с коллегами разбирали атаку SteganoAmor, где злоумышленники запрашивали у сервера картинку, а в ответ отправляли исполняемый VB-скрипт с вредоносным кодом (см. рис. 3).
Проверку на несоответствие типов файлов и анализ аномального внутреннего содержимого могут выполнять: механизмы сигнатурного и поведенческого анализа; средства анализа данных; дополнительные скриптовые модули; а также инструменты статического и динамического анализа файлов (с помощью интеграции с песочницами и другими средствами защиты).
DNS-туннелировани
Мустангер: Для сокрытия сетевого взаимодействия в C2 можно реализовать коммуникацию через DNS-туннели. Это позволит обойти некоторые меры безопасности и создать скрытые каналы связи между зараженной машиной и C2-сервером. При такой реализации атаки полезные данные внедряются в домен третьего уровня или выше. Например, payload.site.com, где payload — команда или данные.
Ксения: Среди основных методов проактивного обнаружения подобных техник можно выделить: поиск аномалий в байтах DNS-трафика, анализ числа запросов и промежутков между ними, а также поиск самих запрашиваемых ресурсов по базам индикаторов компрометации. При этом поиском аномалий занимаются ML-решения, средства профилирования и поведенческого анализа трафика. Хотя известные туннели можно обнаруживать и сигнатурно.
Нетипичные новые протоколы
Мустангер: С появлением новых протоколов для обхода региональных ограничений злоумышленники начали использовать в C2-реализациях разные методы сокрытия и обфускации трафика. Например, тот же Sliver может работать по протоколу WireGuard, что затрудняет его анализ.
Ксения: Компаниям нужно оперативно разбирать новые и неизвестные протоколы. Например, недавний бэкдор GTPDOOR использовал уникальную структуру построения сетевого пакета и взаимодействия с управляющим сервером — такое сигнатурными правилами обнаружить сложно (см. рис. 4).
При обнаружении нетипичного поведения в трафике (когда его нельзя классифицировать одним из известных протоколов) средства защиты уведомляют пользователей о подозрительной коммуникации. Такие аномалии можно задетектить с помощью нечеткого поиска и биграмм, однако лучше разобрать трафик на уровне кода и проверить на предмет особенностей, характерных для тех или иных протоколов.
DoS очередей обработки контента
Мустангер: Чтобы усложнить процесс анализа трафика, злоумышленники могут вызвать отказ в обслуживании СЗИ. Для этого они используют следующие подходы:
- Фейковые множественные соединения — позволяют ослепить средства защиты. Это может привести к существенному повышению нагрузки на СЗИ или даже к отказу в обслуживании.
- Контент с положительным срабатыванием регулярных выражений — можно генерировать сетевые пакеты, которые соответствуют правилам положительного захвата регулярных выражений. Это может привести к замедлению СЗИ или к DoS.
- Сложные данные — для замедления средств защиты можно использовать сложно парсящиеся данные.
- Длинные сессии с долгими ответами — позволяют замедлить обработку запросов и ускользнуть от обнаружения. Например, это может быть фоновый шум в сети.
Ксения: Для обнаружения DoS необходимо задействовать дополнительный функционал средств анализа трафика. К примеру, специальные модули, которые позволяют снять нагрузку с сервера. Отмечу, что отражение DoS-атак — задача скорее разработчиков, а не аналитиков.
Взаимодействие с легитимными сервисами
Мустангер: Для сокрытия сетевого взаимодействия можно использовать и экзотику. Например, комментарии под видео на YouTube, заметки на Pastebin и т. д. Одна из новых техник — использование сервера совместной разработки VS Code Server. Плюс данного подхода в том, что все коммуникации идут через Microsoft и не вызывают подозрений.
Ксения: В данном случае стоит анализировать именно ответ от сервера, поскольку в нем содержится передаваемая злоумышленниками полезная нагрузка. Безусловно, ее не всегда можно правильно интерпретировать, однако нечеткий поиск, ML и файловый анализ (если ответом на запрос к легитимному сервису был файл) помогут обнаружить и провалидировать угрозу.
Шифрование байтов трафика и различные способы его обфускации
Мустангер: Для шифрования трафика злоумышленники применяют алгоритмы AES или RC4, реже встречаются самописные реализации. Для обфускации подойдут разные алгоритмы кодирования или добавление «мусорных» данных. Не стоит также забывать о Zlib и Gzip — они тоже помогают решить вопрос сокрытия трафика и данных.
Ксения: Здесь подойдет сигнатурный анализ, точнее — движок с возможностью использовать в правилах специальные проверки длин, связок пакетов, проверочных байтов, времени и количества периодических запросов (не считая проверки по индикаторам компрометации). Однако лучшая техника — применять скриптовые модули, потому что их функционал шире, чем у движка сетевых правил. Описанными способами можно обнаружить известные способы сокрытия и обфускации трафика (XOR байтов, сжатие Zlib, Gzip и различные кодировки). Круто, если ИБ-решение уже имеет функционал распаковки Zlib, Gzip и т. д., но такое встречается далеко не всегда.
Фрагментирование пакетов
Мустангер: Эта техника может усложнить задачу обнаружения аномалий в трафике, потому что мешает СЗИ видеть полную картину происходящего.
Ксения: Фрагментирование пакетов, безусловно, позволит обойти сигнатурный анализ (хотя, если правила написаны на стримы, можно поспорить). Однако в контексте обнаружения аномалий этот подход, наоборот, увеличивает подозрительность действий атакующего. Скриптовые модули смогут обнаружить активность, склеивая изначально разделенные атакующим байты кода.
Периодичность отправки пакетов ВПО
Мустангер: Популярная история: вместо одной длительной сессии используем множество коротких. Этот подход усложняет работу СЗИ и не дает построить поведенческий портрет хакера.
Ксения: В данном случае лучшим решением будет использование техник профилирования и ML-решений для обнаружения аномальной активности.
Вам может показаться, что мы мало говорили про обычное шифрование. Все верно, оставили на сладкое! На первый взгляд, метод кажется хорошим, однако каждый первый злоумышленник не использует его по одной простой причине: сложно кодить и протаскивать библиотеки. Многим для этого банально не хватает квалификации. Также отметим, что детектирование по длинам пакетов и использование ML-решений в связке с профилированием позволяют обнаруживать подозрительный трафик даже в зашифрованных сессиях (а некоторые ИБ-решения вообще умеют снимать шифрование прямо из коробки).
Возникает логичный вопрос: неужели профилирование и ML будут эффективно работать в огромных компаниях, где речь идет о десятках тысяч конечных устройств? Безусловно, с ростом числа устройств для эффективного обнаружения угроз в сети необходимо увеличивать мощности средств защиты. Здесь дело уже не за экспертами, а за разработчиками и вендорами. Также отметим, что рост числа устройств влечет за собой возрастающее число фолзов, но эта проблема решается путем постоянного улучшения и дообучения средств защиты. Хороший ИБ-инструмент — это продукт синергии деятельности всех специалистов, которые задействованы в его жизненном цикле.