Nowo zidentyfikowany atak DDoS Rapid Reset typu HTTP/2 Rapid Reset eksploatuje funkcję multipleksowania strumieni protokołu HTTP/2, umożliwiającą jednoczesne przesyłanie licznych żądań HTTP za pośrednictwem tego samego połączenia transportowego TCP, a w szczególności zdolność klientów do jednostronnego resetowania tych strumieni.
Podatność została sklasyfikowana jako CVE-2023-44487.
Multipleksowanie strumieni intensyfikuje efektywność ataków DDoS
W starszej wersji HTTP 1, którą nadal obsługuje większość serwerów i klientów internetowych, liczne żądania mogą być przesyłane poprzez pojedyncze połączenie TCP, jednak są one przekazywane szeregami, a serwer próbuje i odpowiada na nie w kolejności ich otrzymywania. W HTTP/2, wiele żądań, nazywanych strumieniami i składających się z różnych ramek, takich jak HEADERS lub DATA, może być przesyłanych przez jedno połączenie TCP jednocześnie i bez zachowania kolejności. Jest to możliwe, gdyż każdy strumień ma przydzielony unikatowy identyfikator, dzięki czemu serwer zawsze wie, do którego strumienia należy dana ramka i jak odpowiedzieć na żądanie – znane jako multipleksowanie strumieni, umożliwia to skuteczniejsze korzystanie z połączeń TCP i przyspiesza ładowanie stron.
Przeglądarka, korzystając z protokołu HTTP/2 do dostępu do takiej strony, od razu zaczyna równoległe ładowanie tych zasobów, przydzielając priorytet tym, które są widoczne dla użytkownika. Jeśli użytkownik szybko kliknie przycisk i opuści stronę, przeglądarka może zamknąć strumienie, nawet jeśli zasoby nie zostały całkowicie załadowane czy wyrenderowane, bez konieczności zamykania całego połączenia i otwierania nowych żądań.
Przy limicie jednoczesnych strumieni wynoszącym 100, klient może otwierać i resetować setki strumieni za pośrednictwem tego samego połączenia TCP w krótkich odstępach czasu. Serwer nadal musi zużywać zasoby na przetwarzanie wszystkich tych ramek i strumieni, co prowadzi do przeciążenia.
Strategie radzenia sobie z atakami DDoS w kontekście HTTP/2
Metody zarządzania i minimalizowania ataków DDoS opartych na protokole HTTP/2 mogą być złożone. Każda osoba zarządzająca serwerem musi podejmować decyzje dotyczące identyfikowania i reagowania na potencjalne nadużycia, opierając się na analizie danych połączenia i zrozumieniu kontekstu biznesowego. Gdy połączenie TCP generuje ponad 100 żądań, w jednej sekundzie może to być sygnał potencjalnej działalności złożonego ataku HTTP/2.
Alternatywną strategią może być zablokowanie dostępu do usługi przez HTTP/2 dla potencjalnie szkodliwego adresu IP i przekierowanie go do protokołu HTTP 1.x. Ograniczając żądania do korzystania z HTTP 1.x, klienci, którzy są za filtrowanym adresem IP, wciąż będą mogli korzystać z usług online, chociaż mogą doświadczyć pewnego stopnia degradacji wydajności.
Największy atak HTTP/2 Rapid Reset
Atak został zauważony przez Google pod koniec sierpnia 2023, osiągnął wartość szczytową przekraczającą 398 milionów żądań na sekundę (rps), natomiast dla kontrastu, największy atak jaki odnotowali w 2022 roku miał wartość szczytową na poziomie 46 milionów rps.
Z kolei atak, który miał miejsce w sierpniu i był skierowany przeciwko Cloudflare, osiągnął wartość szczytową na poziomie 201 milionów rps, co jest trzykrotnie większą wartością niż największy wcześniej wykryty atak DDoS przez tę firmę.
Wszelkie informacje na temat CVE-2023-44487 można śledzić na oficjalnej stronie CVE tracker, aby uzyskać linki z zaktualizowanymi odpowiedziami od dostawców i ich rozwiązaniami.