الاختبار الديناميكي وأمان وقت التشغيل

فهم DAST: اختبار الأمان أثناء التشغيل

3 دقيقة للقراءة

اختبار أمان التطبيقات الديناميكي (DAST) يختبر تطبيقك أثناء تشغيله. على عكس SAST الذي يقرأ الكود، DAST يتفاعل مع تطبيقك كما يفعل المهاجم.

كيف يعمل DAST

┌─────────────┐     طلبات HTTP        ┌─────────────────┐
│ أداة DAST   │ ──────────────────▶  │ التطبيق قيد     │
│ (ZAP, etc)  │                       │ التشغيل         │
│             │ ◀──────────────────   │ (staging/test)  │
└─────────────┘     استجابات HTTP     └─────────────────┘
┌─────────────┐
│  التقرير:   │
│  - XSS      │
│  - SQLi     │
│  - CSRF     │
└─────────────┘

أدوات DAST:

  1. تزحف لتطبيقك لاكتشاف نقاط النهاية
  2. تحقن حمولات خبيثة في المدخلات
  3. تحلل الاستجابات لمؤشرات الثغرات
  4. تقدم تقريراً بالنتائج مع إثبات المفهوم

مقارنة DAST مع SAST

الجانبSASTDAST
متىوقت البناءوقت التشغيل
المدخلاتالكود المصدريالتطبيق قيد التشغيل
التغطيةجميع مسارات الكودفقط المسارات القابلة للوصول
الإيجابيات الخاطئةأعلىأقل
يعتمد على اللغةنعملا
يجد مشاكل وقت التشغيللانعم
مشاكل التكوينمحدودنعم
أخطاء المصادقةمحدودنعم

ما يجده DAST

الثغرةكيف يكتشفها DAST
SQL Injectionيرسل ' OR 1=1-- ويتحقق من أخطاء قاعدة البيانات
XSSيحقن <script>alert(1)</script> ويتحقق إذا نُفذ
CSRFيتحقق من رموز CSRF المفقودة في النماذج
إعادة التوجيه المفتوحيختبر معلمات التوجيه مع URLs خارجية
رؤوس الأمانيتحقق من CSP، HSTS، X-Frame-Options المفقودة
كشف المعلوماتيبحث عن تتبعات المكدس، معلومات الإصدار في الأخطاء

أنواع اختبار DAST

1. الفحص السلبي

يراقب حركة المرور دون تعديل الطلبات:

  • يتحقق من رؤوس الأمان
  • يحدد تعرض البيانات الحساسة
  • يجد تسرب المعلومات

2. الفحص النشط

يرسل حمولات هجوم للعثور على الثغرات:

  • محاولات SQL injection
  • حقن حمولات XSS
  • هجمات اجتياز المسار

3. فحص API

يختبر REST/GraphQL APIs:

  • تجاوز المصادقة
  • عيوب التفويض
  • الحقن في معلمات API

متى تشغل DAST

التطوير ─────▶ التجهيز ─────▶ الإنتاج
            ┌─────────────┐
            │ فحص DAST   │
            │ (ليلي أو   │
            │  لكل نشر)  │
            └─────────────┘

أفضل الممارسات:

  • شغّل ضد التجهيز، ليس الإنتاج (إلا إذا كان سلبياً فقط)
  • جدول فحوصات ليلية للاختبار الشامل
  • شغّل فحوصات سريعة على كل نشر
  • استخدم فحوصات مصادق عليها لاختبار المناطق المحمية

DAST في CI/CD

# GitHub Actions - DAST بعد النشر
dast:
  needs: deploy-staging
  runs-on: ubuntu-latest
  steps:
    - name: Wait for deployment
      run: sleep 30

    - name: DAST Scan
      uses: zaproxy/action-baseline@v0.10.0
      with:
        target: ${{ secrets.STAGING_URL }}
        fail_action: true  # فشل خط الأنابيب على النتائج العالية

قيود DAST

كن على دراية بما لا يستطيع DAST فعله:

  • مشاكل مستوى الكود: لا يمكنه رؤية أنماط الكود الضعيف
  • الكود الميت: لا يمكنه اختبار مسارات الكود غير القابلة للوصول
  • المنطق المعقد: صعب اختبار منطق الأعمال متعدد الخطوات
  • بطيء: الفحوصات الكاملة تستغرق ساعات مقابل دقائق لـ SAST
  • إعداد البيئة: يتطلب تطبيق قيد التشغيل

اختيار نهج DAST

السيناريوالنهج
فحوصات PR سريعةفحص أساسي (سريع، ثغرات شائعة)
بناءات ليليةفحص نشط كامل
اختبار APIفحص خاص بـ API (Nuclei)
الامتثالمصادق عليه + غير مصادق عليه

بعد ذلك، سنقوم بأتمتة OWASP ZAP في خط أنابيب CI/CD الخاص بك. :::

مراجعة سريعة: كيف تجد هذا الدرس؟

اختبار

الوحدة 4: الاختبار الديناميكي وأمان وقت التشغيل

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.