
Rapid Reset DDoS (CVE-2023-44487) के मिटिगेशन और एक्सपोज़र का परीक्षण करने का उपकरण
Rapid Reset Client एक उपकरण है जो CVE-2023-44487 (Rapid Reset DDoS हमले वेक्टर) के विरुद्ध शमन और एक्सपोज़र का परीक्षण करने के लिए है। यह एक न्यूनतम HTTP/2 क्लाइंट लागू करता है जो एक एकल TCP सॉकेट खोलता है, TLS वार्ता करता है, प्रमाणपत्र को अनदेखा करता है, और SETTINGS फ्रेम का आदान-प्रदान करता है। फिर क्लाइंट तीव्र HEADERS फ्रेम भेजता है जिसके बाद RST_STREAM फ्रेम आते हैं। यह प्रारंभिक सेटअप के बाद सर्वर फ्रेम की निगरानी करता है (लेकिन उन्हें संभालता नहीं है), stdout पर भेजने के अलावा। यदि यह बहुत कष्टप्रद है तो इस कार्यक्षमता को स्रोत से आसानी से हटाया जा सकता है।
arm64 पर go1.21.3 पर परीक्षण किया गया।
git clone https://github.com/secengjeff/rapidresetclient.git
cd rapidresetclient
go get golang.org/x/net/http2
go get golang.org/x/net/http2/hpack
go build -o rapidresetclient
requests: भेजने के लिए अनुरोधों की संख्या (डिफ़ॉल्ट 5 है)
url: सर्वर URL (डिफ़ॉल्ट https://localhost:443 है)
wait: कार्यकर्ताओं को प्रारंभ करने के बीच मिलीसेकंड में प्रतीक्षा समय (डिफ़ॉल्ट 0 है)
delay: HEADERS और RST_STREAM फ्रेम भेजने के बीच मिलीसेकंड में विलंब (डिफ़ॉल्ट 0 है)
concurrency: एक साथ कार्यकर्ताओं की अधिकतम संख्या (डिफ़ॉल्ट 0 है)
एक एकल कनेक्शन पर https://example.com पर 10 HTTP/2 अनुरोध (HEADERS और RST_STREAM फ्रेम) भेजें, 5 कार्यकर्ताओं का उपयोग करके, HEADERS और RST_STREAM फ्रेम भेजने के बीच 10 ms का विलंब, और प्रत्येक आह्वान के बीच 100 ms का प्रतीक्षा समय।
./rapidresetclient -requests=10 -url https://example.com -wait=100 -delay=10 -concurrency=5
http2 - पैकेज जो निम्न-स्तरीय HTTP/2 प्रिमिटिव को उजागर करता है
http2/hpack - HTTP/2 हेडर संपीड़न पैकेज
योगदानकर्ताओं की सूची भी देखें
यह प्रोजेक्ट Apache लाइसेंस के अंतर्गत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें
यह कार्य Google पर Juho Snellman और Daniele Iamartino द्वारा CVE-2023-44487 के प्रारंभिक विश्लेषण पर आधारित है।