تنفيذ تنبيهات GitHub Dependabot وتحديثات الأمان

مكتمل

يوفر GitHub Dependabot إدارة تبعية تلقائية مدمجة مباشرة في مستودعات GitHub. يراقب Dependabot التبعيات بحثا عن الثغرات الأمنية والإصدارات القديمة، وينبه مشرفي المستودعات وينشئ طلبات السحب تلقائيا لتحديث التبعيات الضعيفة أو القديمة. يجعل هذا التكامل أمان التبعية في متناول جميع مستخدمي GitHub دون الحاجة إلى أدوات منفصلة.

فهم GitHub Dependabot

يتكون GitHub Dependabot من ثلاث ميزات رئيسية تعمل معا لتأمين التبعيات:

تنبيهات Dependabot

تقوم تنبيهات Dependabot بإخطار مشرفي المستودع عند اكتشاف التبعيات المعرضة للخطر. يراقب GitHub باستمرار قاعدة بيانات GitHub الاستشارية ومصادر الثغرات الأمنية الأخرى ، ويقارنها بالتبعيات المستخدمة في المستودعات.

مشغلات التنبيه:

  • الإفصاحات الجديدة عن الثغرات الأمنية: يتم إنشاء التنبيهات عند إضافة ثغرات أمنية جديدة إلى قاعدة بيانات GitHub الاستشارية.
  • التحديثات الاستشارية: يتم تحديث التنبيهات الموجودة عند تغيير معلومات الثغرات الأمنية (الخطورة، الإصدارات المتأثرة، التصحيحات).
  • تغييرات الرسم البياني للتبعية: يتم إنشاء تنبيهات جديدة عندما تؤدي تغييرات التعليمات البرمجية إلى اتباع ضعيفة.
  • إصلاح بيانات الثغرات الأمنية: تكمل معلومات الثغرات الأمنية الإضافية من Mend (WhiteSource سابقا) قاعدة بيانات GitHub الاستشارية.

تتضمن معلومات التنبيه ما يلي:

  • وصف الثغرات الأمنية: شرح مفصل لمشكلة الأمان.
  • مستوى الخطورة: درجة CVSS وتصنيف الخطورة (حرجة ، عالية ، متوسطة ، منخفضة).
  • الإصدارات المتأثرة: ما هي إصدارات التبعية التي تحتوي على الثغرة الأمنية.
  • الإصدارات المصححة: ما هي الإصدارات التي تعمل على إصلاح الثغرة الأمنية.
  • معرف CVE: معرف الثغرات الأمنية والتعرضات الشائعة (CVE) عند توفرها.
  • تصنيف CWE: نوع تعداد نقاط الضعف الشائعة (CWE) الذي يصنف الثغرة الأمنية.
  • رابط استشارات أمان GitHub: رابط إلى الاستشارة الكاملة مع تفاصيل إضافية.

تحديثات أمان Dependabot

تقوم تحديثات أمان Dependabot تلقائيا بإنشاء طلبات سحب لتحديث التبعيات الضعيفة لتأمين الإصدارات. عندما تكتشف تنبيهات Dependabot الثغرات الأمنية مع التصحيحات المتاحة، يمكن لتحديثات الأمان إنشاء طلبات سحب لإصلاح الثغرات الأمنية تلقائيا.

إنشاء طلب السحب التلقائي:

  • الثغرات الأمنية الناجمة عن الثغرات الأمنية: تنشئ تحديثات الأمان طلبات سحب فقط عند اكتشاف الثغرات الأمنية، وليس لكل تحديث تبعية.
  • الحد الأدنى من مطبات الإصدار: سحب طلبات التبعيات إلى الحد الأدنى من الإصدار الذي يحل الثغرة الأمنية مع الحفاظ على التوافق.
  • درجات التوافق: يحسب GitHub درجات التوافق للتنبؤ بما إذا كانت التحديثات ستعطل الوظائف الحالية.
  • ملاحظات الإصدار: تتضمن طلبات السحب ملاحظات الإصدار ومعلومات سجل التغيير من التبعيات المحدثة.

