
أداة لاختبار إجراءات التخفيف والتعرض لهجوم Rapid Reset DDoS (CVE-2023-44487)
Rapid Reset Client هو أداة لاختبار التخفيفات والتعرض لـ CVE-2023-44487 (متجه هجوم Rapid Reset من نوع DDoS). ينفذ عميل HTTP/2 بسيطًا يفتح مقبس TCP واحدًا، ويتفاوض على TLS، ويتجاهل الشهادة، ويتبادل إطارات SETTINGS. ثم يرسل العميل إطارات HEADERS سريعة تليها إطارات RST_STREAM. يراقب (لكنه لا يعالج) إطارات الخادم بعد الإعداد الأولي، باستثناء إرسالها إلى stdout. يمكن إزالة هذه الوظيفة بسهولة من المصدر إذا كانت مزعجة للغاية.
تم الاختبار باستخدام go1.21.3 على arm64.
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)
أرسل 10 طلبات HTTP/2 (إطارات HEADERS وRST_STREAM) عبر اتصال واحد إلى https://example.com باستخدام 5 عمال، مع تأخير 10 مللي ثانية بين إرسال إطارات HEADERS وRST_STREAM، ووقت انتظار 100 مللي ثانية بين كل استدعاء.
./rapidresetclient -requests=10 -url https://example.com -wait=100 -delay=10 -concurrency=5
http2 - حزمة تكشف عن أساسيات HTTP/2 منخفضة المستوى
http2/hpack - حزمة ضغط ترويسات HTTP/2
انظر أيضًا قائمة المساهمين
هذا المشروع مرخص بموجب رخصة Apache - انظر ملف LICENSE للتفاصيل
يستند هذا العمل إلى التحليل الأولي لـ CVE-2023-44487 بقلم Juho Snellman و Daniele Iamartino في Google.