إدارة الأسرار وأمان البنية التحتية

الأسرار في CI/CD: المخاطر والأنماط الخاطئة

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

الأسرار—مفاتيح API، كلمات المرور، الشهادات، الرموز—هي الجواهر الثمينة التي يبحث عنها المهاجمون. سر مسرب يمكن أن يعرض بنيتك التحتية بأكملها للخطر في دقائق.

حجم المشكلة

حوادث حقيقية:

  • 2023: تسرب كود مصدر Okta عبر رمز GitHub مخترق
  • 2022: اختراق Uber بدأ ببيانات اعتماد مشفرة
  • 2021: هجوم سلسلة توريد Codecov عبر أسرار مكشوفة
  • 2019: اختراق Capital One من دور IAM سيئ التكوين

إحصائيات:

  • 4.6 مليون سر مكتشف في مستودعات GitHub العامة (2023)
  • 67% من الأسرار المسربة لا تزال نشطة بعد 24 ساعة
  • متوسط التكلفة: 4.5 مليون دولار لكل اختراق يتضمن بيانات اعتماد
  • 65% من المؤسسات لديها أسرار مشفرة في الكود

أنواع الأسرار الشائعة في CI/CD

نوع السر مثال مستوى المخاطر
مفاتيح API OPENAI_API_KEY=sk-abc123... حرج
بيانات اعتماد قاعدة البيانات DATABASE_URL=postgres://user:pass@... حرج
بيانات اعتماد السحابة AWS_SECRET_ACCESS_KEY=... حرج
مفاتيح SSH الخاصة -----BEGIN RSA PRIVATE KEY----- حرج
مفاتيح توقيع JWT JWT_SECRET=supersecret عالي
رموز OAuth GITHUB_TOKEN=ghp_xxxx عالي
الشهادات ملفات .pem، .key عالي
URLs الداخلية INTERNAL_API=http://10.0.0.x متوسط

الأنماط الخاطئة: ما لا يجب فعله

1. الأسرار المشفرة

# لا تفعل هذا أبداً
api_key = "sk-1234567890abcdef"  # سر مشفر
db_password = "production_pass123"  # كلمة مرور مشفرة

2. الأسرار في ملفات البيئة

# ملف .env مرسل إلى git
DATABASE_URL=postgres://admin:secret@db.example.com/prod
AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

3. الأسرار في سجلات CI/CD

# سيء: يطبع الأسرار في السجلات
- name: Debug
  run: |
    echo "API Key: ${{ secrets.API_KEY }}"  # مكشوف في السجلات!
    env  # يفرغ جميع متغيرات البيئة

4. الأسرار ذات الصلاحيات المفرطة

# سيء: استخدام بيانات اعتماد الإنتاج في التطوير
- name: Deploy
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.PROD_AWS_KEY }}  # وصول المسؤول الكامل!

5. الرموز طويلة العمر

# سيء: رمز لا ينتهي أبداً
GITHUB_TOKEN: ghp_xxxxxxxxxxxxxxxxxxxx  # أُنشئ قبل سنتين

نواقل تعرض الأسرار

┌─────────────────────────────────────────────────────┐
│               نواقل تعرض الأسرار                    │
├─────────────────────────────────────────────────────┤
│                                                     │
│  الكود المصدري ──────▶ تاريخ Git                    │
│       │                   │                         │
│       ▼                   ▼                         │
│  سجلات CI/CD        تفرعات GitHub                   │
│       │                   │                         │
│       ▼                   ▼                         │
│  صور الحاويات       رسائل الخطأ                     │
│       │                   │                         │
│       ▼                   ▼                         │
│  حالة Terraform     الوثائق                         │
│                                                     │
└─────────────────────────────────────────────────────┘

الكشف: العثور على الأسرار المسربة

فحص ما قبل الإرسال

# تثبيت detect-secrets
pip install detect-secrets

# إنشاء خط الأساس
detect-secrets scan > .secrets.baseline

# إضافة إلى pre-commit
# .pre-commit-config.yaml
repos:
  - repo: https://github.com/Yelp/detect-secrets
    rev: v1.4.0
    hooks:
      - id: detect-secrets
        args: ['--baseline', '.secrets.baseline']

فحص CI/CD

# فحص الأسرار في GitHub Actions
- name: Scan for secrets
  uses: trufflesecurity/trufflehog@main
  with:
    path: ./
    extra_args: --only-verified

فحص تاريخ Git

# فحص تاريخ git بالكامل
trufflehog git file://. --since-commit=HEAD~100

# العثور على أنماط محددة
git log -p | grep -E "(password|api_key|secret)"

ما يحدث عندما تتسرب الأسرار

السر مُرسل
مدفوع إلى GitHub ─────▶ البوتات تفحص في دقائق
في تاريخ Git ─────▶ التفرعات تحفظ السر
وصول المهاجم ─────▶ الحركة الجانبية تبدأ
اختراق كامل ─────▶ تسريب البيانات

الجدول الزمني للاستجابة:

  • 0-5 دقائق: البوتات الآلية تكتشف الأسرار المكشوفة
  • 5-30 دقيقة: المهاجمون يبدأون الاستغلال
  • ساعات-أيام: الحركة الجانبية والثبات يُنشأ
  • أسابيع-أشهر: التأثير يُكتشف (إن اكتُشف)

بعد ذلك، سنستكشف HashiCorp Vault لإدارة الأسرار الآمنة. :::

اختبار

الوحدة 5: إدارة الأسرار وأمان البنية التحتية

خذ الاختبار