Карта внешней поверхности атаки
Отдельные находки — домены, IP, открытые порты, сертификаты — обретают смысл, только когда сведены в единую карту вашей внешней поверхности.
Внешняя поверхность атаки (external attack surface) — совокупность всех ваших активов, доступных из интернета: доменов, поддоменов, IP-адресов, открытых сервисов, сертификатов и связанных с ними точек входа.
Предыдущие уроки давали отдельные техники: DNS/WHOIS, Shodan/Censys, Certificate Transparency. По отдельности это разрозненные факты. Сила защитника — собрать их в одну картину и управлять ею непрерывно. Эта дисциплина называется Attack Surface Management (ASM): постоянно знать, что у вас выставлено наружу, и держать это под контролем.
Зачем это знать защитнику
Нельзя защитить то, о существовании чего не знаешь. Большинство громких инцидентов связаны не с неизвестной уязвимостью, а с забытым активом: поддомен, который никто не вёл; сервер, оставшийся после миграции; тестовая база на публичном IP. Атакующий мыслит как разведчик: собирает всю вашу поверхность и бьёт по самому слабому звену. ASM переворачивает это: вы строите ту же карту первыми и закрываете слабые места до того, как их найдут.
Шаг 1. Discovery — обнаружение активов
Сначала собираем активы из всех открытых источников и сводим воедино. Принцип — пассивно и широко:
| Источник | Что даёт |
| WHOIS / RDAP | домены, диапазоны IP, организация-владелец, ASN |
| DNS (A/MX/NS/TXT/CNAME) | хосты, почта, сторонние сервисы, поддомены |
| Certificate Transparency | поддомены из SAN, в т.ч. нигде не опубликованные |
| Shodan / Censys | открытые порты, версии ПО, баннеры сервисов |
| Пассивный DNS | история IP и поддоменов, старая инфраструктура |
Результат — единый список активов: домены → поддомены → IP → открытые сервисы. Важно объединять данные: один поддомен из CT нужно сопоставить с его IP из DNS и открытыми портами из Shodan, чтобы получить полную «карточку актива».
Шаг 2. Inventory — инвентаризация и атрибуция
Каждый обнаруженный актив нужно отнести к одной из категорий:
- Известный и нужный — есть в реестре, кто-то за него отвечает, он должен быть публичным.
- Известный, но лишний — публичен без необходимости (управляющая панель, dev-стенд наружу).
- Неизвестный (shadow IT) — не числится в реестре: забытый сервер, теневой проект, тень после миграции. Самая опасная категория.
Ведите реестр активов как живой документ: владелец, назначение, обоснование публичности, дата последней проверки. Без реестра ASM превращается в разовый аудит, а нужна непрерывность.
Шаг 3. Prioritize — оценка риска
Не все находки равны. Приоритет повышают: чувствительность сервиса (база данных, аутентификация, админка), устаревшая версия с известными CVE, отсутствие шифрования (открытый HTTP, Telnet), дефолтные учётные данные, признаки заброшенности (просроченный сертификат). Это даёт очередь на устранение — от самого опасного к менее значимому.
Шаг 4. Remediate — что закрыть и убрать
Для каждой категории — своё типовое действие:
Забытый поддомен / висящий CNAME -> удалить DNS-запись (риск takeover)
База/панель на публичном IP -> увести за VPN/приватную сеть
Устаревшее ПО с CVE -> обновить или вывести из эксплуатации
Открытый порт без причины -> закрыть на файрволе / security-группе
Дефолтные креды -> сменить немедленно, включить 2FA
Избыточный сервис -> вывести из эксплуатации (decommission)
Главный принцип сокращения поверхности — «меньше выставлено наружу — меньше можно атаковать». Каждый публичный актив должен иметь явную причину быть публичным; всё остальное убирается или прячется за периметром.
Как это работает под капотом
ASM — это не разовый скан, а цикл: discovery → inventory → prioritize → remediate → снова discovery. Поверхность постоянно меняется: разработчики поднимают сервисы, маркетинг регистрирует домены, миграции оставляют хвосты. Поэтому карту нужно пересобирать регулярно (хотя бы ежемесячно, а триггеры вроде CT-алерта — в реальном времени) и сравнивать с предыдущей: что появилось нового? Именно дельта между снимками ловит свежие забытые активы прежде, чем их найдёт злоумышленник.
Как защититься
- Сделайте ASM непрерывным. Автоматизируйте сбор из DNS, CT, Shodan/Censys по своим доменам и диапазонам; сравнивайте новые снимки с предыдущими и реагируйте на дельту.
- Ведите единый реестр активов. Каждый публичный актив — с владельцем, назначением и обоснованием. Нет обоснования — кандидат на удаление.
- Сокращайте поверхность по умолчанию. Управляющие интерфейсы, базы, dev/staging — за VPN или в приватной сети, а не на белом IP.
- Закрывайте процессом, а не разово. Вывод сервиса из эксплуатации = удалить DNS-запись → снять сертификат/ресурс → закрыть порты, именно в таком порядке, чтобы не оставить висящих записей.
- Алертьте на новое. Shodan Monitor на новые порты, CT-мониторинг на новые имена — чтобы узнавать о появлении актива в момент его появления.
Правовая рамка: строить карту своей поверхности из открытых источников законно и необходимо. Те же действия против чужой инфраструктуры без письменного разрешения владельца — разведка перед атакой и могут квалифицироваться по ст. 272 УК РФ. ASM применяйте к своим или явно авторизованным активам; для оценки чужих систем нужен договор на пентест.
Итоги
- Внешняя поверхность атаки — все доступные из интернета активы; защитить можно только то, что вы знаете.
- ASM — непрерывный цикл: обнаружение → инвентаризация → приоритизация → устранение → снова обнаружение.
- Самая опасная категория — неизвестные активы (shadow IT): забытые серверы и хвосты миграций.
- Защита: единый реестр активов, сокращение публичной поверхности по умолчанию и алерты на любое новое имя или порт.