ช่องโหว่ Zero-Day ของ HTTP/2 Rapid Reset ถูกใช้เพื่อโจมตีแบบ DDoS เป็นสถิติใหม่

Amazon Web Services (AWS), Cloudflare และ Google ได้ประกาศในวันอังคารที่ผ่านมาว่า ได้ดำเนินการเพื่อลดผลกระทบของการโจมตีแบบ Distributed Denial-of-Service (DDoS) ที่ใหญ่ที่สุดเท่าที่เคยมีมา ซึ่งใช้เทคนิคใหม่ที่เรียกว่า HTTP/2 Rapid Reset

โดยบริษัทต่าง ๆ ได้เปิดเผยข้อมูลร่วมกันว่าการโจมตีใน Layer 7 ครั้งนี้ ถูกพบในช่วงปลายเดือนสิงหาคม 2023 โดยมีความเกี่ยวข้องกับช่องโหว่หมายเลข CVE-2023-44487 ซึ่งมีคะแนน CVSS สูงถึง 7.5 จากเต็ม 10 คะแนน

ในขณะที่การโจมตีที่มุ่งเป้าไปที่ระบบคลาวด์ของ Google มีปริมาณสูงสุดที่ 398 ล้าน requests ต่อวินาที (RPS) ส่วนการโจมตีที่มุ่งเป้าไปที่ AWS และ Cloudflare นั้นมีปริมาณสูงกว่า 155 ล้าน requests ต่อวินาที และ 201 ล้าน requests ต่อวินาทีตามลำดับ

HTTP/2 Rapid Reset คือช่องโหว่แบบ Zero-Day ในโปรโตคอล HTTP/2 ซึ่งสามารถถูกนำมาใช้เพื่อโจมตีในลักษณะ DDoS ได้ โดย multiplexing requests ผ่าน single TCP connection ซึ่งจะแสดงผลลัพธ์ออกมาในรูปแบบของ concurrent streams

โดยปกติแล้วเมื่อผู้ใช้งานต้องการยกเลิก request สามารถส่ง RST_STREAM frame เพื่อหยุดการแลกเปลี่ยนข้อมูล ทำให้การโจมตีแบบ Rapid Reset สามารถใช้ประโยชน์จากวิธีการนี้โดยการส่ง และยกเลิก request อย่างรวดเร็ว เพื่อทำให้ concurrent stream ของเซิร์ฟเวอร์สูงขึ้นมาก และทำให้เซิร์ฟเวอร์ทำงานหนักขึ้น

Mark Ryland และ Tom Scholl จาก AWS ระบุว่า "การโจมตีด้วยช่องโหว่ HTTP/2 Rapid Reset ประกอบด้วยการเชื่อมต่อ HTTP/2 หลายรายการที่มี requests และ resets ต่อเนื่องกันอย่างรวดเร็ว"

ตัวอย่างเช่น ผู้โจมตีจะส่ง requests จำนวนมากสำหรับ multiple streams จากนั้นจึง reset requests เหล่านั้นทั้งหมด ทำให้ระบบเป้าหมายจะทำการประมวลผลแต่ละ requests และสร้าง logs สำหรับ requests ที่ถูกยกเลิกโดยไคลเอนต์

การ reset streams ทันทีในลักษณะนี้ ทำให้การเชื่อมต่อแต่ละครั้งมี requests ที่ส่งออกไปได้ไม่จำกัด ทำให้ผู้โจมตีสามารถส่ง requests HTTP/2 ได้จำนวนมาก ทำให้ความสามารถในการตอบสนองต่อ requests ใหม่ที่เข้ามาของเว็บไซต์เป้าหมายไม่เพียงพอ และทำให้เว็บไซต์ล่มได้

ผู้โจมตีสามารถทำให้เว็บไซต์ล่มได้โดยการเริ่มต้น HTTP/2 streams หลายแสนรายการ และยกเลิกอย่างรวดเร็วบนการเชื่อมต่อที่ถูกสร้างขึ้นแล้ว ด้วยช่องโหว่ลักษณะนี้ทำให้การโจมตีสามารถทำได้โดยใช้ botnet ขนาดเล็กราว ๆ แค่ประมาณ 20,000 เครื่องก็สามารถโจมตีได้ จากรายงานที่ถูกตรวจพบจาก Cloudflare