ميزات طلب السحب:

  • الاختبار الآلي: تؤدي طلبات السحب إلى تشغيل مسارات CI/CD الحالية للتحقق من أن التحديثات لا تعطل الوظائف.
  • حل الثغرات الأمنية: توضح أوصاف طلب السحب الثغرات الأمنية التي يتم حلها بواسطة التحديث.
  • تحديث الأوامر: تسمح التعليقات الخاصة للمشرفين بالتحكم في توقيت الدمج أو إعادة تأسيس طلبات السحب أو تجاهل تحديثات معينة.
  • التحديثات المجمعة: يمكن تحديث العديد من التبعيات الضعيفة في طلب سحب واحد عند الاقتضاء.

تحديثات إصدار Dependabot

تحافظ تحديثات إصدار Dependabot على تحديث التبعيات حتى في حالة عدم وجود ثغرات أمنية. على عكس تحديثات الأمان التي تقوم فقط بتحديث التبعيات المعرضة للخطر، تقوم تحديثات الإصدار بتحديث التبعيات بشكل استباقي إلى أحدث الإصدارات استنادا إلى الجداول الزمنية التي تم تكوينها.

التحديثات المجدولة:

  • تردد قابل للتكوين: يمكن جدولة التحديثات يوميا أو أسبوعيا أو شهريا.
  • تحديث الاستراتيجيات: قم بتكوين ما إذا كنت تريد تحديث جميع التبعيات أو التبعيات المباشرة فقط أو مجموعات تبعية محددة.
  • قيود الإصدار: احترام قيود تعيين الإصدار الدلالي المحددة في ملفات البيان.
  • حدود طلب السحب: تحكم في عدد طلبات السحب المفتوحة التي ينشئها Dependabot لتجنب إرباك المشرفين.

تمكين تنبيهات Dependabot

يتم تمكين تنبيهات Dependabot افتراضيا للمستودعات العامة ولكن يجب تمكينها يدويا للمستودعات الخاصة.

تمكين التنبيهات لمستودع

ملاحة:

  1. انتقل إلى المستودع على GitHub.
  2. انقر فوق الإعدادات في قائمة المستودع.
  3. انقر فوق الأمان والتحليل في الشريط الجانبي الأيسر.
  4. حدد موقع قسم تنبيهات Dependabot .
  5. انقر فوق تمكين لتنشيط تنبيهات Dependabot.

متطلبات الرسم البياني للتبعية: تتطلب تنبيهات Dependabot تمكين الرسم البياني للتبعية. يتم تمكين الرسم البياني للتبعية تلقائيا للمستودعات العامة ولكن قد يحتاج إلى تنشيط يدوي للمستودعات الخاصة.

تمكين الرسم البياني للتبعية:

  1. في الإعدادات → الأمان والتحليل، حدد الرسم البياني للتبعية.
  2. انقر فوق تمكين إذا لم يكن الرسم البياني للتبعية نشطا بالفعل.
  3. سيبدأ GitHub في تحليل تبعيات المستودع لإنشاء الرسم البياني للتبعية.

التمكين على مستوى المؤسسة

يمكن لمسؤولي المؤسسة تمكين تنبيهات Dependabot عبر جميع المستودعات:

إعدادات المؤسسة:

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

النظم البيئية للحزمة المدعومة

تدعم تنبيهات Dependabot العديد من النظم البيئية للحزم بما في ذلك:

النظم البيئية المدعومة:

  • جافا سكريبت: npm (package.json، package-lock.json) ، غزل (yarn.lock).
  • بايثون: نقطة (requirements.txt، Pipfile ، Pipfile.lock) ، شعر (poetry.lock).
  • ياقوت: Bundler (Gemfile ، Gemfile.lock).
  • جاوة: Maven (pom.xml) ، Gradle (build.gradle ، build.gradle.kts).
  • .صافي: NuGet (* .csproj ، packages.config، paket.dependencies).
  • ذهب: اذهب وحدات (go.mod ، go.sum).
  • بي إتش بي: ملحن (composer.json، composer.lock).
  • صدأ: البضائع (Cargo.toml ، Cargo.lock).
  • اكسير: مزيج (mix.exs ، mix.lock).
  • Dart / Flutter: حانة (pubspec.yaml ، pubspec.lock).
  • دوكر: Dockerfiles (مراجع الصورة الأساسية).
  • إجراءات GitHub: ملفات سير العمل (إصدارات الإجراءات).
  • تيرافورم: تكوين Terraform (إصدارات الوحدة).

