Zespół badaczy z Uniwersytetu Pekińskiego, Uniwersytetu Tsinghua i Uniwersytetu Teksasu w Dallas
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.
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