понедельник, 30 марта 2026 г.

Assetfinder: почему атакующий знает ваш периметр лучше вас

У большинства CISO нет полного списка своих поддоменов.

При этом любой атакующий собирает его за минуты — без единого запроса в вашу инфраструктуру. Без логов на вашей стороне. Без алертов в SIEM.

Атакующий часто изучает ваш внешний периметр быстрее, чем вы приводите его инвентаризацию в актуальное состояние. Это не фигура речи — это архитектурный факт интернета.

Где ломается контроль

Основной сайт обычно защищён. Рядом живут другие:

  • dev.example.com — без патчей, потому что «только для разработки»
  • staging.example.com — с реальными данными, потому что «временно»
  • old-api.example.com — с CVE 2018 года, потому что про него забыли

Они не в CMDB. Не в отчётах. Не в зоне ответственности SOC. Именно туда заходят первым делом.

Что такое Assetfinder

Утилита от Тома Хадсона (tomnomnom) — одного из самых известных авторов инструментов для разведки. Написана на Go: компилируется в один бинарный файл, работает на Linux, macOS, Windows, зависимостей нет.

Assetfinder — инструмент перечисления поддоменов (subdomain enumeration), ориентированный на OSINT-источники: публичные базы, сертификаты, данные хостингов. Каждый источник опрашивается параллельно, результаты собираются в единый поток, дубликаты отфильтровываются. Средний домен — меньше минуты. OWASP Amass на то же самое тратит часы.

Используют в трёх сценариях:

  • Bug bounty — найти поверхность атаки быстрее конкурентов
  • Пентест — собрать карту активов до начала работы
  • Защита — проверить, что компания реально «светит» наружу

Как работает — и почему это ваша проблема

Assetfinder не касается серверов цели. Только пассивные источники — агрегаторы, которые уже собрали данные за вас. Ваши IDS, WAF и SIEM не видят ничего. Разведка происходит полностью вне периметра.

Certificate Transparency (CT)

Каждый SSL/TLS-сертификат, который выдаёт любой удостоверяющий центр, обязан попасть в открытый публичный журнал. Без исключений. В сертификате два ключевых поля:

  • CN (Common Name) — основной домен
  • SAN (Subject Alternative Name) — все домены, которые этот сертификат покрывает

Assetfinder вытаскивает это через crt.sh и Certspotter.

Ключевой момент для CISO:

Как только DevOps выпускает HTTPS-сертификат для сервиса — он публикует факт его существования в глобальном реестре. Автоматически. Let's Encrypt, ACME — всё это пишет в CT-логи.

Даже если DNS потом удалён — запись о сертификате остаётся навсегда.

Скрыть факт выдачи сертификата невозможно. Это не означает, что сервис гарантированно доступен — но означает, что он попал в поле зрения. Это устройство интернета.

Wayback Machine

Интернет-архив Wayback Machine хранит снимки за десятки лет. Assetfinder находит поддомены, которые исчезли из DNS — но не из истории.

Архив показывает не то, что есть сейчас. Он показывает то, что вы забыли убрать: старые URL, структуру API, имена эндпоинтов. Это разведка структуры, а не подтверждение работоспособности. Но именно отсюда берётся список целей для проверки — некоторые из них всё ещё отвечают. Это и есть Shadow IT.

DNS-агрегаторы

HackerTarget, ThreatCrowd (Maltego), dns.bufferover.run — сервисы, которые сами сканируют интернет и копят базы DNS-записей. Assetfinder дёргает их API и получает готовые данные. Вы не платили за этот сбор. Он уже сделан.

Расширенные источники с ключами

С ключом VT_API_KEYVirusTotal отдаёт поддомены из анализа малвари и трафика. Источник, о котором компании обычно не думают.

Facebook Graph API (FB_APP_ID + FB_APP_SECRET) ведёт собственный мониторинг CT-логов — независимо от crt.sh. Модуль в Assetfinder устарел и требует актуальных ключей, но логика источника остаётся рабочей.

Как это выглядит со стороны атакующего

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

Этап 1 — Discovery:

assetfinder --subs-only example.com
→ 150 поддоменов (имена из OSINT-источников)

Этап 2 — Валидация:

httpx
→ 42 живых сервиса (из 150 — только реально отвечающие)

Этап 3 — Анализ уязвимостей (отдельная работа):

nuclei
→ потенциальные находки, включая забытый admin-интерфейс
→ результаты требуют ручной проверки: false positive rate высокий

Время на discovery + валидацию: несколько минут.
Следов в вашей инфраструктуре: 0.
* Агрегаторы типа VirusTotal и crt.sh фиксируют факт запроса на своей стороне.

Установка и базовые команды

go install github.com/tomnomnom/assetfinder@latest

# Все связанные домены
assetfinder example.com

# Только поддомены
assetfinder --subs-only example.com

# Быстрый пайплайн: поддомены → живые серверы
assetfinder --subs-only example.com | httprobe | tee live_subs.txt

Минимальный боевой пайплайн разведки

# Этап 1 — Discovery
assetfinder      # быстрый старт
subfinder        # расширение покрытия (40+ источников)

# Этап 2 — Валидация
httpx            # живые сервисы
waybackurls      # структура старых эндпоинтов (не гарантия доступа)

# Этап 3 — Анализ (требует верификации)
nuclei           # сканирование на уязвимости

Инструменты пайплайна:

  • assetfinder — быстрый внешний срез
  • subfinder — расширение покрытия (40+ источников)
  • httpx — проверка живых сервисов
  • waybackurls — исторические точки входа
  • nuclei — сканирование на уязвимости

Разведка без валидации — шум. С валидацией — поверхность атаки. Анализ уязвимостей — отдельный этап с отдельной ответственностью.

Почему компании теряют контроль

  • Dev и staging создаются вне процессов учёта
  • Автоматический выпуск сертификатов не контролируется безопасностью
  • Старые сервисы «выключены», но DNS или доступ остался
  • Инфраструктура растёт быстрее, чем её описывают
  • Нет единого источника правды по внешнему периметру
У компании нет списка активов. А у атакующего — есть.

Есть и ограничения

Последний коммит в репозитории — 2019–2020 год. Инструмент не обновляется. За это время часть источников деградировала:

  • dns.bufferover.run — периодически меняет формат JSON, старые версии ломаются
  • VirusTotal — без свежего API-ключа часто молчит
  • findsubdomains (Spyse) — нестабилен без платной подписки, сервис сменил владельцев
  • crt.sh — перегружается под нагрузкой, даёт таймауты

Но это не главная проблема. Главное: Assetfinder даёт неполный список. Если нашли 50 поддоменов — это нижняя граница на основе доступных источников. Реальное число может быть больше.

Характеристика assetfinder Subfinder OWASP Amass
Скорость Секунды Десятки секунд Минуты
Глубина Быстрый OSINT 40+ API Пассив + актив + брутфорс
Настройка Одна команда Файл конфигурации Сложная
Поддержка Не обновляется Активная Сообщество OWASP
GitHub tomnomnom/assetfinder projectdiscovery/subfinder owasp-amass/amass

Итог

Assetfinder не решает проблему. Он делает её видимой. А визуализация - уже ключ к понимаю что защищать.

Если у вас есть внешний периметр — он уже известен другим. Вопрос не в том, найдут ли поддомены. Вопрос — кто сделал это раньше: вы или атакующий.

Когда вы последний раз видели полный список своих внешних хостов — не из CMDB, а из внешней разведки?