تكوين تحديثات أمان Dependabot

تتطلب تحديثات أمان Dependabot تمكينا صريحا حتى عند تمكين التنبيهات.

تمكين تحديثات الأمان

تكوين المستودع:

  1. انتقل إلى الإعدادات → الأمان والتحليل.
  2. حدد تحديثات أمان Dependabot.
  3. انقر فوق تمكين لتنشيط طلبات سحب تحديث الأمان التلقائي.
  4. سيبدأ Dependabot في مراقبة التبعيات الضعيفة وإنشاء طلبات السحب عند توفر التصحيحات.

التكوين على مستوى المؤسسة:

  1. انتقل إلى إعدادات المؤسسة → الأمان والتحليل.
  2. انقر فوق تمكين الكل بجوار تحديثات أمان Dependabot.
  3. حدد تمكين تلقائيا للمستودعات الجديدة لتمكينها للمستودعات المستقبلية.

سلوك تحديث الأمان

إنشاء طلب السحب التلقائي:

  • اكتشاف الثغرات الأمنية: عندما تكتشف تنبيهات Dependabot تبعية ضعيفة باستخدام تصحيح متوفر، تقوم تحديثات الأمان بإنشاء طلب سحب.
  • الحد الأدنى من التحديثات: يتم تحديث طلبات السحب فقط إلى الحد الأدنى من الإصدار الذي يحل الثغرة الأمنية.
  • الإصدار الدلالي: تحترم التحديثات الإصدار الدلالي، وتفضل تحديثات التصحيح على التحديثات الثانوية أو الرئيسية عندما يكون ذلك ممكنا.
  • اختبار التكامل: تؤدي طلبات السحب إلى تشغيل فحوصات CI/CD الحالية للتحقق من صحة التحديثات.

درجات التوافق: يحسب GitHub درجات التوافق التي تشير إلى احتمالية أن تؤدي التحديثات إلى تعطيل الوظائف الحالية:

  • توافق عالي: من المحتمل أن يكون التحديث آمنا بناء على تحليل المستودعات المماثلة.
  • التوافق المتوسط: قد يؤدي التحديث إلى إجراء تغييرات عاجلة تتطلب مراجعة.
  • توافق منخفض: من المحتمل أن يتضمن التحديث تغييرات عاجلة تتطلب تعديلات على التعليمات البرمجية.
  • توافق غير معروف: بيانات غير كافية لتقييم التوافق.

إدارة طلب السحب:

  • إعادة التأسيس التلقائي: يقوم Dependabot تلقائيا بإعادة تأسيس طلبات السحب عندما يتغير الفرع الأساسي.
  • حل النزاعات: يتم إغلاق طلبات السحب إذا كانت التعارضات تمنع إعادة التأسيس التلقائي.
  • استبدال التحديثات: تحل طلبات السحب الجديدة محل طلبات السحب القديمة عند إصدار الإصدارات الأحدث.
  • التحديثات المجدولة: يتم إنشاء طلبات السحب وفقا للجداول الزمنية التي تم تكوينها لتجنب إرباك المشرفين.

تكوين تحديثات إصدار Dependabot

تتطلب تحديثات الإصدار ملف تكوين يحدد جداول التحديث وسلوكه.

إنشاء تكوين dependabot.yml

يتم تكوين تحديثات الإصدار باستخدام .github/dependabot.yml ملف في المستودع:

التكوين الأساسي:

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    open-pull-requests-limit: 10

خيارات التكوين:

  • الإصدار: إصدار مخطط ملف التكوين (دائما 2).
  • مستجدات: مجموعة من تكوينات التحديث لأنظمة الحزمة البيئية المختلفة.
  • حزمة النظام البيئي: مدير الحزم للمراقبة (npm ، pip ، bundler ، maven ، nuget ، إلخ).
  • دليل: موقع ملفات بيان الحزمة (/ للجذر أو مسار الدليل الفرعي).
  • schedule.interval: تكرار التحديث (يوميا ، أسبوعيا ، شهريا).
  • فتح سحب الطلبات-الحد: الحد الأقصى لعدد طلبات السحب المفتوحة التي ينشئها Dependabot (الافتراضي 5).

