Уязвимость MadeYouReset представляет собой усовершенствованную версию разрушительной атаки Rapid Reset, которая была обнаружена в 2023 году и считалась крупнейшей DDoS-атакой на тот момент.
📕 Предыстория
Уязвимость Rapid Reset связана с тем, как HTTP/2 управляет жизненным циклом потоков. Клиент быстро открывает и закрывает потоки с помощью кадров RST_STREAM. Особенность заключается в том, что сервер интерпретирует эти сбросы как завершение работы потока и освобождения ресурсов, включая счётчик активных потоков, который ограничивает количество одновременных запросов от клиента. Фактически же поток остается задействованным, то есть сервер продолжает обрабатывать данные и очищать память, хотя логически он считался завершённым.
Это создаёт лазейку: сервер считает, что у него достаточно ресурсов для обработки большего количества потоков, и продолжает принимать новые, увеличивая нагрузку на ресурсы. Массовое повторение этого цикла может привести к перегрузке даже самой отказоустойчивой инфраструктуры.
✍️ Принцип работы новой атаки
Атака использует встроенные в HTTP/2 механизмы параллельной обработки данных, позволяя злоумышленникам создавать практически неограниченную параллельную работу на серверах, обходя встроенное ограничение параллельной обработки данных в HTTP/2.
1️⃣Злоумышленник начинает со стандартного установления соединения по HTTP/2 и открытия нескольких потоков. Вместо использования RST_STREAM злоумышленник отправляет корректные по структуре, но логически некорректные последовательности кадров, которые нарушают правила протокола.
2️⃣Каждый из таких примитивов по-разному нарушает спецификацию HTTP/2, и в соответствии с RFC 9113 сервер должен отвечать кадром RST_STREAM при обнаружении ошибки PROTOCOL_ERROR. При этом количество потоков может формально оставаться меньше лимита, хотя на самом деле сервер продолжает обрабатывать значительное число активных потоков. Это приводит к чрезмерной нагрузке на процессор и память, что в конечном счёте вызывает полный отказ в обслуживании.
В отличие от традиционных атак типа отказа в обслуживании, требующих значительных ресурсов, MadeYouReset позволяет злоумышленникам добиться максимального сбоя в работе системы с минимальными усилиями со стороны атакующего.
❗️Выявлено, что уязвимость MadeYouReset затрагивает несколько широко используемых реализаций HTTP/2 серверов, в том числе Netty, Jetty, Apache Tomcat, IBM WebSphere и BIG-IP.
🛡 Рекомендации по защите
⏺️более строгая проверка протокола;
⏺️применение жёсткого отслеживания состояний потоков для
⏺️блокировки некорректных переходов;
⏺️внедрение ограничений скорости на уровне соединений;
⏺️использование систем обнаружения аномалий и поведенческого мониторинга.
