การโจมตี DDoS แบบ HTTP/2 'Rapid Reset' รูปแบบใหม่
(cloud.google.com)- การโจมตี Layer 7 DDoS บนพื้นฐาน HTTP/2 ที่มุ่งเป้าไปยังบริการของ Google และลูกค้า Google Cloud พุ่งถึงจุดสูงสุดในเดือนสิงหาคม 2023 โดยเกิน 398 ล้านคำขอต่อวินาที
- การโจมตีส่วนใหญ่ถูกบล็อกไว้ที่ โครงสร้างพื้นฐาน Global Load Balancing ของ Google จึงไม่ลุกลามเป็นเหตุขัดข้อง และหลังจากนั้นได้มีการเพิ่มมาตรการป้องกันเพื่อบรรเทาการโจมตีลักษณะคล้ายกัน
- Rapid Reset อาศัยการยกเลิกเฉพาะสตรีมทันทีหลังส่งคำขอด้วย เฟรม RST_STREAM โดยยังคงการเชื่อมต่อไว้ ทำให้สามารถหลบข้อจำกัดจำนวนสตรีมพร้อมกันและสร้างคำขอซ้ำได้ต่อเนื่อง
- แม้คำขอจะถูกยกเลิก เซิร์ฟเวอร์ก็อาจยังต้องทำงานอย่างการคลายการบีบอัดเฮดเดอร์ การแมป URL และ reverse proxy ไปยังแบ็กเอนด์ ทำให้เกิด ความไม่สมดุลของต้นทุน อย่างมาก
- ผู้ดูแลระบบ HTTP/2 ควรตรวจสอบการเปิดรับความเสี่ยงและติดตั้งแพตช์ โดยเมื่อพบการใช้งานในทางที่ผิด มาตรการบรรเทาหลักคือ ยุติการเชื่อมต่อ TCP ทั้งเส้น มากกว่าปิดกั้นเฉพาะคำขอแต่ละรายการ
ขนาดของการโจมตีและการตอบสนองของ Google
- บริการของ Google และลูกค้า Cloud ตกเป็นเป้าของ การโจมตี Layer 7 DDoS บนพื้นฐาน HTTP/2 ที่พุ่งสูงสุดในเดือนสิงหาคม 2023
- การโจมตีสูงสุดเกิน 398 ล้านคำขอต่อวินาที ซึ่งมีขนาดใหญ่กว่าการโจมตี Layer 7 ที่เคยมีรายงานก่อนหน้านี้มาก
- โครงสร้างพื้นฐาน Global Load Balancing ของ Google บล็อกการโจมตีส่วนใหญ่ไว้ที่ขอบเครือข่าย
- ไม่เกิดเหตุขัดข้อง
- ผลกระทบอยู่ในวงจำกัด
- Google DDoS Response Team ตรวจสอบการโจมตีแล้วนำมาตรการป้องกันเพิ่มเติมมาใช้เพื่อลดการโจมตีลักษณะเดียวกัน
- Google ร่วมกับพันธมิตรในอุตสาหกรรมเป็นผู้นำ กระบวนการเปิดเผยแบบประสานงาน เพื่อรับมือเวกเตอร์การโจมตี HTTP/2 รูปแบบใหม่นี้
จุดที่ HTTP/2 เอื้อต่อ DDoS
- นับตั้งแต่ปลายปี 2021 การโจมตี Layer 7 DDoS จำนวนมากที่สังเกตพบในบริการ first-party ของ Google และโปรเจ็กต์ Google Cloud ที่ได้รับการป้องกันด้วย Cloud Armor เป็นการโจมตีบนพื้นฐาน HTTP/2
- มีจำนวนมากทั้งในแง่จำนวนครั้งของการโจมตี
- และสูงในแง่อัตราคำขอสูงสุด
- ประสิทธิภาพของ HTTP/2 ไม่เพียงช่วยไคลเอนต์ที่ถูกต้องตามปกติ แต่ยังอาจเพิ่มประสิทธิภาพของการโจมตี DDoS ได้ด้วย
-
Stream multiplexing
- HTTP/2 ส่งเฟรมระหว่างปลายทางผ่าน สตรีม (stream) ซึ่งเป็นนามธรรมแบบสองทิศทาง
- ด้วย stream multiplexing จึงสามารถประมวลผลหลายคำขอพร้อมกันบนการเชื่อมต่อ TCP เดียวได้
- ข้อจำกัดสำคัญของการโจมตี Layer 7 DoS คือจำนวนการเชื่อมต่อที่ส่งพร้อมกันได้
- แต่ละการเชื่อมต่อใช้หน่วยความจำของระบบปฏิบัติการสำหรับ socket record และ buffer
- TLS handshake ต้องใช้เวลา CPU
- ต้องใช้ 4-tuple ที่ไม่ซ้ำกันซึ่งประกอบด้วยคู่ IP address และ port ของทั้งสองฝั่ง
- HTTP/1.1 โดยทั่วไปประมวลผลคำขอแบบอนุกรม ทำให้อัตราคำขอบนการเชื่อมต่อเดียวใกล้เคียง 1 คำขอต่อหนึ่งรอบเวลาไป-กลับ
- ใน HTTP/2 สามารถเปิดหลายสตรีมพร้อมกันบนการเชื่อมต่อ TCP เดียว และแต่ละสตรีมสอดคล้องกับคำขอ HTTP หนึ่งรายการ
- ในสภาพแวดล้อมจริง ไคลเอนต์อาจเปิด 100 สตรีมต่อคำขอ และเซิร์ฟเวอร์ประมวลผลแบบขนานได้ ทำให้ throughput ที่มีผลจริงของการเชื่อมต่อเดียวเพิ่มขึ้นได้ถึงระดับ 100 คำขอต่อหนึ่งรอบเวลาไป-กลับ
- ส่งผลให้อัตราการใช้ประโยชน์จากการเชื่อมต่อสูงกว่า HTTP/1.1 ได้เกือบ 100 เท่า
Rapid Reset ทำงานอย่างไร
- HTTP/2 อนุญาตให้ไคลเอนต์ส่ง เฟรม RST_STREAM เพื่อแจ้งเซิร์ฟเวอร์ให้ยกเลิกสตรีมก่อนหน้าได้
- การยกเลิกไม่ต้องอาศัยการประสานงานแยกต่างหากระหว่างไคลเอนต์กับเซิร์ฟเวอร์
- ไคลเอนต์สามารถยกเลิกได้ฝ่ายเดียว
- เมื่อเซิร์ฟเวอร์ได้รับเฟรม RST_STREAM ก็อาจถือว่าการยกเลิกมีผลก่อนข้อมูลอื่นบนการเชื่อมต่อ TCP เดียวกัน
- Rapid Reset พึ่งพาการส่งเฟรม RST_STREAM ทันทีหลังส่งเฟรมคำขอ
- ทำให้อีกฝั่งเริ่มทำงานก่อน แล้วรีเซ็ตคำขออย่างรวดเร็ว
- คำขอถูกยกเลิก แต่การเชื่อมต่อ HTTP/2 ยังคงเปิดอยู่
- ขั้นตอนการโจมตีมีความเรียบง่าย
- เปิดสตรีมจำนวนมากพร้อมกันเหมือนการโจมตี HTTP/2 มาตรฐาน
- ไม่รอการตอบกลับจากเซิร์ฟเวอร์หรือพร็อกซี
- ยกเลิกแต่ละคำขอทันที
- เมื่อรีเซ็ตได้ทันที แต่ละการเชื่อมต่อก็แทบจะทำให้มีคำขอจำนวนมากอยู่ในสถานะกำลังประมวลผลได้ไม่จำกัด
- ผู้โจมตีไม่ได้ก้าวข้ามข้อจำกัดจำนวนสตรีมที่เปิดพร้อมกันอย่างชัดเจน
- จำนวนคำขอที่อยู่ระหว่างประมวลผลจึงขึ้นกับแบนด์วิดท์เครือข่ายที่มี มากกว่าค่า RTT
- การติดตั้งใช้งานเซิร์ฟเวอร์ HTTP/2 โดยทั่วไปอาจยังต้องทำงานกับคำขอที่ถูกยกเลิก
- จัดสรรโครงสร้างข้อมูลสำหรับสตรีมใหม่
- แยกวิเคราะห์ query
- คลายการบีบอัดเฮดเดอร์
- แมป URL ไปยังทรัพยากร
- ในการติดตั้งใช้งาน reverse proxy คำขออาจถูกพร็อกซีไปยังเซิร์ฟเวอร์แบ็กเอนด์ก่อนที่เฟรม RST_STREAM จะถูกประมวลผล
- เนื่องจากไคลเอนต์แทบไม่ต้องจ่ายต้นทุนในการส่งคำขอ จึงเกิด ความไม่สมดุลของต้นทุนที่ถูกนำไปใช้โจมตีได้ ระหว่างฝั่งไคลเอนต์กับเซิร์ฟเวอร์
- หากคำขอถูกยกเลิกก่อนเริ่มสร้างการตอบกลับ เซิร์ฟเวอร์ reverse proxy จะไม่ส่งการตอบกลับ ทำให้ แบนด์วิดท์ downlink ที่ออกจากเซิร์ฟเวอร์หรือพร็อกซีไปยังผู้โจมตีก็ลดลงด้วย
รูปแบบการโจมตีที่สังเกตพบ
- ในช่วงหลายสัปดาห์หลังการโจมตี DDoS ครั้งแรก มีการสังเกตพบรูปแบบแปรผันของ Rapid Reset
- แม้รูปแบบเหล่านี้จะไม่มีประสิทธิภาพเท่าวิธีดั้งเดิม แต่ก็ยังอาจมีประสิทธิภาพกว่าการโจมตี HTTP/2 DDoS แบบมาตรฐาน
-
รูปแบบยกเลิกแบบเป็นชุด
- รูปแบบแรกไม่ยกเลิกสตรีมทันที แต่เปิดสตรีมเป็นชุด รอสักครู่ แล้วค่อยยกเลิกทั้งหมดพร้อมกัน
- ทันทีหลังยกเลิกก็เปิดสตรีมชุดใหญ่ชุดใหม่อีกครั้งเพื่อโจมตีต่อ
- วิธีนี้สามารถหลบเลี่ยงมาตรการบรรเทาที่อิงจากอัตราเฟรม RST_STREAM ขาเข้าเพียงอย่างเดียวได้
- ตัวอย่าง: นโยบายที่อนุญาต RST_STREAM ได้ไม่เกิน 100 ครั้งต่อวินาทีต่อการเชื่อมต่อ และปิดการเชื่อมต่อเมื่อเกิน
- เพราะไม่สามารถเพิ่มอัตราการใช้ประโยชน์ของการเชื่อมต่อได้สูงสุด ข้อได้เปรียบหลักของการโจมตีแบบยกเลิกจึงลดลง
- ถึงอย่างนั้น ในเชิงการติดตั้งใช้งานก็ยังอาจมีประสิทธิภาพกว่าการโจมตี HTTP/2 DDoS แบบมาตรฐาน ทำให้การจำกัดเพียงอัตราการยกเลิกสตรีมยังต้องเข้มงวดมากจึงจะได้ผล
-
รูปแบบไม่ยกเลิก
- รูปแบบที่สองไม่ยกเลิกสตรีมเลย
- แต่พยายามเปิดสตรีมแบบมองโลกในแง่ดีให้มากกว่าจำนวนสตรีมพร้อมกันที่เซิร์ฟเวอร์ประกาศไว้
- จึงสามารถเติม request pipeline ให้เต็มต่อเนื่องและลดคอขวด RTT ระหว่างไคลเอนต์กับพร็อกซีได้
- หากมุ่งเป้าไปที่ทรัพยากรที่เซิร์ฟเวอร์ HTTP/2 ตอบกลับได้ทันที ก็สามารถตัดคอขวด RTT ระหว่างพร็อกซีกับเซิร์ฟเวอร์ได้ด้วย
- RFC 9113 ซึ่งเป็น RFC ปัจจุบันของ HTTP/2 เสนอว่า เมื่อมีความพยายามเปิดสตรีมมากเกินไป ควรทำให้เป็นโมฆะเฉพาะสตรีมที่เกินขีดจำกัด ไม่ใช่ทั้งการเชื่อมต่อ
- ในโครงสร้างของเซิร์ฟเวอร์ HTTP/2 ส่วนใหญ่ที่ไม่ได้ประมวลผลสตรีมส่วนเกิน จึงสามารถรับและประมวลผลสตรีมใหม่ได้แทบจะทันทีหลังตอบสนองสตรีมก่อนหน้า ทำให้เกิดรูปแบบไม่ยกเลิกนี้ได้
กลยุทธ์การบรรเทา
- ตระกูลการโจมตีนี้ยากจะบรรเทาได้จริงด้วยการบล็อกเฉพาะคำขอรายรายการ
- เมื่อตรวจพบการใช้งานในทางที่ผิด ควรปิด การเชื่อมต่อ TCP ทั้งหมด
- HTTP/2 รองรับการยุติการเชื่อมต่อด้วยเฟรม GOAWAY
- RFC กำหนดขั้นตอนปิดแบบค่อยเป็นค่อยไป โดยส่ง GOAWAY เชิงข้อมูลก่อนโดยยังไม่ตั้งข้อจำกัดการเปิดสตรีมใหม่ จากนั้นหลังหนึ่งรอบเวลาไป-กลับจึงส่ง GOAWAY ที่ห้ามเปิดสตรีมเพิ่มเติม
- แต่ขั้นตอน GOAWAY แบบค่อยเป็นค่อยไปเช่นนี้มักไม่แข็งแรงพอสำหรับไคลเอนต์ที่เป็นอันตราย
- ทำให้การเชื่อมต่อเปิดรับการโจมตี Rapid Reset นานเกินไป
- ไม่สามารถหยุดคำขอขาเข้าได้
- เพื่อการบรรเทา GOAWAY ควรถูกตั้งค่าให้ จำกัดการสร้างสตรีมทันที
-
การจำแนกการเชื่อมต่อที่เป็นการใช้งานในทางที่ผิด
- การที่ไคลเอนต์ยกเลิกคำขอไม่ได้ถือเป็นการใช้งานในทางที่ผิดเสมอไป
- ความสามารถในการยกเลิกของ HTTP/2 เป็นฟีเจอร์สำหรับจัดการการประมวลผลคำขอให้ดีขึ้น
- กรณีผู้ใช้ออกจากหน้าเว็บและเบราว์เซอร์ไม่ต้องการทรัพยากรที่ร้องขออีกต่อไป
- แอปพลิเคชันที่ใช้ long polling พร้อม client-side timeout
- การบรรเทาจึงมุ่งไปที่การติดตามสถิติของการเชื่อมต่อและใช้หลายสัญญาณร่วมกับ business logic เพื่อตัดสินความมีประโยชน์ของแต่ละการเชื่อมต่อ
- ตัวอย่างเช่น หากการเชื่อมต่อหนึ่งมีคำขอเกิน 100 รายการ และเกิน 50% ของนั้นถูกยกเลิก ก็อาจเป็นผู้สมัครสำหรับการบรรเทา
- ขนาดและประเภทของการตอบสนองขึ้นอยู่กับความเสี่ยงของแต่ละแพลตฟอร์ม
- บังคับส่งเฟรม GOAWAY
- ยุติการเชื่อมต่อ TCP ทันที
- เพื่อบรรเทารูปแบบไม่ยกเลิก แนะนำให้เซิร์ฟเวอร์ HTTP/2 ปิดการเชื่อมต่อที่เกินข้อจำกัดจำนวนสตรีมพร้อมกัน
- อาจปิดทันที
- หรือปิดหลังมีการละเมิดซ้ำจำนวนเล็กน้อย
ความเป็นไปได้กับ HTTP/3
- Google มองว่าเนื่องจากความแตกต่างของโปรโตคอล วิธีโจมตีนี้ไม่สามารถนำไปใช้กับ HTTP/3 (QUIC) ได้โดยตรง
- ปัจจุบัน Google ยังไม่พบสถานการณ์ที่ HTTP/3 ถูกใช้เป็นเวกเตอร์ DDoS ขนาดใหญ่
- ถึงอย่างนั้น ก็แนะนำให้การติดตั้งใช้งานเซิร์ฟเวอร์ HTTP/3 มีการนำกลไกที่จำกัดปริมาณงานของการเชื่อมต่อส่งข้อมูลเดี่ยวมาใช้ล่วงหน้า
- มีทิศทางคล้ายกับมาตรการบรรเทาของ HTTP/2 ที่กล่าวถึง
การประสานงานในอุตสาหกรรมและ CVE
- ตั้งแต่ช่วงต้นของการสืบสวนโดย Google DDoS Response Team ก็ชัดเจนว่าการโจมตีประเภทนี้อาจส่งผลกว้างต่อทุกบริการที่ให้บริการ HTTP/2
- Google ใช้กลุ่มเปิดเผยช่องโหว่แบบประสานงานที่มีอยู่เดิมเพื่อนำ กระบวนการเปิดเผยช่องโหว่แบบประสานงาน
- กระบวนการเปิดเผยมุ่งเน้นการแจ้งผู้พัฒนา implementation HTTP/2 รายใหญ่
- บริษัทโครงสร้างพื้นฐาน
- ผู้ให้บริการซอฟต์แวร์เซิร์ฟเวอร์
- เป้าหมายของการแจ้งล่วงหน้าคือเพื่อพัฒนามาตรการบรรเทาและเตรียมพร้อมตามกำหนดการเปิดเผยแบบประสานงาน
- ในอดีต แนวทางนี้นำไปสู่การใช้การป้องกันอย่างกว้างขวางโดยผู้ให้บริการ หรือการออกอัปเดตซอฟต์แวร์สำหรับหลายแพ็กเกจและโซลูชัน
- ระหว่างกระบวนการเปิดเผยแบบประสานงาน มีการจอง CVE-2023-44487 ไว้เพื่อติดตามการแก้ไขใน implementation HTTP/2 หลายรายการ
สิ่งที่ผู้ให้บริการ HTTP/2 ควรทำ
- การโจมตีนี้อาจส่งผลอย่างมีนัยสำคัญต่อบริการทุกขนาด
- ผู้ให้บริการทุกแห่งที่ให้บริการ HTTP/2 ควรประเมินว่าระบบของตนเปิดรับประเด็นนี้หรือไม่
- แพตช์ซอฟต์แวร์และอัปเดตสำหรับเว็บเซิร์ฟเวอร์ทั่วไปและภาษาโปรแกรมต่าง ๆ อาจมีให้ใช้งานแล้วในปัจจุบันหรือในอนาคตอันใกล้
- แนะนำให้นำการแก้ไขที่มีให้ใช้งานไปใช้โดยเร็วที่สุดเท่าที่ทำได้
- สำหรับลูกค้า Google Cloud แนะนำให้ใช้ Application Load Balancer และ Google Cloud Armor ร่วมกับการติดตั้งแพตช์ซอฟต์แวร์
- Google Cloud Armor ได้ช่วยปกป้อง Google และผู้ใช้ Google Cloud Application Load Balancing ที่มีอยู่เดิมมาแล้ว
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
เธรดที่เกี่ยวข้องซึ่งกำลังดำเนินอยู่:
การโจมตี DDoS ครั้งใหญ่ที่สุดจนถึงปัจจุบัน พุ่งสูงสุดมากกว่า 398 ล้านคำขอต่อวินาที - https://news.ycombinator.com/item?id=37831062
ช่องโหว่ zero-day ของ HTTP/2 ทำให้เกิดการโจมตี DDoS ทำลายสถิติ - https://news.ycombinator.com/item?id=37830998
ดูดีที่ทีม HAProxy ดูเหมือนจะพบและบรรเทาปัญหาประเภทนี้ของ HTTP/2 ได้ตั้งแต่ปี 2018 แล้ว: https://www.mail-archive.com/haproxy@formilux.org/msg44134.h...
https://www.nginx.com/blog/http-2-rapid-reset-attack-impacti...
ในการ implement เซิร์ฟเวอร์ HTTP/2 ทั่วไป แม้คำขอที่ถูกยกเลิกก็ยังต้องทำงานค่อนข้างมาก เช่น จัดสรรโครงสร้างข้อมูลสตรีมใหม่ แยกวิเคราะห์ query คลายการบีบอัด header และ map resource ของ URL
ในการ implement reverse proxy คำขออาจถูก proxy ไปยัง backend server ก่อนที่เฟรม
RST_STREAMจะถูกประมวลผลด้วยซ้ำ ในขณะที่ฝั่งไคลเอนต์แทบไม่เสียต้นทุนในการส่งคำขอ จึงเกิด ความไม่สมมาตรของต้นทุน ระหว่างเซิร์ฟเวอร์กับไคลเอนต์ที่ถูกนำไปใช้โจมตีได้น่าแปลกใจที่ตอนออกแบบ HTTP/2 ไม่ได้คาดการณ์เรื่องนี้ไว้ ทั้งที่ การโจมตีแบบขยายผล ในโปรโตคอลอื่นเป็นที่รู้จักกันดีอยู่แล้ว การที่การโจมตีนี้เพิ่งถูกเปิดเผยช้าขนาดนี้ก็น่าแปลกใจในทำนองเดียวกัน แต่อาจเป็นเพราะจนไม่นานมานี้ HTTP/2 ยังไม่ได้ถูก deploy กว้างพอจนเป็นเป้าหมายที่คุ้มค่า
RST_STREAMมีอยู่ตั้งแต่ SPDY รุ่นแรก ๆ และ SPDY ดูเหมือนออกแบบโดยรวมราวปี 2009การโจมตีอย่าง Slowloris ก็ออกมาในช่วงใกล้เคียงกัน แต่ตอนนั้นยังไม่เป็นที่รู้จักแพร่หลาย ส่วน SYN cookies ถูกนำมาใช้ตั้งแต่ปี 1996 ดังนั้นการโจมตีแบบที่เหยื่อจ่ายต้นทุน Y ส่วนผู้โจมตีจ่าย X มีแบบอย่างทางประวัติศาสตร์ชัดเจนอยู่แล้ว
เพียงแต่จุดที่พิเศษคือมีการลองทำอย่างจริงจังกับ Google
สรุปคือเราต้องมี HTTP/2 เพื่อส่งโฆษณา tracker และ frontend framework ที่บวมใหญ่ให้เร็วขึ้น ตอนนี้มันก็ส่ง การโจมตีได้เร็วขึ้น ด้วย
โชคดีที่ HTTP/1.1 ยังใช้งานได้อยู่ ถ้าไม่ชอบโปรโตคอลนั้น คุณเปิดใช้ HTTP/1.1 ได้เสมอใน settings ของ browser และบน web server
นี่เป็นอีกเหตุผลหนึ่งที่ควรรักษาโปรโตคอลพื้นฐานให้เล็กไว้ HTTP/2 ถ้ารวม SPDY ด้วยก็มีมานานกว่า 10 ปีแล้ว แต่การโจมตีรูปแบบนี้เพิ่งปรากฏเป็นครั้งแรก
สงสัยว่าใน HTTP/3 และ QUIC จะมีเรื่องน่าประหลาดใจอะไรซ่อนอยู่อีก
ควรเพิ่ม “การยกเลิก” เข้าไปในรายการ “ปัญหาวิทยาการคอมพิวเตอร์ที่ยาก” ด้วย
มันไม่ได้ยากมหาศาลจริง ๆ เหมือนบางอย่างในรายการนั้น เช่น off-by-one error หรือ cache invalidation แต่ถูกประเมินต่ำไปและถูกมองข้ามได้ง่าย ถ้าใช้เวลาในการออกแบบการทำลาย การ cleanup การรื้อถอน และการยกเลิกสักครึ่งหนึ่งของเวลาที่ใช้กับการสร้าง constructor และ initialization ก็น่าจะลด บั๊ก resource exhaustion ลงได้มากเป็นพิเศษ
awaitใด ๆ โดยไม่ต้องอาศัยความร่วมมือจากแต่ละ call และยกเลิก call stack ทั้งหมดไปพร้อมกันได้อยากเตือนทุกคนว่า Google คือ บริษัทที่สร้าง HTTP/2
ตอนนี้พวกเขาเล่าเหมือนกำลังกอบกู้เราจากปัญหาที่ตัวเองสร้างขึ้นอย่างกล้าหาญ แต่กลับไม่พูดถึงส่วนที่ตัวเองเป็นคนสร้าง ช่างหน้าด้านจริง ๆ บริษัทเทคโนโลยีพวกนี้ Microsoft ก็ทำแบบนี้มาหลายสิบปีแล้ว
ใครช่วยอธิบายได้ไหมว่าในการโจมตีนี้ มีอะไรใหม่ที่ต่างจาก request flood ธรรมดา?
ใน HTTP/1.1 คุณส่งคำขอได้หนึ่งรายการต่อ round-trip time[0] ใน multiplexing ของ HTTP/2 คุณส่งได้ 100 รายการต่อ round-trip time ส่วนในการโจมตีนี้ คุณส่งคำขอได้ในจำนวนแทบไม่จำกัดต่อ round-trip time หวังว่าแผนภาพในบทความนี้จะแสดงความแตกต่างได้ แต่ก็เป็นไปได้ว่าคุณอาจหมายถึงการโจมตีรูปแบบอื่นที่ต่างจากที่กล่าวข้างต้น
[0] ถ้าพิจารณา HTTP/1.1 pipelining ก็ลดปัจจัย round-trip time ลงได้หนึ่งส่วน แต่ client จริงแทบไม่ใช้ HTTP/1.1 pipelining ดังนั้นการใช้มันเองจึงกลายเป็นสัญญาณที่ชัดมากว่าเป็น traffic ที่เป็นอันตราย
เมื่อส่งทั้งคำขอและการ reset stream ภายใน connection เดียวกัน ก็สามารถส่งคำขอต่อ connection/ต่อ client ได้มากกว่าเดิม ซึ่งอาจทำให้ต้นทุนการโจมตีถูกลงหรือบล็อกได้ยากขึ้น
header ของบล็อกเด้งออกมาเรื่อย ๆ จนอ่านหน้าเว็บไม่ได้