أساسيات DevSecOps

بنية خط أنابيب DevSecOps

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

خط أنابيب DevSecOps يدمج فحوصات الأمان في كل مرحلة—من إرسال الكود إلى مراقبة الإنتاج. هذا الدرس يرسم البنية الكاملة.

خط الأنابيب الكامل

┌─────────────────────────────────────────────────────────────────────┐
│                     خط أنابيب DevSecOps                             │
├────────┬────────┬────────┬────────┬────────┬────────┬──────────────┤
│ تخطيط  │ كود    │ بناء   │ اختبار │ إصدار  │ نشر    │ تشغيل        │
├────────┼────────┼────────┼────────┼────────┼────────┼──────────────┤
│نمذجة   │خطافات  │SAST    │DAST    │توقيع   │تدقيق   │حماية وقت     │
│التهديد │ما قبل  │SCA     │IAST    │الصور   │التكوين │التشغيل       │
│        │الإرسال │الرخص   │اختراق  │        │التحقق  │SIEM          │
│        │أمان IDE│        │        │        │الأسرار │المراقبة      │
└────────┴────────┴────────┴────────┴────────┴────────┴──────────────┘

الأمان مرحلة بمرحلة

1. مرحلة التخطيط

الأمان يبدأ قبل كتابة الكود:

  • نمذجة التهديدات: تحديد أسطح الهجوم (أطر STRIDE، PASTA)
  • متطلبات الأمان: تحديد معايير قبول الأمان
  • مراجعة البنية: التحقق من قرارات التصميم

2. مرحلة الكود

الأمان أثناء كتابة المطورين للكود:

# تكوين خطافات ما قبل الإرسال
# .pre-commit-config.yaml
repos:
  - repo: https://github.com/Yelp/detect-secrets
    rev: v1.4.0
    hooks:
      - id: detect-secrets
  - repo: https://github.com/hadolint/hadolint
    rev: v2.12.0
    hooks:
      - id: hadolint

الأدوات: detect-secrets، git-secrets، Semgrep، SonarLint

3. مرحلة البناء

الأمان أثناء التجميع والتغليف:

# GitHub Actions - بناء مع الأمان
build:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4

    # SAST - التحليل الثابت
    - name: Run Semgrep
      uses: returntocorp/semgrep-action@v1
      with:
        config: p/security-audit p/secrets

    # SCA - فحص التبعيات
    - name: Run Snyk
      uses: snyk/actions/node@master
      env:
        SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

    # بناء الأرتيفاكت
    - name: Build
      run: npm run build

الأدوات: Semgrep، CodeQL، Snyk، Trivy، OWASP Dependency-Check

4. مرحلة الاختبار

اختبار الأمان الديناميكي:

# DAST في بيئة الاختبار
dast:
  runs-on: ubuntu-latest
  needs: deploy-staging
  steps:
    - name: OWASP ZAP Scan
      uses: zaproxy/action-baseline@v0.10.0
      with:
        target: 'https://staging.example.com'
        rules_file_name: '.zap/rules.tsv'

الأدوات: OWASP ZAP، Nuclei، Burp Suite، OWASP Juice Shop (للتدريب)

5. مرحلة الإصدار

الأمان قبل الإنتاج:

# توقيع صور الحاويات
release:
  steps:
    - name: Sign Image with Cosign
      run: |
        cosign sign --key cosign.key \
          ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ env.TAG }}

    - name: Verify Image
      run: |
        cosign verify --key cosign.pub \
          ${{ env.REGISTRY }}/${{ env.IMAGE }}:${{ env.TAG }}

الأدوات: Cosign، Notary، Harbor (سجل مع الفحص)

6. مرحلة النشر

الأمان أثناء النشر:

# التحكم في قبول Kubernetes
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  name: security-webhook
webhooks:
  - name: validate.security.io
    rules:
      - operations: ["CREATE", "UPDATE"]
        resources: ["pods", "deployments"]

الأدوات: OPA Gatekeeper، Kyverno، Vault (حقن الأسرار)

7. مرحلة التشغيل

مراقبة الأمان المستمرة:

# قواعد أمان Falco لوقت التشغيل
- rule: Detect Crypto Mining
  condition: >
    spawned_process and
    proc.name in (crypto_mining_binaries)
  output: "Crypto mining detected (user=%user.name command=%proc.cmdline)"
  priority: CRITICAL

الأدوات: Falco، Sysdig، Datadog Security Monitoring

بوابات الأمان: معايير النجاح/الفشل

# مثال على تكوين بوابات الأمان
security-gates:
  sast:
    critical: 0      # صفر حرج = يجب النجاح
    high: 5          # حد أقصى 5 عالية الخطورة
    block_on_fail: true

  sca:
    critical: 0
    high: 10
    license_block: ["GPL-3.0", "AGPL"]  # حظر copyleft

  dast:
    critical: 0
    high: 3
    block_on_fail: true

  secrets:
    detected: 0      # صفر أسرار مسموح بها
    block_on_fail: true

حلقات التغذية الراجعة

أسرع تغذية راجعة تفوز:

المرحلة وقت التغذية الراجعة إجراء المطور
بيئة التطوير فوري الإصلاح أثناء البرمجة
ما قبل الإرسال ثوانٍ الإصلاح قبل الإرسال
فحوصات PR دقائق الإصلاح قبل الدمج
فحص ليلي ساعات الإصلاح في اليوم التالي
اختبار الاختراق أسابيع الإصلاح في النهاية

في الوحدة التالية، سنتعمق في SAST—خط الدفاع الآلي الأول. :::

اختبار

اختبار الوحدة 1: أساسيات DevSecOps

خذ الاختبار