Практика показывает, что внешний периметр почти всегда оказывается больше первоначального списка активов. Разбираем, как искать забытые домены, IP-адреса и сервисы через OSINT и какие источники стоит проверять в первую очередь.

Почему инвентаризация внешнего периметра никогда не заканчивается

Есть распространенное заблуждение: если в компании ведется реестр активов, значит, внешний периметр известен. На практике это почти всегда не так.

Реальный сетевой периметр почти всегда шире официального списка активов. Новые сервисы появляются через релизы, SaaS, подрядчиков, CI/CD, тестовые стенды, региональные команды и миграции. Старые DNS-записи и IP-адреса живут дольше, чем о них помнят владельцы. Часть активов создается вне центрального контроля и поэтому не попадает ни в CMDB, ни в Excel-инвентарь, ни в стандартные процессы управления кибербезопасностью.

Отсюда вырастает типичная слепая зона: компания считает, что у нее есть «основной сайт, почтовый домен и пара внешних сервисов», а снаружи находятся десятки вспомогательных субдоменов, забытые прямые IP-адреса, исторические записи, региональные домены, сервисы дочерних компаний и артефакты старых миграций. С точки зрения атакующего это не исключения, а удобные точки входа.

Значительная часть таких активов обнаруживается через внешние следы, которые инфраструктура оставляет в интернете: DNS-записи, логи certificate transparency, TLS-сертификаты, поисковые индексы, ASN, passive DNS и веб-архивы. Именно поэтому контроль внешнего периметра практически всегда опирается на OSINT: только внешнее наблюдение позволяет увидеть инфраструктуру так, как ее видит атакующий.

Из этого следует простой вывод: внешний периметр — это не статичный список доменов и IP-адресов, а постоянно меняющаяся картина активов. Ее приходится постоянно пересобирать, проверять и дополнять, иначе она неизбежно перестает соответствовать реальности.

Что искать на внешнем периметре

Практически весь OSINT внешнего периметра сводится к двум отдельным веткам:

  • Поиск доменов. Компания → корневые домены → пассивный поиск субдоменов → анализ certificate transparency → брутфорс субдоменов → подтвержденные доменные активы.

  • Поиск IP-адресов. Компания → ASN/CIDR → PTR/TLS/HTTP → подтвержденные IP-активы.

Ветка 1. Поиск доменов

Регистрационные и организационные следы

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

На практике на этом этапе используют регистрационные данные, обратный WHOIS-/RDAP-поиск, связь по контактным email, регистраторам, name-серверам и историческим данным регистратора. Именно при таком поиске часто всплывают домены, которые никогда не входили в официальный список, но объективно связаны с организацией через регистрацию или историю владения.

Certificate transparency и сертификатные данные

Один из самых результативных источников новых доменных имен — certificate transparency, CT. Как только для сервиса выпускается сертификат, доменное имя попадает в публично наблюдаемые логи. Часто это происходит раньше, чем о нем узнает команда кибербезопасности. Поэтому многие субдомены на самом деле приходят не из DNS-поиска, а из истории сертификатов.

Отдельный слой — живые TLS-сертификаты сервисов. Если проверить поля SAN/CN на уже найденных доменах и адресах, можно достать имена, которых не было в исходном списке. Проверка полей особенно полезна для обнаружения виртуальных хостов, служебных доменов и временных окружений.

Поисковые индексы, архивы и веб-следы

Домены часто удается найти не по факту регистрации, а по факту того, что они засветились в интернете: в HTML, JavaScript, CSP, robots.txt, sitemap, публичных репозиториях, исторических URL и веб-архивах. Именно поэтому краулинг дает неожиданно высокий выхлоп: старая административная панель, забытый API-хост или административный субдомен могли уже уйти из поля зрения команды, но все еще сохранены в индексах или архивах и по инерции поддерживаются службой IT.

Перебор доменов

Под перебором в EASM чаще понимают не поиск новых корневых доменов, а перебор субдоменов внутри уже известной зоны. Искать корневые было бы бессмысленно, поскольку в таком случае отсутствует критерий, по которому домен можно отнести к конкретной организации. Например, для example.com гипотезы вида dev.example.comvpn.example.comapi-eu.example.com или jira.example.com проверяются как систематический DNS-перебор по словарям и шаблонам.

Зрелый брутфорс опирается не на случайности, а на реальные правила наименования субдоменов. Сначала собираются уже известные имена, затем из них строятся комбинации по регионам, окружениям, ролям, числам и разделителям. После этого домены-кандидаты проходят через DNS-валидацию, а результаты очищаются от wildcard-срабатываний. Без этой фильтрации брутфорс быстро превращается в генератор ложноположительных находок.

