الأخبار

باحث يخترق أكثر من 35 شركة تقنية في هجوم جديد على سلسلة التوريد

Researcher hacks over 35 tech firms in novel supply chain attack
 
تمكن باحث من اختراق أكثر من 35 نظامًا داخليًا للشركات الكبرى، بما في ذلك Microsoft و Apple و PayPal و Shopify و Netflix و Yelp و Tesla و Uber، في هجوم جديد لسلسلة توريد البرامج.

اشتمل الهجوم على تحميل برامج ضارة إلى مستودعات مفتوحة المصدر بما في ذلك PyPI و npm و RubyGems، والتي تم توزيعها بعد ذلك تلقائيًا في تطبيقات الشركة الداخلية.

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

لجهوده البحثية الأخلاقية، حصل الباحث على أكثر من 130 ألف دولار من مكافآت الأخطاء.
 
يتم توزيع البرامج الضارة تلقائيًا في المصب Malware is distributed downstream automatically

في العام الماضي، صادف الباحث الأمني  Alex Birsan فكرة أثناء عمله مع باحث آخر Justin Gardner.

شارك Gardner مع Birsan ملف بيان، package.json، من حزمة npm مستخدمة داخليًا بواسطة PayPal.
لاحظ Birsan أن بعض حزم ملفات البيان لم تكن موجودة في مستودع npm العام، لكنها كانت حزم npm التي أنشأتها PayPal بشكل خاص، وتستخدمها الشركة وتخزنها داخليًا. عند رؤية هذا، تساءل الباحث، هل يجب أن توجد حزمة بنفس الاسم في مستودع npm العام، بالإضافة إلى مستودع NodeJS الخاص، أيهما سيحظى بالأولوية؟

لاختبار هذه الفرضية، بدأ Birsan في البحث عن أسماء الحزم الداخلية الخاصة التي يمكن أن يجدها في ملفات البيان على مستودعات GitHub أو في CDNs لشركات بارزة ولكنها لم تكن موجودة في مستودع مفتوح المصدر عام.

ثم بدأ الباحث في إنشاء مشاريع مزيفة باستخدام نفس الأسماء في مستودعات مفتوحة المصدر مثل npm و PyPI و RubyGems.

كل حزمة نشرها Birsan تم إجراؤها تحت حسابه الحقيقي ومن الواضح أن لديها إخلاء مسئولية، ينص على أن "هذه الحزمة مخصصة لأغراض البحث الأمني ​​ولا تحتوي على أي كود مفيد".
سرعان ما أدرك Birsan، أنه في حالة وجود حزمة تبعية يستخدمها تطبيق ما في كل من مستودع مفتوح المصدر عام وبناء خاص بك، فإن الحزمة العامة ستحصل على الأولوية وسيتم سحبها بدلاً من ذلك- دون الحاجة إلى أي إجراء من المطور. في بعض الحالات، كما هو الحال مع حزم PyPI، لاحظ الباحث أن الحزمة ذات الإصدار الأعلى ستكون ذات أولوية بغض النظر عن مكان وجودها. باستخدام هذه التقنية، نفذ Birsan هجومًا ناجحًا على سلسلة التوريد ضد Microsoft و Apple و PayPal و Shopify و Netflix و Tesla و Yelp و Uber ببساطة عن طريق نشر حزم عامة باستخدام نفس اسم الحزم الداخلية للشركة.

"أعتقد أن الخلط بين التبعية مختلف تمامًا عن الخطأ المطبعي typosquatting أو براند جاك brandjacking، لأنه لا يتطلب بالضرورة أي نوع من المدخلات اليدوية من الضحية".

وقال
Birsan لموقع BleepingComputer في مقابلة عبر البريد الإلكتروني: "بدلاً من ذلك، قد تتسبب نقاط الضعف أو عيوب التصميم في أدوات البناء أو التثبيت الآلي في الخلط بين التبعيات العامة والاعتمادات الداخلية التي تحمل الاسم نفسه بالضبط".

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

يقول
Birsan في تدوينة على مدونته: "مع العلم أن معظم الأهداف المحتملة ستكون في عمق شبكات الشركات المحمية جيدًا، فقد اعتبرت أن اختراق DNS هو السبيل للذهاب".
مقتطف من الشفرة الموضحة أدناه مأخوذ من squatted npm package analytics-paypal التي تمت إزالتها الآن من npm. ومع ذلك، بصفتي باحثًا أمنيًا في Sonatype، تمكنت من استعادته من الأرشيفات الآلية للكشف عن البرامج الضارة.

