تیمی از محققان دانشگاه پکن، دانشگاه تسینگهوا و دانشگاه تگزاس در دالاس
هدر Range به مشتری این امکان را می دهد که به جای بازگرداندن کل فایل، محدوده ای از موقعیت ها را در فایل مشخص کند که باید دانلود شود. به عنوان مثال، کلاینت می تواند "Range: bytes=0-1023" را مشخص کند و سرور فقط 1024 بایت اول داده را ارسال می کند. این ویژگی هنگام بارگیری فایل های بزرگ مورد تقاضا است - کاربر می تواند بارگیری را متوقف کند و سپس از موقعیت قطع شده ادامه دهد. هنگام مشخص کردن "bytes=0-0"، استاندارد دستور می دهد که اولین بایت در فایل، "bytes=-1" - آخرین، "bytes=1-" - از 1 بایت تا پایان فایل ارائه شود. امکان انتقال چندین محدوده در یک هدر وجود دارد، به عنوان مثال "Range: bytes=0-1023,8192-10240".
علاوه بر این، یک گزینه حمله دوم پیشنهاد شده است، با هدف افزایش بار شبکه هنگام انتقال ترافیک از طریق CDN دیگر، که به عنوان یک پروکسی استفاده می شود (به عنوان مثال، زمانی که Cloudflare به عنوان جلو (FCDN) عمل می کند، و Akamai به عنوان backend عمل می کند. BCDN). این روش مشابه حمله اول است، اما در شبکه های CDN محلی سازی شده است و امکان افزایش ترافیک را در صورت دسترسی از طریق CDN های دیگر، افزایش بار روی زیرساخت و کاهش کیفیت خدمات فراهم می کند.
ایده این است که مهاجم درخواست های Range از چندین محدوده را به CDN ارسال می کند، مانند "bytes=0-,0-,0-..."، "bytes=1-,0-,0-..." یا "bytes=-1024,0 ,0-,0-...". درخواست ها شامل تعداد زیادی محدوده "0-" هستند که به این معنی است که فایل از موقعیت صفر به انتها بازگردانده می شود. به دلیل اجرای نادرست تجزیه محدوده، زمانی که CDN اول به دومی دسترسی پیدا می کند، یک فایل کامل برای هر محدوده "53-" ارسال می شود (محدوده ها تجمیع نمی شوند، اما به صورت متوالی تکرار می شوند)، در صورت وجود تکرار و تقاطع محدوده ها در درخواستی که ابتدا توسط مهاجم ارسال شد. درجه تقویت ترافیک در چنین حمله ای از 7432 تا XNUMX بار متغیر است.
در طول مطالعه، رفتار 13 CDN مورد مطالعه قرار گرفت -
Akamai، Alibaba Cloud، Azure، CDN77، CDNsun، Cloudflare، CloudFront، Fastly، G-Core Labs، Huawei Cloud، KeyCDN، StackPath و Tencent Cloud. همه CDN های مورد بررسی، اولین نوع حمله را به سرور پایانی مجاز می دانستند. نوع دوم حمله CDN بر 6 سرویس تأثیر گذاشت که از این میان چهار سرویس میتوانستند به عنوان فرانتاند در حمله عمل کنند (CDN77، CDNsun، Cloudflare و StackPath) و سه سرویس بهعنوان پشتیبان (Akamai، Azure و StackPath). بیشترین سود در Akamai و StackPath به دست می آید که اجازه می دهد بیش از 10 هزار محدوده در هدر Range مشخص شود. صاحبان CDN حدود 7 ماه پیش از آسیب پذیری ها مطلع شدند و تا زمان افشای عمومی اطلاعات، 12 CDN از 13 CDN مشکلات شناسایی شده را برطرف کرده یا برای رفع آنها ابراز آمادگی کرده بودند (تنها سرویس StackPath پاسخ نداد).
منبع: opennet.ru