مثال على التكوين المتقدم:

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      day: "monday"
      time: "08:00"
      timezone: "America/New_York"
    open-pull-requests-limit: 10
    reviewers:
      - "team/frontend-developers"
    assignees:
      - "dependency-manager"
    labels:
      - "dependencies"
      - "npm"
    commit-message:
      prefix: "npm"
      include: "scope"
    ignore:
      - dependency-name: "lodash"
        versions: ["4.x"]
    allow:
      - dependency-type: "production"

خيارات متقدمة:

  • جدول اليوم: يوم من الأسبوع للتحديثات الأسبوعية (من الاثنين إلى الأحد).
  • time.time: الوقت من اليوم للتحديثات (تنسيق 24 ساعة).
  • schedule.timezone: المنطقة الزمنية للجدول الزمني (معرف المنطقة الزمنية لوظائف IANA).
  • المراجعين: طلب مستخدمو GitHub أو الفرق تلقائيا مراجعات طلب السحب.
  • المتنازل لهم: يتم تعيين مستخدمي GitHub تلقائيا لسحب الطلبات.
  • تسميات: يتم تطبيق التسميات تلقائيا على طلبات السحب.
  • commit-message.prefix: بادئة لرسائل الالتزام (مفيدة للالتزامات التقليدية).
  • تجاهل: التبعيات التي يجب تجاهلها، اختياريا مع نطاقات إصدارات محددة.
  • جوز: أنواع التبعية المراد تحديثها (الإنتاج ، التطوير ، الكل).

أنظمة بيئية متعددة للحزم

تتطلب المستودعات التي تستخدم أنظمة بيئية متعددة اللغات تكوينات تحديث منفصلة:

تكوين متعدد النظم البيئية:

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/frontend"
    schedule:
      interval: "weekly"

  - package-ecosystem: "pip"
    directory: "/backend"
    schedule:
      interval: "weekly"

  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"

  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "monthly"

يراقب هذا التكوين تبعيات npm في /frontend، وتبعيات Python في /backend، وصور Docker الأساسية في جميع أنحاء المستودع ، وإصدارات GitHub Actions في مهام سير العمل.

إدارة طلبات سحب Dependabot

تدعم طلبات سحب Dependabot أوامر خاصة لإدارة التحديثات.

أوامر طلب السحب

أوامر التعليق:

  • @dependabot rebase أعد تأسيس طلب السحب مقابل الفرع الأساسي الحالي.:
  • @dependabot recreate أعد إنشاء طلب السحب، مع الكتابة فوق أي تعديلات يدوية.:
  • @dependabot merge دمج طلب السحب بمجرد مرور التحقق من CI.:
  • @dependabot squash and merge يلتزم الاسكواش ويدمج بمجرد تمرير الشيكات.:
  • @dependabot cancel merge إلغاء دمج مطلوب مسبقا.:
  • @dependabot reopen أعد فتح طلب سحب مغلق.:
  • @dependabot close أغلق طلب السحب ومنع Dependabot من إعادة إنشائه.:
  • @dependabot ignore this major version أغلق طلب السحب وتجاهل التحديثات المستقبلية لهذا الإصدار الرئيسي.:
  • @dependabot ignore this minor version أغلق طلب السحب وتجاهل التحديثات المستقبلية لهذا الإصدار الثانوية.:
  • @dependabot ignore this dependency أغلق طلب السحب وتجاهل جميع التحديثات المستقبلية لهذه التبعية.:

مراجعة التحديثات ودمجها

