РАЗБОР Статья

Ограничения OSINT: когда автоматизация бессильна

Сергей Попов
Сергей Попов Red Team · 6,5 тыс. сообщений
Подписаться
328
[ обложка статьи ]
Режим чтения
Ноутбук на тёмном антистатическом коврике с графом связей Maltego на экране: часть узлов погашена, единственный активный путь ведёт к ручному запросу crt.sh, отражая ограничения OSINT. Тёплый свет...


На pre-engagement для финтех-компании я запустил полный стек: SpiderFoot в автоматическом режиме, Amass пассивно, theHarvester по всем доступным движкам. Через три часа Maltego-граф показывал 200+ сущностей - выглядело убедительно. Пока не начал проверять руками.

Из 47 поддоменов от Amass двенадцать давно не резолвились, восемь принадлежали другой организации на shared hosting, а реальную admin-панель за Cloudflare ни один инструмент не нашёл. Точку входа я раскопал через ручной запрос к crt.sh с разбором каждой записи - за двадцать минут. Три часа автоматизации проиграли двадцати минутам ручного анализа.

Это не случайность - это системная проблема. Ниже разберу конкретные ограничения OSINT, которые ломают recon-фазу на пентесте, если про них не знать заранее.

Rate-limiting и API-квоты: первый провал автоматизации OSINT​

OSINT-фреймворки зависят от внешних API, и у каждого API есть лимиты. Когда автоматизация упирается в rate-limiting, инструмент не сообщает "данные неполные" - он молча отдаёт то, что успел собрать. Ты работаешь с обрезанным датасетом и не подозреваешь об этом. Подробнее - в нашем обзоре osint для специалиста по информационной безопасности.

theHarvester без API-ключей скрейпит поисковые системы. Google блокирует после 50–100 автоматических запросов, и выдача обрывается. Результат: видишь 30 email-адресов (T1589.002, Email Addresses, Reconnaissance) вместо реальных 200+. Maltego Community Edition ограничена 12 сущностями на один трансформ - для демонстрации хватит, для реальной разведки инфраструктуры - нет. Shodan в бесплатном аккаунте показывает только первую страницу результатов и не даёт фильтровать по уязвимостям - а именно этот фильтр обычно нужен при fingerprinting целевого хоста.
Bash:
theHarvester -d target.com -b google -l 500
# Ожидание: 500 результатов
# Реальность: 30-80 до блокировки,
# остальные молча отброшены без предупреждения
Проблема усугубляется в связках. Recon-ng агрегирует данные из десятков модулей. Если три из десяти модулей отработали с rate-limit, итоговый отчёт выглядит полным - но в нём дыры. Стандартный вывод не содержит индикаторов неполноты. С Censys та же история: бесплатный тир возвращает обрезанную выдачу, а маркер pagination теряется при автоматической обработке.

Недостатки автоматизации OSINT здесь не в самих инструментах - они делают ровно то, для чего написаны. Проблема в том, что оператор не видит границы между "собрано всё" и "собрано 15% от реального объёма".

Workaround: запускай критичные запросы вручную через веб-интерфейс источника и сравнивай объём с автоматической выдачей. Расхождение больше 30% - автоматика обрезала данные. Для theHarvester - добавляй собственные API-ключи через -k, для Shodan - как минимум membership-уровень.

WHOIS после GDPR: проблемы разведки по открытым источникам​

1790435391328.webp

До 2018 года WHOIS-записи (T1596.002, Reconnaissance) были золотой жилой пентестера: имя регистранта, email, физический адрес, телефон. После GDPR европейские регистраторы начали маскировать персональные данные. Типичный ответ WHOIS для .eu, .de, .fr доменов сегодня - "REDACTED FOR PRIVACY" по всем полям, кроме дат регистрации и name-серверов.

Для пентестера, работающего по европейской цели, это значит: техника WHOIS (T1596.002) по открытым регистраторам отдаёт минимум полезного. SpiderFoot при этом всё равно создаёт сущности на основе WHOIS-ответа, генерируя ноды с "REDACTED FOR PRIVACY" в качестве значения. А потом пытается строить связи от них. Граф выглядит насыщенным, реальной информации - ноль.

В .ru-зоне ситуация другая, но не проще. Российские регистраторы не обязаны следовать GDPR, однако после ужесточения ФЗ-152 - штрафы до 18 млн руб. за повторные нарушения обработки персональных данных с 30.05.2025 - многие перешли к приватной регистрации по умолчанию. Reg.ru и nic.ru скрывают данные владельца без дополнительного запроса.

