Перейти к содержимому

Разрешить сайту считать ваши посещения с помощью Яндекс Метрики? Для этого она сохранит в браузере файлы cookie. Как сайт использует cookie

VC
Кейс 12 из 25 · Разведка по открытым источникам · аналитика

Разбор конкурента по открытым источникам: что видно снаружи

Это мой инструмент для собственных задач. По одному адресу сайта за 30–60 минут складывается рабочая картина: что за продукт и на каких условиях его продают, на чём собран сайт, какие внешние сервисы к нему подключены и как всё это менялось за последние годы. Источники только открытые и бесплатные. Отдельный документ с правилами выводов появился после того, как проверка поймала мою собственную ошибку.

Тип
Свой инструмент для собственных задач
Технологии
bash · whois / dig / openssl · crt.sh · URLscan
Время на разбор
30–60 минут
Итог
12 шагов · 0 ₽ на платные сервисы
01 · Проблема

Сайт открыт всем, но ничего не рассказывает о себе

Вы открываете сайт конкурента или компании, с которой собираетесь работать. Он доступен всем, но сам не отвечает ни на один практический вопрос. Сколько лет площадке и давно ли она работает в нынешнем виде? На странице этого нет. На чём собран сайт и какие внешние сервисы к нему подключены: аналитика, чат, приём платежей, формы для заявок? Нигде не написано. Что было на этом домене год назад, какое было предложение и цена, что убрали и что добавили? Этого тем более не видно.

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

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

02 · Решение

Сбор идёт по 12 шагам, выводы — по строгим правилам

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

01
Возраст

WHOIS: регистратор, дата создания домена, NS-серверы — сколько лет площадке

02
Инфраструктура

Записи DNS A / NS / SOA / MX / TXT, имена в сертификате, история в crt.sh

03
Отпечаток технологий

Короткий запрос к сайту: заголовки сервера, признаки платформы, имена cookie

04
Продукт

Что и на каких условиях продают: предложение, цена, гарантии, формы для заявок

05
История

Публичные сканы, пассивный DNS, веб-архив: как сайт выглядел раньше

Основной сбор запускается одной командой

Скрипт 01-recon.sh получает на вход домен и за один заход проходит WHOIS, DNS, разбор сертификата, историческую выборку из журналов прозрачности сертификатов (открытых записей обо всех выпущенных сертификатах), публичные сканы, пассивный DNS и веб-архив. Каждый шаг сохраняется в рабочую папку отдельным файлом. К такому файлу можно вернуться, приложить его к выводу и сравнить с повторным прогоном того же домена через месяц. Результат, который остался только в терминале, через неделю уже не проверить.

Саму страницу открывает отдельный скрипт

Первый скрипт саму страницу не открывает: WHOIS, DNS и архивы он берёт из сторонних источников, а сертификат читает без загрузки страницы. Открытие страницы — единственный шаг, который оставляет след в чужой аналитике. Поэтому он вынесен в отдельный файл 02-live-click.sh и запускается только по отдельному решению. Он снимает то, ради чего разбор и затевался:

  • условия и цена на дату разбора: с ними сравнивают ваше предложение
  • формы для заявок: сколько полей, какие обязательные, что обещают после отправки
  • внешние сервисы, которые загружает страница: аналитика, чат, приём платежей, CDN
  • Set-Cookie и заголовки ответа: по ним движок сайта узнаётся точнее, чем по содержимому страницы

Страница сохраняется целиком, вместе с ценами на дату разбора. Если кто-то скажет «весной у них было дешевле», спор решат два сохранённых файла с датами.

Технологии узнаются по отпечаткам

Сайт нигде не сообщает, на чём он собран. Но каждая платформа оставляет отпечаток, и его сложнее подделать, чем надпись на странице. Справочник tracker-signatures.md — это таблица «признак → платформа», которая пополняется на каждом разборе:

  • служебный заголовок ответа, который бывает только у одной платформы: самый сильный признак, платформа узнаётся сразу
  • вид имени cookie и его структура: по ним видно и движок сайта, и подключённую аналитику
  • пути к статике и имена файлов сборки: по ним видно фреймворк и то, чем собран интерфейс сайта
  • внешние домены, которые загружает страница: CDN, аналитика, чат, приём платежей
  • имена в DNS облачного провайдера: по ним видно, где и на чём размещён сайт

Код интерфейса тоже рассказывает о продукте

Отдельный шаг — чтение собранных файлов JS и CSS. Служебные адреса показывают, какие интеграции подключены. Версии библиотек говорят, насколько свежий код и как часто его обновляют. Названия внутренних сущностей подсказывают, как устроены данные. Шаг недорогой, а рассказывает он много.

