
🛡️ أداة عالية الأداء للكشف عن WAF و CDN. حدد طبقات الحماية (Cloudflare، Akamai، AWS، Fastly، وغيرها)، ونفّذ اختبارات الفعالية والإنفاذ باستخدام حِمل التهرب، وأنشئ تقارير الوضع الأمني. مبنية بلغة Rust 🦀.
أداة سطر أوامر لاكتشاف واختبار وتحليل جدران حماية تطبيقات الويب (WAFs) وشبكات توصيل المحتوى (CDNs).
مهم: اختبر فقط الأنظمة التي تملكها أو لديك تفويض صريح باختبارها.
لوكلاء البرمجة بالذكاء الاصطناعي: راجع AGENTS.md لمعرفة ربط المهارات ومؤشرات سير العمل. استخدم agent-skills/waf-assess/WORKFLOW.md لإجراء تقييمات كاملة؛ واستخدم agent-skills/validate-build/WORKFLOW.md قبل الدمج.
| الوضع | ما تختبره | الخيار |
|---|---|---|
| الاكتشاف | يحدد أي WAF/CDN يحمي الهدف | waf-detect <url> |
| اختبار سريع | يرسل حمولات هجومية معروفة، ويقيس معدلات الحجب | --smoke-test <url> |
| اختبار الإنفاذ | يرسل مجسات هجومية مصنفة، ويقيس الحجب/التحدي/السماح | --va <url> |
| التحليل السلوكي | مجسات مزدوجة تختبر مدى تطور WAF عبر 5 قنوات | --va2 <url> --va2-run |
| تقرير الوضع الأمني | تقييم موحد (A-F) يجمع كل نتائج الاختبارات | --posture <url> |
| تقرير HTML | يحوّل نتائج JSON المحفوظة إلى تقرير ثابت قابل للمشاركة | report <file.json> |
cargo build --release
./target/release/waf-detect scan example.com
# Full hardening scan + HTML report
./target/release/waf-detect hardening https://example.com --output /tmp/example-hardening.json
./target/release/waf-detect report /tmp/example-hardening.json --output /tmp/example-hardening.html
يحدد WAF/CDN عبر الترويسات والمحتوى وDNS وTLS والتوقيت. 12 مزودًا: CloudFlare، AWS، Akamai، Fastly، Vercel، Azure، F5، Imperva، ModSecurity، Sucuri، Radware، FortiWeb.
waf-detect scan example.com --json
waf-detect scan @urls.txt --ndjson
يرسل حمولات هجومية معروفة ويقيس ما يحجبه WAF أو يتحداه أو يسمح بمروره. لا يُشغَّل الاختبار السريع النشط إلا ضد أهداف مملوكة ومسجلة.
./target/release/waf-detect --smoke-test example.com
# Aggressive mode (more payloads)
./target/release/waf-detect --smoke-test example.com --aggressive
# Export results
./target/release/waf-detect --smoke-test example.com -o results.json
فئات الهجوم المُختبرة: حقن SQL (أساسي + متقدم)، XSS (أساسي + متقدم)، حقن الأوامر، اجتياز المسار، SSTI، SSRF، Log4Shell، رفع الملفات، كشف الماسحات، حقن GraphQL، تهريب طلبات HTTP، تلويث النموذج الأولي، حقن WebSocket، الاستنفاد.
تصنيفات النتائج:
BLOCKED — حجب WAF الطلب (عادةً 403)CHALLENGE — تفعّلت حماية البوتات (تحدي JS، CAPTCHA)ALLOWED — مرّ الطلب إلى الأصلERROR — فشل غير حاجب (404، 500، انتهاء المهلة)يرسل مجسات هجومية مصنفة ويقيس معدلات الحجب/التحدي/السماح مع تسجيل درجة الثقة. يتطلب نطاق هدف مسجل.
# Register owned targets once
./target/release/waf-detect --scope init example.com
# Run enforcement test
./target/release/waf-detect --va https://example.com
# With JSON output
./target/release/waf-detect --va https://example.com --va-json
# Save report
./target/release/waf-detect --va https://example.com --va-output report.json
الخيارات:
--va-tier 1|2|3 — مستوى الأمان (1 = الأكثر أمانًا)--va-budget N — الحد الأقصى للطلبات لكل تشغيل (الافتراضي: 120)--va-timeout SECONDS — مهلة كل طلب (الافتراضي: 15)--va-delay MS — التأخير بين الطلبات (الافتراضي: 750)--va-variants N — المتغيرات لكل قالب حمولة (الافتراضي: 4)--va-replay — تصدير خطة الإعادة كـ JSON--va-replay-csv — تصدير خطة الإعادة كـ CSVيختبر مدى تطور WAF عبر إرسال مجسات مزدوجة — واحدة حميدة وأخرى خبيثة — عبر 5 قنوات HTTP. يقيس ما إذا كان WAF يعاملهما بشكل مختلف.
# Dry run (shows plan without executing)
./target/release/waf-detect --va2 https://example.com
# Run behavioral analysis
./target/release/waf-detect --va2 https://example.com --va2-run
# Full 5-phase analysis
./target/release/waf-detect --va2 https://example.com --va2-run \
--va2-phases baseline,protocol-variance,state-escalation,behavioral-pressure,challenge-interaction
# Save results
./target/release/waf-detect --va2 https://example.com --va2-run --va2-output results.json
ما الذي يقيسه:
| الإشارة | ما تختبره |
|---|---|
| دفاع الترميز | هل يقوم WAF بتطبيع المسارات المرمزة قبل المطابقة؟ |
القنوات المُختبرة: المسار، الاستعلام، الترويسة، المحتوى، الطريقة. القنوات التي لديها 0% كشف هجوم تُعلَّم كغير محمية.
الخيارات:
--va2-phases LIST — المراحل المراد تشغيلها (مفصولة بفواصل)--va2-seed N — بذرة حتمية لنتائج قابلة للتكرار (الافتراضي: 1337)--va2-budget N — ميزانية الطلبات (الافتراضي: 60)--va2-json — طباعة الخطة/التقرير كـ JSONيولّد تقييمًا أمنيًا موحدًا (A-F) ودرجة مخاطر (0-100) تجمع ثقة الاكتشاف ونتائج الإنفاذ والتحليل السلوكي.
# Detection only
./target/release/waf-detect --posture example.com
# Include behavioral analysis
./target/release/waf-detect --posture example.com --posture-va2
# Include enforcement testing (VA1) -- distinguishes "WAF present but not
# enforcing" (monitor/log-only mode) from "no WAF at all"
./target/release/waf-detect --posture example.com --posture-va1
# JSON output
./target/release/waf-detect --posture example.com --posture-va2 --posture-json
مقياس التقييم:
يحوّل ملف JSON محفوظ من الفحص إلى تقرير HTML ثابت يسهل مراجعته محليًا ومشاركته مع المهندسين الآخرين.
# Render a saved hardening report
./target/release/waf-detect hardening https://example.com --output /tmp/example-hardening.json
./target/release/waf-detect report /tmp/example-hardening.json
# Render a saved posture report
./target/release/waf-detect --posture https://example.com --posture-va2 --posture-json > /tmp/example-posture.json
./target/release/waf-detect report /tmp/example-posture.json --output /tmp/example-posture.html
ملف HTML المُولَّد ثابت ومكتفٍ ذاتيًا، لذا يمكن إرفاقه بالتذاكر أو مشاركته في المحادثات أو فتحه محليًا دون إعادة تشغيل الفحص.
يتطلب الاختبار السريع وتحليل الحمولات والإنفاذ والتحليل السلوكي واختبار الفعالية أهدافًا مملوكة ومسجلة.
# Check target scope
./target/release/waf-detect --scope
# Initialize target scope
./target/release/waf-detect --scope init example.com api.example.com
# Add authorized target
./target/release/waf-detect --scope add-target admin.example.com
# Remove target
./target/release/waf-detect --scope remove-target api.example.com
# Clear target scope
./target/release/waf-detect --scope clear
درجات المخاطر (تقرير الوضع الأمني):
النتائج الشائعة:
# List supported providers
./target/release/waf-detect --list
# Effectiveness testing (advanced evasion techniques)
./target/release/waf-detect --effectiveness example.com
# Benchmark against corpus
./target/release/waf-detect --benchmark corpus.json
# Performance snapshot
./target/release/waf-detect example.com --perf-report perf.json
# Debug output
./target/release/waf-detect example.com --debug --verbose
خيارات الإخراج: --json / --ndjson / --compact / --yaml · waf-detect providers · waf-detect doctor
cargo test --lib
cargo clippy -- -D warnings
cargo fmt
راجع DEVELOPMENT.md للحصول على التفاصيل الكاملة.
مرخّص بموجب أي من
حسب اختيارك.
ما لم تنص صراحةً على خلاف ذلك، فإن أي مساهمة تُقدَّم عن قصد لإدراجها في العمل من قبلك، كما هو محدد في ترخيص Apache-2.0، تُرخَّص بشكل مزدوج كما هو مذكور أعلاه، دون أي شروط أو أحكام إضافية.
| الوضع | الأمر |
|---|
| الاكتشاف | waf-detect scan <url> أو waf-detect <url> |
| التقوية | waf-detect hardening <url> --output file.json |
| اختبار سريع | waf-detect --smoke-test <url> |
| الإنفاذ | waf-detect va <url> |
| السلوكي | waf-detect va2 <url> --run |
| الوضع الأمني | waf-detect --posture <url> |
| الفعالية | waf-detect --effectiveness <url> |
| فحص الأصل | waf-detect origin-probe <url> --json |
| تقرير HTML | waf-detect report <file.json> -o <file.html> |
| تتبع الجلسة |
| هل يتتبع WAF حالة الجلسة ويصعّد عند تكرار الإساءة؟ |
| تحدي البوتات | هل يصدر WAF تحديات CAPTCHA أو JS؟ |
| تحديد المعدل | هل يحدّ WAF من الطلبات السريعة؟ |
| التعرف على الهجوم | هل يميز WAF بين مجسات الهجوم والطلبات الحميدة؟ |