Переход с WHOIS на RDAP (Registration Data Access Protocol) добавляет ещё один слой проблем: RDAP поддерживает дифференцированный доступ, где разные категории пользователей видят разный объём данных. Автоматические инструменты получают минимальный набор - даты и NS-записи.

Workaround: исторические WHOIS-записи через DomainTools или SecurityTrails иногда содержат данные до маскировки. Но это коммерческие сервисы с платными API. Бесплатная автоматизация здесь не поможет - и это одно из тех OSINT инструментов ограничений, о которых молчат обзоры "топ-10 инструментов для разведки".

Ложные срабатывания OSINT: когда фреймворки выдают мусор​

Автоматизированный сбор информации порождает специфический тип ошибок - ложные срабатывания OSINT, которые хуже отсутствия данных, потому что создают иллюзию результата. Ты принимаешь решения на основе данных, которые не соответствуют реальности.

Устаревшие DNS-записи​

Amass и Subfinder обнаруживают поддомены через пассивные источники: Certificate Transparency логи, DNS-агрегаторы, архивные базы. Домен мог резолвиться два года назад и попасть в базу - сейчас он мёртв или передан другой компании. Инструмент выдаёт его как валидный поддомен цели. Без проверки через dig +short subdomain.target.com включишь в scope чужую инфраструктуру. На одном из проектов я насчитал 8 "поддоменов", которые вели на лендинги конкурента - бывший подрядчик переиспользовал CNAME-записи.

Shared hosting и CDN-артефакты​

Reverse DNS lookup по IP-адресу может вернуть десятки доменов, большинство из которых не связаны с целью. SpiderFoot агрегирует всё в единый граф, и без верификации данных OSINT вручную аналитик видит несуществующие связи между организациями. Красивый граф, бесполезная картина.

Кэш поисковых систем​

Техника Search Engines (T1593.002, Reconnaissance) по Google-доркам может вернуть кэшированные страницы, удалённые месяцы назад. Иногда это ценная находка. Но для построения текущей карты инфраструктуры - источник ложных данных, который портит scope.

Утечки с перекрёстным загрязнением​

Базы утечек - по данным Have I Been Pwned: LinkedIn (164 млн записей), Facebook (509 млн), Twitter (6,6 млн) - содержат email-адреса, привязанные к доменам. Email может принадлежать бывшему сотруднику, или домен компании использовался для личной регистрации. Автоматический маппинг email@target.com = сотрудник target.com при сборе Gather Victim Identity Information (T1589, Reconnaissance) без верификации - прямой путь к ложной атрибуции. В одном кейсе автоматика выдала 12 "сотрудников", из которых четверо уволились более двух лет назад, а двое вообще никогда не работали в целевой организации.

Цели без цифрового следа: CDN, облака и OPSEC-грамотные компании​

1790435420441.webp

Иногда почему OSINT не даёт результата - вопрос не к инструментам, а к цели. Бывают организации, где пассивный recon возвращает практически ноль.

CDN как непрозрачная стена. Cloudflare, Akamai, AWS CloudFront - если веб-инфраструктура за CDN, то dig, nslookup и автоматические резолверы возвращают IP-адреса CDN-провайдера, а не реальных серверов. Shodan по этим IP покажет профиль CDN, а не целевой компании. Amass в пассивном режиме CDN не обойдёт: реальные origin-адреса не публикуются, и это не про лимиты API - тут дело в архитектуре цели. Техника Gather Victim Network Information (T1590, Reconnaissance) в таком сценарии деградирует до списка DNS-записей.

Облачная инфраструктура. Компания, полностью живущая в AWS/Azure/GCP, не имеет собственных AS-номеров, не светит IP-диапазоны в BGP-таблицах, не публикует PTR-записи. Всё, что видно снаружи - DNS-записи, указывающие на облачные endpoints. Границы применимости OSINT здесь упираются в архитектуру: облако спроектировано так, чтобы скрывать реальную топологию.

OPSEC-грамотные цели. Ряд организаций - особенно в финансовом и оборонном секторах - целенаправленно минимизируют цифровой след: приватная регистрация доменов, отсутствие публичных профилей сотрудников в соцсетях (T1593.001, Social Media, Reconnaissance), запрет на публикацию вакансий с техническими деталями стека. Весь зоопарк OSINT-фреймворков выдаёт то же, что Google - почти ничего.

