Киберпреступники всегда ищут способы оставаться на шаг впереди защитников. Представьте: ботнет уже запущен, машины заражены, данные утекают. Но вот антивирусы и фаерволы находят hardcoded-адреса командных серверов, вносят их в черные списки — и вся сеть рушится. Хакеры быстро поняли: фиксированные домены — это ахиллесова пята. Нужен механизм, который позволит менять адреса быстрее, чем их успеют заблокировать.
Так в 2008 году появились первые серьезные реализации, и с тех пор dga стал стандартом для выживания вредоносного ПО. Алгоритм использует общий «сид» — секретный параметр, известный и хакеру, и трояну. На его основе генератор псевдослучайных чисел каждый день или даже каждый час выдает сотни, а то и тысячи новых имен. Злоумышленник регистрирует лишь пару из них, а бот перебирает список, пока не найдет активный. Остальные домены просто не существуют — чистый шум, который сбивает с толку аналитиков.

Как именно работает Domain Generation Algorithm
В основе лежит простой, но хитрый принцип. Seed может быть статическим — зашитым в код раз и навсегда. Такие алгоритмы легко разбирают при реверсе, поэтому их почти не используют в серьезных кампаниях. Гораздо интереснее динамические варианты: здесь параметр меняется со временем или зависит от внешних данных.
Разберем типы подробнее:
- Предсказуемые — опираются на дату, время или простой хеш. Зная формулу, можно заранее вычислить завтрашние домены и заблокировать их.
- Непредсказуемые — берут данные из открытых источников: заголовок новости, курс доллара, даже погоду в случайном городе. Предугадать невозможно, зато обе стороны (атакующий и бот) получают одинаковый результат.
- Гибридные — смешивают словарь реальных слов с случайностью, чтобы домены выглядели «человеческими».
Представьте два барабана рулетки: один у хакера, второй — в трояне. В нужный момент оба крутятся по одной схеме. Хакер регистрирует выигрышный сектор, бот его находит. Всё автоматизировано, затрат минимум.
Почему DGA так эффективен против традиционной обороны
Один статичный C2-сервер легко вычислить и отключить. С DGA картина меняется кардинально: вместо одного домена — «шумовая завеса» из тысяч. Большинство запросов заканчивается NXDOMAIN, но среди них прячется настоящий канал управления. Затраты на инфраструктуру падают — не нужно держать десятки серверов, достаточно пары временных доменов.
Ботнет оживает даже после частичной блокировки: вчерашние адреса умерли, сегодня появились новые. Это идеально для долгосрочных кампаний, где важна скрытность.
Реальные примеры, которые вошли в историю
Conficker в 2009-м заразил миллионы машин в 190 странах именно благодаря DGA — каждый день червь генерировал свежие домены, и поймать его было почти невозможно. Emotet, главный банковский троян своего времени, выдавал сотни имен в сутки, чтобы обходить блокировки и красть данные карт.
APT-группы тоже не отстают. Fancy Bear (APT28) применяла алгоритмы, чтобы незаметно шпионить за дипломатами и корпорациями. А в атаке SolarWinds 2020 года бэкдор Sunburst генерировал домены, привязанные к уникальным идентификаторам жертв — избирательно и крайне скрытно.
Как распознать DGA-домены: от простого к сложному
Классические методы всё ещё работают, но уже не в одиночку.
Вот основные признаки в трафике:
- Резкий всплеск NXDOMAIN-ответов от одного IP — бот перебирает сгенерированные имена.
- «Маяки» (beaconing): регулярные запросы к похожим доменам в одно и то же время.
- Одноразовые обращения: каждый домен запрашивается ровно один раз и больше никогда.
- Высокая энтропия имени — домен выглядит как случайный набор букв, без читаемых слогов.
Белые списки (типа Cisco Umbrella или Majestic Million) отсеивают известные легитимные ресурсы. Passive DNS показывает, когда домен впервые появился, сколько у него IP и клиентов. Новые, нестабильные имена сразу в подозрении.
Машинное обучение берёт верх
Когда сигнатуры пасуют, на сцену выходит ML. Один из рабочих подходов — разбор доменов на N-граммы (подстроки длиной 3–6 символов). Берём, например, skydns и получаем skyd, kydn, ydns. Считаем, насколько часто такие сочетания встречаются в нормальных доменах и в известных DGA-образцах (Conficker, Andromeda, Murofet).
Получаются векторы признаков: частота N-грамм, их редкость, общая «читаемость». К ним добавляют поведенческие метрики — количество NXDOMAIN, использование редких зон (.biz, .xyz), длину имени, соотношение гласных и согласных, интервалы между запросами.
Модели от логистической регрессии до XGBoost и CatBoost учатся на двух датасетах: легитимные домены плюс вредоносные. Результат — система, которая ловит даже неизвестные ранее алгоритмы.
Что делать, чтобы не стать жертвой
Мониторьте DNS-трафик в реальном времени. Ищите аномалии, а не просто блокируйте по спискам. Внедряйте гибридные решения: белые списки + Passive DNS + ML-модели. Регулярно обновляйте правила и обучайте системы на свежих данных.
DGA не исчезнет — хакеры постоянно усложняют алгоритмы. Но понимание механики и timely аналитика позволяют держать оборону крепкой. Главное — не ждать, пока ботнет разрастётся, а ловить его на этапе первых странных запросов. Тогда даже самая хитрая генерация доменов перестанет быть невидимой.