M
METASCAN News & PoC
@metascan_news
20.04.2026 12:58
SlowHTTP: Уязвимость «на страже» доступности

Пока исследователи охотятся за критическими уязвимостями, ошибки конфигурации веб-серверов нередко остаются без внимания. Одна из таких ошибок делает сервер уязвимым для атаки SlowHTTP.

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

Злоумышленник открывает соединение и начинает отправлять HTTP-запрос частями: сначала строку GET / HTTP/1.1, затем заголовки - по одному, с паузами. Финальная последовательность \r\n\r\n, сигнализирующая серверу о завершении запроса, намеренно не отправляется. Сервер не может определить, завершил ли клиент передачу, и продолжает ждать, удерживая соединение открытым. При масштабировании этой схемы все доступные слоты пула оказываются заняты, а легитимные пользователи получают ошибку 504 Gateway Timeout.

Основные виды атаки

Slowloris (Slow HTTP Headers)
— клиент открывает соединение и бесконечно отправляет HTTP-заголовки, намеренно не завершая запрос финальным \r\n\r\n. Сервер ждёт окончания заголовочного блока и поддерживает соединение с клиентом.
Slow POST — в заголовке Content-Length объявляется большой объём данных (например, 1 000 000 байт), а тело запроса отправляется по байту в минуту. Это заставляет сервер дождаться всего тела прежде чем обработать запрос.
Slow Read — клиент отправляет легитимный HTTP-запрос, но намеренно объявляет маленький размер TCP-окна (к примеру, 28 байт) в начальном SYN-пакете. Сервер передает первые 28 байт и вынужден остановиться, так как клиент возвращает win 0 (буфер заполнен). Сервер продолжает периодически опрашивать клиента о доступном месте в буфере. Общее время удержания соединения в таком состоянии может достигать 2 минут. Все это время соединение остается открытым и слот в пуле занят. Тысячи таких соединений приводят к отказу в обслуживании.


Как проверить свой проект

Для проверки уязвимости к SlowHTTP можно использовать утилиту Slowhttptest. Это специализированный инструмент, который имитирует медленные атаки и показывает, как сервер на них реагирует.

Пример команды:
slowhttptest -c 1000 -H -g -o slowloris_stats -i 10 -r 200 -t GET -u https://target.com -x 24 -p 3

Если через минуту сервис перестал отвечать — уязвимость найдена.

Как защититься

Защита строится на ограничении времени ожидания и количества соединений:

1. Таймауты в Nginx — необходимо установить жёсткие рамки на чтение заголовков и тела запроса.
client_body_timeout 10s;
client_header_timeout 10s;

2. Лимиты соединений — ограничить количество одновременных подключений с одного IP.
3. Reverse Proxy — использовать Nginx или HAProxy перед бэкендом. Nginx буферизует входящие запросы и не передаёт их дальше до полного получения.
4. Модуль mod_reqtimeout для Apache — позволяет установить таймауты на приём заголовков и тела запроса. Если клиент слишком медленно отправляет данные, соединение разрывается.

Сканер METASCAN выявляет серверы, уязвимые для SlowHTTP. Наши эксперты регулярно подтверждают наличие этой проблемы в инфраструктуре клиентов.

#Metascan #pentest #redteam #Metascan_news
🔥 7
👍 5
💯 2
1 3 571

Обсуждение 1

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram
M

METASCAN News & PoC

387
Сканер уязвимостей с экспертным сопровождением: https://metascan.ru
Открыть в Telegram