По данным CrowdStrike Global Threat Report 2025, 75% вторжений за 2024 год использовали действительные учётные данные. IBM X-Force фиксирует рост credential-based атак на 71% год к году. Похоже, что атакующие всё чаще обходят recon-фазу через покупку готовых кредов, а не через кропотливую разведку по открытым источникам. Парадокс (в моей интерпретации этого тренда): OSINT-автоматизация становится менее полезной именно тогда, когда реальные угрозы смещаются к другим методам initial access.

Ручной OSINT анализ: где человек бьёт автоматику​

По данным исследования компании Indago, сравнившей ручной OSINT с AI-driven подходами, ручной анализ превосходит автоматизацию в трёх конкретных областях - и каждая критична на пентесте.

Распознавание adversarial deception. Автоматический анализ форумного поста классифицирует его как "обсуждение сетевой безопасности". Аналитик с опытом увидит терминологию из operational playbook конкретной группировки. По формулировке Indago: "Manual OSINT outperforms AI on nuance, edge cases, and adversarial content""Ручной OSINT превосходит ИИ в работе с нюансами, нестандартными ситуациями и контентом, созданным злоумышленниками." - ручной анализ выигрывает там, где данные намеренно искажены.

Оценка достоверности источника. Отличить легитимное отраслевое издание от shell PR-outlet, созданного для генерации позитивных упоминаний - задача для опытного аналитика, не для парсера. SpiderFoot обработает оба источника одинаково. Человеческий фактор в OSINT здесь работает в плюс: аналитическое мышление не заменишь энтропийными метриками.

Низкосигнальные аномалии. Одна нестыковка в DNS-записи, один неожиданный порт в Shodan, одно имя в CT-логе, не совпадающее с паттерном - вещи, которые меняют всю картину. Они невидимы для процесса, оптимизированного под объём и агрегацию. Аналитик, который связывает данные из утечки Twitter (6,6 млн записей) с конкретным сотрудником через неочевидный общий идентификатор - ник, геолокацию, формулировку в биографии - делает то, что ни один фреймворк не умеет. Это и есть та самая "разведка на салфетке", когда цепочка выстраивается в голове, а не в графе.

Ключевая метрика из Indago: "An analyst working at full capacity can meaningfully review 50-80 sources in a workday.""Аналитик, работающий с полной нагрузкой, может качественно изучить 50-80 источников за рабочий день." При очереди в 500 источников ручной анализ физически не покрывает всё. Но для пентест-проекта с одной целью это не проблема - здесь не нужен mass-мониторинг, нужна точность по конкретной инфраструктуре.

Когда переключаться: практический алгоритм для пентестера​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Если pipeline не оставляет audit trail - ты не сможешь диагностировать, где именно потерялись данные. NIST SP 800-53 Rev 5 рассматривает сбор как control problem: логируй каждое автоматическое событие сбора. Для Recon-ng это --verbose и экспорт workspace после каждого прогона.

Три года я строил OSINT-pipeline с максимальной автоматизацией: модули Recon-ng, SpiderFoot на автопилоте, кастомные Python-скрипты для парсинга утечек. Цель была - убрать аналитика из цепочки, чтобы recon занимал часы, а не дни. Результат: pipeline работает быстро, но примерно в каждом третьем проекте выдаёт картину, которая при ручной проверке оказывается неполной или искажённой. Инструменты не виноваты - Amass, theHarvester, Maltego делают ровно то, для чего написаны. Проблема в том, что OSINT-автоматизация оптимизирована под объём, а пентесту нужна точность. Эти метрики конфликтуют, и никакой фреймворк этот конфликт за тебя не разрешит.

Неудобная правда: бюджет на лицензии инструментов часто выделяется охотнее, чем на обучение аналитиков ручному разбору. При этом границы применимости OSINT проходят не там, где заканчиваются возможности инструментов. Они проходят там, где цель начинает активно управлять своим цифровым следом - CDN, приватные регистрации, cloud-native архитектура, сотрудники без LinkedIn. Против такой цели фреймворк в автоматическом режиме - пустая трата времени. С ростом credential-based attacks - IBM X-Force фиксирует +71% за год - разведка будет смещаться от классического OSINT к работе с breach intelligence и dark web мониторингу. А там автоматизация без ручной валидации не просто неэффективна - она опасна, потому что один невалидированный leaked cred уводит расследование в тупик. На HackerLab (https://hackerlab.pro) есть задачи, где без ручной recon-фазы дальше первого шага не продвинуться - хороший тест на то, где автоматика реально буксует.
Полезно

Комментарии

0