




تنبيه حول أمن سلسلة التوريد (Supply Chain): 36 حزمة npm خبيثة كتستهدف Strapi CMS وقواعد البيانات
تنبيه حول أمن سلسلة التوريد (Supply Chain): 36 حزمة npm خبيثة كتستهدف Strapi CMS وقواعد البيانات
المختصر (TL;DR)
خبراء الأمن السيبراني كشفو على حملة منسقة فيها 36 حزمة npm خبيثة دايرة راسها بحال "plugins" ديال Strapi CMS. هاد الحزم كيستغلو ثغرات فـ Redis و PostgreSQL، وكيخدمو "reverse shells"، وكيحطو برامج خبيثة (implants) باش يبقاو متحكمين فالسيرفر. كيبان هاد الهجوم كيستهدف بالضبط المنصات ديال العملات الرقمية (cryptocurrency) باستعمال معلومات دخول (credentials) مكتوبة نيشان فـ "code" وسميات ديال "hosts" محددة.
نظرة عامة على الهجوم
شركة الأمن SafeDep لقات مؤخراً مجموعة ديال 36 حزمة خبيثة فـ "npm registry". هاد الحزم تصاوبو باش يقلدو إضافات (plugins) حقيقية ديال Strapi، اللي هو "Headless CMS" مشهور ومفتوح المصدر.
باش يبانو حقيقيين، المهاجمين استعملو طريقة التسمية strapi-plugin-[name] (مثلاً: strapi-plugin-cron أو strapi-plugin-database). ولكن، الإضافات الرسمية ديال Strapi غالباً كتكون داخلة فـ "namespace" ديال @strapi/. هاد النسخ الخبيثة تلونصاو فواحد الوقت ديال 13 ساعة من طرف 4 ديال الحسابات وهمية (sock puppet accounts):
umarbek1233kekylf12tikeqemif26umar_bektembiev1
كاع هاد الحزم خدمو بالنسخة (version) 3.6.8 باش يعطيو انطباع باللي هاد "plugin" قديم ومطوّر من طرف المجتمع، وخا ما فيهم لا وصف، لا روابط ديال "repository"، لا صفحات رسمية.
تحليل تقني: كيفاش كيوقع الاختراق
الكود الخبيث مخبي داخل الملف postinstall.js. وبما أن هاد "script" كيخدم بوحدو فاش كيدار npm install الـ "payload" كيتنفذ بلا ما يحتاج المطور يدير حتى شي حاجة. فـ ENV ديال CI/CD و "Docker containers"، هاد السكريبتات غالباً كيخدمو بصلاحيات عالية (root access)، هادشي اللي كيعطي للمهاجمين الحرية يديرو مابغاو.
تطور الـ Payloads
الباحثين لاحظو 8 ديال المراحل فالتطور ديال الـ payloads، هادشي كيبين باللي المهاجم كان كيجرب ويصحح الغلاط (trial-and-error):
- استغلال Redis: استعمال "instances" ديال Redis المحلية باش يحطو "crontab entries" كيليشارجيو سكريبتات "shell" كل دقيقة.
- Web & Reverse Shells: كتابة "PHP web shells" و "Node.js reverse shells" فالمجلدات العمومية ديال Strapi (public upload).
- الهروب من Docker: محاولة الخروج من "containers" باش يكتبو الـ payloads نيشان فالسيسطيم ديال "host".
- سرقة المعطيات: تقليب فـ "environment variables"، وسراري ديال Elasticsearch، والكلمات السرية (seed phrases) ديال محافظ العملات الرقمية.
- دخول مباشر لقاعدة البيانات: استعمال معلومات دخول مكتوبة فـ code باش يتكونيكطاو لـ PostgreSQL ويقلبو فجداول خاصة بـ Strapi على معلومات حساسة.
- البقاء (Persistence): حطو برنامج (implant) مصمم خصيصاً باش يحافظ على الدخول لواحد الـ hostname سميتو
prod-strapi.
واش هادي حملة مستهدفة للعملات الرقمية؟
نوع المعطيات اللي بغاو يجمعو — بحال استهداف "Guardarian API modules"، وملفات المحافظ، وتقليب على "hot/cold balances" — كيوحي باللي هاد الهجوم ماشي عشوائي. وجود معلومات دخول لقواعد البيانات وسط الكود كيعني باللي المهاجمين يمكن كانو ديجا عندهم معلومات داخلية من شي اختراق قديم أو تسريب آخر.
سياق أوسع لسلسلة التوريد (Supply Chain)
هاد الحادث داخل فواحد التوجه "صناعي" كبير ديال اختراقات "supply chain". هجمات أخرى لقاوهوم الباحثين مؤخراً:
- حساب GitHub "ezmtebo": كتر من 256 "pull request" خبيث باش يسربو الأسرار من "CI logs".
- اختراق Polymarket: استعملو "typosquatted dependencies" باش يشفروا "private keys" من "trading bots".
- إضافات VS Code: إضافات خبيثة من طرف "IoliteLabs" و "KhangNghiem" كتخدم "Socket.IO RATs" وكتراقب الـ "clipboard".
- ثغرات PyPI: حزم بحال
pyronut(كتستهدف Pyrogram) ونسخ مخترقة ديالbittensor-walletلسرقة المعطيات بشوية.
خاتمة وتوصيات
التعقيد ديال هاد الحملة كيبين كيفاش المهاجمين ولاو كيردو قنوات التطوير (development pipelines) وسيلة لتوزيع البرامج الخبيثة.
يلا كنتي كتخدم بـ Strapi CMS:
- راجع الـ Dependencies: تأكد باللي كاع الإضافات جاية من الـ "scope" الرسمي
@strapi/أو من مصادر موثوقة. - فحص الـ Logs: قلب على أي تنفيد لمهمات
postinstallما معروفاش فـ CI/CD ديالك. - بدل معلومات الدخول: يلا كنتي انسطاليتي أي وحدة من الحزم اللي لتحت، اعتبر السيسطيم ديالك مخترق وبدل كاع المودباسات ديال قاعدة البيانات، "API keys"، والـ "environment secrets" دابـا.
الحزم اللي تم رصدها هي:
strapi-plugin-cron, strapi-plugin-config, strapi-plugin-server, strapi-plugin-database, strapi-plugin-core, strapi-plugin-nordica, strapi-plugin-finseven, strapi-plugin-advanced-uuid, strapi-plugin-blurhash (وآخرين).
المصدر: The Hacker News