Конкурентная разведка по открытым источникам: от публичной ссылки до владельца инфраструктуры
Собственный инструмент, не клиентский проект. По одной публичной рекламной ссылке за 30–60 минут восстанавливается техническая цепочка: на чём стоит инфраструктура, какой трекер её обслуживает и кто за ней стоит. Только бесплатные открытые источники — ни одной платной подписки. Плюс отдельный документ правил, который появился после того, как методология поймала собственную ошибку.
Ссылка публичная, но не говорит ничего
Вы видите рекламную ссылку конкурента или ссылку в письме от потенциального контрагента. Она публичная — но по ней нельзя сходу ответить ни на один практический вопрос. Куда она реально ведёт: между кликом и финальной страницей стоит фильтр, который посетителю «не из целевой аудитории» отдаёт нейтральную заглушку. Кто владелец: регистрация домена закрыта privacy-провайдером. Какой трекер её обслуживает: нигде не написано — платформы не подписываются.
Коммерческий ответ на эту задачу — платные подписки на пассивный DNS, историю сертификатов и атрибуцию инфраструктуры. Это сотни долларов в месяц, и они всё равно закрывают только часть вопросов: сервис покажет соседние домены, но не скажет, какой трекер стоит внутри и означает ли соседство общего владельца.
Второе место, где ломается такая работа, — не сбор данных, а дисциплина вывода. Собрать признаки легко. Легко и переоценить их: увидеть у двух разных цепочек общий промежуточный сервис и объявить их одной операцией. Такой вывод хуже отсутствия вывода — он выглядит обоснованным и на нём принимают решения.
12 шагов, два скрипта и дисциплина вывода
Методология состоит из двух половин, и вторая важнее первой. Первая — сбор: воспроизводимый, скриптованный, оставляющий артефакты. Вторая — правила интерпретации: какой признак доказывает владельца, а какой встречается у сотен независимых операторов и не доказывает ничего.
WHOIS: регистратор, дата создания домена, privacy-провайдер, NS-серверы
DNS-записи A / NS / SOA / MX / TXT, SAN сертификата, история в crt.sh
HEAD-запрос: заголовки сервера, X-Powered-By, имена cookie
Реальная цепочка перенаправлений с параметрами настоящего посетителя
Публичные сканы, пассивный DNS, веб-архив: что видели до вас
Сбор сведён к одной команде
Скрипт
01-recon.sh
принимает на вход домен и за один заход проходит WHOIS, DNS, разбор сертификата, историческую
выборку из прозрачности сертификатов, HEAD-запрос, публичные сканы, пассивный DNS и веб-архив.
Каждый шаг ложится отдельным файлом в рабочую папку — это артефакт, к которому можно вернуться,
приложить к выводу и сравнить с повторным прогоном того же домена через месяц. Разведка,
существующая только в терминале аналитика, не разведка.
Живой проход вынесен в отдельный скрипт — намеренно
Фильтр показа отдаёт нейтральную страницу всем, кто не похож на целевого посетителя: не тот
регион, не тот тип устройства, не тот источник перехода. Поэтому
02-live-click.sh
делает запрос с параметрами настоящего посетителя и снимает с него всё, что видно:
- полную цепочку перенаправлений — каждый хоп это отдельный домен и, возможно, отдельный участник
Set-Cookieна каждом хопе — имена cookie опознают платформу лучше, чем содержимое страницы- заголовки ответа по хопам: сервер, признаки фреймворка, идентификаторы CDN
- финальный ответ с реальным содержимым — то, ради чего вся цепочка и построена
Отдельный файл здесь — не косметика. Это единственный шаг, который отправляет запрос с подставленным источником перехода; он не должен уезжать случайно в составе обычного сбора. Разделение зафиксировано прямо в комментарии скрипта, чтобы решение пережило автора.
Опознание трекера по сигнатуре, а не по названию
Трекер нигде не представляется. Но каждая платформа оставляет отпечаток, и он устойчивее любой
надписи на странице. Справочник
tracker-signatures.md
— это таблица «признак → платформа», которая пополняется на каждом разборе:
- служебный заголовок ответа, уникальный для одной платформы — самый сильный признак, опознание мгновенное
- форма имени cookie и её структура — например, имя с хешем фиксированной длины и подписью значения
- форма пути в URL перехода: где стоит идентификатор кампании, где — идентификатор партнёра
- набор полей в JSON интеграции — состав ключей однозначно маппится на конкретный класс платформ
- имя балансировщика в DNS облачного провайдера — часто внутреннее кодовое имя проекта оператора
Код на странице говорит о команде больше, чем страница
Отдельный шаг — чтение собранных JS и CSS не на предмет логики, а на предмет следов авторов: жёстко зашитые адреса служебных эндпоинтов, названия внутренних сущностей, и главное — комментарии на нелатинице. Одна-две строки на родном языке разработчика сужают круг кандидатов сильнее, чем весь остальной технический сбор. Это дешёвый шаг, который почти всегда пропускают.
Правила атрибуции — отдельный документ, а не абзац в конце
В цепочке участвует не один игрок, а несколько независимых: слой маскировки показа, трекер,
промежуточный сервис перенаправления, конечный продавец. Каждый — отдельная компания, и
каждый может обслуживать десятки не связанных между собой клиентов. Поэтому в
attribution-rules.md
признаки разделены на два списка: те, что доказывают конкретного оператора, и те, что
встречаются у всех подряд. Вывод делается по первой уникальной сигнатуре в цепочке, а не по
последнему хопу и не по общим промежуточным звеньям.
Ноль платных источников — это ограничение, а не экономия
Весь сбор строится на том, что доступно любому: whois-сервер регистратуры, публичные DNS-резолверы, прозрачность сертификатов, публичные сканы страниц, пассивный DNS и веб-архив. Ограничение полезно методологически: оно заставляет опираться на признаки, которые можно перепроверить независимо, а не на вердикт закрытого сервиса, который нельзя ни оспорить, ни воспроизвести.
Инструменты, которые уже стоят на любой машине
Весь сбор — обычный shell-скрипт без зависимостей и без установки
Регистратор, дата создания домена, privacy-провайдер, NS — первый фильтр
Карта DNS: хостинг, почта, верификации внешних сервисов
SAN сертификата — все смежные домены, выпущенные под одним сертом
Прозрачность сертификатов: историческая enumeration субдоменов и связанных имён
Публичные сканы: полная цепочка загруженных ресурсов, заголовки и cookie
Бесплатные аналоги платных сервисов истории DNS
Как домен выглядел раньше — часто до того, как его закрыли приватностью
Разбор JSON-ответов прямо в пайпе, без установки пакетов
Справочники сигнатур и правил атрибуции версионируются вместе со скриптами
Методология, которая ловит собственные ошибки
от публичной ссылки до названного оператора, его стека и способа проверки
ни одной платной подписки на пассивный DNS, историю сертификатов или атрибуцию
три независимых разбора; каждый пополнил справочники новыми сигнатурами
Самый ценный результат — пойманная собственная ошибка
На третьем разборе атрибуция сначала была неверной. Две разные цепочки сходились на одном промежуточном сервисе перенаправления, и это выглядело как доказательство общего владельца — признак яркий, воспроизводимый и абсолютно ложный. Ошибка вскрылась на следующем шаге: в заголовках ответа нашлась сигнатура трекера, принадлежащая одной конкретной платформе и не встречающаяся у других. Оператор оказался другим — и это подтвердилось независимо, через публичный сайт владельца этой платформы.
Правило, которое из этого выросло
Общие инструменты не доказывают общего владельца.
Формулировка попала в
attribution-rules.md
вместе с явным списком признаков, которые ничего не доказывают, хотя выглядят убедительно:
- anycast-адреса популярного CDN — общий пул на всех клиентов тарифа
- самый массовый регистратор и его дефолтный privacy-провайдер — это про популярность, а не про связь
- сторонний сервис перенаправления в середине цепочки — независимый SaaS, им пользуются десятки не связанных операторов
- типовой шаблон лендинга и стандартный набор cookie популярного фреймворка
Итоговый алгоритм короткий: найти первый хоп с уникальной сигнатурой, опознать по нему платформу, подтвердить вторым независимым признаком — и только тогда называть оператора. Совпадение по общей инфраструктуре идёт в вывод как дополнительное свидетельство, никогда как основное.
Что осталось после трёх разборов
Репозиторий с плейбуком, двумя переиспользуемыми скриптами и двумя справочниками, которые растут с каждым новым разбором. Плюс чеклист сдачи — список полей, которые обязаны быть заполнены, прежде чем вывод считается готовым: кто оператор, где публично подтверждается, какой стек, чем именно доказана атрибуция. Чеклист нужен ровно для того же, для чего нужны правила: чтобы уверенность аналитика не подменяла собой доказательство.
Общий итог, если убрать детали: методология, которая ловит собственные ошибки, полезнее методологии, которая всегда уверена. Документ теперь отвечает не только на вопрос «как узнать», но и на вопрос «когда вы ещё не знаете».
Где ещё ложится та же методология
Кейс не про рекламные ссылки. Это типовая задача «по одному публичному идентификатору восстановить, кто стоит за инфраструктурой, и не ошибиться в выводе». Она встречается сильно чаще, чем кажется:
- → Проверка контрагента перед сделкой — возраст домена, реальный владелец инфраструктуры, связанные площадки под тем же сертификатом, история в веб-архиве
- → Техническая разведка конкурента — на чём построен сайт, какая аналитика и какие внешние сервисы подключены, что было на домене год назад
- → Клоны и фишинг под ваш бренд — сеть доменов-двойников обычно выдаёт себя общим сертификатом и общей инфраструктурой
- → Due diligence перед покупкой домена или проекта — что на нём размещалось раньше и с чем он связан по истории сертификатов
- → Аудит собственного периметра — та же разведка, направленная внутрь: какие ваши поддомены и внутренние имена видны снаружи бесплатно
- Скрипт one-shot разведки: домен на входе — папка с артефактами по каждому шагу на выходе
- Изолированный скрипт живого прохода — рискованный запрос никогда не уходит в составе обычного сбора
- Справочник «признак → платформа», который пополняется каждым новым разбором
- Правила атрибуции: явное разделение признаков на доказывающие и не доказывающие
- Чеклист сдачи разбора — обязательные поля вывода, чтобы результат не оставался в голове аналитика
Если вопрос звучит как «кто за этим стоит» — ответ чаще всего уже публичен
Большая часть ответов лежит в бесплатных источниках — их нужно собрать в правильном порядке и корректно интерпретировать. Разбор одной цепочки — 30–60 минут; методология, скрипты и справочники остаются у вас и работают дальше без меня.
Аудит за 5 000 ₽ — с конкретным отчётом и сметой
Расскажу что внедрить в вашем бизнесе в первую очередь, какая будет окупаемость, и нужен ли вообще AI для вашей задачи (иногда — нет).
Или просто напишите свой вопрос — отвечу в течение 2 часов