لقد تم اختراقك بواسطة إضافة

لقد أعدت بناء أحد منتديات Discourse الخاصة بي للتو، وعندما أقوم بتحميله في المتصفح، تظهر الرسالة التالية في نافذة منبثقة:

لقد تم اختراقك بواسطة إضافة! بواسطة w3shi(Hackerone)-S.Lakshmi Vignesh(RCE-POC)

يا إلهي… ما الذي يحدث؟ هل تم اختراق إحدى الإضافات التي أستخدمها؟

3 إعجابات

هل هناك أي فرصة أنك استخدمت المكون الإضافي migrate password؟ أو مكون إضافي آخر من مستودع discoursehosting؟

يبدو أن هذا المنتدى تأثر أيضًا Am I hacked? or not - Forum Management - Suggestions - DxO Forum

إعجابَين (2)

نعم، إنها في القائمة. وهي الوحيدة من discoursehosting.

أتذكر أنها تحتاج إلى أن تكون نشطة للسماح للمستخدمين “القدامى” بتسجيل الدخول، صحيح؟

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

بالإضافة إلى هذه الإضافة، إليك قائمة بما أستخدمه:

فقط قم بإزالة أي شيء يشير إلى discoursehosting

9 إعجابات

ترجمة Google لمنشور المنتدى الفرنسي:

استعاد باحث أمني زائف مستودع Git قديمًا لمكون إضافي استخدمه المنتدى واستولى عليه ببساطة لعرض هذه الرسالة.

تم فحص المستودع المعني (GitHub - discoursehosting/discourse-migratepassword: لمسة من الأمان) ولا يوجد به أي رمز ضار (إنه مجرد إثبات مفهوم).

في الواقع، قام هذا المستودع بتغيير عنوان URL الخاص به (وهو متاح الآن على GitHub - communiteq/discourse-migratepassword: دعم تجزئات كلمات المرور المهاجرة) وقام المستخدم ببساطة بإعادة إنشاء مستودع discoursehosting/discourse-migratepassword، الذي كان يعيد التوجيه سابقًا إلى communiteq/discourse-migratepassword، لوضع رمز غير ذي صلة هناك. كنا نستخدم عنوان URL القديم، وهذا هو سبب تأثرنا.

إذا كان هذا صحيحًا، حسنًا… لقد قمت بتغيير عنوان URL للمكون الإضافي إلى communiteq وأقوم بإعادة البناء في الوقت الحالي. لكن يجب أن أتعمق في هذا الأمر (نظرًا لأنني لست مبرمجًا، لا يمكنني أن أكون متأكدًا بنسبة 100٪).

5 إعجابات

ملخص سريع

هذه ثغرة في جيت هاب ضمن فئة استغلال تسمى “Repojacking”.
نوصي الجميع بالتحقق من عناوين URL الخاصة بإضافات جيت هاب الخاصة بهم وإعادة تسمية كل مثيل من discoursehosting إلى communiteq.

خلفية:

اضطررنا إلى إعادة تسمية شركتنا من Discoursehosting إلى Communiteq في عام 2019.
إذا حدث ذلك، يقوم جيت هاب تلقائيًا بإعادة توجيه عناوين URL إلى مستودعات جيت هاب إلى موقعها الجديد، حتى يقوم شخص ما بإنشاء مستودع بنفس الاسم. في تلك اللحظة، سيحصل المستودع الجديد على الأفضلية.
كان جيت هاب يضع علامة على مثل هذه المستودعات على أنها “متقاعدة” ويمنع إنشاء مستودع بنفس الاسم.
تم وصف استغلال سابق هنا. يبدو أن هذا الإصلاح لم يعد فعالاً.
لقد قدمنا تقرير إساءة استخدام لجيت هاب وسنحاول إزالة هذا المستودع بكل الوسائل المتاحة.

16 إعجابًا

في هذه اللحظة، يعرض المكون الإضافي المخترق رسالة فقط ويترك ملفًا غير ضار في /tmp.
لذلك لم يحدث شيء سيء - حتى الآن. من المهم تغيير عنوان URL للمكون الإضافي الخاص بك قبل إعادة البناء.

7 إعجابات

رائع، يمكن أن يخدع المستخدم النهائي بسهولة، وهي إحدى العيوب الرئيسية لعدم استخدام الاستضافة الرسمية لـ discourse.org.

