Knowledge Base
Safe Active Diagnostics — короткие контролируемые проверки
Safe Active Diagnostics — короткие контролируемые проверки
Категория: Monitoring · Риск: medium
Safe Active Diagnostics — короткие контролируемые проверки
Зачем это нужно
Пассивная проверка видит только заголовки, DNS, TLS и открытые сервисы. Этого недостаточно, чтобы отличить реальную проблему от особенности CDN/WAF или наоборот увидеть слабое поведение приложения.
Safe Active Diagnostics добавляет короткий контролируемый слой: сканер отправляет несколько read-only запросов и смотрит, как сайт реально отвечает на необычные, но безопасные ситуации.
Что проверяется
NodeRoute выполняет ограниченный набор запросов:
- `OPTIONS` / CORS preflight с тестовым Origin;
- `TRACE` без тела запроса;
- `GET` с неожиданным Host header;
- `GET` на случайный несуществующий путь;
- `GET` с harmless custom header длиной около 2 KB.
Что НЕ выполняется
Проверка не делает:
- brute force;
- подбор паролей;
- SQL/XSS/SSRF payloads;
- загрузку файлов;
- изменение данных;
- обход авторизации;
- эксплуатацию CVE;
- нагрузочный DDoS.
Почему это безопаснее обычного pentest-probing
Все запросы:
- read-only;
- ограничены по количеству;
- имеют короткие таймауты;
- не содержат exploit payloads;
- не отправляют формы и credentials;
- не пытаются создать, изменить или удалить ресурс.
Какие риски можно увидеть
CORS доверяет чужому сайту
Если сервер отражает произвольный `Origin` и одновременно разрешает credentials, чужой сайт может получить доступ к ответам API в браузере пользователя.
TRACE включён
TRACE в production обычно не нужен. Если сервер отражает запрос, это лишняя диагностическая поверхность.
Host header отражается
Если чужой Host попадает в `Location` или HTML, это может быть признаком риска password reset poisoning, cache poisoning или неправильной генерации абсолютных ссылок.
Несуществующий путь вызывает 5xx
Random URL не должен ломать приложение. Корректный ответ — 404, 410, 403 или осознанный SPA fallback.
Длинный harmless header вызывает 5xx
Даже необычный заголовок должен завершаться контролируемо: 200, 400, 403 или 431. 5xx означает проблему в reverse proxy или приложении.
Как читать результат
Pass-сигналы не означают, что сайт полностью защищён. Они означают, что конкретный безопасный active-probe не выявил плохого поведения.
Fail/warn-сигналы важнее пассивных догадок, потому что основаны на реальном ответе сайта.
Как исправлять
1. Для CORS используйте allowlist доверенных origin. 2. Отключите TRACE/TRACK на edge и reverse proxy. 3. Настройте allowlist `Host` / `server_name`. 4. Возвращайте корректный 404/410 для неизвестных URL. 5. Настройте лимиты заголовков так, чтобы ошибки были 400/431, а не 5xx.
Связанные проверки
- [CORS Misconfiguration](/kb/web_app_security/cors-misconfiguration-check)
- [Host Header Injection](/kb/web_app_security/host-header-injection)
- [HTTP methods OPTIONS / TRACE](/kb/server_hardening/http-methods-options-trace)
- [Safe micro-load checks](/kb/monitoring/safe-micro-load-checks)