Фреймворки OSINT: Maltego, SpiderFoot

Разбираем, как фреймворки превращают разрозненные открытые данные в единый граф связей и зачем это нужно защитнику.

OSINT-фреймворк — это инструмент, который автоматически собирает данные из множества открытых источников вокруг заданной сущности (домен, e-mail, имя) и связывает их в граф, чтобы человек видел картину целиком, а не отдельные находки.

Зачем это знать защитнику

Любой человек извне может за полчаса собрать про вашу организацию пугающе цельную картину: какие у вас поддомены, какие почтовые адреса утекали в чужие базы, какие сотрудники указали место работы в соцсетях, какие технологии торчат наружу. Фреймворки вроде Maltego и SpiderFoot автоматизируют именно этот сбор. Защитник обязан смотреть на свою инфраструктуру теми же глазами: то, что легко увидеть атакующему, нужно увидеть первым и закрыть. Это называется управлением поверхностью раскрытия (attack surface management) и входит в обязанности Blue Team.

Важно: в этом уроке мы говорим про сбор данных о своей организации либо о цели, на тестирование которой есть письменное разрешение. Несанкционированный сбор и обработка чужих персональных данных регулируются законом (в РФ — 152-ФЗ о персональных данных), а попытки доступа к чужим системам — статьями УК РФ 272–274. Открытость источника не отменяет требований к законности обработки.

Что такое граф сущностей и связей

Ключевая идея фреймворка — представить разведку в виде графа. В нём есть сущности (узлы) и связи (рёбра).

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

Когда вы начинаете с одной сущности (например, домена) и просите фреймворк «раскрутить» её, он порождает связанные сущности и проводит к ним рёбра. Дальше можно раскручивать уже их. Так из одной точки вырастает карта, на которой видно, что с чем связано.

[домен example.com]
     ├── резолвится в → [IP 203.0.113.10]
     ├── поддомен → [mail.example.com]
     ├── поддомен → [vpn.example.com]   ← а это должно торчать наружу?
     └── MX-запись → [почтовый провайдер]

[IP 203.0.113.10]
     └── обратный DNS → [host.example.com]

Maltego: ручная раскрутка через «трансформы»

Maltego — это визуальный фреймворк, где аналитик работает руками на холсте. Вы кладёте на холст стартовую сущность и применяете к ней трансформ (transform) — небольшую операцию, которая берёт сущность, обращается к какому-то источнику данных и возвращает связанные сущности. Например, трансформ «домен → поддомены» или «e-mail → утечки, где он встречался».

Сильная сторона Maltego — наглядность и контроль: вы видите граф, сами решаете, что раскручивать дальше, и не тонете в шуме. Это инструмент аналитика, который думает по ходу дела. Источники подключаются через хабы трансформов; часть бесплатна, часть — платные коммерческие наборы.

SpiderFoot: автоматический «пылесос»

SpiderFoot устроен иначе: вы задаёте одну цель (домен, IP, e-mail) и запускаете скан. Дальше десятки встроенных модулей сами опрашивают множество открытых источников — DNS, публичные базы утечек, сертификаты, архивы, поисковики — и складывают всё в общую базу данных скана. На выходе вы получаете большой структурированный отчёт и тот же граф связей, но собранный автоматически.

# SpiderFoot запускают как локальный веб-сервис в своей лаборатории
# и сканируют ТОЛЬКО свой домен или цель с разрешения
sf -l 127.0.0.1:5001
# затем в браузере открывается панель, где задаётся цель скана

Компромисс очевиден: SpiderFoot быстрее и полнее по охвату, но даёт много шума, который потом надо фильтровать. Maltego медленнее, зато аналитик держит фокус. На практике их часто комбинируют: SpiderFoot — для широкого первичного сбора, Maltego — для аккуратной визуальной проработки интересных связей.

Как это работает под капотом

Под визуальной оболочкой любой такой фреймворк делает одно и то же. Есть сущность с типом, и есть набор модулей (в Maltego — трансформы, в SpiderFoot — модули), каждый из которых умеет: принять сущность определённого типа, обратиться к конкретному источнику (DNS-резолвер, публичный API, веб-страница, база сертификатов) и вернуть новые сущности с проставленными связями. Фреймворк лишь оркестрирует эти модули и хранит результат как граф.

Важно понимать про источники: модули обращаются к тому, что и так доступно публично, — записи DNS, прозрачность сертификатов (Certificate Transparency), архивные копии страниц, базы уже случившихся утечек. Фреймворк не «взламывает» — он быстро агрегирует разбросанное. Именно поэтому защита строится не на том, чтобы «запретить инструмент», а на том, чтобы уменьшить количество данных, которые эти модули вообще смогут найти.

Как защититься

Раз атакующий и защитник пользуются одним инструментом, защита — это регулярный self-OSINT и сокращение раскрытия:

  • Сканируйте себя сами и по расписанию. Запускайте SpiderFoot/Maltego по своим доменам, чтобы первыми находить забытые поддомены, тестовые стенды и панели управления, торчащие в интернет.
  • Закрывайте лишнее. Внутренние сервисы (admin-панели, VPN-шлюзы по умолчанию, dev-окружения) убирайте за периметр, ограничивайте по IP, прячьте за VPN.
  • Следите за Certificate Transparency. Каждый выпущенный TLS-сертификат публичен и выдаёт имена ваших хостов — учитывайте это и не размещайте «секретные» имена в публичных сертификатах.
  • Минимизируйте раскрытие сотрудников и почт. Общие ящики, разумные политики публикации в соцсетях, мониторинг появления корпоративных адресов в утечках.
  • Работайте только легально. Сбор по чужим целям — лишь с письменным согласием владельца; обработка персональных данных — в рамках 152-ФЗ.

Итоги

  • OSINT-фреймворк автоматически собирает открытые данные вокруг сущности и связывает их в граф «узлы + рёбра».
  • Maltego — ручная визуальная раскрутка через трансформы; SpiderFoot — автоматический широкий скан множеством модулей.
  • Фреймворки не взламывают, а агрегируют уже публичные источники (DNS, сертификаты, архивы, утечки).
  • Защита — это регулярный self-OSINT и сокращение поверхности раскрытия, а не попытка «запретить инструмент».
  • Любой сбор по чужим целям — только с разрешения и в рамках закона (152-ФЗ, ст. 272–274 УК РФ).
Проверьте себя
1. Что в OSINT-фреймворке называют графом сущностей и связей?
AДиаграмму производительности сканера
BУзлы-объекты (домен, e-mail, IP) и рёбра-отношения между ними
CГрафик числа запросов в секунду
DСписок установленных модулей
2. Чем подход Maltego принципиально отличается от SpiderFoot?
AMaltego взламывает системы, а SpiderFoot — нет
BMaltego работает только с IP, SpiderFoot — только с доменами
CMaltego — ручная визуальная раскрутка через трансформы, SpiderFoot — автоматический широкий скан множеством модулей
DМежду ними нет разницы
3. Какой вывод о защите следует из того, что фреймворки лишь агрегируют публичные источники?
AЗащита бессмысленна, раз данные публичны
BНужно запретить такие инструменты законом
CНужно регулярно сканировать себя и сокращать поверхность раскрытия (self-OSINT)
DДостаточно сменить хостинг-провайдера