Ветка 2. IP-адреса

ASN и сетевые диапазоны

Самый надежный путь к IP-адресам компании — не угадывание отдельных хостов, а выход на ASN и связанные с ним CIDR-диапазоны. Как только удается привязать организацию к автономной системе или нескольким системам, поиск качественно меняется: вместо точечных адресов появляется обзор сетевого пространства, которое компания реально анонсирует в интернет.

Этот подход особенно ценен для крупных организаций, холдингов и международных компаний, где домены и IP-адреса редко лежат в одной плоскости. Через ASN можно выявить неочевидные сегменты периметра, региональные диапазоны и технические площадки, которые не обнаруживаются на уровне бренда.

DNS-резолвинг и reverse DNS

Второй путь к IP-адресам — резолвинг уже найденных доменов и субдоменов. После первичного сбора имен нужно получить A/AAAA, CNAME, MX, NS, TXT и по возможности PTR. Это позволяет не только сопоставить домены с адресами, но и увидеть соседние технические связи: внешние почтовые сервисы, name-серверы, балансировщики и исторические зависимости.

Reverse DNS особенно полезен, когда уже известен диапазон IP-адресов. Логика в таких случаях не «домен → IP-адрес», а, наоборот, «ASN → IP range → PTR → новые домены». Это помогает находить хосты, которые почти незаметны при обычном поиске.

Passive DNS и исторический контекст

Если смотреть только на текущий DNS, внешний периметр почти всегда будет выглядеть чище, чем на самом деле. Исторические записи показывают старые привязки доменов к IP-адресам, переезды между облаками и CDN, забытые адреса, тестовые площадки и прямые оригинальные IP-адреса, которые потом скрывались за WAF или прокси.

Для защиты периметра критично найти такие старые адреса и убедиться, что они недоступны: сервис может формально работать за защитным слоем, но старый прямой адрес все еще доступен. Именно поэтому поиск IP-адресов без учета DNS-истории почти всегда неполон.

Активная верификация и обогащение

Найденные IP-адреса нужно превратить в понятные активы. Для этого проверяют открытые порты, TLS-конфигурацию, HTTP(S)-ответы, сертификаты, редиректы, заголовки и поведение приложений. Этот этап уже выходит за пределы чистого OSINT, но без него список IP-адресов остается малопригодным для реальной работы.

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

Какие open-source-инструменты реально полезны для OSINT

Ранее основной ошибкой было искать единственный «главный инструмент». Одни инструменты агрегировали внешние пассивные источники, другие делали активные запросы DNS, третьи собирали данные из уже известных сертификатов. Поэтому зрелый пайплайн почти всегда состоял из нескольких утилит, а не одного универсального скрипта. В то же время, чем больше разных инструментов вы используете, тем сложнее валидировать находки и поддерживать пайплайн в случае изменения инструментария.

Сейчас появились почти универсальные комбайны, которые замыкают на себе львиную долю активности, связанной с анализом внешнего периметра.

OWASP Amass — инструмент, самый близкий к полноценному attack-surface-фреймворку. Он умеет искать корневые домены и их поддомены, работать с обратным WHOIS/ASN, использовать данные сертификатов, zone transfer и брутфорс. Достоинство OWASP Amass — ширина техники, а недостаток — условная сложность эксплуатации и зависимость от множества внешних источников.

Subfinder — быстрый инструмент для пассивного поиска доменов. Он ценен на первом этапе, когда нужно быстро собрать валидные субдомены.

Dnsx, MassDNS и shuffledns предназначены для массового разрешения доменов. Они позволяют массово резолвить имена, проверять записи разных типов, перебирать субдомены и бороться с wildcard-срабатываниями. Для систематического перебора субдоменов это один из самых практичных классов инструментов.

Как выстроить процесс исследования внешнего периметра внутри компании

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

Дальше разведка идет рекурсивно. Сначала ищут корневые домены и поддомены, затем — связанные IP-адреса и подсети, после — исторические следы, веб-следы. Находки подаются в цикл как новые исходные данные.

Информацию, полученную после первичного исследования, необходимо обогатить:

  • сертификатами,

  • HTTP(S)-ответами,

  • редиректами,

  • заголовками.

Только после этого карта периметра становится полезной для приоритизации работ по защите внешнего периметра.

Наконец, внешний периметр нельзя исследовать разово. Он меняется постоянно, а значит, периодический мониторинг важнее красивого разового отчета. С практической точки зрения хороший результат — это не просто список доменов и IP-адресов, а зацикленный конвейер, который находит новые активы, подтверждает старые и объясняет источник каждой находки.

