فحص الأسرار وبيانات الاعتماد المضمّنة
امنع تضمين مفاتيح API وكلمات المرور في المستودع باستخدام git-secrets وgitleaks وخطافات pre-commit
فحص الأسرار وبيانات الاعتماد المضمّنة درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
مشكلة الأسرار المضمّنة في الشيفرة
يودع المطورون مفاتيح API وكلمات المرور والمفاتيح الخاصة والرموز المميزة في مستودعات الشيفرة المصدرية عن طريق الخطأ. وبمجرد وجودها في سجل git، تظل موجودة حتى بعد حذفها. وتفحص الروبوتات المستودعات العامة خلال ثوانٍ من تنفيذ عملية الدفع.
ما الذي يُودَع؟
الأسرار الشائعة التي تُعثر عليها في المستودعات:
- مفاتيح وصول AWS (
AKIA...) - رموز الوصول الشخصية إلى GitHub
- كلمات مرور قواعد البيانات في ملفات الإعداد
- مفاتيح API الخاصة بـ Stripe أو الدفع
- مفاتيح TLS أو SSH الخاصة
- عناوين URL لخطافات Slack
خطافات ما قبل الإيداع للوقاية
امنع وصول الأسرار إلى git منذ البداية:
# Install gitleaks as a pre-commit hook:
pip install pre-commit
# .pre-commit-config.yaml:
repos:
- repo: https://github.com/zricethezav/gitleaks
rev: v8.18.1
hooks:
- id: gitleaksفحص المستودعات الحالية
افحص المستودعات الحالية بحثًا عن الأسرار:
# gitleaks: scan entire git history
gitleaks detect --source . --log-opts="--all"
# truffleHog: high-entropy string + regex detection
trufflehog git file://.
# GitHub secret scanning (automatic for public repos)
# Alerts under Security → Secret scanning alertsفحص الأسرار في GitHub
يفحص GitHub المستودعات العامة تلقائيًا بحثًا عن أنماط الأسرار المعروفة (مثل مفاتيح AWS ورموز GitHub)، ثم يخطر الجهة المصدرة. وبالنسبة إلى المستودعات الخاصة، يوسّع GitHub Advanced Security هذه الإمكانية. وتلغي جهات الإصدار، مثل AWS، المفاتيح تلقائيًا عند اكتشافها.
حل .gitignore (وحدوده)
تمنع إضافة .env إلى .gitignore عمليات الإيداع غير المقصودة. لكن المطورين قد يودعون الأسرار في ملفات أخرى، كما أن .gitignore لا يفيد إذا كان الملف قد أُودع مسبقًا. ولتطبيق دفاع متعدد الطبقات، استخدم gitignore وخطافات ما قبل الإيداع والفحص في CI.
استخدام متغيرات البيئة
يجب ألا تظهر الأسرار في الشيفرة مطلقًا. استخدم متغيرات البيئة التي تُحمّل أثناء وقت التشغيل:
# Python:
import os
api_key = os.environ["API_KEY"]
# Node.js with dotenv (for local dev only):
require("dotenv").config()
const apiKey = process.env.API_KEY
# Never commit .env to gitمديرو الأسرار
ينبغي أن تستخدم تطبيقات الإنتاج مديري أسرار مخصصين:
- AWS Secrets Manager — تدوير تلقائي وتحكم في الوصول باستخدام IAM
- HashiCorp Vault — مفتوح المصدر ومؤسسي ويدعم العديد من الأنظمة الخلفية
- Azure Key Vault / GCP Secret Manager
لا توجد الأسرار مطلقًا في الشيفرة أو في متغيرات البيئة المخزنة على القرص.
تدوير الأسرار المخترقة
إذا انكشف سر:
- ألغِ السر فورًا (قبل التحقيق)
- تحقق من سجلات الوصول بحثًا عن استخدام غير مصرح به
- أنشئ سرًا جديدًا
- حدّث جميع الأنظمة التي تستخدم السر القديم
- أزله من سجل git باستخدام
git-filter-repoأو BFG Repo Cleaner
إزالة الأسرار من سجل Git
بعد إلغاء السر، أزله من السجل:
# BFG Repo Cleaner (faster than filter-branch):
java -jar bfg.jar --delete-files .env repo.git
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push --force
# Note: force push rewrites history - coordinate with teamالأسرار في مسارات CI/CD
تمتلك أنظمة CI/CD آلياتها الخاصة لإدارة الأسرار:
- GitHub Actions: تُخزّن الأسرار في إعدادات المستودع أو المؤسسة → ويُوصَل إليها باستخدام
${{ secrets.API_KEY }} - GitLab CI: متغيرات CI/CD
- Jenkins: إضافة Credentials
أخفِ الأسرار في السجلات. لا تطبعها مطلقًا في مخرجات التصحيح.
تحقق سريع: فحص الأسرار
ما خط الدفاع الأول الأكثر فعالية لمنع دخول الأسرار إلى المستودع؟
مراجعة الدرس
تمثل الأسرار المضمّنة في git خطرًا بالغًا، إذ تفحص الروبوتات المستودعات العامة خلال ثوانٍ. للوقاية، استخدم خطافات ما قبل الإيداع (gitleaks) وgitignore. وللاكتشاف، استخدم truffleHog وفحص الأسرار في GitHub. خزّن الأسرار في متغيرات البيئة أو في مديري أسرار مخصصين (Vault وAWS Secrets Manager). ألغِ الأسرار فورًا عند انكشافها، وأزلها من سجل git باستخدام BFG Repo Cleaner.
الأسئلة الشائعة
هل درس «فحص الأسرار وبيانات الاعتماد المضمّنة» مجاني؟
نعم — نص درس «فحص الأسرار وبيانات الاعتماد المضمّنة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
ماذا ستتعلم في «فحص الأسرار وبيانات الاعتماد المضمّنة»؟
امنع تضمين مفاتيح API وكلمات المرور في المستودع باستخدام git-secrets وgitleaks وخطافات pre-commit تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟
لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «فحص الأسرار وبيانات الاعتماد المضمّنة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟
نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- SAST وDAST في مسارات CI/CD
- تحليل تكوين البرمجيات (SCA)
- فحص الأسرار وبيانات الاعتماد المضمّنة
- أبطال الأمن ونمذجة التهديدات