Запуск неизвестной программы — это всегда лотерея: приложение может попытаться связаться с управляющим сервером, скачать дополнительный модуль или передать данные наружу. Первый шаг такого общения почти всегда — DNS-запрос, потому что вредоносному коду нужно узнать IP-адрес своего сервера. Поэтому при анализе неизвестного приложения DNS-трафик ограничивают в первую очередь: это одновременно защищает окружение, даёт ценные индикаторы компрометации и не даёт образцу «уйти в интернет» по своему сценарию. Главный принцип: перехватывайте и записывайте все DNS-запросы, но решайте по каждому из них, отвечать, подменять или блокировать — а не просто отключайте сеть целиком, иначе потеряете половину информации о поведении образца.
- Зачем ограничивать DNS, а не просто отключать сеть
- Подготовка окружения
- Варианты организации контролируемого DNS
- Пошаговый порядок работы с DNS при анализе
- Что именно записывать в логе
- Типичные ошибки и как их избежать
- Сценарии: что делать в конкретных ситуациях
- Проверка качества настройки
- Что делать после анализа
Зачем ограничивать DNS, а не просто отключать сеть
Полная изоляция от сети — самый безопасный, но и самый «глухой» вариант. Многие образцы при отсутствии сети меняют поведение: не распаковываются, не переходят в рабочую фазу, засыпают или завершаются. Аналитик видит только часть жизненного цикла. Ограничение DNS решает компромисс между безопасностью и наблюдаемостью:
- Контроль точки выхода. DNS — это шлюз ко всему остальному трафику. Если приложение не может разрешить имена, оно не сможет установить HTTP-, HTTPS- или C2-соединение с новым адресом, даже если вы не блокировали эти протоколы явно.
- Индикаторы компрометации. Список доменов, к которым обращался образец, — один из самых ценных артефактов анализа. Его можно использовать для блок-листов, правил детектирования и поиска по другим системам.
- Управляемый ответ. Подменяя DNS-ответы, вы направляете трафик на собственный сервер-приманку и можете наблюдать, какие запросы приложение отправляет дальше.
- Снижение риска. Даже при ошибке в остальных правилах фильтрации закрытый DNS не даст образцу связаться с реальным инфраструктурным сервером атакующего.
При этом важно понимать ограничение: DNS — не единственный канал. Часть вредоносного ПО использует захардкоженные IP-адреса, DoH (DNS over HTTPS) через известные публичные резолверы или нестандартные протоколы. Поэтому ограничение DNS работает как основной, но не единственный слой контроля.
Подготовка окружения
Анализ проводят только в изолированной виртуальной машине со снапшотом, к которому можно вернуться. Перед запуском образца убедитесь, что выполнены базовые приготовления:
- Создайте виртуальную машину с чистой гостевой системой и сделайте снапшот до любых манипуляций.
- Отключите общие папки, буфер обмена и проброс USB между гостевой системой и хостом.
- Пропишите в настройках сети виртуальной машины единственный DNS-сервер — ваш контролируемый локальный резолвер (например, на отдельной виртуальной машине или хосте).
- Убедитесь, что гостевая система не имеет доступа к другим DNS: заблокируйте исходящий трафик на порты 53 (TCP и UDP), 853 (DoT) и фильтруйте DoH-домены на уровне резолвера.
- Подготовьте журнал: резолвер должен писать полный лог запросов с метками времени, именем клиента и типом записи.
Такая схема называется «песочницей с управляемым DNS»: образец думает, что у него есть интернет, но фактически все разрешения имён проходят через вашу точку контроля.
Варианты организации контролируемого DNS
Выбор инструмента зависит от глубины анализа и доступных ресурсов. Ниже — типовые подходы, от простого к гибкому.
| Подход | Как работает | Плюсы | Ограничения |
|---|---|---|---|
| Локальный резолвер с логированием | Все запросы уходят на ваш DNS-сервер, который пишет лог и отвечает из кэша или заглушкой | Просто, виден полный список доменов | Нет гибких правил ответов «из коробки» |
| DNS-заглушка (sinkhole) | Все или выбранные домены получают заранее заданный IP вашей машины | Трафик остаётся внутри, можно поднять фальшивый сервер | Нужен отдельный HTTP/HTTPS-сервер для осмысленного ответа |
| Резолвер с политиками (RPZ, списки allow/deny) | Домены из блок-листа получают NXDOMAIN или подменённый ответ, остальные — по правилу | Гибко: можно разрешить «безопасные» домены и блокировать остальное | Требует настройки и понимания, что считать безопасным |
| Полная блокировка DNS | Порт 53 закрыт, резолвера нет | Максимальная безопасность | Образец часто не проявляет поведение; теряются индикаторы |
Для первого запуска неизвестного образца разумна связка «резолвер с логированием + политика по умолчанию deny»: всё запрещено, кроме явно разрешённых вами доменов. Так вы увидите, к чему приложение пытается обратиться, но не дадите ему этого сделать без вашего решения.
Пошаговый порядок работы с DNS при анализе
- Зафиксируйте исходное состояние. Сделайте снапшот, запишите базовый лог резолвера до запуска образца — фоновые запросы самой системы (обновления, телеметрия ОС) не должны смешиваться с запросами приложения.
- Запустите образец и наблюдайте за логом DNS. Отмечайте новые домены, их типы записей (A, AAAA, TXT, MX), частоту и регулярность обращений. Повторяющиеся запросы одного домена с коротким интервалом часто указывают на механизм C2 с резервными адресами.
- Классифицируйте домены. Проверьте каждый через пассивный DNS, репутационные сервисы и анализ возраста домена. Свежезарегистрированные домены и домены с алгоритмически сгенерированными именами (DGA) — сильный признак вредоносной активности.
- Примите решение по каждому домену. Безопасные служебные домены можно разрешить, подозрительные — направить на sinkhole, заведомо опасные — вернуть NXDOMAIN. Решение фиксируйте в журнале анализа.
- Наблюдайте реакцию образца. Если после блокировки приложение начинает генерировать новые домены или переходит на прямые IP-соединения, это тоже поведенческий индикатор — зафиксируйте его.
- Соберите артефакты. Экспортируйте лог DNS, список доменов, скриншоты и сетевые дампы. Верните виртуальную машину к снапшоту после завершения.
Что именно записывать в логе
Лог DNS — главный артефакт этого этапа. Полезный журнал должен содержать:
- точное время каждого запроса — для сопоставления с другими событиями (создание файлов, запуск процессов);
- полное запрашиваемое имя, включая поддомены;
- тип записи: запросы TXT и NULL-записи иногда используются для туннелирования данных;
- размер и содержимое ответа, который вы вернули;
- источник запроса, если в песочнице несколько клиентов.
Отдельно обращайте внимание на аномалии: необычно длинные имена поддоменов (признак DNS-туннелирования, когда данные кодируются в имени хоста), высокие частоты запросов, запросы к доменам, не связанным с функциональностью приложения.
Типичные ошибки и как их избежать
Даже опытные аналитики допускают на этом этапе предсказуемые промахи:
- Полное отключение сети «на всякий случай». Вы теряете поведенческую картину. Лучше управляемый DNS с запретом по умолчанию, чем отсутствие сети.
- Забытые альтернативные каналы разрешения имён. Современные системы и браузеры поддерживают DoH и DoT. Если не заблокировать порты 853 и обращения к известным DoH-серверам, образец обойдёт ваш резолвер.
- Захардкоженные IP-адреса. Ограничение DNS не остановит трафик напрямую на IP. Дополните его ограничением исходящих соединений на уровне файрвола песочницы.
- Разрешение «безобидных» доменов без проверки. Домены CDN, аналитики и обновлений иногда используются как канал доставки полезной нагрузки. Разрешайте только то, что действительно нужно для проявления поведения.
- Смешивание фонового шума с активностью образца. Сама гостевая ОС генерирует множество запросов. Сравнивайте лог «до» и «во время» запуска, чтобы выделить именно новые домены.
- Работа без снапшота. Если образец изменил систему, повторный анализ на «грязной» машине даст искажённые результаты.
Сценарии: что делать в конкретных ситуациях
Образец не проявляет активности без сети. Разрешите DNS и HTTP-трафик только на ваш sinkhole-сервер. Многие семейства проверяют доступность интернета обращением к известному домену; ответ от вашей заглушки бывает достаточным, чтобы вредоносная логика продолжила работу.
Обнаружены признаки DGA. Если лог заполняется потоками случайных доменов, не пытайтесь блокировать их по одному — переключите политику на «всё запрещено, кроме белого списка» и зафиксируйте сам алгоритм генерации как индикатор.
Подозрение на DNS-туннелирование. Длинные поддомены с высокой энтропией указывают на вынос данных через DNS. Заблокируйте такие запросы и сохраните их содержимое — в имени хоста может быть закодирована украденная информация.
Образец обращается к легитимному сервису. Даже запросы к популярным облачным платформам могут быть частью атаки (например, использование хранилищ как C2). В этом случае ответ решает аналитик: обычно такие домены направляют на заглушку, чтобы наблюдать дальнейшие шаги без реального взаимодействия со сторонним сервисом.
Проверка качества настройки
Перед запуском образца убедитесь, что контроль действительно работает. Быстрая самопроверка:
- из гостевой системы запросите заведомо существующий домен — он должен пройти через ваш резолвер и появиться в логе;
- запросите несуществующий домен — убедитесь, что ответ соответствует вашей политике (NXDOMAIN или заглушка);
- проверьте, что прямое обращение по IP и попытка DoH-соединения блокируются файрволом;
- убедитесь, что снапшот создан и виртуальная машина изолирована от хоста и локальной сети.
Что делать после анализа
Результат работы с DNS — не просто лог, а материал для защиты. Список доменов превращается в индикаторы компрометации для мониторинга, выявленные механизмы (DGA, туннелирование, резервные C2) — в правила детектирования, а наблюдаемое поведение — в вывод о классе угрозы и необходимых мерах. Верните виртуальную машину к снапшоту, а артефакты сохраните вне песочницы.
Главный принцип, который стоит удержать в голове: DNS — это точка, где поведение неизвестного приложения видно раньше всего и где его проще всего остановить. Настройте логирующий резолвер с запретом по умолчанию, принимайте решение по каждому домену осознанно и не забывайте про обходные пути — DoH, DoT и прямые IP-соединения. Такой подход даёт и безопасность, и полноту картины, чего не даст ни полная изоляция, ни открытый интернет.
Материал носит информационный характер и описывает общие методы анализа в изолированной среде. Запуск неизвестного программного обеспечения связан с рисками; при анализе потенциально вредоносных образцов используйте специализированную инфраструктуру и при необходимости привлекайте специалистов по информационной безопасности.
