استعاد باحث أمني زائف مستودع Git قديمًا لمكون إضافي استخدمه المنتدى واستولى عليه ببساطة لعرض هذه الرسالة.
تم فحص المستودع المعني (GitHub - discoursehosting/discourse-migratepassword: لمسة من الأمان) ولا يوجد به أي رمز ضار (إنه مجرد إثبات مفهوم).
في الواقع، قام هذا المستودع بتغيير عنوان URL الخاص به (وهو متاح الآن على GitHub - communiteq/discourse-migratepassword: دعم تجزئات كلمات المرور المهاجرة) وقام المستخدم ببساطة بإعادة إنشاء مستودع discoursehosting/discourse-migratepassword، الذي كان يعيد التوجيه سابقًا إلى communiteq/discourse-migratepassword، لوضع رمز غير ذي صلة هناك. كنا نستخدم عنوان URL القديم، وهذا هو سبب تأثرنا.
إذا كان هذا صحيحًا، حسنًا… لقد قمت بتغيير عنوان URL للمكون الإضافي إلى communiteq وأقوم بإعادة البناء في الوقت الحالي. لكن يجب أن أتعمق في هذا الأمر (نظرًا لأنني لست مبرمجًا، لا يمكنني أن أكون متأكدًا بنسبة 100٪).
هذه ثغرة في جيت هاب ضمن فئة استغلال تسمى “Repojacking”.
نوصي الجميع بالتحقق من عناوين URL الخاصة بإضافات جيت هاب الخاصة بهم وإعادة تسمية كل مثيل من discoursehosting إلى communiteq.
خلفية:
اضطررنا إلى إعادة تسمية شركتنا من Discoursehosting إلى Communiteq في عام 2019.
إذا حدث ذلك، يقوم جيت هاب تلقائيًا بإعادة توجيه عناوين URL إلى مستودعات جيت هاب إلى موقعها الجديد، حتى يقوم شخص ما بإنشاء مستودع بنفس الاسم. في تلك اللحظة، سيحصل المستودع الجديد على الأفضلية.
كان جيت هاب يضع علامة على مثل هذه المستودعات على أنها “متقاعدة” ويمنع إنشاء مستودع بنفس الاسم.
تم وصف استغلال سابق هنا. يبدو أن هذا الإصلاح لم يعد فعالاً.
لقد قدمنا تقرير إساءة استخدام لجيت هاب وسنحاول إزالة هذا المستودع بكل الوسائل المتاحة.
في هذه اللحظة، يعرض المكون الإضافي المخترق رسالة فقط ويترك ملفًا غير ضار في /tmp.
لذلك لم يحدث شيء سيء - حتى الآن. من المهم تغيير عنوان URL للمكون الإضافي الخاص بك قبل إعادة البناء.
---
خطأ: يحتوي ملف التكوين containers/app.yml على إشارات إلى منظمة github مخترقة: github.com/discoursehosting
يرجى إزالة أي إشارات إلى هذه المنظمة من ملف التكوين الخاص بك.
لمزيد من المعلومات، راجع https://meta.discourse.org/t/374703/6
---
أود أن أعتذر بصدق عن الاضطراب الذي سببته أفعالي فيما يتعلق بمستودع الإضافات. في محاولة لتسليط الضوء على مشكلة أمنية، ارتكبت أخطاء جسيمة انتهكت مدونة قواعد السلوك.
في المستقبل، سأضمن التزام أفعالي بممارسات الإفصاح المسؤولة، وأقدر فرصة التعلم من هذا.
الشيء غير المسؤول التالي هو عدم التواصل معي أو مع CDCK بشكل خاص عندما تخليت عن المقبض، لأنه في الساعات الثلاث الماضية، كان بإمكان شخص آخر رؤية منشورك وتسجيله.
هذا لن يوقف مفتاحًا مخترقًا، ولكنه على الأقل سيجعل جزءًا من سلسلة التوريد أكثر موثوقية. في النهاية، لا يزال من الممكن سحب مكتبات طرف ثالث مخترقة. التبعيات الإضافية ليست مرئية حقًا.
لست متأكدًا مما إذا كان هذا لا يزال يعمل. كان لدي مكون إضافي يشير إلى عنوان URL المخترق لـ GitHub، وذكرت رسالة الخطأ أثناء إعادة البناء أنها فشلت في سحب المستودع، مع مزيد من التفاصيل حول إصدار gem أو شيء من هذا القبيل. (لا يمكنني لصق المعلومات الدقيقة لأنها بعيدة جدًا في سجل التمرير الخاص بي بسبب الضوضاء الأخرى أثناء عمليات البناء اللاحقة.)
يبدو أن عنوان URL/المستودع غير موجود على الإطلاق الآن، وهو أمر جيد (على الأقل حتى يقوم شخص آخر بإعادة إنشائه) ولكن رسالة الخطأ كانت ستوفر الكثير من الوقت.