أساسيات 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

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

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

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

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