ما الذي يتبادر إلى ذهنك عند سماع كلمات bakso وsate وrendang؟ بالنسبة للكثيرين، الإجابة هي “لا شيء”؛ أما عشاق الطعام فسيعرفونها كأطباق إندونيسية شهيرة؛ بينما سيتذكر المتابعون لأخبار الأمن الإلكتروني هجومًا استهدف منظومة npm (مدير حزم Node.js) – تلك الأداة التي تتيح للمطورين استخدام مكتبات برمجية جاهزة بدلاً من كتابة كل سطر برمج من الصفر.
في منتصف شهر نوفمبر، كشف الباحث الأمني بول مكارتي عن حملة إغراق تهدف إلى ملء سجل npm بالبيانات العشوائية. وبالطبع، ليست هذه المرة الأولى التي تظهر فيها حزم عديمة الفائدة في السجل، لكن ما ميز هذه الحالة هو العثور على عشرات الآلاف من الوحدات التي لا تؤدي أي وظيفة مفيدة. وكان غرضها الوحيد هو حقن تبعيّات غير ضرورية إطلاقًا داخل المشاريع.
تضمنت أسماء الحزم أسماء أطباق ومصطلحات طهي إندونيسية أُدرجت عشوائيًا، مثل bakso وsate وrendang، وهو ما جعل الحملة تُعرف بلقب “IndonesianFoods”. وكان نطاق الهجوم ضخمًا؛ فبحلول وقت الاكتشاف، تم تحديد تقريبًا 86000 حزمة برمجية.
سنتعمق في السطور التالية في كيفية حدوث ذلك، وما الذي كان المهاجمون يسعون وراءه فعليًا.
داخل حملة IndonesianFoods
للوهلة الأولى، لم تكن حزم IndonesianFoods تبدو كنفايات برمجية واضحة. وقد تضمنت هياكل قياسية، وملفات تكوين صالحة، وحتى توثيقات منسقة جيدًا. ووفقًا لباحثين من Endor Labs، سمح هذا التمويه للحزم بالبقاء في مستودع npm لمدة عامين تقريبًا.
لم يكن الأمر وكأن المهاجمين يحاولون جاهدًا إقحام ابتكاراتهم في مشاريع خارجية. وبدلًا من ذلك، أغرقوا ببساطة المنظومة بتعليمات برمجية تبدو مشروعة، بانتظار أن يرتكب شخص ما خطأ مطبعيًا أو يختار مكتبتهم بالصدفة من نتائج البحث. ولا يبدو واضحًا تمامًا ما الذي قد يبحث عنه المرء ليخطئ بين اسم حزمة واسم طبق إندونيسي، لكن البحث الأصلي يشير إلى أن 11 مشروعًا على الأقل تمكنت بطريقة ما من إدراج هذه الحزم في عمليات البناء الخاصة بها.
احتوى جزء صغير من هذه الحزم العشوائية على آلية تكرار ذاتي مدمجة؛ وبمجرد تثبيتها، كانت تنشئ وتنشر حزمًا جديدة في سجل npm كل سبع ثوانٍ. وتضمنت هذه الوحدات الجديدة بأسماء عشوائية (مرتبطة أيضًا بالمطبخ الإندونيسي) وأرقام إصدارات مختلفة؛ جرى نشرها جميعًا، كما هو متوقع، باستخدام بيانات اعتماد الضحية.
تكاملت حزم خبيثة أخرى مع منصة TEA القائمة على تقنية قواعد البيانات التسلسلية. وقد صُمم مشروع TEA لمكافأة منشئي البرمجيات مفتوحة المصدر برموز مميزة تتناسب مع شعبية تعليماتهم البرمجية ومدى استخدامها؛ حيث يعتمد المشروع نظريًا على نموذج إثبات المساهمة.
لم يحتوِ جزء كبير من هذه الحزم على أي وظائف فعلية إطلاقًا، ومع ذلك كانت تحمل غالبًا عشرات التبعيات التي كانت تشير – كما قد تخمن – إلى مشاريع عشوائية أخرى ضمن الحملة نفسها. وهكذا، إذا أدرجت الضحية إحدى هذه الحزم الضارة عن طريق الخطأ، فإنها تسحب معها عدة حزم أخرى، وبعضها يمتلك تبعياته الخاصة. والنتيجة هي مشروع نهائي مزدحم بكمية هائلة من التعليمات البرمجية الفائضة.
ما الفائدة التي يجنيها المهاجمون من وراء ذلك؟
هناك نظريتان أساسيتان. والأكثر وضوحًا هي أن هذه الحملة الإغراقية المعقدة بالكامل صُممت لاستغلال بروتوكول TEA المذكور سابقًا. وبشكل أساسي، ودون تقديم أي مساهمة مفيدة للمجتمع مفتوح المصدر، يجني المهاجمون رموز TEA – وهي أصول رقمية قياسية يمكن استبدالها بعملات مشفرة أخرى في المنصات. وباستخدام شبكة من التبعيات وآليات التكرار الذاتي، يتظاهر المهاجمون بأنهم مطورون شرعيون لرفع مؤشرات الأهمية والاستخدام لحزمهم اصطناعيًا. بل ويتفاخر المهاجمون بأرباحهم في ملفات README الخاصة ببعض الحزم.
مع ذلك، هناك نظرية أكثر رعبًا. على سبيل المثال، يرى الباحث غاريت كالبوزوس أن ما نشهده ليس سوى إثبات مفهوم فحسب. وقد تكون حملة IndonesianFoods بمثابة اختبار ميداني لأسلوب جديد لتوصيل البرامج الضارة، بهدف بيعها لاحقًا لأطراف تهديد أخرى.
لماذا لا ترغب بوجود برامج عشوائيّة في مشاريعك
للوهلة الأولى، قد لا يبدو الخطر على مؤسسات تطوير البرامج واضحًا؛ فمن المؤكد أن حملة IndonesianFoods تملأ المنظومة بالفوضى، لكنها لا تبدو وكأنها تحمل تهديدًا مباشرًا مثل برامج طلب الفدية أو اختراق البيانات. ومع ذلك، فإن التبعيات الفائضة تضخم التعليمات البرمجية وتستنزف موارد النظام لدى المطورين عبثًا. علاوة على ذلك، فإن نشر حزم عشوائية تحت اسم مؤسستك قد يلحق ضررًا جسيمًا بسمعتك داخل مجتمع المطورين.
لا يمكننا أيضًا استبعاد نظرية كالبوزوس. وإذا تلقت تلك الحزم العشوائيَّة التي سُحبت إلى برنامجك تحديثًا يُدرج وظائف ضارة حقًا، فقد تتحول إلى تهديد ليس لمؤسستك فحسب، بل لمستخدميك أيضًا؛ لتتطور بذلك إلى هجوم شامل على سلسلة التوريد.
كيفية حماية مؤسستك
لا تتسلل الحزم العشوائية إلى المشاريع من تلقاء نفسها؛ فعملية تثبيتها تتطلب غيابًا للحذر من جانب المطور. لذا، ننصح برفع الوعي دوريًا بين الموظفين – حتى الخبراء التقنيين منهم – بشأن التهديدات الإلكترونية الحديثة. ويمكن لمنصتنا التدريبية التفاعلية KASAP (Kaspersky Automated Security Awareness Platform) أن تساعد في ذلك فعليًا.
بالإضافة إلى ذلك، يمكنك منع العدوى باستخدام حل متخصص لحماية البيئات المعبأة. ويفحص الصور البرمجية والتبعيات الخارجية، ويتكامل مع عملية البناء، ويراقب الحاويات باستمرار أثناء فترة التشغيل.
إذا كنت ترغب في معرفة المزيد عن هجمات سلاسل التوريد، فنحن ندعوك للاطلاع على تقريرنا التحليلي بعنوان: تفاعلات سلاسل التوريد: تأمين النظام البيئي الرقمي العالمي في عصر الترابط. ويستند هذا التقرير إلى رؤى خبراء تقنيين، ويكشف عن مدى تكرار مواجهة المؤسسات لمخاطر سلاسل التوريد وعلاقات الثقة، وكيفية إدراكهم لها فعليًا.
سلسلة التوريد