العودة إلى التحديثات
New releaseSep 13, 2026

waf-checker v1.2.0

أداة تقييم تلقائي لجدران الحماية (WAF) تكتشف أنواع الجدران النارية، وتختبر 19 فئة هجوم باستخدام حمولات تفادي متقدمة، وتوفر تحليلاً للاختراق مرمّزاً بالألوان عبر CLI أو Cloudflare Worker أو Docker.

مشاركة

فاحص WAF

إصدار GitHub إجراء GitHub التغطية: النواة التغطية: واجهة سطر الأوامر الاختبارات

يساعدك هذا المشروع على التحقق من مدى جودة حماية جدار الحماية لتطبيقات الويب (WAF) لمنتجك ضد الهجمات الويب الشائعة. يمكن تشغيله كعامل Cloudflare (مع واجهة مستخدم ويب تفاعلية مدمجة) أو كأداة مستقلة بواجهة سطر أوامر Node.js.

🧪 تغطية الاختبارات والحالة

جميع الحزم مُختبرة بدقة عبر مجموعات آلية من اختبارات الوحدات والتكامل والاختبارات القائمة على الخصائص (fast-check fuzzing) ومرونة الشبكة والهندسة العكسية (امتثال أمان SSRF بنسبة 100%، وتقنيات التهرب من البروتوكول، ومنسّقات التقارير):

الحزمةتغطية الأسطرالعباراتالدوالمجموعة الاختبارات
@waf-checker/core93.0% 🟢92.6%96.4%🟢 282 ناجح
@waf-checker/cli93.5% 🟢92.8%96.7%🟢 54 ناجح
@waf-checker/workerناجح 🟢——🟢 30 ناجح
إجمالي مجموعة المستودع الأحادي93.2%92.7%96.6%🟢 366 اختبارًا ناجحًا

الميزات

الاختبار الأساسي

  • أدخل عنوان URL الهدف، واختر طرق HTTP (GET، POST، إلخ) وفئات الهجوم.
  • يرسل الطلبات مع حمولات الهجوم (في المعاملات أو الترويسات أو كمسارات ملفات).
  • نتائج الطرفية والويب مرمّزة بالألوان: 🟢 403/محظور = محظور، 🔴 2xx/5xx = تجاوز محتمل، 🟠 3xx = إعادة توجيه.
  • تُعرض النتائج في جدول قابل للتصفية مع تفاصيل لكل حمولة.

🕵️ الهندسة العكسية لـ WAF ومصفوفة CRS (--reverse)

  • تعيين مجموعة قواعد OWASP الأساسية (CRS v3/v4): تدقيق معرّفات القواعد النشطة مقابل المعطّلة (920xxx، 921xxx، 930xxx، 931xxx، 932xxx، 933xxx، 934xxx، 941xxx، 942xxx، 943xxx، 944xxx) مع مستويات البارانويا (PL1-PL4).
  • كشف حد جسم الفحص: فحص بالبحث الثنائي (8KB – 128KB، بدقة ~1KB) لتحديد حدود اقتطاع المخزن المؤقت.
  • كشف وضع تسجيل الشذوذ: يفحص وضع التسجيل التعاوني مقابل وضع الحظر الصارم بالتعبيرات النمطية ويحدد حدود الدرجات.
  • فحص آمن لحد المعدل: تصعيد آمن حتى 30 طلب/ثانية مع إنهاء مبكر فوري عند استلام HTTP 429 واستخراج Retry-After.

🛡️ الترقيع الافتراضي لجدار الحماية WAF والمعالجة التلقائية (--patch / أمر patch)

  • تخفيف فوري: يحوّل تلقائيًا تجاوزات WAF المكتشفة (HTTP 200) إلى قواعد جدار حماية جاهزة للنشر، وإعدادات وكيل عكسي، وبنية تحتية ككود (Terraform HCL / Cloud CLI).
  • المنصات المدعومة (11 لهجة):
    • Cloudflare WAF: تعبيرات Wirefilter (http.request.uri.query contains ... / matches ...) وcloudflare_ruleset Terraform HCL.
    • AWS WAF v2: عبارات قواعد JSON أصلية (ByteMatchStatement، RegexPatternSet، OrStatement) وaws_wafv2_rule_group Terraform HCL.
    • Google Cloud Armor: تعبيرات CEL (request.path.matches(...)، request.headers[...])، وأوامر gcloud compute security-policies CLI، وTerraform google_compute_security_policy.
    • Azure WAF (Front Door & App Gateway): تعريفات JSON لقواعد مخصصة، وأوامر az network front-door waf-policy CLI، وTerraform azurerm_cdn_frontdoor_firewall_policy.
    • ModSecurity & OWASP Coraza: توجيهات SecRule المتوافقة مع OWASP CRS (SecLang) مع دمج رموز @pm. مدعومة عبر --patch modsecurity أو --patch coraza.
    • NGINX: كتل إعدادات أصلية location ~* \.(ext)$ { return 403; }، وlocation ~ /\.(git|svn)، وmap.
    • HAProxy: قوائم ACL أصلية عالية الأداء (path_end -i، path_beg -i، query -m sub -i، req.hdr()) مع http-request deny deny_status 403.
    • Caddy Server: مطابقات مسماة بأسلوب Caddyfile (@waf_patch_*) مع تعبيرات CEL (expression {http.request.uri.query}.matches(...)) وrespond 403.
    • Apache HTTP Server: قواعد mod_rewrite (RewriteCond %{QUERY_STRING} / %{REQUEST_URI} / %{HTTP_USER_AGENT} + RewriteRule ^ - [F,L]) لـ httpd.conf أو <VirtualHost> أو .htaccess. مدعومة عبر --patch apache.
    • Envoy Proxy: إدخالات مسار تطابق :path/الترويسات عبر RE2 safe_regex مع direct_response: 403 (أو إعادة التوجيه والوسم في وضع المحاكاة) لـ route_configuration virtual_host. مدعومة عبر --patch envoy.
    • Kubernetes Ingress (K8s): ملفات YAML جاهزة للإنتاج من نوع kind: Ingress مع تعليقات nginx.ingress.kubernetes.io/server-snippet.
  • دفاع ثنائي المستوى:
    • إصلاح عاجل صارم: توقيعات رموز دقيقة مع مخاطر إيجابيات كاذبة بنسبة 0% للاستجابة الفورية لحوادث الثغرات الصفرية.
    • نمط استكشافي: تعبيرات نمطية معممة تغطي بنية فئة الثغرة بأكملها.
  • استوديو المعالجة في واجهة الويب: نافذة لوحة تحكم تفاعلية مع معاينات مباشرة عبر جميع الموردين، ونسخ بنقرة واحدة إلى الحافظة، وتبديل التنسيقات، وتصدير الملفات.

