إدارة تنبيهات الأمان في GitHub
يقوم GitHub بتوطيب: توحد جميع نتائج الأمان في تبويب الأمان في مستودعك. يوفر تبويب الأمان لوحة تحكم موحدة لإدارة تنبيهات المسح السري إلى جانب نتائج مسح الشيفرة وثغرات الاعتماد. فهم كيفية التنقل والعمل مع هذه التنبيهات يمكنك من الاستجابة بفعالية لتعريضات بيانات الاعتماد.
الوصول إلى تنبيهات المسح السري
تبويب الأمان في GitHub يعمل كمركز رئيسي لجميع المعلومات الأمنية المتعلقة بمستودعك.
التنقل إلى تنبيهات الأمان
للوصول إلى تنبيهات المسح السري في مستودعك:
- افتح مستودعك على GitHub.com.
- اختر علامة التبويب الأمنية من قائمة التنقل في المستودع.
- اختر المسح السري (أو تنبيهات المسح السري) لعرض جميع الأسرار المكتشفة.
يوفر تبويب الأمان رؤية شاملة لوضع الأمان في مستودعك، مما يسهل تحديد المشكلات وتحديد أولوياتها.
نظرة عامة على الأمان
تعرض نظرة عامة الأمان ما يلي:
- عدد التنبيهات حسب النوع: عدد المسح السري، مسح الكود، وتنبيهات ديبيندابوت.
- حالة الفتح مقابل الحل: القضايا التي تتطلب اهتماما مقابل تلك التي تم معالجتها بالفعل.
- التغييرات الأخيرة: تنبيهات جديدة وتنبيهات تم حلها مؤخرا.
يساعدك هذا العرض الشامل على تقييم حالة أمان المستودع بسرعة وترتيب أولويات جهود الاستجابة.
فهم تنبيهات المسح السري
كل تنبيه مسح سري يوفر معلومات مفصلة عن بيانات الاعتماد المكتشف لمساعدتك في تقييم ومعالجة التعرض.
مكونات التنبيه
عند اختيار تنبيه مسح سري، يعرض GitHub عدة معلومات رئيسية.
النوع السري
فئة الاعتمادات التي تم اكتشافها، مثل:
- "مفتاح حساب تخزين أزور."
- "مفتاح واجهة برمجة التطبيقات (Stripe)."
- "مفتاح الوصول إلى خدمات أمازون ويب (AWS)."
- "رمز الوصول الشخصي إلى GitHub."
- "سلسلة اتصال قاعدة البيانات."
النوع السري يساعدك على فهم أي خدمة متأثرة وما هي إجراءات التناوب الضرورية.
معلومات الموقع
تفاصيل دقيقة عن مكان ظهور السر:
-
مسار الملف: إكمال المسار إلى الملف الذي يحتوي على السر (على سبيل المثال،
src/services/PaymentProcessor.cs). - رقم السطر: الخط الدقيق الذي يقع فيه السر.
- الفرع: الفرع الذي تم اكتشاف السر فيه.
- Commit: التزام محدد قدم السر (يشمل hash commit والمؤلف).
تمكنك هذه المعلومات من تحديد موقع الكود المسبب للمشكلة بسرعة وفهم متى حدث التعرض.
مقتطف الشيفرة
معاينة للشيفرة التي تحتوي على السر، مع تمييز بيانات الاعتماد:
// Example alert code snippet
public class PaymentService
{
// SECRET DETECTED: Stripe API Key
private const string _apiKey = "sk_live_51Abc123XYZ789...";
public async Task ProcessPayment(...)
{
// Payment processing logic
}
}
حالة الصلاحية
بالنسبة للأسرار المصادقة من قبل الشريك، يشير GitHub إلى ما إذا كانت الشهادة هي:
- صحيح: تم تأكيد أن الاعتماد نشط ويعمل بشكل جيد.
- غير صالح: يتم إلغاء الاعتماد أو عدم تفعيله.
- غير معروف: لم يتم تحديد صلاحية القانون.
تساعدك هذه الحالة على إعطاء الأولوية للإصلاح—فالشهادات الصحيحة تتطلب تناوب فوري.
حالات التنبيه
يمكن أن تكون تنبيهات المسح السري في عدة حالات:
- افتح: يتم اكتشاف السر ويتطلب انتباها.
- تم الحل: يتم معالجة السر (تدويره وإزالته من الكود).
- مرفوض: يتم تصنيف التنبيه كخطر إيجابي كاذب أو مقبول.
فهم حالات التنبيه يساعدك على تتبع التقدم في معالجة قضايا الأمان.
تنبيهات التصفية والترتيب
عندما تعمل مع تنبيهات متعددة، تساعدك قدرات التصفية والفرز على التركيز على قضايا محددة.
التصفية حسب النوع السري
تصفية التنبيهات للتركيز على أنواع بيانات اعتماد محددة:
- في عرض تنبيهات المسح السرية، حدد خيارات التصفية .
- اختر نوع السر من قائمة التصفية.
- اختر نوعا أو أكثر من أنواع السر للعرض (على سبيل المثال، "مفتاح الوصول إلى خدمات الويب أمازون (AWS)"، "بيانات اعتماد أزور").
التصفية حسب النوع تساعد عند التحقيق في أنواع محددة من التعرضات أو إجراء معالجة مركزة.
التصفية حسب الحالة
عرض التنبيهات بناء على حالة الحل:
- تنبيهات مفتوحة: أسرار تتطلب تحقيقا ومعالجة.
- التنبيهات المحلولة: أسرار تم اكتشافها سابقا وتمت معالجتها.
- التنبيهات المرفوضة: تم تصنيف التنبيهات كنتائج إيجابية كاذبة.
التصفية حسب الحالة تساعدك على التركيز على القضايا النشطة مع الحفاظ على رؤية الأعمال الأمنية التاريخية.
الفرز والبحث
قم بترتيب قائمة التنبيهات بناء على:
- الأحدث أولا: تم اكتشاف أسرار مؤخرا (افتراضي).
- الأقدم أولا: مشاكل طويلة الأمد قد يتم تجاهلها.
- النوع السري: جمع أنواع الشهادات المتشابهة معا.
استخدم وظيفة البحث للعثور على التنبيهات حسب اسم الملف، المسار، أو نوع السر.
حل تنبيهات المسح السري
بعد إصلاح سر بنجاح، قم بوضع علامة على التنبيه كحل للحفاظ على سجلات أمنية دقيقة.
متطلبات الحل
يجب وضع علامة على التنبيه كتم حله بعد إكمال خطوات المعالجة التالية:
- تم تدوير الاعتماد: تم إلغاء السر المكشوف واستبداله بسر جديد.
- تمت إزالته من الكود: لم يعد السر مشفرا بشكل ثابت في أي من الكوميتس (بما في ذلك سجل Git).
- التخزين الآمن المنفذ: يتم الآن الوصول إلى بيانات الاعتماد عبر متغيرات البيئة أو خدمة إدارة سرية.
- الوظائف المؤكدة: التطبيقات التي تستخدم بيانات الاعتماد المدورة تعمل بشكل صحيح.
مهم
إزالة سر من آخر التزام لا يكفي إذا بقي في تاريخ Git حيث يمكن اكتشافه.
كيفية حل تنبيه
لوضع علامة على التنبيه كحسم:
- انتقل إلى التنبيه المحدد في تبويب الأمان.
- راجع تفاصيل التنبيه للتأكد من اكتمال الإصلاح.
- اختر قائمة تنبيه الإغلاق .
- اختر سبب الحل:
- تم إلغاؤها: تم تدوير الاعتماد ولم يعد صالحا.
- الإيجابي الكاذب: لم يكن الكشف سرا حقيقيا.
- تستخدم في الاختبارات: بيانات اختبار بدلا من اعتماد الإنتاج.
- يمكنك إضافة تعليق يشرح الحل اختياريا.
- أكد الدقة.
تنتقل التنبيهات إلى الحالة المحلولة ولا تظهر في قائمة التنبيهات المفتوحة.
إزالة الأسرار من تاريخ Git
لأن Git يحافظ على التاريخ الكامل، فإن إزالة سر من كودك الحالي لا تلغي الكشف عن المعلومات. لا تزال الشهادة متاحة في التهامات التاريخية.
بالنسبة للالتزامات الحديثة (لم يتم دفعها بعد)
إذا كنت بحاجة لدفع الالتزامات التي تحتوي على السر:
# Amend the most recent commit
git add .
git commit --amend --no-edit
# For older commits, use interactive rebase
git rebase -i HEAD~5 # Adjust number based on commit depth
حدد الالتزامات المشاكل للتحرير، وأزل السر، واستمر في إعادة التنصيب.
للالتزامات التي تم دفعها بالفعل
بالنسبة للالتزامات الموجودة بالفعل في المستودع البعيد، تحتاج إلى إعادة كتابة السجل باستخدام git filter-repo أو أدوات مشابهة:
# Install git-filter-repo if not available
pip install git-filter-repo
# Remove a specific string from all files in history
git filter-repo --replace-text <(echo "sk_live_51Abc123XYZ==>REDACTED")
بعد إعادة كتابة التاريخ، قم بدفع التغييرات بالقوة:
git push --force-with-lease origin main
تحذير
إعادة كتابة التاريخ المدفوع تؤثر على جميع المتعاونين. نسق مع فريقك—سيحتاجون إلى إعادة الاستنساخ أو إعادة ضبط مستودعاتهم المحلية بعناية بعد الدفع بالقوة.
للمخازن العامة
إذا تم الكشف عن سر في مستودع عام:
- قم بتدوير بيانات الاعتماد فورا. افترض أن بيانات الاعتماد مخترقة (المستودعات العامة يتم مسحها باستمرار).
- لمنع اكتشافه مستقبلا في سيناريوهات عالية الأمان، قد تحتاج إلى إزالة السر من تاريخ Git. تحذير: قد تحتوي فوركس والنسخ على السر. إذا تم إعادة كتابة تاريخ Git، يحتاج أعضاء الفريق إلى إعادة استنساخ أو إعادة ضبط مستودعاتهم المحلية.
- راقب الاستخدام غير المصرح به للبيانات القديمة.
العمل مع الإيجابيات الكاذبة
المسح السري يكشف أحيانا عن أنماط ليست أسرارا حقيقية. التعامل الصحيح مع الإيجابيات الكاذبة يحافظ على تركيز قائمة التنبيهات على القضايا الحقيقية.
متى يجب التخلص
تجاهل التنبيهات فقط عندما تكون متأكدا أنها ليست أسرارا حقيقية:
- بيانات الاختبار: أمثلة على بيانات الاعتماد في تركيبات الاختبار التي تم تمييزها بوضوح كمزيفة.
- التوثيق: أمثلة على مقتطفات كود تعرض صيغ بيانات الاعتماد بدون قيم حقيقية.
- تزامن النمط: سلاسل عشوائية تطابق أنماطا سرية لكنها ليست بيانات اعتماد.
تنبيه
كن محافظا في حالات الفصل. إذا كان هناك أي شك في أن النمط المكتشف حقيقي، تعامل معه كسر وقم بتدويره.
كيفية الرفض
لرفض الإيجابية الكاذبة:
- انتقل إلى التنبيه في تبويب الأمان.
- راجع التنبيه بعناية للتأكد من أنه ليس سرا حقيقيا.
- اختر إغلاق التنبيه واختر الإيجابي الكاذب.
- أضف تعليقا مفصلا يشرح لماذا ليس سرا حقيقيا.
- أكد الفصل.
دائما قم بتوثيق حالات الفصل مع مبرر واضح للمراجع المستقبلية وتدقيقات الأمان.
أفضل الممارسات لإدارة التنبيهات
تطبيق هذه الممارسات لإدارة تنبيهات المسح السري بفعالية.
رد بسرعة
عندما يكتشف المسح السري بيانات اعتماد:
- تقييم فوري: راجع التنبيه للتأكد من أنه سر حقيقي.
- تدوير اللعبة بسرعة: قم بإلغاء واستبدال بيانات الاعتماد المكشوفة في أقرب وقت ممكن.
- إزالة من الكود: نفذ التخزين الآمن وإزالة السر المبرمج.
- تحقق من المعالجة: تأكد من أن التطبيقات تعمل بشكل صحيح مع الاعتماد المدوي.
كلما استجبت بسرعة، قلت نافذة الفرصة للوصول غير المصرح به.
حدد الأولويات بناء على المخاطر
ليست كل الأسرار تحمل نفس المخاطر. ركز أولا على:
- بيانات الاعتماد الصالحة: التنبيهات التي تم تمييزها ك "صحيح" تشير إلى الأسرار النشطة والوظيفية.
- أنظمة الإنتاج: الاعتمادات لبيئات الإنتاج خلال التطوير.
- الوصول عالي الامتياز: الاعتمادات الإدارية أو ذات الامتياز المرتفع.
- المستودعات العامة: التعرضات في المستودعات العامة حيث يكون السر متاحا على نطاق واسع.
استخدم التنبيهات كفرص تعلم
عندما يتم اكتشاف الأسرار:
- افهم كيف انتهى السر في الرمز.
- حدد الفجوات في ممارسات التطوير أو الأدوات.
- شارك المعرفة مع فريقك حول إدارة الأسرار الآمنة.
- قم بتحديث القوالب والوثائق لمنع حدوث تعرضات مماثلة.
استخدم GitHub Copilot
يمكن ل GitHub Copilot المساعدة في معالجة التنبيهات بطريقتين:
- وضع السؤال: حلل التنبيهات، وفهم نطاق التعرض، وخطط لاستراتيجيات المعالجة.
- وضع الوكيل: تنفيذ تغييرات في الكود لإزالة الأسرار المبرمجة واستخدام التخزين الآمن.