RangeAmp - ชุดการโจมตี CDN ที่จัดการส่วนหัว Range HTTP

ทีมนักวิจัยจากมหาวิทยาลัยปักกิ่ง มหาวิทยาลัยชิงหัว และมหาวิทยาลัยเท็กซัสในดัลลัส เปิดเผย การโจมตี DoS ระดับใหม่ - RangeAmp ตามการใช้ส่วนหัว HTTP พิสัย เพื่อจัดระเบียบการขยายการรับส่งข้อมูลผ่านเครือข่ายการจัดส่งเนื้อหา (CDN) สาระสำคัญของวิธีนี้คือเนื่องจากวิธีการประมวลผลส่วนหัวของ Range ใน CDN จำนวนมาก ผู้โจมตีสามารถขอหนึ่งไบต์จากไฟล์ขนาดใหญ่ผ่าน CDN แต่ CDN จะดาวน์โหลดไฟล์ทั้งหมดหรือบล็อกข้อมูลที่ใหญ่กว่ามากจาก เซิร์ฟเวอร์เป้าหมายที่จะวางในแคช ระดับของการขยายการรับส่งข้อมูลระหว่างการโจมตีดังกล่าว ขึ้นอยู่กับ CDN นั้นมีตั้งแต่ 724 ถึง 43330 ครั้ง ซึ่งสามารถใช้เพื่อโอเวอร์โหลด CDN ด้วยการรับส่งข้อมูลขาเข้า หรือลดความสามารถของช่องทางการสื่อสารขั้นสุดท้ายไปยังไซต์ของเหยื่อ

RangeAmp - ชุดการโจมตี CDN ที่จัดการส่วนหัว Range HTTP

ส่วนหัวของ Range ช่วยให้ไคลเอ็นต์สามารถระบุช่วงของตำแหน่งในไฟล์ที่ควรดาวน์โหลด แทนที่จะส่งคืนไฟล์ทั้งหมด ตัวอย่างเช่น ไคลเอนต์สามารถระบุ "Range: bytes=0-1023" และเซิร์ฟเวอร์จะส่งเฉพาะข้อมูล 1024 ไบต์แรกเท่านั้น คุณสมบัตินี้เป็นที่ต้องการเมื่อดาวน์โหลดไฟล์ขนาดใหญ่ - ผู้ใช้สามารถหยุดการดาวน์โหลดชั่วคราวแล้วดำเนินการต่อจากตำแหน่งที่ถูกขัดจังหวะ เมื่อระบุ “bytes=0-0” มาตรฐานจะสั่งให้ระบุไบต์แรกในไฟล์ “bytes=-1” - ไบต์สุดท้าย “bytes=1-” - เริ่มต้นจาก 1 ไบต์จนกระทั่งสิ้นสุดไฟล์ สามารถส่งหลายช่วงในส่วนหัวเดียวได้ เช่น “Range: bytes=0-1023,8192-10240”

นอกจากนี้ มีการเสนอตัวเลือกการโจมตีครั้งที่สอง โดยมีเป้าหมายเพื่อเพิ่มโหลดเครือข่ายเมื่อส่งต่อการรับส่งข้อมูลผ่าน CDN อื่น ซึ่งใช้เป็นพร็อกซี (เช่น เมื่อ Cloudflare ทำหน้าที่เป็นส่วนหน้า (FCDN) และ Akamai ทำหน้าที่เป็นแบ็กเอนด์ ( บีซีดีเอ็น) วิธีการนี้คล้ายกับการโจมตีครั้งแรก แต่ได้รับการแปลเป็นภาษาท้องถิ่นภายในเครือข่าย CDN และช่วยเพิ่มการรับส่งข้อมูลเมื่อเข้าถึงผ่าน CDN อื่นๆ เพิ่มภาระบนโครงสร้างพื้นฐานและลดคุณภาพของการบริการ

แนวคิดก็คือผู้โจมตีส่งคำขอ Range ของหลายช่วงไปยัง CDN เช่น "bytes=0-,0-,0-...", "bytes=1-,0-,0-..." หรือ "ไบต์=-1024,0 ,0-,0-..." คำขอมีช่วง "0-" จำนวนมาก ซึ่งหมายความว่าไฟล์จะถูกส่งกลับจากตำแหน่งศูนย์ไปยังตำแหน่งสิ้นสุด เนื่องจากการใช้การแยกวิเคราะห์ช่วงไม่ถูกต้อง เมื่อ CDN แรกเข้าถึงช่วงที่สอง ไฟล์ที่สมบูรณ์จะถูกส่งไปสำหรับแต่ละช่วง "53-" (ช่วงจะไม่ถูกรวมไว้ แต่จะวนซ้ำตามลำดับ) หากมีการทำซ้ำและการตัดกันของช่วงใน คำขอที่ผู้โจมตีส่งมาในตอนแรก ระดับของการขยายการรับส่งข้อมูลในการโจมตีดังกล่าวมีตั้งแต่ 7432 ถึง XNUMX ครั้ง

RangeAmp - ชุดการโจมตี CDN ที่จัดการส่วนหัว Range HTTP

ในระหว่างการศึกษา ได้ทำการศึกษาพฤติกรรมของ CDN จำนวน 13 ราย -
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath และ Tencent Cloud CDN ทั้งหมดที่ตรวจสอบอนุญาตให้มีการโจมตีประเภทแรกบนเซิร์ฟเวอร์ปลายทาง การโจมตี CDN รูปแบบที่สองส่งผลกระทบต่อ 6 บริการ โดย 77 บริการสามารถทำหน้าที่เป็นส่วนหน้าในการโจมตี (CDN10, CDNsun, Cloudflare และ StackPath) และอีก 7 บริการเป็นแบ็กเอนด์ (Akamai, Azure และ StackPath) การเพิ่มสูงสุดทำได้ใน Akamai และ StackPath ซึ่งอนุญาตให้ระบุช่วงมากกว่า 12 ช่วงในส่วนหัวของ Range เจ้าของ CDN ได้รับแจ้งถึงช่องโหว่เมื่อประมาณ 13 เดือนที่แล้ว และเมื่อถึงเวลาที่มีการเปิดเผยข้อมูลต่อสาธารณะ CDN XNUMX ใน XNUMX แห่งได้แก้ไขปัญหาที่ระบุหรือแสดงความพร้อมที่จะแก้ไข (เฉพาะบริการ StackPath เท่านั้นที่ไม่ตอบสนอง)

ที่มา: opennet.ru

เพิ่มความคิดเห็น