شعار زيفيرنت

مطور جافا سكريبت يدمر مشاريعه الخاصة في "درس" سلسلة التوريد

التاريخ:

ربما تكون قد شاهدت الأخبار ، حتى لو لم تكن متأكدًا مما حدث.

ما لم تكن مبرمجًا لجافا سكريبت واعتمدت على أي من الوحدات النمطية المسماة أو كليهما faker.js و colors.js.

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

... ربما تكون على دراية جيدة بما حدث بالضبط وكيف أثر ذلك عليك.

هجمات سلسلة التوريد

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

لقد كتبنا عن الثغرات الأمنية التي ظهرت فجأة في العديد من مجتمعات البرمجة ، بما في ذلك PHP المبرمجين بايثونستاس, روبي المستخدمين ، و الآلية الوقائية الوطنية المشجعين.

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

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

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

تعرف على المزيد حول هجمات سلسلة التوريد

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


ربما غير أخلاقي ، ولكن في بعض الأحيان ليس جنائيا

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

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

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

كما اقترحنا في ذلك الوقت ، يبدو أن كل من هؤلاء "الخبراء" - المنافقون والمُحملون - قد تبنوا الشعار الأناني القائل بأن العمل الذي يستحق القيام به يستحق بالمبالغة...

... وبالتالي خلق كميات هائلة من العمل غير الضروري لمتطوعين أبرياء آخرين في مجتمعات Linux و Python على التوالي.

الألوان والفاكر يذهبون إلى المارقة

هذه المرة ، مؤسس وحدتي تشفير JavaScript شهيرتين معروفتين باسم colors.js و faker.js لقد ألقى مفتاحين مختلفين قليلاً في الأعمال.

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

على سبيل المثال ، عندما صنعنا ملف Log4Shell - الفيلم الفيديو مؤخرًا ، أضفنا اندفاعة من الألوان إلى إخراج خادم LDAP المزخرف لتسهيل تتبع الطلبات الواردة ، باستخدام تسلسلات التحكم ANSI في الإخراج الطرفي لإضافة علامات خضراء وحمراء للإشارة إلى حالات النجاح والفشل:

تجنيب استخدام العلامات الطرفية الخضراء والحمراء من أجل المظهر المرئي والوضوح.

لسوء الحظ ل colors.js المستخدمين ، مؤسس المشروع ، بعد عدم نشر أي تحديثات منذ عام 2019 ، أضاف فجأة رمزًا جديدًا لأخذ رقم الإصدار منه 1.4.0 إلى معرّف الإصدار غير المعتاد إلى حد ما من 1.4.4-liberty-2.

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

/* remove this line after testing */
let am = require('../lib/custom/american');
am();
for (let i = 666; i < Infinity; i++) { if (i % 333) { // console.log('testing'.zalgo.rainbow) } console.log('testing testing testing testing testing testing testing'.zalgo)
}

الحلقة الموجودة في نهاية هذا الرمز تطبع النص testing testing ... testing مرارًا وتكرارًا ، بعد تطبيق وظيفة تسمى zalgo لذلك.

الزالجية

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

لا يعتبر نص Zalgoed بلا معنى فحسب ، بل يضع أيضًا عبئًا ثقيلًا على برنامج عرض النص الأساسي الذي يحاول تكوينه وعرضه للعرض.

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

لكن المؤلف المحوسب سيحاول ببساطة الإلزام من خلال الجمع بين جميع العلامات التي تطلبها ، مع إعطاء الفرقة الخاصة بك الزالجوميتال اسم منمق شيء من هذا القبيل:

تمت إضافة علامات التشكيل بشكل عشوائي وبدون معنى في جميع أنحاء النص

نصب تذكاري لآرون شوارتز

مختلق واجه المستخدمون نوعًا مختلفًا من التحديث ، حيث تم محو المشروع بشكل أساسي واستبداله بـ README طلب ملف "ما حدث بالفعل هارون شوارتز؟ "

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

ينتهي مشروع الفاكر بنهايته. لاحظ التعليق "نهاية اللعبة" ، عدم وجود أي ملفات شفرة المصدر ،
و README يتذكر آرون شوارتز.

كانت Faker عبارة عن مجموعة أدوات مفيدة للمطورين جعلت من السهل إنشاء كميات كبيرة من البيانات الواقعية والمكوّنة لضمان الجودة ، مثل إنشاء 100,000 اسم وإضافات يمكنك إضافتها إلى قاعدة بيانات المستخدم الخاصة بك أثناء التطوير.

تعد البيانات المزيفة جانبًا حيويًا لتجنب كارثة الخصوصية بينما لا تزال تعمل باستخدام رمز غير مكتمل وغير مختبَر لأنه يعني أنك لا تكشف عن بيانات حقيقية وحساسة بطرق طائشة (وربما غير قانونية).

يبدو أن مؤلف Faker حاول ذلك تسويق المشروع خلال عام 2021 ، ولكن دون نجاح ، لذا يبدو أنه قد أعطي الرمز الآن رصاصة الرحمة.

يبدو أن هذه الخطة لم تسفر عن أي مكان ، مع القليل من التمويل القادم من مستخدمي الشركات.

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

يمكنهم حتى إجراء التعديلات والتحسينات الخاصة بهم كما يحلو لهم ...

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

هل يفوز أحد أم نخسر جميعًا؟

كواحد معلق مظلوم قال (شخص يُفترض أنه أدخل التحديث في الإنتاج دون مراجعة ما تغير ، وعانى من انقطاع مؤقت نتيجة لذلك) ، لم ينته الأمر جيدًا لأي شخص:

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

لتسبب لي 15 دقيقة من الحزن ، كل ما كان على مارك فعله هو تدمير سمعته بشكل لا رجعة فيه.

إلى جانب من أنت في قضية كهذه؟ اسمحوا لنا أن نعرف في التعليقات أدناه ...


المصدر: https://nakedsecurity.sophos.com/2022/01/11/javascript-developer-destroys-own-projects-in-supply-chain-lesson/

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