Grant Bourzikas หัวหน้าฝ่ายความปลอดภัยของ Cloudflare ระบุว่า ช่องโหว่ zero-day นี้ได้มอบเครื่องมือใหม่ให้กับผู้โจมตี เพื่อใช้ประโยชน์ในการโจมตีเหยื่อในแบบที่ไม่เคยปรากฏมาก่อน

ตามข้อมูลของ W3Techs การใช้งาน HTTP/2 ถูกใช้โดยเว็บไซต์ทั้งหมด 35.6% และจากข้อมูลที่เผยแพร่โดย Web Almanac มี requests 77% ที่ใช้ HTTP/2

Google Cloud รายงานว่าได้สังเกตหลายรูปแบบของการโจมตีในลักษณะ Rapid Reset ถึงแม้ว่าจะไม่มีประสิทธิภาพเท่ากับเวอร์ชันเริ่มต้น แต่ก็ถือว่ามีประสิทธิภาพมากกว่าการโจมตี DDoS แบบ HTTP/2 ทั่วไป

โดย Juho Snellman และ Daniele Lamartino ผู้เชี่ยวชาญจาก Google Cloud ระบุว่า "การโจมตีรูปแบบแรกจะไม่ทำการยกเลิก streams ทันที แต่จะทำการสร้าง requests streams จำนวนมากพร้อมกัน แล้วรอเวลาสักครู่จึงยกเลิก streams เหล่านั้น และสร้าง requests streams ใหม่จำนวนมากทันที" และ "การโจมตีรูปแบบที่สองไม่ทำการยกเลิก streams ทั้งหมด แต่จะพยายามสร้าง requests streams พร้อมกันมากกว่าที่เซิร์ฟเวอร์กำหนดไว้"

F5 ได้ออกประกาศแจ้งเตือนว่าการโจมตีนี้ส่งผลกระทบต่อโมดูล NGINX HTTP/2 และแนะนำให้ลูกค้าอัปเดตการกำหนดค่า NGINX เพื่อจำกัดจำนวน streams พร้อมกันเป็นค่าเริ่มต้นที่ 128 และรักษาการเชื่อมต่อ HTTP สำหรับ requests ได้สูงสุด 1000 ครั้ง

หลังจากนี้ผู้โจมตีส่วนใหญ่จะมีข้อมูลเกี่ยวกับช่องโหว่ HTTP/2 ทำให้ช่องโหว่นี้จะถูกนำมาใช้ในการโจมตีอย่างแพร่หลาย ซึ่งทำให้น่าจะเกิดการแข่งขันกันระหว่างฝ่ายที่ต้องเตรียมการป้องกัน และฝ่ายผู้ที่ทำการโจมตี ซึ่งรวมถึงการพยายามในการแก้ไขช่องโหว่ให้เร็วที่สุด กับการพยายามใช้ประโยชน์จากช่องโหว่ให้เร็วที่สุด

Grant Bourzikas, Chief Security Officer จาก Cloudflare ระบุข้อมูลเพิ่มเติมว่า องค์กรต่าง ๆ ควรคาดการณ์ว่าระบบของตนจะถูกทดสอบ และควรใช้มาตรการป้องกันการโจมตีไว้ล่วงหน้าก่อนเลย

บริษัทต่าง ๆ ได้ตอบสนองต่อการโจมตีแบบ HTTP/2 Rapid Reset หลังจากการเปิดเผยช่องโหว่ CVE-2023-44487 ต่อสาธารณะ โดยหลายแห่งได้ออกอัปเดตเพื่อปิดช่องทางการโจมตีที่อาจเกิดขึ้นกับซอฟต์แวร์ของตน

รายชื่อบริษัทต่าง ๆ ที่มีการตอบสนองต่อการโจมตีในลักษณะ HTTP/2 Rapid Reset แล้วในปัจจุบัน

  • Alibaba Tengine
  • Apache Tomcat
  • Apple Swift
  • Eclipse Jetty
  • F5
  • Golang
  • Kubernetes
  • Linux distributions Debian, Red Hat, and Ubuntu
  • Microsoft
  • Netty

ที่มา : thehackernews.com