Пульс
Новости

Генерация доменов как оружие хакеров: почему DGA делает ботнеты неуловимыми

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

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

хакерские атаки

Как именно работает Domain Generation Algorithm

В основе лежит простой, но хитрый принцип. Seed может быть статическим — зашитым в код раз и навсегда. Такие алгоритмы легко разбирают при реверсе, поэтому их почти не используют в серьезных кампаниях. Гораздо интереснее динамические варианты: здесь параметр меняется со временем или зависит от внешних данных.

Разберем типы подробнее:

  1. Предсказуемые — опираются на дату, время или простой хеш. Зная формулу, можно заранее вычислить завтрашние домены и заблокировать их.
  2. Непредсказуемые — берут данные из открытых источников: заголовок новости, курс доллара, даже погоду в случайном городе. Предугадать невозможно, зато обе стороны (атакующий и бот) получают одинаковый результат.
  3. Гибридные — смешивают словарь реальных слов с случайностью, чтобы домены выглядели «человеческими».

Представьте два барабана рулетки: один у хакера, второй — в трояне. В нужный момент оба крутятся по одной схеме. Хакер регистрирует выигрышный сектор, бот его находит. Всё автоматизировано, затрат минимум.

Почему 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 аналитика позволяют держать оборону крепкой. Главное — не ждать, пока ботнет разрастётся, а ловить его на этапе первых странных запросов. Тогда даже самая хитрая генерация доменов перестанет быть невидимой.