إذا كان أي من حسابي

angusmcleod (Angus McLeod) · GitHub أو merefield (Robert) · GitHub

قد توقف عن الوجود

فسيتم الكشف عن مسار فرعي أول، لذلك سيكون هناك أمر استنساخ في ملف app.yml الخاص بي ليقوم بإعادة البناء بتنفيذه.

3 إعجابات

للتخفيف من التأثير المحتمل على مستخدمي التثبيت القياسي، أضفنا رمزًا لاكتشاف github.com/discoursehosting/ وإلغاء أي عمليات إعادة بناء/ترقية.

سيبدو الخطأ شيئًا كهذا

---
خطأ: يحتوي ملف التكوين containers/app.yml على إشارات إلى منظمة github مخترقة: github.com/discoursehosting
يرجى إزالة أي إشارات إلى هذه المنظمة من ملف التكوين الخاص بك.
لمزيد من المعلومات، راجع https://meta.discourse.org/t/374703/6
---
31 إعجابًا

شكرا لك ديفيد!

13 إعجابًا

مرحباً بمجتمع Discourse،

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

في المستقبل، سأضمن التزام أفعالي بممارسات الإفصاح المسؤولة، وأقدر فرصة التعلم من هذا.

مرة أخرى، أنا آسف حقًا على الاضطراب الذي حدث.

@w3shi

20 إعجابًا

شكراً لاعتذارك.

الشيء غير المسؤول التالي هو عدم التواصل معي أو مع CDCK بشكل خاص عندما تخليت عن المقبض، لأنه في الساعات الثلاث الماضية، كان بإمكان شخص آخر رؤية منشورك وتسجيله.

لقد استعدت الآن السيطرة على مقبض Github القديم. وشكراً لك على فعل الشيء الصحيح في النهاية، وعلى الإشارة إلى أن Github لم يعد يحمي عمليات إعادة التوجيه للمرة الخامسة (كانت المرة الأخيرة هي الرابعة: “This discovery marks the fourth time an alternate method has been identified for performing Repojacking”)

أقترح عليك التواصل مع Github وجمع مكافأتك!

12 إعجابًا

أعتذر بشدة عن كل الإزعاج الذي سببته! وشكراً لتفهمك @RGJ !.

12 إعجابًا

مرحباً بك في المجتمع وشكراً لك على إصلاح كل شيء.

9 إعجابات

يجب أن تفترض بشكل أساسي أنه لا شيء آمن، وهذا لا يعمل بشكل جيد أيضًا.

قبل أيام قليلة فقط، اتضح أن أحد المطورين وراء حساب NPM لبعض حزم ESLint Prettier قد تم اختراقه ونشروا إصدارات مخترقة جديدة لبعض الحزم الشائعة:

تمت الإشارة إلى هذه الحزم بعد ذلك في حزم أخرى، لأن الكثيرين يدعون أنه يجب عليك دائمًا التحديث إلى أحدث الإصدارات.

بعد أن رأيت هذا الموضوع، اقترحت ميزة لإدخال التحقق من توقيع المكونات الإضافية / السمات عند تحديثها: Plugin and theme component signing

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

4 إعجابات

لست متأكدًا مما إذا كان هذا لا يزال يعمل. كان لدي مكون إضافي يشير إلى عنوان URL المخترق لـ GitHub، وذكرت رسالة الخطأ أثناء إعادة البناء أنها فشلت في سحب المستودع، مع مزيد من التفاصيل حول إصدار gem أو شيء من هذا القبيل. (لا يمكنني لصق المعلومات الدقيقة لأنها بعيدة جدًا في سجل التمرير الخاص بي بسبب الضوضاء الأخرى أثناء عمليات البناء اللاحقة.)

يبدو أن عنوان URL/المستودع غير موجود على الإطلاق الآن، وهو أمر جيد (على الأقل حتى يقوم شخص آخر بإعادة إنشائه) ولكن رسالة الخطأ كانت ستوفر الكثير من الوقت.

إعجاب واحد (1)

بالفعل، @RGJ عاد الآن للسيطرة على منظمة github، لذلك قمنا بإزالة رسالة الخطأ المؤقتة.

5 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.