Sebuah tim peneliti dari Universitas Peking, Universitas Tsinghua dan Universitas Texas di Dallas
Header Range memberi klien kemampuan untuk menentukan rentang posisi dalam file yang harus diunduh alih-alih mengembalikan seluruh file. Misalnya, klien dapat menentukan "Rentang: bytes=0-1023" dan server hanya akan mengirimkan 1024 byte data pertama. Fitur ini dibutuhkan saat mengunduh file besar - pengguna dapat menjeda pengunduhan dan kemudian melanjutkan dari posisi terputus. Saat menentukan "bytes=0-0", standar menginstruksikan untuk memberikan byte pertama dalam file, "bytes=-1" - yang terakhir, "bytes=1-" - mulai dari 1 byte hingga akhir file. Dimungkinkan untuk mengirimkan beberapa rentang dalam satu header, misalnya βRentang: byte=0-1023,8192-10240β.
Selain itu, opsi serangan kedua telah diusulkan, yang bertujuan untuk meningkatkan beban jaringan ketika meneruskan lalu lintas melalui CDN lain, yang digunakan sebagai proxy (misalnya, ketika Cloudflare bertindak sebagai frontend (FCDN), dan Akamai bertindak sebagai backend ( BCDN). Metode ini mirip dengan serangan pertama, tetapi dilokalisasi dalam jaringan CDN dan memungkinkan peningkatan lalu lintas ketika diakses melalui CDN lain, sehingga meningkatkan beban pada infrastruktur dan mengurangi kualitas layanan.
Idenya adalah penyerang mengirimkan permintaan Range dari beberapa rentang ke CDN, seperti "bytes=0-,0-,0-...", "bytes=1-,0-,0-..." atau "byte=-1024,0 ,0-,0-...". Permintaan berisi sejumlah besar rentang β0-β, yang menyiratkan bahwa file dikembalikan dari posisi nol hingga akhir. Karena penerapan penguraian rentang yang salah, ketika CDN pertama mengakses CDN kedua, file lengkap dikirim untuk setiap rentang β53-β (rentang tidak diagregasi, tetapi diulang secara berurutan), jika ada duplikasi dan perpotongan rentang di permintaan awalnya dikirim oleh penyerang. Tingkat amplifikasi lalu lintas dalam serangan semacam itu berkisar antara 7432 hingga XNUMX kali.
Selama penelitian, perilaku 13 CDN dipelajari -
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath, dan Tencent Cloud. Semua CDN yang diperiksa mengizinkan jenis serangan pertama pada server akhir. Varian kedua dari serangan CDN memengaruhi 6 layanan, empat di antaranya dapat bertindak sebagai frontend dalam serangan tersebut (CDN77, CDNsun, Cloudflare, dan StackPath) dan tiga sebagai backend (Akamai, Azure, dan StackPath). Keuntungan terbesar dicapai di Akamai dan StackPath, yang memungkinkan lebih dari 10 ribu rentang ditentukan di header Range. Pemilik CDN diberitahu tentang kerentanan tersebut sekitar 7 bulan yang lalu, dan pada saat informasi tersebut diungkapkan kepada publik, 12 dari 13 CDN telah memperbaiki masalah yang teridentifikasi atau menyatakan kesiapan untuk memperbaikinya (hanya layanan StackPath yang tidak merespons).
Sumber: opennet.ru