Веб-мониторинг начинается с цели, а не с точки захвата. Подсчёт активных клиентов, замер вызова API и чтение тел сообщений требуют разных доказательств и разных решений о приватности. Шлюз, передающий защищённый HTTPS, видит соединения, а не содержимое страницы. Выбор неверного слоя даёт данные, которые выглядят богато и ни на что не отвечают.

Назовите вопрос раньше источника данных

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

Запишите вопрос одним предложением и держите его рядом с планом сбора. Это единственный надёжный контроль охвата.

Что шлюз может показать, а что нет

Шлюз, передающий правильно защищённый HTTPS, обычно видит адреса, порты и объёмы, а не строки запросов или тела.

conntrack -L -d 203.0.113.10 | head
tcpdump -ni vpn0 -c 20 'tcp port 443'

Список conntrack показывает потоки и трансляции, а короткий захват показывает пакеты без читаемого содержимого приложения. Этого достаточно, чтобы ответить, идёт ли трафик, сколько и между какими конечными точками. Это не список URL, и обычный CONNECT-прокси передаёт зашифрованный обмен, не завершая TLS приложения. Когда кто-то обещает пути запросов с этой позиции, спросите, какой компонент расшифровывает и под чьим доверием.

Журналы приложения отвечают на большинство вопросов о запросах

Для приложения, которое вы эксплуатируете, его собственное поддерживаемое журналирование обычно отвечает на вопрос уровня запроса, не расшифровывая чужие соединения.

curl -sS -o /dev/null -w "%{http_code} %{time_total}\n" https://app.example.com/health
tail -n 5 /var/log/nginx/access.log

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

Перехват — отдельный дизайн доверия

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

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

Похожие статьи