فئات الهجمات (28 إجمالًا)

حقن SQL، XSS، حقن الأوامر، اجتياز المسار، SSRF، تضمين الملفات المحلية، الملفات الحساسة، إعادة التوجيه المفتوح، SSTI، XXE، حقن NoSQL، حقن GraphQL، هجوم JWT (الترويسة)، هجوم JWT (المعامل)، تلوث النموذج الأولي (جسم JSON)، تلوث النموذج الأولي (URL/المعامل)، حقن LDAP، حقن XPath، حقن صيغ جداول البيانات، Log4Shell (JNDI)، حقن CRLF، تلوث معاملات HTTP، User-Agent، تجاوز IP، تهريب طلبات HTTP، تسميم ذاكرة التخزين المؤقت للويب، تجاوز UTF8/Unicode، تجاوز حد فحص WAF (الحشو).

كشف WAF

  • الكشف التلقائي عن نوع WAF قبل الاختبار (Cloudflare، AWS WAF، OWASP Coraza، BunkerWeb، ModSecurity، Akamai، Imperva، F5 BIG-IP، إلخ).
  • يقترح تقنيات تجاوز محددة بناءً على WAF المكتشف.
  • يمكنه التبديل تلقائيًا إلى حمولات متقدمة خاصة بـ WAF.

الحمولات المتقدمة والترميز

  • حمولات تجاوز WAF — الترميز المزدوج، unicode، تغيير حالة الأحرف، حقن التعليقات، الحمولات متعددة اللغات.
  • حمولات محسّنة — تقنيات تهرب حديثة.
  • تنويعات الترميز — ترميز URL وUnicode وHTML Entity وHex وOctal وBase64 مع توليفات تلقائية.
  • تجاوزات خاصة بـ WAF لـ Cloudflare وAWS WAF وModSecurity.

التلاعب ببروتوكول HTTP

  • التلاعب بأفعال HTTP — اختبار أفعال HTTP غير الشائعة.
  • تلويث المعاملات — تكرار المعاملات وتقسيمها بين الاستعلام/النص.
  • خلط نوع المحتوى — أنواع محتوى بديلة لتجاوز القواعد.
  • ترويسات تهريب الطلبات.
  • تنويعات حقن ترويسة المضيف.
  • تجاوز فعل HTTP عبر الترويسات (X-HTTP-Method-Override، إلخ).

الاختبار الدفعي

  • اختبار عدة عناوين URL في وقت واحد.
  • تزامن وتأخير قابلان للتكوين بين الطلبات.
  • تتبع التقدم في الوقت الفعلي.

🔀 مقارنة الانحدار (--compare / --fail-on-regression)

  • مقارنة فحص بتقرير JSON محفوظ مسبقًا لإظهار التجاوزات الجديدة (المحظورة سابقًا، وغير المحظورة الآن)، والحِمول المحظورة حديثًا، والاختبارات المضافة/المحذوفة.
  • بوابة CI (--fail-on-regression) تفشل فقط عند تدهور وضع WAF، وليس عند قائمة النتائج الكاملة — مثالية لاكتشاف انحراف مجموعة القواعد المُدارة.

بنية المشروع

المشروع مُنظَّم كـ monorepo من NPM Workspaces:

  • packages/core/: مكتبة اختبار الأمان الأساسية، وتعريف الحِمول، وتوقيعات بصمة WAF، ومشفّرات التمويه.
  • packages/worker/: حزمة Cloudflare Worker التي تقدم واجهة الويب HTML/JS الثابتة ونقاط نهاية JSON API.
  • packages/cli/: أداة واجهة سطر أوامر Node.js لتنفيذ عمليات التدقيق مباشرة من الطرفية.

التثبيت والبناء

من الدليل الجذر، ثبّت التبعيات وابنِ جميع مساحات العمل:

npm install
npm run build

كيفية التشغيل

1. نسخة الويب (Cloudflare Worker)

لتشغيل خادم تطوير Worker محليًا (يتطلب Wrangler):

npm run dev:worker

ستكون واجهة الويب متاحة على http://localhost:8787 (أو منفذ آخر إذا كان 8787 مشغولًا).

الفئات