RangeAmp – seria ataków CDN manipulujących nagłówkiem Range HTTP

Zespół badaczy z Uniwersytetu Pekińskiego, Uniwersytetu Tsinghua i Uniwersytetu Teksasu w Dallas ujawnił nowa klasa ataków DoS – RangeAmp, oparta na wykorzystaniu nagłówka HTTP łodzie do organizowania wzmacniania ruchu za pośrednictwem sieci dostarczania treści (CDN). Istota tej metody polega na tym, że ze względu na sposób przetwarzania nagłówków Range w wielu sieciach CDN atakujący może zażądać jednego bajtu z dużego pliku za pośrednictwem sieci CDN, ale sieć CDN pobierze cały plik lub znacznie większy blok danych z sieci CDN. serwer docelowy, który ma zostać umieszczony w pamięci podręcznej. Stopień wzmocnienia ruchu podczas takiego ataku, w zależności od CDN, waha się od 724 do 43330 razy, co można wykorzystać do przeciążenia CDN ruchem przychodzącym lub zmniejszenia przepustowości końcowego kanału komunikacji do strony ofiary.

RangeAmp – seria ataków CDN manipulujących nagłówkiem Range HTTP

Nagłówek Range daje klientowi możliwość określenia zakresu pozycji w pliku, który powinien zostać pobrany zamiast zwracania całego pliku. Na przykład klient może określić „Zakres: bajty=0-1023”, a serwer prześle tylko pierwsze 1024 bajty danych. Ta funkcja jest pożądana podczas pobierania dużych plików - użytkownik może wstrzymać pobieranie, a następnie kontynuować od przerwanego miejsca. Przy podaniu „bajtów=0-0” standard nakazuje podanie pierwszego bajtu w pliku, „bajty=-1” – ostatni, „bajty=1-” – począwszy od 1 bajtu aż do końca pliku. Możliwe jest przesłanie w jednym nagłówku kilku zakresów, np. „Zakres: bajtów=0-1023,8192-10240”.

Dodatkowo zaproponowano drugą opcję ataku, mającą na celu zwiększenie obciążenia sieci podczas przekazywania ruchu przez inny CDN, który służy jako proxy (np. gdy Cloudflare pełni rolę frontendu (FCDN), a Akamai pełni rolę backendu (np. BCDN). Metoda jest podobna do pierwszego ataku, ale jest zlokalizowana w sieciach CDN i pozwala na zwiększenie ruchu w przypadku dostępu przez inne sieci CDN, zwiększając obciążenie infrastruktury i obniżając jakość usług.

Pomysł jest taki, że atakujący wysyła do CDN żądania Range o kilku zakresach, takie jak „bajty=0-,0-,0-…”, „bajty=1-,0-,0-…” lub „bajty=-1024,0-,0-…”. Żądania zawierają dużą liczbę zakresów „0-”, co oznacza, że ​​plik jest zwracany od pozycji zerowej do końca. Z powodu nieprawidłowej implementacji analizowania zakresów, gdy pierwszy CDN uzyskuje dostęp do drugiego, dla każdego zakresu „0-” wysyłany jest kompletny plik (zakresy nie są agregowane, ale sekwencyjnie iterowane), jeśli występuje duplikacja i przecięcie zakresów w żądanie pierwotnie wysłane przez atakującego. Stopień wzmocnienia ruchu w takim ataku waha się od 53 do 7432 razy.

RangeAmp – seria ataków CDN manipulujących nagłówkiem Range HTTP

Podczas badania zbadano zachowanie 13 sieci CDN –
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath i Tencent Cloud. Wszystkie zbadane sieci CDN umożliwiały pierwszy typ ataku na serwer końcowy. Drugi wariant ataku CDN dotknął 6 usług, z czego cztery mogły pełnić w ataku rolę frontendu (CDN77, CDNsun, Cloudflare i StackPath), a trzy jako backend (Akamai, Azure i StackPath). Największy zysk osiąga się w Akamai i StackPath, które pozwalają na określenie w nagłówku Range ponad 10 tysięcy zakresów. Właściciele CDN zostali powiadomieni o podatnościach około 7 miesięcy temu i do czasu upublicznienia informacji 12 z 13 CDN naprawiło zidentyfikowane problemy lub wyraziło chęć ich naprawienia (jedynie usługa StackPath nie odpowiedziała).

Źródło: opennet.ru

Dodaj komentarz