تخطَّ إلى المحتوى

ZAP (Zed Attack Proxy) - مسح الأمان لتطبيقات الويب

ZAP (Zed Attack Proxy) - مسح الأمان لتطبيقات الويب

ZAP (Zed Attack Proxy، التي تحتفظ بها Checkmarx، وسابقًا من OWASP الرئيسية) هي أداة dynamic application security testing (DAST) مفتوحة المصدر مجانية. تتخذ موضعًا بين المتصفح والهدف كموكيل اعتراض، ثم تجري مسحًا سلبيًا ونشطًا لتطبيقات الويب والواجهات البرمجية بحثًا عن الثغرات. تجمع بين الزحف والقزم والفازينج والماسح النشط ودعم WebSocket ومسح REST/GraphQL/SOAP للواجهات البرمجية — قابلة للاستخدام بشكل تفاعلي عبر واجهة رسومية أو بدون رأس عبر CLI والواجهة البرمجية لـ CI/CD.

التثبيت

المنصةالأمر
Docker (موصى به لـ CI)docker pull zaproxy/zap-stable
Debian/Ubuntuقم بتنزيل المثبّت من موقع ZAP
macOS (Homebrew)brew install --cask zap
متعدد المنصاتقم بتنزيل حزمة متعددة المنصات (يتطلب Java)
التحققzap.sh -version (أو zap.bat على Windows)

أوضاع التشغيل

الأمرالوصف
zap.shتشغيل واجهة سطح المكتب الرسومية
zap.sh -daemon -host 0.0.0.0 -port 8080خادم بدون رأس مع الواجهة البرمجية
zap.sh -cmd -quickurl https://target -quickout report.htmlمسح سريع في خطوة واحدة إلى تقرير
docker run -t zaproxy/zap-stable zap-baseline.py -t https://targetمسح خطي (سلبي) في Docker

إطار عمل الأتمتة (المسح المكتوب)

أفضل طريق لتكامل CI هي نصوص المسح المعبأة مع ZAP.

النصالغرض
zap-baseline.py -t URLمسح سلبي + زحف (سريع، آمن لـ CI)
zap-full-scan.py -t URLالأساسي + مسح هجوم نشط
zap-api-scan.py -t openapi.json -f openapiمسح واجهة برمجية من تعريف OpenAPI/SOAP/GraphQL
-r report.htmlكتابة تقرير HTML
-J report.jsonكتابة تقرير JSON
-c config.confتصفية التنبيهات / تكوين القاعدة
# مسح خطي آمن لـ CI، فشل البناء عند وجود النتائج
docker run -t zaproxy/zap-stable zap-baseline.py \
  -t https://staging.example.com -r zap-report.html

المكونات الأساسية

المكونالدور
Proxyاعتراض/فحص/تعديل حركة HTTP(S)
Spiderالزحف إلى التطبيق لاكتشاف عناوين URL
Ajax Spiderزحف التطبيقات الثقيلة في JavaScript عبر متصفح حقيقي
Passive Scanتحذيرات المشاكل من حركة المراقبة (بدون هجمات)
Active Scanإرسال حمولات الهجوم للعثور على الثغرات
Fuzzerحقن قوائم الحمولات في الطلبات

إعداد الموكيل

الخطوةالكيفية
تعيين موكيل المتصفحوجّه المتصفح إلى localhost:8080
تثبيت شهادة ZAP CAاستورد شهادة جذر ZAP لاعتراض HTTPS
استكشاف يدويتصفح التطبيق؛ تسجل ZAP حركة المرور
ثم مسحزحف + مسح نشط للشجرة المكتشفة

واجهة برمجية (أتمتة)

مع تشغيل الخادم، قم بتشغيل ZAP عبر HTTP.

نقطة النهايةالإجراء
/JSON/spider/action/scan/?url=...بدء زحف
/JSON/ascan/action/scan/?url=...بدء مسح نشط
/JSON/core/view/alerts/استرجاع النتائج
/OTHER/core/other/htmlreport/إنشاء تقرير HTML
API keyمرر apikey=... مع الطلبات

المصادقة والسياق

المفهومالاستخدام
Contextحدّد نطاق الهدف والمصادقة
Session mgmtإدارة الجلسات بناءً على ملف تعريف الارتباط/HTTP/البرنامج
Authenticationمصادقة النموذج أو JSON أو HTTP أو البرنامج
Usersاختبر كمستخدمين مصرح لهم

سير العمل الشائع

# مسح خطي سلبي سريع ضد التدريج في CI
zap-baseline.py -t https://staging.example.com -r report.html

# مسح واجهة REST من مواصفاتها OpenAPI
zap-api-scan.py -t https://api.example.com/openapi.json -f openapi -J out.json

# مسح نشط كامل (الأهداف المرخصة فقط)
zap-full-scan.py -t https://target.example.com -r full.html

ZAP مقابل أدوات DAST الأخرى

الجانبZAPNucleiBurp SuiteNikto
النموذجموكيل + زحف + DAST نشطماسح CVE المستند على القالبموكيل + يدوي + ماسحماسح سوء تكوين الخادم
التكلفةمفتوح المصدر مجانيمفتوح المصدر مجانيمجاني + Pro مدفوعمجاني
API/CIقوي (API + نصوص)قويملحقات ProCLI
الأفضل لـDAST كامل للتطبيق، CIفحوصات CVE المعروفة السريعةالاختبار اليدوي للاختراقفحوصات الخادم السريعة

الاقتران الشائع: Nuclei للكشف السريع عن CVE المعروفة بالإضافة إلى ZAP لزحف DAST على مستوى التطبيق.

الموارد