سيتم تشغيل هذا البرنامج النصي تلقائيًا بمجرد سحب تبعية "analytics-paypal" ولديه رمز لتقديم طلبات DNS إلى dns.alexbirsan-hacks-paypal.com.

رد الاتصال الذي تم تلقيه من أنظمة PayPal كان سينبه الباحث بعد ذلك إلى أن عنوان IP الذي يرسل الطلب يخص PayPal، بالإضافة إلى اسم المستخدم والدليل الرئيسي للنظام المصاب.
عند تلقي مثل هذه الاستدعاءات والتحقق بشكل كافٍ من أن المكون المزيف للباحث قد تسلل بنجاح إلى شبكة الشركة، سيبلغ Birsan النتائج التي توصل إليها إلى الشركة المناسبة ويكسب مكافأة خطأ.

كسبت أكثر من 130000 دولار في المنح
بشكل عام، تمكن الباحث من كسب أكثر من 130 ألف دولار من المكافآت من خلال برامج مكافآت الأخطاء
bug bounty programs وترتيبات اختبار الاختراق المعتمدة مسبقًا.

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

من أجل إفصاح
Birsan، منحته Microsoft أعلى مكافأة خطأ قدرها 40 ألف دولار وأصدرت white paper حول هذه المشكلة الأمنية. قاموا بتعريف هذه المشكلة على أنها CVE-2021-24105 لمنتج Azure Artifactory.

ومع ذلك، أخبرت Microsoft الباحث
Birsan في رسالة بريد إلكتروني أنها تعتبر هذا عيبًا في التصميم في مديري الحزم.

"While we are treating this as a severe security issue, it ultimately has to be fixed by reconfiguring installation tools and workflows, and not by correcting anything in the package repositories themselves."

"To address this issue, Microsoft has made minor improvements to Azure Artifacts to ensure it can be used as a reliable workaround."

"That said, we consider the root cause of this issue to be a design flaw (rather than a bug) in package managers that can be addressed only through reconfiguration," a Microsoft spokesperson said in the email.

 
وفي تصريح لموقع BleepingComputer، أكد موقع Yelp تقرير الباحث وكافأه بعد تصحيح المشكلة خلال يوم واحد.

"Through Yelp’s bug-bounty program, Alex Birsan helped us identify a vulnerability, which we immediately patched within a day."

"We are committed to working with security experts to stay up to date with the latest security techniques, and rely on our bug-bounty program to reward skilled security researchers that help improve Yelp’s systems and services," a Yelp spokesperson told BleepingComputer.

 
أخبرت شركة Apple موقع BleepingComputer أن Birsan سيحصل على مكافأة عبر برنامج Apple Security Bounty للكشف عن هذه المشكلة بمسئولية.

وحيث أن PayPal قد كشفت الآن علنًا عن تقرير HackerOne الخاص بـ
Birsan الذي يذكر مبلغ المكافأة البالغة 30 ألف دولار.

ومع ذلك، فإن الجهود البحثية الأخلاقية التي يبذلها الباحث لم يتم تبنيها من قبل الجميع.

قال Dustin Ingram، دليل مؤسسة Python Software Foundation ومدافع عن مطوري Google: "أعتقد أن هذا [ربما] سبب كافٍ لعدم وجود هذه المشاريع على PyPI".

بعد قضاء ساعة في إزالة هذه الحزم، أكد
Ingram أن تحميل حزم غير مشروعة على PyPI يضع عبئًا لا داعي له على المتطوعين الذين يحتفظون بـ PyPI.

أضاف Ingram أيضًا، بعد التعامل مع هذه الحزم لـ حوالي ساعة: "في النهاية، إذا كنت مهتمًا بحماية المستخدمين من هذا النوع من الهجمات، فهناك طرق أفضل للقيام بذلك تحمي النظام البيئي بأكمله، وليس فقط مجموعة محددة من المؤسسات التي لديها مكافآت أخطاء". 

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

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

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

أصدرت Sonatype برنامجًا نصيًا
script على GitHub يمكن لمستخدمي Nexus Repository Manager تشغيله للتحقق مما إذا كان أي من تبعياتهم الخاصة قد تمت تسميتها بعد الحزم الموجودة في مستودعات npm العامة و RubyGems و PyPI. يمكن لشركات مديري مستودعات القطع الأثرية الأخرى اعتماد تطبيقات متطابقة.