Knowledge Base
Блокировка прямого бот-трафика и неизвестных Host
Что проверяет метод
Категория: Server Hardening · Риск: high
Что проверяет метод
Метод проверяет, отдаёт ли сервер приложение на запросы, которые не должны попадать в боевой сайт:
- запросы по IP;
- запросы с чужим `Host`;
- запросы к неизвестному virtual host;
- запросы, где TLS SNI указывает на сайт, а HTTP `Host` подменён.
Это безопасная проверка: она не подбирает пароли, не отправляет payloads и не меняет состояние приложения.
Почему это важно
Ботам и сканерам удобно начинать разведку с IP-адреса, случайных доменов и подмены `Host`. Если default virtual host отдаёт обычное приложение или API, атакующий получает лишнюю информацию:
- что за стек используется;
- какие endpoints существуют;
- как ведёт себя reverse proxy;
- есть ли несогласованность между TLS, Host и backend routing.
Хороший результат — неизвестный Host завершается на edge/proxy и не доходит до backend.
Быстрая проверка
curl -sI -H "Host: attacker.invalid" http://example.com/
curl -skI -H "Host: attacker.invalid" https://example.com/
Хорошо:
HTTP/1.1 421 Misdirected Request
Server: nginx
Плохо:
HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
...
обычный HTML сайта или API-ответ
Пример для Nginx
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
server_tokens off;
return 421;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name _;
server_tokens off;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
return 421;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
if ($host !~ ^(example\.com|www\.example\.com)$) {
return 421;
}
proxy_set_header Host $host;
}
Как писать в отчёте
Плохо:
> Host header test failed.
Хорошо:
> Сервер отвечает на запросы с чужим именем сайта. Это упрощает разведку и может раскрывать приложение ботам, которые обращаются по IP или случайному домену.
Technical classification:
unknown_host_reaches_application
Связанные статьи
- [Safe Active Host Header Check](/kb/web_app_security/safe-active-host-header-check)
- [Recon Resistance](/kb/security_strategy/recon-resistance)
- [Server Header Leakage](/kb/http/server-header-leakage)