C2 — это трафик, с помощью которого злоумышленник продолжает управлять устройством после взлома. Разберём, как он работает и как его обнаружить и остановить (без инструментов и деталей проведения атак).
Где он находится в цепочке атаки
C2 — это не сам взлом, он идёт после него.
Важный момент: исходящий трафик на шаге (2) — это шанс обнаружить и оборвать. Предотвратить взлом на 100% сложно, но есть возможность заметить и остановить его на этапе исходящего трафика.
C2, бэкдор и ботнет
Эти термины часто путают. Если разделить их по роли, получится так.
| Термин | Что означает | Связь с C2 |
|---|---|---|
| C2 (C&C) | Канал удалённого управления между злоумышленником и скомпрометированным устройством, а также сервер, отправляющий команды | — |
| Бэкдор | Оставленная на устройстве точка входа в обход обычной аутентификации | Часто связывается с C2, чтобы получать команды |
| Ботнет | Большая группа захваченных устройств, которые одновременно получают команды от одного C2 | C2 управляет множеством устройств из одной точки |
| RCE | Уязвимость, позволяющая удалённо выполнить произвольный код | Один из способов взлома, который предшествует C2 |
| Beacon | Короткое сообщение, которое устройство через равные промежутки отправляет на C2 | Признак того, что C2 всё ещё активен |
Почему он смешивается с обычным трафиком
MITRE ATT&CK, каталог техник злоумышленников, выделяет C2 в отдельный этап (TA0011): противник пытается связаться со скомпрометированными системами, чтобы управлять ими. Типичная техника из этого каталога — использование повседневных протоколов, например веб- и DNS-трафика, чтобы смешаться с существующим трафиком и избежать обнаружения и фильтрации.
Поэтому блокировки отдельных номеров портов недостаточно. В качестве мер ATT&CK называет фильтрацию сетевого трафика и сетевое предотвращение вторжений. На практике работают две идеи:
- Ограничивать по адресу: определить белым списком, к каким адресам может обращаться сервер, и блокировать остальной исходящий трафик
- Замечать по форме: смотреть не на содержимое, а на адрес, интервал, объём и то, какая программа устанавливает связь
Как его обнаружить (подсказки)
| Подсказка | На что смотреть |
|---|---|
| Beaconing (периодический трафик) | Регулярный исходящий трафик на один и тот же адрес через равные промежутки |
| Незнакомые адреса | Подозрительные домены/IP (сопоставление с известными вредоносными = IOC) |
| Странный DNS | Запросы к незнакомым доменам; аномально много DNS |
| Неожиданные пути | Исходящий трафик по неожиданным портам/протоколам |
Как защищаться
Не дать себя взломать в принципе (основы)
Ограничить исходящий трафик (egress)
Мониторить DNS и журналы трафика
Сопоставлять и блокировать известные вредоносные адреса
Реальный пример: когда подсказкой был исходящий трафик
При компрометации Codecov (2021), разобранной на этом сайте, был подменён распространяемый скрипт, выполнявшийся в CI, и, по сообщениям, около двух месяцев секреты из CI-сред клиентов отправлялись на внешний сервер. Поскольку подменённый код не принадлежал самим клиентам, проверка их собственного кода этого бы не выявила.
Подсказка, которую можно проверить задним числом, — исходящий трафик из CI к незнакомому адресу. Если бы исходящий трафик CI был ограничен нужными адресами, а всё остальное записывалось в журнал, была бы возможность заблокировать отправку или заметить её раньше. Будь то C2 или кража данных, атака после взлома должна связаться с внешним миром, чтобы достичь цели.
Как проверить в своей среде
- Выведите текущие исходящие соединения: в Windows
Get-NetTCPConnection -State Establishedпоказывает каждый адрес и егоOwningProcess(ID программы, которая устанавливает связь), аGet-Process -Id <ID>выдаёт имя программы. В Linux то же делаетss -tunp - Проверьте правила исходящего трафика в облаке: например, группа безопасности AWS по умолчанию разрешает весь исходящий трафик. Запишите, к чему серверу действительно нужно обращаться (обновления ОС, API платежей или почты и т. д.), и ограничьте остальное
- Проверьте историю DNS-запросов: в журналах роутера или DNS-сервиса ищите запросы к незнакомым доменам, повторяющиеся через равные промежутки
- Посчитайте по адресам: агрегируйте журналы прокси или межсетевого экрана по адресам и ищите небольшие объёмы трафика с одинаковым интервалом в течение всего дня. Найдя такой, проверьте, кому принадлежит адрес, чтобы понять, легитимная ли это проверка обновлений
- Сверьте с опубликованными адресами: ищите в журналах адреса C2 (IOC), опубликованные государственными органами или вендорами
Мнение этого сайта: защищайте и исходящий трафик, а подтверждение «нет C2» — часть расследования
Главный урок, который несёт концепция C2, — что защита — это не только предотвращение взлома. Даже когда идеальная профилактика недостижима, есть возможность ограничить исходящий трафик и заметить подозрительные обратные подключения. На этом сайте мы держим главной целью «проектирование, которое не дают взломать (обновления, минимум привилегий, MFA)», но при этом сохраняем контроль исходящего трафика и мониторинг трафика как последний уровень защиты. Заметьте: при подозрении на взлом подтверждение того, что нет резидентного C2 (бэкдора или скрытого периодического трафика), — ключевой шаг. Чтобы заключить «воздействие было ограничено», нельзя пропустить проверку исходящего трафика.
Источники (первичные)
- MITRE ATT&CK, «Command and Control (TA0011)» — attack.mitre.org (определение этапа C2)
- MITRE ATT&CK, «Application Layer Protocol (T1071)» — attack.mitre.org (смешивание с существующим трафиком и меры вроде фильтрации трафика)
- AWS, «Default security groups for your VPCs» — docs.aws.amazon.com (правила исходящего трафика по умолчанию)
- Источники по Codecov приведены в статье о случае
Читать дальше
- Случаи: Компрометация Codecov (2021) · Утечка в Capital One (2019)
- Глоссарий: Что такое EDR · Что такое бэкдор (плацдарм, связывающийся с C2; на английском) · Что такое RCE · Что такое IOC · Что такое IOA · Что такое программа-вымогатель · Что такое вредоносное ПО