كيف كشفت كل الـ “Oops Commits” على GitHub عن secrets المسرَّبة
مسح شامل للكوميتات المحذوفة (force-push) + أداة مفتوحة المصدر تساعد
الكاتب يتحدث عن مشروع بحثي قام به Sharon Brizinov بالتعاون مع Truffle Security، هدفه لفحص كل ال commits المحذوفة (force-push / “Oops Commits”) من Github منذ 2020، علشان يكتشف أسرار مسرّبة (مثل مفاتيح API، tokens، بيانات حساسة).
أهم التحديثات والنقاط الرئيسية:
ما معنى حذف ال commits فعليًا على GitHub
حتى لو عملت force-push وأزلت ال commit من الفرع، GitHub بيحتفظ بال commit دا في الـ archives، وبيظهر من خلال أحداث بلاش “commits” في GitHub events، زي PushEvents اللي عدد ال commits فيها صفر.
ال commit المحذوف ممكن يكون ماعُدش ظاهر في الفرع، لكن لو عندك الـ commit hash تقدر توصّله.
استخدام Github Event API وGH Archive
استخدم Writer الـ GitHub Event API للحصول على PushEvents ومعاها GH Archive اللي بيخزن نشاط GitHub العام بما في ذلك الأحداث القديمة.
من خلال مراقبة PushEvents اللي “zero-commit” يقدر تكتشف ال commits اللي تم حذفها بواسطة force-push.
هجرة تلقائية وبناء أداة مفتوحة المصدر
الأداة الجديدة اسمها Force Push Scanner، مفتوحة المصدر، بتخلي أي GitHub organization أو مستخدم يمسح الـ GH Archive الخاص بيه علشان يكتشف ال commits المحذوفة ويبحث فيها عن أسرار باستخدام TruffleHog.
الأداة بتعالج ال commits اللي مش مرجعة (dangling commits) فقط، مش كل ال commits القديمة أو اللي موجودة في أي فرع رسمي.
النتائج اللي لقيها البحث
تم العثور على آلاف أسرار فعّالة، بعضها قديم لكنه ماكنش مرفوض أو ملوّش revoked.
الأمثلة تشمل مفاتيح AWS، GitHub PAT tokens، وبيانات في .env files، وكمان ملفات إعدادات (config, server.js, app.js وغيرها).
حالة دراسية خطيرة: تم اكتشاف GitHub PAT يخص مطور وكان عنده صلاحيات ADMIN على كل repos مشروع Istio، الأمر اللي ممكن يستغل في هجوم كبير على سلسلة التوريد. وتمّ الإبلاغ ورُفعت صلاحية الـ token.
الدروس والتوصيات
مجرد حذف ال commit مش أمان كفاية — أي سر تم الالتزام به في Git يجب اعتباره معرض للخطر Revocation لازم فورًا.
أدوات المسح والكشف التلقائي ضرورية، خصوصًا للمنظمات الكبيرة، عشان تقدر تكتشف الأسرار القديمة المخفية.
المنصات التي تساعد في فلترة النتائج (أي المراجعة البشرية + أدوات مساعدة مثل الفلاتر وواجهات عرض مختصرة) بتوفّر وقت ومجهود كبير.
المقال كامل هنا: