Открытый Prometheus Metrics: почему нельзя светить /metrics
Эндпоинт /metrics экспортирует данные производительности серверов, баз данных и приложений в формате Prometheus для систем мониторинга.
Открытый эндпоинт раскрывает статистику запросов, внутренние имена хостов, версии программного обеспечения и параметры авторизации.
Степень критичности и чем опасна уязвимость
Метрики служат ценным источником разведки для подготовки направленных атак на серверную инфраструктуру.
Как наш сканер находит эту уязвимость
Site Check проверяет публичную доступность эндпоинта /metrics на стандартных портах и базовом домене.
Аудит административных интерфейсов выполняется методом зондирования типовых эндпоинтов телеметрии и дашбордов. Сканер анализирует заголовки HTTP-аутентификации (WWW-Authenticate), редиректы на форму входа и структуру возвращаемого HTML, не выполняя попыток перебора паролей или внедрения учетных записей.
Как устранить уязвимость (Пошаговое руководство)
Для ликвидации риска выполните следующие действия в конфигурации вашего сервера или приложения:
# Закрытие эндпоинта /metrics на уровне Nginx:
location /metrics {
allow 10.0.0.0/8; # Разрешить только внутренней сети мониторинга
deny all;
}
- Привязывайте экспортеры Prometheus к внутренним IP-адресам (127.0.0.1).
- Закройте доступ к /metrics базовой авторизацией или сетевым экраном.
Анатомия атаки и реальные последствия для проекта
Метрики Prometheus (/metrics, порт 9090) раскрывают внутренние IP-адреса сервисов, статистику запросов, нагрузку на сервер и структуру микросервисов, что помогает злоумышленнику спланировать эффективную DoS-атаку.
Влияние на соответствие стандартам: Нарушение требований безопасности стандартов OWASP Top 10 (A05:2021 Security Misconfiguration), ISO/IEC 27001 и отраслевых норм 152-ФЗ.
Матрица эшелонированной защиты (Defense-in-Depth)
| Уровень защиты | Техническое действие | Инструмент / Механизм |
|---|---|---|
| Периметр веб-сервера (Nginx / Edge) | Применение изолирующих правил блокировки для маршрутов, связанных с prometheus-exposure | Nginx Security Directives |
| Среда исполнения и конфигурация | Отключение отладочных механизмов и разграничение прав доступа к компоненту prometheus-exposure | Runtime Security Hardening |
| Пайплайн DevSecOps контроля | Автоматическое тестирование конфигурации prometheus-exposure в CI/CD пайплайне при каждом релизе | Site Check Security Gate |
Верификация устранения: команды для быстрой проверки
После внесения изменений в настройки сервера или исходный код приложения проверьте отсутствие уязвимости с помощью терминальных утилит:
curl -s https://ваш-домен.com/metrics | head -n 5
# Не должно отдавать метрики без авторизации
Рекомендации DevSecOps для безопасного развертывания
Настройте экспорт метрик только во внутреннюю сеть Kubernetes/Docker или защитите эндпоинт /metrics через mTLS и basic auth.
- ✓ Ограничить доступ к административным путям белым списком доверенных IP-адресов
- ✓ Настроить обязательную двухфакторную аутентификацию (2FA) для всех панелей управления
- ✓ Отключить Swagger UI и эндпоинты Actuator на внешних продакшен-портах
- ✓ Настроить отправку алертов при множественных неудачных попытках авторизации
Часто задаваемые вопросы по устранению
Публичная доступность служебных панелей управления (Grafana, Prometheus, Swagger, Actuator) деанонимизирует топологию сети и снижает порог входа для целевой атаки. Базовый периметр безопасности требует выноса подобных сервисов за VPN, внедрения mTLS или привязки к приватной подсети без публичных DNS-записей.
Для предотвращения вектора «Открытый Prometheus Metrics: почему нельзя светить /metrics» зафиксируйте проверочные правила в CI/CD пайплайне и настройте непрерывный мониторинг внешнего периметра через Site Check.