Правила выводов записаны отдельно

За одним сайтом стоит несколько независимых участников: хостинг, CDN, конструктор или система управления сайтом, подключённые сторонние сервисы. Каждый из них обслуживает десятки не связанных между собой клиентов. Поэтому в attribution-rules.md признаки разделены на два списка: те, что действительно что-то доказывают, и те, что встречаются у всех подряд. Вывод делается по уникальному признаку.

Только бесплатные источники, и это осознанный выбор

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

03 · Технологии

Обычные инструменты командной строки и открытые сервисы

bash + curl

Весь сбор — обычный скрипт командной строки, без зависимостей и установки

whois

Регистратор, дата создания домена, NS: сколько лет площадке на самом деле

dig (A / NS / SOA / MX / TXT)

Карта DNS: хостинг, почта, подтверждения для внешних сервисов

openssl s_client + x509

Список доменов в сертификате: все соседние имена, выпущенные вместе

crt.sh

Журналы прозрачности сертификатов: поддомены и связанные имена за всю историю

URLscan.io API

Публичные сканы: какие ресурсы и внешние сервисы загружает страница

Пассивный DNS (HackerTarget / OTX)

Бесплатные источники истории DNS

Wayback Machine

Как выглядели предложение, цены и структура сайта год и три года назад

python3 (стандартная библиотека)

Разбор ответов в JSON прямо в цепочке команд, без установки пакетов

Markdown + git

Справочники признаков и правил выводов хранятся с историей версий рядом со скриптами

bashcurlwhoisdigopensslcrt.shURLscanpassive DNSWaybackpython3git
04 · Результат

Методика, которая ловит собственные ошибки

Время на разбор
30–60 мин

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

Бюджет на данные
0 ₽

ни одной платной подписки на анализ технологий, историю DNS или сертификатов

Разобранные сайты
3

три независимых разбора, каждый пополнил справочники новыми признаками

Самый ценный результат — пойманная собственная ошибка

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

Правило, которое из этого выросло

Общие инструменты не доказывают общей команды. Эта формулировка попала в attribution-rules.md вместе со списком признаков, которые выглядят убедительно и ничего не доказывают:

  • общие адреса популярного CDN (anycast): один набор адресов на всех клиентов тарифа
  • самый массовый регистратор и его стандартная услуга скрытия данных владельца: это говорит только о популярности регистратора
  • общий сторонний виджет — чат, форма, аналитика: их ставят десятки не связанных между собой компаний
  • типовой шаблон посадочной страницы и стандартный набор cookie популярного фреймворка

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

Что осталось после трёх разборов

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

Коротко: методика умеет ловить собственные ошибки. Документ теперь отвечает на два вопроса: «как узнать» и «когда вы ещё не знаете».

05 · Где пригодится

Где ещё работает тот же подход

За кейсом стоит частая задача: по одному открытому адресу составить картину чужой площадки и не ошибиться в выводе.

  • → Проверка контрагента перед сделкой — возраст домена, кто обслуживает сайт сегодня, связанные площадки под тем же сертификатом, история в веб-архиве
  • → Техническая разведка конкурента — на чём построен сайт, какая аналитика и какие внешние сервисы подключены, что было на домене год назад
  • → Клоны и поддельные копии вашего бренда — сеть доменов-двойников часто выдаёт общий сертификат, выпущенный сразу на несколько имён
  • → Проверка перед покупкой домена или проекта — что на нём размещалось раньше и с чем он связан по истории сертификатов
  • → Что видно снаружи о вас самих — та же разведка, направленная на себя: какие ваши поддомены и внутренние имена можно найти бесплатно
Что я переношу в следующие проекты
  • Скрипт разовой разведки: на входе домен, на выходе папка с результатами по каждому шагу
  • Отдельный скрипт для открытия страницы: остальной сбор саму страницу не открывает
  • Справочник «признак → платформа», который пополняется с каждым разбором
  • Правила выводов: признаки разделены на доказывающие и недоказывающие
  • Список обязательных полей для готового разбора, чтобы результат не оставался в голове аналитика
Похожая задача?

Если вопрос звучит как «а как это устроено у них», ответ часто уже есть в открытом доступе

Большая часть ответов лежит в бесплатных источниках. Их нужно собрать в правильном порядке и верно истолковать. Разбор одного сайта занимает 30–60 минут. Методика, скрипты и справочники остаются у вас, и дальше вы можете пользоваться ими сами.