Практический гайд по поиску доменов и IP-адресов

Это базовое пошаговое руководство по каждой ветке: поиску доменов и поиску IP-адресов.

Поиск доменов

Шаг 1. Найти связанные корневые домены по названию компании

Для определения корневых доменов удобнее отталкиваться от названия организации и reverse WHOIS по полю organization. Это можно сделать, например, на сайте viewdns.info.

Шаг 2. Собрать субдомены из пассивных источников

Агрегируйте данные из пассивных источников и сразу получите список потенциально валидных доменов.

# Быстрый passive-pass
subfinder -d example.com -all -recursive -silent > passive_subdomains.txt

Шаг 3. Достать имена из certificate transparency

CT — один из самых полных источников новых субдоменов. Удобная практическая точка входа — crt.sh.

# Все имена для *.example.com из CT
curl -s 'https://crt.sh/?q=%25.example.com&output=json'

Шаг 4. Провалидировать CT- и passive-результаты через DNS

Очищайте любой пассивный список от исторического мусора и wildcard-ответов.

# Подтвердить только реально резолвящиеся имена
dnsx -l subdomains_seed.txt -wd example.com -silent > subdomains_live.txt
 
# Если нужен вывод с A-записями
dnsx -l subdomains_seed.txt -wd example.com -a -resp -silent > subdomains_live_with_a.txt

Шаг 5. Сделать DNS-брутфорс по словарю

Используйте брутфорс не как замену passive enumeration, а как расширение уже найденной карты имен.

# Общий словарный brute force
dnsx -silent -d example.com -w dns_wordlist.txt > brute.txt

Шаг 6. Свести все доменные результаты в единый список

Финальный этап — объедините результаты пассивного сбора, CT, брутфорса, а затем еще раз прогоните их через dnsx.

dnsx -l all_subdomains_raw.txt -wd example.com -silent > all_subdomains_live.txt

Поиск IP-адресов

Шаг 1. Найти ASN и диапазоны CIDR

Если ASN компании уже известен, сразу вытаскивайте диапазоны CIDR. Если ASN неизвестен, сначала ищите его по названию организации через asnmap или вручную на stat.ripe.net, bgp.he.net или bgp.tools.

Шаг 2. Получить IP-адреса из уже найденных доменов

Это самый полезный переход от ветки доменов к ветке IP-адресов: сначала соберите имена, потом массово резолвите их в A/AAAA/CNAME.

# Все живые имена
subfinder -d example.com -all -recursive -silent | dnsx -silent
 
# A/AAAA/CNAME с ответами
subfinder -d example.com -all -recursive -silent | dnsx -a -aaaa -cname -resp -silent
 
# Только IP-адреса из A-/AAAA-ответов
subfinder -d example.com -all -recursive -silent | dnsx -a -aaaa -resp-only -silent | sort -u > ips_from_dns.txt

Шаг 3. Раскрыть PTR / reverse DNS по диапазонам

Если у вас уже есть CIDR-диапазоны, полезно сразу вытащить PTR: иногда так всплывают дополнительные имена хостов и легаси-имена.

# PTR по диапазонам, полученным из ASN
cat cidr.txt | dnsx -ptr -resp -silent > ptr.txt
 
# Точечная проверка одного IP
dig -x  8.8 . 8.8   +short

Шаг 4. Вытащить доменные имена из TLS-сертификатов на IP-адресах/хостах

Этот шаг полезен, когда на IP-адресе живет TLS-сервис: сертификат может вернуть SAN/CN, которых еще нет в реестре активов.

# SAN, CN и Organization из TLS-сертификатов
cat cidr.txt  | tlsx -san -cn -silent > tls_names.txt

Совет

Разделите поиск доменов и IP-адресов. Сначала отдельно соберите ASN/CIDR и IP-ветку, затем отдельно домены. После этого сведите результаты в единый инвентарь и от него переходите к классификации активов и поиску рисков.

Вывод

Даже небольшой OSINT-анализ часто показывает, что реальный внешний периметр заметно отличается от официального списка активов. Поэтому главная задача — не просто один раз собрать домены и IP-адреса, а поддерживать эту информацию в актуальном состоянии.

Сделать это можно по-разному: кто-то собирает собственный пайплайн из open-source-инструментов, кто-то использует специализированные EASM-платформы, автоматизирующие поиск, инвентаризацию и мониторинг внешнего периметра. В обоих случаях цель одна — иметь максимально полное и актуальное представление о том, что действительно опубликовано в интернете.

Автор: Павел Загуменнов, руководитель направления EASM