HTTP/2 Bomb — новая DoS-атака на веб-серверы, которую помог найти OpenAI Codex. По оценке исследователей Calif, один клиент с каналом 100 Мбит/с может за секунды сделать уязвимый сервер недоступным.
Самая неприятная цифра тут не про гигабиты трафика. Calif утверждает, что против Apache httpd и Envoy один клиент расходует и удерживает около 32 ГБ памяти примерно за 20 секунд. Для атаки не нужен ботнет на тысячи машин.
HTTP/2 Bomb бьёт по памяти, а не по пропускной способности
HTTP/2 Bomb объединяет две уже известные идеи: усиление через сжатие HPACK и удержание ресурсов в стиле Slowloris через остановку flow-control. Сервер получает мало данных снаружи, но внутри вынужден резервировать намного больше памяти.
Если объяснять без академического тумана, атака играет на штатных механиках HTTP/2. Маленькие заголовки и запросы раздуваются при обработке на стороне сервера. Обычно память освобождается после обработки запроса, и жизнь продолжается.
Но атакующий использует отдельную особенность HTTP/2 flow-control. Соединение остаётся открытым, а сервер не может нормально завершить работу с накопленными данными. Новые вредоносные запросы добавляют нагрузку, и память уходит быстро.
- NGINX: популярный веб-сервер и reverse proxy
- Apache HTTP Server: один из самых распространённых серверов в интернете
- Microsoft IIS: серверная платформа Microsoft для Windows Server
- Envoy: прокси, часто используемый в облачной инфраструктуре
- Cloudflare Pingora: прокси-платформа Cloudflare
CyberInsider пишет, что эти продукты обслуживают значительную часть веба. Формулировка широкая, но масштаб понятен: речь не про экзотический сервер из забытого GitHub-репозитория. Это софт, который стоит в корпоративных сетях, облаках и на публичных сайтах.
Почему обычные лимиты не спасают сервер
Исследователи считают текущие защиты слабым местом именно для этой комбинации приёмов. Например, лимит на общий размер декодированных заголовков не срабатывает, потому что значения заголовков в атаке остаются крошечными.
Это важная деталь. Многие защиты от DoS смотрят на объём входящего трафика, размер запроса или число соединений. HTTP/2 Bomb давит иначе: сервер сам выделяет память при обработке корректно выглядящих HTTP/2-механик.
Такой класс атак неприятен для администраторов по простой причине. На графике входящего канала может не быть красивой стены из трафика, как при классическом DDoS. А память на сервере уже заканчивается, процессы начинают тормозить, потом сервис падает.
Calif уже выпустила proof-of-concept. Технические детали исследователи обещают раскрыть позднее в этом месяце, поэтому часть вендоров ещё закрывает дыру. Часть продуктов уже получила патчи, часть пока остаётся уязвимой.
CyberInsider и BleepingComputer приводят одну и ту же ключевую цитату Calif: «Домашний компьютер с соединением 100 Мбит/с может сделать уязвимый сервер недоступным за секунды. Против Apache httpd и Envoy один клиент может занять и удерживать 32 ГБ серверной памяти примерно за 20 секунд».