Ботнет — сеть скомпрометированных устройств, объединённых общей инфраструктурой управления. Оператор ботнета (ботмастер) отдаёт команды через Command-and-Control (C2) серверы, а заражённые узлы (боты) выполняют задачи: DDoS-атаки, рассылку спама, майнинг, кражу данных или дальнейшее распространение вредоносного ПО.
Классическая схема: один или несколько C2-серверов принимают подключения от ботов и раздают команды. Бот периодически обращается к серверу за задачами — это называется «пинг» или «beacon».
Преимущества для атакующего: простота реализации, низкая задержка доставки команд. Недостаток: единая точка отказа. Если сервер обнаружен и выведен из строя, ботнет теряет управление.
Типичная реализация централизованного C2 включает:
Из анализа реальных образцов известно, что C2-панели часто строятся на Go, PHP или Python с REST-подобными роутами. Gate-обработчики обычно разделяют логику на этапы: регистрация (
Боты общаются друг с другом, формируя одноранговую сеть. Команды распространяются по цепочке, единого сервера нет. Примеры: Zeus GameOver, Kelihos.
Преимущество: нет единой точки отказа. Недостаток для атакующего: сложнее контролировать распространение команд, выше риск перехвата управления.
В реальных образцах C2 часто используется шифрование RC4 или XOR для обфускации тела запросов. Например, в одном из проанализированных ботнетов на Go все данные в параметре
Векторы доставки:
После запуска вредоносный код обращается к C2 и передаёт метаданные узла: ОС, архитектура, IP, права текущего пользователя, уникальные идентификаторы. Сервер присваивает боту ID и записывает его в базу.
Бот периодически отправляет «пинг» на C2. Интервал может быть фиксированным или случайным (jitter), чтобы усложнить обнаружение по регулярности трафика. В ответ сервер возвращает либо пустой ответ (задач нет), либо команду на выполнение.
Типичные задачи:
Бот отправляет статус выполнения и, при необходимости, собранные данные обратно на C2 через отдельный endpoint (например,
Для сохранения доступа после перезагрузки вредоносное ПО модифицирует:
Сопоставление наблюдаемых индикаторов (IP, домены, хеши файлов, JA3-отпечатки) с базами данных: MITRE ATT&CK, AlienVault OTX, Abuse.ch, VirusTotal. Фреймворк MITRE ATT&CK позволяет классифицировать техники противника по тактикам и строить детекты на конкретные TTP.
Модели архитектуры C2
Централизованная модель (клиент-сервер)
Классическая схема: один или несколько C2-серверов принимают подключения от ботов и раздают команды. Бот периодически обращается к серверу за задачами — это называется «пинг» или «beacon».
Преимущества для атакующего: простота реализации, низкая задержка доставки команд. Недостаток: единая точка отказа. Если сервер обнаружен и выведен из строя, ботнет теряет управление.
Типичная реализация централизованного C2 включает:
- Gate — публичный endpoint, через который боты регистрируются и получают задачи.
- Admin panel — веб-интерфейс для оператора, где создаются задачи, загружаются модули, просматривается список активных ботов.
- База данных — хранение учётных записей ботов, статусов, результатов выполнения задач.
Из анализа реальных образцов известно, что C2-панели часто строятся на Go, PHP или Python с REST-подобными роутами. Gate-обработчики обычно разделяют логику на этапы: регистрация (
/reg/), пинг (/ping/), получение задачи, отправка результата (/complete/).Децентрализованная модель (P2P)
Боты общаются друг с другом, формируя одноранговую сеть. Команды распространяются по цепочке, единого сервера нет. Примеры: Zeus GameOver, Kelihos.
Преимущество: нет единой точки отказа. Недостаток для атакующего: сложнее контролировать распространение команд, выше риск перехвата управления.
Гибридные и доменные модели
- DGA (Domain Generation Algorithm) — бот генерирует список доменов по алгоритму, один из которых в текущий момент контролирует оператор. Это усложняет блокировку: нужно предсказывать домены заранее.
- Fast Flux — DNS-запись одного домена постоянно меняет IP-адреса через короткий TTL, скрывая реальный сервер.
- Использование легитимных платформ — команды передаются через Twitter, Telegram, GitHub, Discord. Трафик выглядит как обычная активность пользователя.
Протоколы и каналы связи C2
| Канал | Характеристика | Сложность обнаружения |
|---|---|---|
| HTTP/HTTPS | Маскировка под веб-трафик | Средняя |
| DNS | Туннелирование данных в запросах | Высокая |
| ICMP | Данные в payload echo-запросов | Средняя |
| IRC | Классический протокол ботнетов | Низкая (легко детектируется) |
| P2P (TCP/UDP) | Прямое общение узлов | Высокая |
| Мессенджеры / соцсети | Команды в сообщениях | Очень высокая |
В реальных образцах C2 часто используется шифрование RC4 или XOR для обфускации тела запросов. Например, в одном из проанализированных ботнетов на Go все данные в параметре
data передавались как base64-строка длиной не менее 33 символов, где первые 32 байта — ключ, а остальное — зашифрованное RC4 содержимое.Жизненный цикл заражённого узла
1. Первоначальное заражение (Initial Access)
Векторы доставки:
- Эксплуатация уязвимостей в сетевых сервисах (роутеры, IoT, веб-приложения).
- Фишинговые письма с вредоносными вложениями или ссылками.
- Загрузка через drive-by download с компрометированных сайтов.
- Подбор учётных данных (brute-force по SSH, RDP, Telnet).
- Цепочки поставок: заражённые обновления или пакеты.
2. Регистрация бота (Registration)
После запуска вредоносный код обращается к C2 и передаёт метаданные узла: ОС, архитектура, IP, права текущего пользователя, уникальные идентификаторы. Сервер присваивает боту ID и записывает его в базу.
3. Ожидание команд (Beaconing)
Бот периодически отправляет «пинг» на C2. Интервал может быть фиксированным или случайным (jitter), чтобы усложнить обнаружение по регулярности трафика. В ответ сервер возвращает либо пустой ответ (задач нет), либо команду на выполнение.
4. Выполнение задачи
Типичные задачи:
- Загрузка и запуск дополнительного модуля (например, DLL или исполняемого файла).
- Запуск shell-команды.
- Организация reverse-соединения для интерактивного доступа.
- Участие в DDoS-атаке (SYN flood, HTTP flood, UDP amplification).
- Сбор и эксфильтрация данных.
5. Отчёт о результате
Бот отправляет статус выполнения и, при необходимости, собранные данные обратно на C2 через отдельный endpoint (например,
/complete/).6. Persistence (закрепление)
Для сохранения доступа после перезагрузки вредоносное ПО модифицирует:
- Реестр Windows (ключи автозагрузки
Run,RunOnce).
- Планировщик задач.
- Службы.
- На Linux: cron, systemd-юниты,
.bashrc,.profile.
Признаки компрометации (Indicators of Compromise)
Сетевые индикаторы
- Регулярные исходящие соединения на нестандартные порты или домены с коротким TTL.
- Аномальный DNS-трафик: запросы к доменам, сгенерированным алгоритмически (длинные бессмысленные поддомены, высокий объём NXDOMAIN-ответов).
- Beaconing-паттерн: соединения с фиксированным или слегка варьируемым интервалом.
- Несоответствие объёма трафика: узел отправляет значительно больше данных, чем получает (эксфильтрация), или наоборот (загрузка модулей).
- Соединения с известными C2-индикаторами из threat intelligence-фидов.
- HTTP-запросы с аномальным телом: например, все запросы содержат параметр
dataс base64-строкой фиксированной минимальной длины, а ответы всегда имеют одинаковыйContent-Length.
Хостовые индикаторы
- Неизвестные процессы с подозрительными именами или запущенные из нестандартных директорий (
%TEMP%,/tmp,/dev/shm).
- Модификация файлов автозагрузки без ведома пользователя.
- Появление новых служб или cron-задач.
- Аномальное потребление CPU или памяти (майнинг, DDoS).
- Отключение или обход средств защиты: остановка антивирусных служб, удаление правил файрвола.
- Наличие файлов, не соответствующих ожидаемому ПО (например,
.dllв каталоге, где их быть не должно).
Поведенческие индикаторы
- Узел начинает сканировать внутреннюю сеть (горизонтальное перемещение).
- Массовая отправка почты или сетевых запросов с одного хоста.
- Изменение DNS-настроек на роутере или хосте.
Методы обнаружения
Сетевой уровень
- NetFlow/sFlow-анализ: выявление аномальных паттернов исходящего трафика, особенно на нестандартные порты.
- DNS-мониторинг: отслеживание запросов к доменам с высокой энтропией, доменам из DGA-фидов, аномальному количеству NXDOMAIN.
- IDS/IPS: сигнатуры на известные C2-фреймворки (Cobalt Strike, Metasploit, Sliver) и поведенческие правила на beaconing.
- TLS-инспекция: анализ JA3/JA4-отпечатков клиентских hello для выявления нестандартных TLS-клиентов.
Хостовой уровень
- EDR-агенты: отслеживание создания процессов, модификации реестра, сетевых подключений из подозрительных процессов.
- Sysmon (Windows): логирование создания процессов (Event ID 1), сетевых соединений (Event ID 3), изменений реестра (Event ID 12–14).
- auditd (Linux): мониторинг вызовов
execve, записи в cron, изменений в/etcи домашних каталогах.
- Контроль целостности файлов (AIDE, Tripwire, osquery): обнаружение несанкционированных изменений в системных файлах и автозагрузке.
Threat Intelligence
Сопоставление наблюдаемых индикаторов (IP, домены, хеши файлов, JA3-отпечатки) с базами данных: MITRE ATT&CK, AlienVault OTX, Abuse.ch, VirusTotal. Фреймворк MITRE ATT&CK позволяет классифицировать техники противника по тактикам и строить детекты на конкретные TTP.
Защита и предотвращение
Сетевые меры
- Сегментация сети: изоляция критичных сегментов, ограничение исходящего трафика на уровне периметра.
- Egress filtering: запрет исходящих соединений на неразрешённые порты и протоколы. Бот, не способный связаться с C2, бесполезен.
- DNS-фильтрация: блокировка запросов к известным вредоносным доменам и доменам из DGA-моделей.
- Default deny для исходящего трафика на серверах и рабочих станциях, где это допустимо.
Хостовые меры
- Минимизация поверхности атаки: отключение неиспользуемых сервисов, удаление ненужных пакетов.
- Своевременное обновление: закрытие уязвимостей, через которые происходит первоначальное заражение.
- Контроль приложений (AppLocker, WDAC): запрет запуска исполняемых файлов из пользовательских каталогов.
- Принцип наименьших привилегий: ограничение прав учётных записей, запрет запуска служб от root/SYSTEM без необходимости.
Организационные меры
- Обучение пользователей: распознавание фишинга, запрет на запуск вложений из непроверенных источников.
- Политика паролей и MFA: снижение риска заражения через brute-force.
- Регулярный аудит: проверка автозагрузки, служб, cron-задач, сетевых подключений.
- Incident Response план: заранее определённые действия при обнаружении компрометации — изоляция узла, сбор форензики, анализ C2-каналов.
Типичные ошибки при расследовании
- Блокировка C2 без сбора индикаторов: если просто заблокировать домен, оператор переключится на новый, а вы потеряете возможность наблюдать за активностью.
- Игнорирование lateral movement: компрометация одного узла часто означает, что атакующий уже переместился по сети.
- Очистка узла без анализа root cause: переустановка системы без понимания вектора заражения приведёт к повторной компрометации.
- Отсутствие корреляции: один индикатор (например, подозрительный DNS-запрос) может быть ложным срабатыванием. Решение принимается по совокупности признаков.
Чек-лист проверки узла на компрометацию ботнетом
- Проверить исходящие сетевые соединения:
ss -tunap(Linux) илиnetstat -b(Windows) — искать подключения к неизвестным IP на нестандартные порты.
- Просмотреть список процессов и их родительские цепочки: подозрительный процесс, запущенный из
/tmpили%APPDATA%.
- Проверить автозагрузку: реестр
HKLM\Software\Microsoft\Windows\CurrentVersion\Run,~/.bashrc,/etc/crontab, systemd-юниты.
- Проанализировать DNS-запросы узла за последние 24–72 часа на предмет доменов с высокой энтропией или из threat intel-фидов.
- Сверить хеши подозрительных файлов с VirusTotal или локальной базой YARA-правил.
- При подтверждении компрометации — изолировать узел от сети, сохранить дамп памяти и дисковый образ для форензики.
