كشفت دراسة جديدة أن جيتهاب قد يمنح شارة التحقق لالتزامات Git تحمل المحتوى نفسه لكن بهاش مختلف، ما يثير تساؤلات حول موثوقية التتبع والحظر.
ما هي ثغرة جيتهاب في الالتزامات الموثقة؟
المشكلة لا تسمح بتغيير الشيفرة الموقعة أو تمرير كود مختلف على أنه سليم. لكن الباحث أوضح أنه يمكن إنشاء نسخة ثانية من الالتزام نفسه مع هاش جديد، مع بقاء التوقيع صالحاً وظهور حالة Verified داخل GitHub.
هذا يعني أن المراجع الذي يفحص الملفات واسم المؤلف والتاريخ سيجدها متطابقة، بينما يختلف معرف الالتزام فقط. وهنا تظهر الخطورة لأن كثيراً من الأنظمة تتعامل مع الهاش الموثق باعتباره بصمة فريدة ونهائية.
لماذا يهم هذا المطورين؟
- يمكن تجاوز قوائم الحظر المبنية على هاش التزام واحد.
- قد تتأثر سجلات التتبع وعمليات deduplication.
- تتعرض سلاسل الإمداد البرمجي لالتباس في إثبات المصدر.
- قد تحصل النسخ المكررة على شارة Verified رغم اختلاف الهاش.
كيف يمكن إعادة توليد هاش جديد دون كسر التوقيع؟
تعتمد الفكرة على ما يعرف بقابلية التلاعب بالتوقيع الرقمي. فهاش الالتزام في Git يُحسب اعتماداً على كل البيانات داخله، بما في ذلك البايتات الخام الخاصة بالتوقيع الموجود في الترويسة.
إذا أمكن إعادة ترميز التوقيع بصيغة مختلفة لكنها لا تزال صالحة رياضياً، فسيتغير الهاش من دون تعديل أي سطر برمجي. ووفقاً لما رصدته تيكبامين، فإن هذا السلوك يفتح باباً لمشكلة تتعلق بطريقة التحقق لا بمحتوى الكود نفسه.
المسارات التي شملها الاختبار
- مخططات GPG التي يدعمها GitHub في التحقق.
- تواقيع S/MIME ضمن سيناريوهات محددة.
- إعادة كتابة سلاسل الالتزامات للحفاظ على الترابط بين الآباء والأبناء.
هل تسمح ثغرة جيتهاب بتمرير كود خبيث؟
الإجابة المختصرة: لا، ليس بشكل مباشر. النسخ المختلفة من الالتزام تحتوي على الملفات نفسها تماماً، لذلك إذا كنت قد ثبّتَّ هاشاً بعينه فإما أن تحصل على المحتوى المتوقع أو تفشل العملية.
لكن الأزمة الحقيقية تظهر عندما تعتمد المؤسسات على جيتهاب وشارة Verified كمرجع نهائي للهوية، خاصة في أدوات الحظر، وسجلات provenance، وأنظمة البناء القابلة لإعادة الإنتاج.
ما المخاطر العملية على المشاريع وسلاسل التوريد؟
إذا جرى حظر التزام ضار عبر هاش محدد فقط، فقد يتم دفع النسخة نفسها تحت هاش جديد لم يسبق رصده. كذلك يمكن لمرآة مخترقة أو غير موثوقة أن تقدّم التزامات موقعة بشكل صحيح لكن بهاشات تختلف عن النسخة الأساسية للمشروع.
- التأثير لا يقتصر على مستودع واحد بل قد يمتد إلى الأدوات المرتبطة به.
- أي نظام يربط الثقة بالهاش وحده قد يحتاج إلى مراجعة.
- الالتزامات اللاحقة في السلسلة قد تتغير هاشاتها أيضاً عند إعادة الكتابة.
ما الحل المتوقع من جيتهاب؟
لا توجد خطوات مطلوبة من أصحاب المستودعات حالياً داخل مشاريعهم، كما لم يصدر تصنيف CVE لهذه الحالة حتى الآن. الإصلاح المنطقي يجب أن يكون على مستوى المنصة نفسها، عبر تطبيع التوقيع قبل التحقق وإعادة تقييم معنى Verified.
وترى تيكبامين أن على الفرق الأمنية عدم الاكتفاء بهاش الالتزام الموثق كمعرّف وحيد، إلى أن يعالج جيتهاب هذه الفجوة بطريقة تمنع تكرار الهاشات الموثقة بصيغ متعددة.