عملية المراجعة:

  1. فحص وصف طلب السحب: فهم الثغرة الأمنية التي تم حلها أو الإصدار الذي تم تحديثه.
  2. تقييم نقاط التوافق: تقييم احتمالية حدوث تغييرات.
  3. تحقق من نتائج CI / CD: تحقق من اجتياز الاختبارات التلقائية بنجاح.
  4. مراجعة ملاحظات الإصدار: فهم التغييرات المضمنة في تحديث التبعية.
  5. اختبر محليا إذا لزم الأمر: بالنسبة للتحديثات الرئيسية، اختبر الوظائف محليا قبل الدمج.
  6. دمج طلب السحب: الموافقة على طلب السحب ودمجه لتحديث التبعية.

الدمج التلقائي: للحصول على تحديثات منخفضة المخاطر مع درجات توافق عالية واجتياز الاختبارات، ضع في اعتبارك تكوين الدمج التلقائي:

الدمج التلقائي لإجراءات GitHub:

name: Auto-merge Dependabot PRs
on: pull_request

jobs:
  auto-merge:
    runs-on: ubuntu-latest
    if: github.actor == 'dependabot[bot]'
    steps:
      - name: Enable auto-merge
        run: gh pr merge --auto --squash "$PR_URL"
        env:
          PR_URL: ${{ github.event.pull_request.html_url }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

يتيح سير العمل هذا تلقائيا الدمج التلقائي لطلبات سحب Dependabot التي تجتاز جميع الفحوصات المطلوبة.

تنبيهات وإشعارات Dependabot

يوفر Dependabot آليات إعلام متعددة لتنبيهات الثغرات الأمنية.

قنوات الإشعارات

إشعارات الويب:

  • إشعارات GitHub: تظهر التنبيهات في البريد الوارد لإشعارات GitHub.
  • علامة تبويب الأمان: تكون التنبيهات مرئية في علامة التبويب أمان المستودع ضمن تنبيهات Dependabot.
  • رؤى المستودع: يعرض الرسم البياني للتبعية في علامة التبويب Insights التبعيات المعرضة للخطر.

إشعارات البريد الإلكتروني:

  • استيعاب رسائل البريد الإلكتروني: رسائل بريد إلكتروني موجزة أسبوعية تسرد التنبيهات الجديدة.
  • رسائل البريد الإلكتروني في الوقت الفعلي: رسائل بريد إلكتروني فورية للثغرات الأمنية الحرجة.
  • إشعارات المنظمة: يتلقى مسؤولو المؤسسة إشعارات لجميع المستودعات.

الإشعارات المخصصة:

  • خطافات الويب: تكوين خطافات الويب لتلقي إشعارات التنبيه في الأنظمة الخارجية.
  • واجهة برمجة تطبيقات GitHub: استعلام عن واجهة برمجة تطبيقات تنبيهات Dependabot لاسترداد معلومات التنبيه برمجيا.
  • عمليات التكامل الأمنية: يمكن أن تتكامل منصات الأمان التابعة لجهات خارجية مع تنبيهات Dependabot عبر واجهة برمجة التطبيقات.

تكوين تفضيلات الإشعارات

إعدادات إشعارات المستخدم:

  1. انتقل إلى إعدادات GitHub → الإشعارات.
  2. حدد قسم تنبيهات الأمان .
  3. تكوين تفضيلات الإشعارات:
    • المشاركه: تلقي إشعارات بالمستودعات التي تشاهدها أو تشارك فيها.
    • مشاهده: تلقي إشعارات لجميع المستودعات التي تمت مراقبتها.
    • البريد الإلكتروني: قم بتمكين إشعارات البريد الإلكتروني لتنبيهات الأمان.
    • نسيج: قم بتمكين إعلامات الويب في GitHub UI.

إعدادات إشعارات المؤسسة:

  1. انتقل إلى إعدادات المؤسسة → الأمان والتحليل.
  2. قم بتكوين من يتلقى إشعارات تنبيه الأمان:
    • أصحاب المنظمة: تلقي جميع تنبيهات الأمان تلقائيا.
    • مديرو الأمن: يتلقى فريق الأمن المعين تنبيهات.
    • مسؤولو المستودعات: يتلقى كل مسؤول مستودع تنبيهات لمستودعاته.

مراجعة تنبيهات Dependabot

توفر علامة التبويب الأمان إدارة شاملة للتنبيه.

تفاصيل التنبيه

انتقل إلى التنبيهات:

  1. افتح المستودع على GitHub.
  2. انقر فوق علامة التبويب الأمان .
  3. انقر فوق تنبيهات Dependabot في الشريط الجانبي الأيمن.
  4. راجع قائمة التنبيهات النشطة.

معلومات التنبيه:

  • شده: تصنيف الخطورة الحرجة أو العالية أو المتوسطة أو المنخفضة.
  • حزمة: اسم التبعية المتأثرة وإصدارها.
  • الضعف: معرف CVE ووصفه.
  • الإصدارات المصححة: الإصدارات التي تحل الثغرة الأمنية.
  • مسارات التعليمات البرمجية المعرضة للخطر: ما إذا كان الرمز الضعيف مستخدما بالفعل (إذا كان تحليل إمكانية الوصول متاحا).
  • الإصلاح التلقائي المتاح: ما إذا كان بإمكان Dependabot إنشاء طلب سحب تلقائيا لإصلاح الثغرة الأمنية.

إدارة التنبيهات

إجراءات التنبيه:

  • مراجعة طلب السحب: في حالة وجود تحديث أمان تلقائي، راجع طلب السحب ودمجه.
  • رفض التنبيه: رفض الإيجابيات الخاطئة أو المخاطر المقبولة بسبب الفصل.
  • تنبيه الغفوة: استبعاد التنبيهات التي لا يمكن معالجتها على الفور مؤقتا.
  • إعادة فتح التنبيه: أعد فتح التنبيهات التي تم رفضها مسبقا إذا تغيرت الظروف.

أسباب الفصل:

  • بدأ الإصلاح: يعمل الفريق بنشاط على المعالجة.
  • لا يوجد عرض النطاق الترددي: يتم الاعتراف بالمشكلة ولكن لا يمكن معالجتها حاليا.
  • مخاطر مقبولة: لا تشكل الثغرة الأمنية خطرا كبيرا في هذا السياق.
  • دقيق: التنبيه إيجابي خاطئ.

تكامل الأمان المتقدم في GitHub

يعد GitHub Dependabot مكونا أساسيا في GitHub Advanced Security ، وهو نظام أساسي أمني شامل ل GitHub يوفر ميزات أمان على مستوى المؤسسات لحماية سلسلة توريد البرامج الخاصة بك.

ميزات الأمان المتقدمة

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

  • فحص التبعية: يقوم Dependabot تلقائيا بفحص التبعيات بحثا عن الثغرات الأمنية المعروفة باستخدام قاعدة بيانات GitHub الاستشارية وقواعد بيانات الثغرات الأمنية في الصناعة.
  • المسح السري: يكتشف الأسرار والرموز المميزة وبيانات الاعتماد المرتكبة عن طريق الخطأ في رمز المستودع والمحفوظات.
  • مسح الكود: يستخدم CodeQL ومحركات التحليل الأخرى للعثور على الثغرات الأمنية وأخطاء الترميز في التعليمات البرمجية المصدر.
  • نظرة عامة على الأمان: يوفر رؤية على مستوى المؤسسة لتنبيهات الأمان والثغرات الأمنية وحالة المعالجة.
  • أمن سلسلة التوريد: الرسم البياني للتبعية ومراجعة التبعية وإنشاء SBOM لرؤية شاملة لسلسلة التوريد.

الترخيص والتوافر

الوصول الأمني المتقدم:

  • المستودعات العامة: تتوفر جميع ميزات GitHub Advanced Security مجانا في المستودعات العامة.
  • المستودعات الخاصة: يتطلب ترخيص GitHub Advanced Security (مضمن في GitHub Enterprise Cloud وGitHub Enterprise Server).
  • GitHub مجاني / فريق: تتوفر تنبيهات Dependabot وتحديثات الأمان، ولكن فحص التعليمات البرمجية والفحص السري يتطلبان ترخيص أمان متقدم.

لوحة معلومات نظرة عامة على الأمان

توفر نظرة عامة على الأمان رؤية على مستوى المؤسسة:

مقاييس أمان المؤسسة:

  • اتجاهات التنبيه: عرض اتجاهات تنبيه الأمان عبر جميع المستودعات بمرور الوقت.
  • تقييم المخاطر: تحديد المستودعات ذات المخاطر الأمنية الأعلى بناء على التنبيهات الحرجة وعالية الخطورة.
  • تغطية الفريق: راقب الفرق التي تم تمكين ميزات الأمان بها وتتبع تقدم المعالجة.
  • تقارير الامتثال: إنشاء تقارير للتوافق الأمني ومتطلبات التدقيق.

نظرة عامة على أمان الوصول:

  1. انتقل إلى مؤسستك على GitHub.
  2. انقر فوق علامة التبويب الأمان .
  3. راجع مقاييس الأمان على مستوى المؤسسة وعدد التنبيهات والاتجاهات.
  4. التعمق في مستودعات محددة أو أنواع تنبيهات للتحقيق التفصيلي.

تمكين الأمان المتقدم

لمالكي المؤسسات:

  1. انتقل إلى إعدادات المؤسسة.
  2. انقر فوق أمان التعليمات البرمجية وتحليلها.
  3. تمكين GitHub Advanced Security للمستودعات الخاصة.
  4. تكوين الإعدادات الافتراضية ل:
    • الرسم البياني للتبعية (ممكن تلقائيا).
    • تنبيهات Dependabot.
    • تحديثات أمان Dependabot.
    • المسح السري.
    • مسح التعليمات البرمجية (يتطلب تكوين سير العمل).

تمكين على مستوى المستودع:

يمكن للمستودعات الفردية تمكين ميزات الأمان المتقدمة أو تعطيلها:

  1. انتقل إلى إعدادات المستودع.
  2. انقر فوق أمان التعليمات البرمجية وتحليلها.
  3. تمكين ميزات الأمان المطلوبة:
    • الرسم البياني للتبعية: مطلوب لوظيفة Dependabot.
    • تنبيهات Dependabot: إشعارات الثغرات الأمنية.
    • تحديثات أمان Dependabot: طلبات السحب التلقائية لإصلاح الثغرات الأمنية.
    • المسح السري: الكشف عن تسرب بيانات الاعتماد.
    • مسح الكود: اختبار أمان التطبيقات الثابتة (SAST).

التكامل مع مهام سير عمل التطوير

يتكامل GitHub Advanced Security بسلاسة مع عمليات التطوير:

تكامل طلب السحب:

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

سياسات الأمان:

  • SECURITY.md: تحديد سياسات الكشف عن الثغرات الأمنية ومعلومات الاتصال الأمنية.
  • مالكو الكود: تعيين أعضاء فريق الأمان كمالكين للتعليمات البرمجية لملفات التبعية (package.json، requirements.txt، pom.xml).
  • حماية الفرع: طلب فحوصات الحالة لعمليات الفحص الأمني قبل السماح بعمليات الدمج.

التدقيق والامتثال:

  • سجل التدقيق: تتبع جميع الإجراءات المتعلقة بالأمان، بما في ذلك رفض التنبيهات وتمكين الميزات وتغييرات الوصول.
  • سياسات الأمان: فرض معايير الأمان على مستوى المؤسسة عبر جميع المستودعات.
  • تكامل الامتثال: تصدير بيانات الأمان ل SOC 2 وISO 27001 وأطر التوافق الأخرى.

يوفر GitHub Advanced Security حماية على مستوى المؤسسة لسلسلة توريد البرامج الخاصة بك ، حيث يعمل Dependabot كأساس لإدارة أمان التبعية. يضمن النهج المتكامل للمنصة اكتشافا شاملا للثغرات الأمنية والمعالجة الآلية والرؤية الأمنية على مستوى المؤسسة.

يوفر GitHub Dependabot إدارة شاملة ومؤتمتة لأمان التبعية مدمجة مباشرة في مهام سير عمل GitHub. من خلال تمكين التنبيهات وتحديثات الأمان وتحديثات الإصدارات، يمكن لفرق التطوير معالجة الثغرات الأمنية بشكل استباقي والحفاظ على تبعيات up-toالتاريخ بأقل جهد يدوي. تستكشف الوحدة التالية كيفية دمج فحوصات تحليل تكوين البرامج في مسارات CI / CD بما يتجاوز إمكانات GitHub المضمنة.