HTTP/2 “Bomb” DoS-атака: новая угроза, способная обрушить сервер за минуту
Новая атака типа «отказ в обслуживании» (DoS), получившая название HTTP/2 Bomb, может быть запущена с одного компьютера и вывести из строя веб-серверы за считаные секунды.
Этот метод работает с конфигурациями HTTP/2 по умолчанию на основных веб-серверах, включая NGINX, Apache HTTP Server, Microsoft IIS, Envoy и Cloudflare Pingora.
Атака HTTP/2 Bomb, обнаруженная программным агентом Codex от OpenAI под руководством исследователей из компании Calif, специализирующейся на наступательных методах обеспечения безопасности, сочетает в себе два ранее известных метода DoS-атак на HTTP/2: усиление сжатия HPACK и удержание ресурсов в стиле Slowloris с помощью остановки потока данных в HTTP/2.
При таком сочетании один клиент, подключенный к сети со скоростью 100 Мбит/с, может за считаные секунды израсходовать десятки гигабайт оперативной памяти, вынуждая сервер выделять ее, а затем не давая освободить.
«Домашний компьютер с подключением на скорости 100 Мбит/с может сделать уязвимый сервер недоступным за считаные секунды. При использовании Apache httpd и Envoy один клиент может израсходовать и заблокировать 32 ГБ памяти сервера примерно за 20 секунд», — утверждают исследователи.
DoS-атака HTTP/2 Bomb использует механизм HPACK, применяемый в протоколе HTTP/2 для сжатия заголовков. Злоумышленник вставляет заголовок в динамическую таблицу HPACK и многократно ссылается на него с помощью компактного индексированного представления, размер которого может составлять один байт.
В результате один байт, отправленный злоумышленником, может привести к выделению тысяч байт памяти на стороне сервера. Худшие показатели демонстрируют Envoy и Apache httpd — 5700:1 и 4000:1 соответственно.
Вторая часть атаки заключается в том, чтобы не дать освободить память после завершения запроса. Этого можно добиться, объявив окно управления потоком данных размером в ноль байт. Вместо отправки ответа сервер периодически отправляет небольшие кадры WINDOW_UPDATE, чтобы избежать превышения времени ожидания.
В этом случае запросы никогда не выполняются полностью, а выделенная память продолжает расти, не освобождаясь.
Исследователи из Калифорнийского университета объясняют, что этот подход позволяет обойти существующие средства защиты, такие как ограничения на общий размер декодированного заголовка, поскольку значения заголовков, используемые в атаке, очень малы, а амплификация происходит за счет внутренней обработки заголовков и распределения памяти.
При тестировании новой техники DoS-атаки на четырех основных веб-серверах исследователи добились следующих результатов:
- Envoy 1.37.2 израсходовал 32 ГБ оперативной памяти примерно за 10 секунд
- Apache httpd 2.4.67 израсходовал 32 ГБ оперативной памяти примерно за 18 секунд
- nginx 1.29.7 израсходовал 32 ГБ оперативной памяти примерно за 45 секунд
- IIS (Windows Server 2025) израсходовал 64 ГБ оперативной памяти примерно за 45 секунд
Все технические подробности DoS-атаки HTTP/2 Bomb будут раскрыты на конференции Real World AI Security в конце этого месяца в докладе исследователя Куанг Луонга.
Однако эксплойты, подтверждающие концепцию (PoC), для нового метода атаки уже опубликованы.
Последствия и исправления
Исследователи из Калифорнийского университета подчеркивают, что, хотя ни одна из частей их атаки не была принципиально новой, сочетание этих двух методов дает значительный эффект.
Они отмечают, что, хотя в спецификации алгоритма HPACK основное внимание уделяется рискам, связанным с увеличением объема используемой памяти, в ней не рассматривается вопрос о том, что происходит, когда злоумышленник удерживает выделенную память в течение неопределенного времени с помощью управления потоком HTTP/2.
Однако не все веб-серверы уязвимы для «HTTP/2 Bomb», поскольку для некоторых платформ уже выпущены исправления. Кроме того, некоторые пользовательские конфигурации серверов могут обеспечивать косвенную защиту от этой атаки.
Например, системы, работающие за CDN или обратными прокси-серверами, не имеют уязвимой конечной точки HTTP/2, и атаковать их сложнее. Кроме того, в некоторых развертываниях уже могут быть установлены пользовательские ограничения на количество заголовков, брандмауэры веб-приложений, обратные прокси-серверы или отключена поддержка HTTP/2.
Проблема была устранена в версии nginx 1.29.8, в которой была добавлена директива max_headers, а также в Apache httpd mod_http2 2.0.41, где проблеме был присвоен идентификатор CVE-2026-49975.
На момент написания статьи для IIS, Envoy и Pingora не было выпущено никаких обновлений. На этих веб-серверах рекомендуется по возможности отключать HTTP/2 и устанавливать прокси-сервер или брандмауэр, который ограничивает количество заголовков.
Возможные меры защиты
Специалисты рекомендуют следующие меры защиты:
- Ограничение количества одновременных HTTP/2 streams
- Включение rate limiting на уровне сервера
- Использование WAF (Web Application Firewall)
- Отключение HTTP/2 там, где он не критичен
- Обновление серверного ПО до последних версий
Также важно тестировать инфраструктуру на устойчивость к аномальной нагрузке и симулировать подобные сценарии в контролируемой среде.
Реакция индустрии
После публикации исследования многие разработчики серверного ПО начали выпускать патчи и обновления безопасности. Облачные провайдеры также пересматривают лимиты HTTP/2 соединений и потоков.
Эксперты отмечают, что подобные уязвимости подчеркивают важность правильной реализации сетевых протоколов и строгого контроля ресурсов.
Выводы
HTTP/2 Bomb — это наглядный пример того, как современные оптимизации протоколов могут быть использованы против самих систем. Несмотря на свою эффективность, HTTP/2 требует аккуратной настройки и строгих ограничений.
Организациям рекомендуется срочно проверить конфигурации своих серверов и убедиться, что внедрены механизмы защиты от лавинообразных потоков запросов.
Часто задаваемые вопросы
Что такое HTTP/2 Bomb?
Это тип DoS-атаки, использующий особенности HTTP/2 для создания лавинообразной нагрузки на сервер через одно соединение.
Нужен ли ботнет для такой атаки?
Нет, атака может быть выполнена с одного устройства, что делает её особенно опасной.
Какие серверы наиболее уязвимы?
Серверы с включённым HTTP/2 без ограничений на количество потоков и слабой защитой от перегрузки.
Можно ли полностью защититься?
Полностью исключить риск сложно, но его можно значительно снизить с помощью лимитов потоков, WAF и обновлений ПО.
Стоит ли отключать HTTP/2?
В некоторых случаях — да, особенно если сервер не требует высокой параллельности запросов или не имеет достаточной защиты.
Редактор: AndreyEx
