TL؛ DR
بين 6 مايو و7 مايو 2026، ناشر واحد لـ npm، pelavelle، قام بدفع ثماني حزم لا تعتمد على أي شيء باستخدام أسماء تتبع نفس النمط الداخلي: 24712-pl*.
تضمنت الحزم 24712-pl3469, 24712-pl4712, 24712-pl5006, 24712-plv2و 24712-plv3يشير الرقم التمهيدي بقوة إلى هجوم التباس التبعيات في npm مقابل مساحة اسم الحزمة الداخلية أو مخطط معرف الحزمة.
تم بالفعل إلغاء نشر جميع الحزم الثمانية الشقيقة من npm بواسطة الناشر بين 2026-05-06T21:52Z و 2026-05-07T00:31Zأكدت بيانات التعريف المباشرة للسجل أن ملفات tarballs تُرجع الآن رمز HTTP 404.
ومع ذلك، لا تزال المجموعة مهمة.
العينة النموذجية، 24712-pl5006:0.0.1، يحتوي على postinstall.js البرنامج النصي الذي يتم تشغيله أثناء npm installبدلاً من سرقة متغيرات البيئة العامة، فإنه يبحث تحديدًا عن AWS_LAMBDA_RUNTIME_API، متغير البيئة المستخدم بواسطة أوقات تشغيل AWS Lambda.
إذا وجد البرنامج النصي AWS_LAMBDA_RUNTIME_API، حيث يستدعي نقطة نهاية واجهة برمجة تطبيقات وقت تشغيل Lambda:
يحاول هذا الاستدعاء استهلاك حدث استدعاء Lambda المعلق التالي قبل أن يتمكن معالج Lambda الشرعي من معالجته.
ثم يتم إرسال الحدث الملتقط، بما في ذلك الرؤوس ومعرف الطلب وسياق الحساب وما يصل إلى 8 كيلوبايت من نص الطلب، إلى نقطة نهاية الاتصال بالخادم التي يتحكم بها المهاجم من خلال البرنامج النصي phoneHome() وظيفة.
صنّف نظام الإنذار المبكر بالبرمجيات الخبيثة (MEW) التابع لشركة Xygeni العينة النموذجية على أنها خبيثة على الأرجح، وحصل على درجة 0. 91.3/100.
نحن نتابع هذا الأمر باعتباره هجوم التباس التبعيات في npm مع سلوك اختطاف وقت تشغيل AWS Lambda.
المجموعة: ثماني حزم، ناشر واحد
حساب الناشر pelavelle تم استخدام عنوان البريد الإلكتروني التالي:
كان الحساب يحتوي على بريد إلكتروني غير موثق، لا SCM التحقق، ودرجة سمعة منخفضة تبلغ 5.
أصدر الناشر ثماني حزم برامج مترابطة خلال فترة قصيرة بين الساعة 20:45 و22:36 بتوقيت غرينتش في 6 مايو 2026. جميع أسماء الحزم تتبع نفس النمط:
هذا النمط هو الإشارة الرئيسية. لا يبدو كأداة تطوير عامة، بل يبدو كنمط تسمية حزم داخلي.
| # | فئة الإشتراك | النسخة الخبيثة | تم الإنشاء، بالتوقيت العالمي المنسق | غير منشور، التوقيت العالمي المنسق | تم تأكيد الحمولة | خطاف التثبيت |
|---|---|---|---|---|---|---|
| 1 | مستكشف الكون | 1.1.3 | 2026-05-01T18:26Z | 2026-05-01T19:01Z | يُستنتج أن الناشر/المجموعة هما نفس الناشر | التثبيت المسبق، على الأرجح |
| 2 | signalsdk-web | 1.0.0 , 10.0.0 | 2026-05-04T13:57Z | 2026-05-04T18:51Z | استنتاج | التثبيت المسبق، على الأرجح |
| 3 | ms.analytics-web | 99.0.0 , 99.9.13 | 2026-05-04T18:47Z | 2026-05-05T10:07Z | استنتاج | التثبيت المسبق، على الأرجح |
| 4 | أيقونات.تم إنشاؤها | 99.9.13 | 2026-05-05T10:02Z | 2026-05-05T12:57Z | استنتاج | التثبيت المسبق، على الأرجح |
| 5 | تتبع زمن الاستجابة | 99.9.0 | 2026-05-05T11:57Z | 2026-05-05T12:57Z | استنتاج | التثبيت المسبق، على الأرجح |
| 6 | تتبع زمن الاستجابة الداخلي | تم حذف الإصدارات من سجل النظام | 2026-05-06T06:02Z | 2026-05-06T08:35Z | استنتاج | التثبيت المسبق، على الأرجح |
| 7 | تطبيق كاربونايت | 99.9.0 | 2026-05-06T05:49Z | 2026-05-06T08:35Z | نعم، تدفق رمز الماسح الضوئي بالكامل | التثبيت المسبق: node index.js |
| 8 | الكربونات-الداخلي | 99.9.0 | 2026-05-06T06:14Z | 2026-05-06T08:36Z | نعم، تدفق رمز الماسح الضوئي بالكامل | التثبيت المسبق: node index.js |
إجمالي الإصدارات عبر المجموعة: 19 مجموعة من إصدارات الحزم.
العينة النموذجية، 24712-pl5006:0.0.1تم نشره في 2026-05-06T22:36:34Z وتم مسحه ضوئيًا بواسطة ميو زيجيني pipeline قبل حدث إلغاء النشر.
احتوى على أربعة ملفات، بما في ذلك package/postinstall.js، مع 3,335 بايت من المصدر الإجمالي.
الكنسي commit كانت قيمة التجزئة كالتالي:
لماذا يُعدّ نمط الاسم مهمًا؟
تُعد أسماء الحزم أقوى مؤشر على النية.
جميعها تبدأ بنفس البادئة:
ثم يضيفون لواحق رقمية أو لواحق تشبه لواحق الإصدارات:
هذا لا يشبه تسمية npm العامة المعتادة. يبدو أنه بادئة مساحة اسم داخلية أو مخطط معرف حزمة داخلي.
وهذا يجعل المجموعة متسقة مع هجوم التباس التبعيات في npm.
في هجوم التباس التبعيات، ينشر المهاجم حزمة عامة باسم يطابق، أو يبدو أنه يطابق، تبعية داخلية. إذا قام مدير الحزم أو بيئة البناء الخاصة بالهدف بحلّ الحزمة العامة بدلاً من الحزمة الخاصة، فسيتم تشغيل التعليمات البرمجية التي يتحكم بها المهاجم داخل بيئة الهدف.
يصف OWASP الارتباك في التبعيات بأنه ناقل هجوم يخدع مديري الحزم والوكلاء لجلب حزمة عامة ضارة بدلاً من الحزمة الداخلية المقصودة التي تحمل نفس الاسم.
للحصول على معلومات أكثر تفصيلاً حول كيفية عمل هذا النوع من الهجمات، راجع دليل Xygeni حول عدم تثبيت الإصدارات وارتباك التبعيات ومنشورنا على تحديد وإدارة هجمات التبعية البرمجية.
ما يحدث أثناء التثبيت
تُعلن الحزمة الأساسية عن postinstall صنارة صيد:
استخدم postinstall تُعد دورة الحياة جزءًا من نظام نصوص إدارة الحزم في npm. تشرح وثائق npm أن الحزم يمكنها تعريف نصوص إدارة الحزم في package.json، بما في ذلك أحداث دورة حياة التثبيت المدمجة.
استخدم || true أنه مهم.
يتجاهل النظام الأخطاء، لذا ينجح التثبيت حتى في حال فشل عملية الاختراق. يساعد ذلك الحزمة على تجنب تعطيل عملية البناء، ويقلل من احتمالية اكتشاف المطورين أو أنظمة التكامل المستمر للسلوك الضار من خلال فشل التثبيت.
يتم تشغيل الحمولة أثناء npm installلا يتطلب الأمر استيرادًا من المطور. ولا يلزم استدعاء الحزمة من مسار التطبيق.
عملية التثبيت نفسها كافية.
سلوك الحمولة: اختطاف وقت تشغيل لامدا
استخدم postinstall.js يقوم البرنامج النصي بتنفيذ تسلسل محدد.
أولاً، يقرأ بيئة العملية الأصلية من نظام لينكس /proc:
ثم يقوم باستخراج نقطة نهاية وقت تشغيل AWS Lambda:
إذا تم العثور على واجهة برمجة التطبيقات الخاصة بوقت التشغيل، يقوم البرنامج النصي بتخزينها:
ثم يرسل إشارة أولى عبر phoneHome():
يكشف هذا المنارة الأولى عن نقطة نهاية واجهة برمجة تطبيقات وقت تشغيل Lambda.
ثم يقوم البرنامج النصي بتحليل مضيف ومنفذ واجهة برمجة التطبيقات (API) الخاصة بوقت التشغيل:
وأخيراً، يقوم باستدعاء مسار واجهة برمجة تطبيقات وقت تشغيل AWS Lambda المستخدم لاسترداد الاستدعاء التالي:
هذا هو جوهر الهجوم.
يحاول البرنامج النصي استهلاك حدث استدعاء Lambda التالي قبل أن يتمكن معالج Lambda الشرعي من معالجته. كما يصف دليل وقت التشغيل المخصص من AWS خطوة "الحصول على حدث" على أنها استدعاء لواجهة برمجة تطبيقات الاستدعاء التالي.
ما الذي يتم تسريبه
إذا التقط البرنامج النصي استدعاءً، فإنه يرسل النتيجة إلى نقطة نهاية الاتصال بالخادم التي يتحكم بها المهاجم.
تشمل المناطق التي تم تهريبها ما يلي:
| الحقل | معنى |
|---|---|
step | مرحلة التنفيذ، مثل waiting, next_error أو captured |
runtimeApi | نقطة نهاية واجهة برمجة تطبيقات وقت تشغيل Lambda |
accountSid | سياق حساب AWS الذي تم التقاطه |
requestId | معرّف طلب استدعاء لامدا |
isOwnAccount | مقارنة منطقية مع قيمة الحساب المُكوّنة في البرنامج النصي |
statusCode | حالة استجابة واجهة برمجة التطبيقات في وقت التشغيل |
headers | رؤوس استجابة الاستدعاء |
body | نص الاستدعاء الملتقط، مقسم إلى 8,000 حرف |
المكالمة الرئيسية لعملية التهريب هي phoneHome(data) دالة تقوم بتشفير البيانات باستخدام JSON وإرسالها عبر طلب HTTP POST.
لم يتم حفظ عنوان URL الخاص بالوجهة النهائية للاتصال بالخادم في الأدلة المختصرة المتاحة. لذا، ينبغي على npm الاحتفاظ بملف tarball غير المنشور داخليًا حتى يمكن استخراج عنوان المضيف C2 قبل إتمام عملية الحذف.
لماذا هذا خطير؟
هذا ليس منارة npm عامة.
تم تصميم الحمولة حول AWS Lambda نموذج التنفيذ.
إذا تم تثبيت حزمة ضعيفة داخل بيئة تنفيذ Lambda، كما هو الحال أثناء إنشاء صورة نشر، أو تثبيت طبقة Lambda، أو عملية تغليف التهيئة، فقد تكشف البيئة عن ثغرة أمنية. AWS_LAMBDA_RUNTIME_API.
بمجرد أن يحصل البرنامج النصي على تلك القيمة، يمكنه استدعاء ما يلي:
تقوم نقطة النهاية هذه بإرجاع حدث الاستدعاء المعلق التالي.
ونتيجة لذلك، قد يتمكن المهاجم من الاستيلاء على:
- الجهات الطالبة
- رؤوس
- معرفات الطلبات
- سياق حساب AWS
- بيانات الطلب الموقعة
- معلومات تحديد الهوية الشخصية للعميل
- بيانات أحداث S3
- حمولات خاصة بالتطبيق
- سياق الخدمة الداخلية
قد لا يرى المعالج الشرعي الحدث المستهلك أبدًا.
هذا يحول برنامج تثبيت npm إلى أداة اعتراض أحداث Lambda.
حتى لو لم يتم استخدام الحزمة في بيئة Lambda حقيقية، فقد يظل سلوكها يُسرب معلومات مفيدة من أنظمة التطوير أو التكامل المستمر. قراءة /proc/<pid>/environ قد يؤدي ذلك إلى كشف متغيرات البيئة الموجودة في العمليات الأصلية، والتي يمكن أن تشمل مفاتيح AWS أو عناوين URL لقواعد البيانات أو رموز CI أو بيانات اعتماد النشر.
لهذا السبب، لا يمكن أن يقتصر فحص التبعيات على الثغرات الأمنية المعروفة (CVEs). تحتاج الفرق أيضًا إلى اكتشاف الحزم الخبيثة، وتحليل نصوص التثبيت، وتطبيق سياسات التسجيل. للاطلاع على إرشادات ذات صلة، اقرأ لماذا يعد فحص التبعيات أمرًا مهمًا لفرق DevOps و الحماية من البرامج الضارة: لماذا لا تستطيع برامج مكافحة الفيروسات إيقاف هجمات سلسلة التوريد.
تصنيف Xygeni MEW
قام جهاز Xygeni MEW بمسح العينة النموذجية 24712-pl5006:0.0.1 قبل حدث إلغاء النشر.
أظهر الماسح الضوئي ما يلي:
تضمنت الأدلة ثلاثة عناصر حرجة وعنصر واحد عالي الأهمية يؤكد اختطاف تدفق البيانات أثناء تشغيل Lambda.
| خطورة | دليل | معنى |
|---|---|---|
| حرج | /proc/<pid>/environ اقرأ | يقرأ بيئة العملية الأصلية |
| حرج | AWS_LAMBDA_RUNTIME_API استخلاص | نقطة نهاية وقت تشغيل Lambda المستهدفة |
| حرج | /runtime/invocation/next طلب | محاولات استهلاك حدث استدعاء Lambda حقيقي |
| مرتفع | postinstall سيناريو | يتم تشغيله أثناء تثبيت npm |
يتميز هذا السلوك بتخصصه الشديد وتأثيره الكبير. ولا تحتاج الحزمة إلى خصائص برمجية خبيثة واسعة النطاق لأن نقطة نهاية وقت تشغيل Lambda تُعد هدفًا قويًا بالفعل.
صُممت أداة Xygeni MEW خصيصًا لهذا النوع من الحالات: الكشف عن سلوك الحزم المشبوه والخبيث قبل أن يتحول إلى حادثة لاحقة. للاطلاع على نظرة أشمل لأنماط التهديدات الحالية في npm وPyPI، انظر نظرة عن كثب على هجمات سلسلة توريد البرمجيات 2025.
لماذا يُعدّ نمط إلغاء النشر الذاتي مهماً؟
قام الناشر بإلغاء نشر جميع الحزم الثمانية خلال فترة زمنية قصيرة.
هذا السلوك مثير للريبة في هذا السياق.
ظهرت المجموعة، وعملت إذا تم اختيارها عبر مسار حل التبعيات المعرض للخطر، ثم اختفت. يتوافق هذا مع قيام المهاجم بتنظيف النظام بعد نجاح أو فشل إثبات المفهوم، أو بعد أن لاحظت المؤسسة المستهدفة المشكلة.
يؤدي إلغاء النشر إلى فجوة في الرؤية بالنسبة للمدافعين.
قد لا تتضمن بيانات npm العامة ملفات tar. بعض إصدارات الحزم غير قابلة لإعادة التنزيل. مع ذلك، قد لا تزال البيئات المتأثرة تحتوي على نسخ مخزنة مؤقتًا، أو مراجع لملفات القفل، أو سجلات التكامل المستمر، أو مخلفات مدير الحزم.
ولهذا السبب يُعدّ الحفاظ على البيانات من جانب السجل أمرًا بالغ الأهمية.
ينبغي لـ npm الاحتفاظ بملفات tarballs غير المنشورة داخليًا لفترة كافية لاستخراج عنوان URL الخاص بالهاتف المنزلي بالضبط، والتأكد من هوية الحمولة الشقيقة، ودعم الاستجابة للحوادث.
مؤشرات الاختراق والكشف
الناشر والحساب
| الحقل | بعد التخفيض |
|---|---|
| اسم مستخدم npm | pelavelle |
| البريد الإلكتروني للناشر في npm | pelavelle@clovercode.com |
| تم التحقق من البريد الإلكتروني | لا |
| SCM التحقق | لا |
| تقييم سمعة الناشر | 5 |
| نمط تسمية الحزم | ^24712-pl[0-9a-z]+$ |
| بادئة مساحة الاسم الداخلية | 24712-pl |
أسماء الحزم المتأثرة
عينة أساسية
| الحقل | بعد التخفيض |
|---|---|
| فئة الإشتراك | 24712-pl5006 |
| التجريبية | 0.0.1 |
| تم النشر | 2026-05-06T22:36:34Z |
| Commit مزيج | 83e0efbfd110abb2398a06196fb698565a3f6cc6 |
| معرف UUID لفحص Xygeni | f80e4244-86d2-4a58-be59-7c56988a0f9f |
| العلامة | 91.3 / 100 |
| حكم | probablyMalicious |
خطاف التثبيت
مؤشرات وقت تشغيل لامدا
حقول الحمولة المسربة
تم تقسيم النص إلى 8,000 حرف.
ملاحظات الكشف
يمكن لعدة قواعد أن تكشف هذا. هجوم التباس التبعيات في npm والمتغيرات المحتملة.
أولاً، قم بتحديد نصوص تثبيت npm التي تقرأ بيئة العملية الأصلية من /proc:
نادراً ما يكون هذا سلوكاً مشروعاً بالنسبة لتبعية npm أثناء التثبيت.
ثانيًا، قم بالتنبيه بشأن نصوص تثبيت الحزم التي تشير إلى:
يجب عدم الوصول إلى متغير البيئة هذا بواسطة حزم npm التابعة لجهات خارجية أثناء التثبيت.
ثالثًا، قم بحظر أو مراجعة برامج التثبيت التي تستدعي ما يلي:
هذه هي نقطة نهاية واجهة برمجة تطبيقات وقت تشغيل AWS Lambda لاستقبال الاستدعاء التالي. لا يوجد سبب مشروع لاستخدامها في برنامج تثبيت التبعيات.
رابعاً، ابحث عن مراجع ملفات القفل لأسماء الحزم المتأثرة:
أي تطابق يستدعي مراجعة الارتباك في التبعية.
خامساً، تنبيه بشأن التعبير النمطي لاسم الحزمة:
وخاصة عندما يكون الناشر عامًا، أو ذو سمعة سيئة، أو غير موثق، أو خارج السجل الداخلي المتوقع.
وأخيرا، أضف CI/CD guardrails حول نصوص التثبيت. هذا الأمر بالغ الأهمية لأن نصوص دورة حياة npm يمكن تنفيذها أثناء تثبيت الحزمة، قبل أن يقوم المطورون باستيراد أي شيء. للمزيد من المعلومات حول CI/CD أنماط الكشف، انظر إلى Xygeni أهم 10 مؤشرات للاختراق في CI/CD Pipelines و الأمن والحماية Guardrails لـ CI/CD Pipelines.
إجراءات التسجيل المقترحة
كانت هذه المجموعة غير منشورة بالفعل وقت إعداد التقرير، لكن إلغاء النشر لا يزيل المخاطر.
الإجراءات الموصى بها من جانب npm:
- تأكد مما إذا كانت عمليات إلغاء النشر ناتجة عن عملية تنظيف بدأها المهاجم أم عن إجراء مشروع من جانب القائمين على الصيانة.
- تعليق أو حظر حساب الناشر
pelavelle. - إضافة
pelavelle@clovercode.com، وأسماء الحزم، والتعبير النمطي لأسماء الحزم لمنع إساءة استخدام npm وقوائم حظر سلسلة التوريد. - احتفظ بملفات tarball غير المنشورة في وحدة تخزين داخلية لأغراض التحليل الجنائي الرقمي.
- استخرج بدقة
phoneHome()عنوان URL الوجهة من ملفات tar المحفوظة. - تأكد مما إذا كانت جميع الحزم الشقيقة تشترك في نفس الحمولة.
- قم بإخطار المؤسسات المتضررة إذا أشارت بيانات تنزيل الحزمة أو تثبيتها إلى وجود تعرض للخطر.
قائمة التحقق من الاستجابة للتسوية
إذا ظهرت أي حزمة متأثرة في ملفات القفل، أو سجلات التكامل المستمر، أو ذاكرة التخزين المؤقت للحزم، أو طبقات Lambda، أو صور النشر، أو عناصر البناء، فتعامل معها على أنها حدث تنفيذ محتمل ناتج عن ارتباك التبعية.
الرد الموصى به:
- حدد مكان تثبيت الحزمة: محطة العمل المحلية، أو مشغل التكامل المستمر، أو بناء طبقة Lambda، أو صورة النشر، أو بيئة التشغيل.
- احتفظ بملفات القفل، وذاكرة التخزين المؤقت لـ npm، وسجلات البناء، وعناصر النشر، وطبقات صور الحاويات.
- تحقق مما إذا كان التثبيت قد تم داخل بيئة حيث
AWS_LAMBDA_RUNTIME_APIتم تعيين. - راجع سجلات HTTP الصادرة بحثًا عن أي شيء غير معروف
phoneHome()الوجهات أثناء فترة التثبيت. - قم بمراجعة سجلات استدعاء Lambda بحثًا عن الأحداث المفقودة أو غير الطبيعية أو التي تم إسقاطها.
- قم بتدوير الأسرار المكشوفة لبيئة التثبيت، وخاصة مفاتيح AWS ورموز CI وبيانات اعتماد النشر وعناوين URL لقواعد البيانات.
- راجع طبقات Lambda وصور النشر بحثًا عن نسخ مخزنة مؤقتًا من الحزمة.
- فرض تثبيت السجل الخاص لبادئات الحزم الداخلية.
- حظر استخدام أسماء الحزم ذات المظهر الداخلي في نظام npm العام.
- إضافة guardrails لـ
preinstall,installوpostinstallمخطوطات.
كيف يساعد جهاز Xygeni في الكشف عن ذلك مبكراً
هذه الحملة هي بالضبط نوع الحالة التي تحتاج فيها فرق الأمن إلى أكثر من مجرد فحص الثغرات الأمنية التقليدي.
قد لا يكون هناك CVEقد لا توجد نسخة معروفة معرضة للثغرات. وقد لا توجد حزمة طويلة الأمد يمكن فحصها بعد أن يقوم الناشر بتنظيفها.
بدلاً من ذلك، تحتاج الفرق إلى رؤية فورية لسلوك الحزم.
يساعد جهاز زيجيني من خلال الجمع بين:
- الكشف المبكر عن البرامج الضارة عبر السجلات العامة.
- الكشف عن التبعيات المشبوهة لتجنب الخلط بين التبعيات والاحتيال الإملائي.
- تحليل برنامج التثبيت لـ
preinstall,installوpostinstallالسلوكيات. - CI/CD guardrails لحظر الحزم الخطرة قبل وصولها إلى بيئات البناء أو النشر.
- رؤية سلسلة توريد البرمجيات عبر مختلف التبعيات، pipelineوالتحف.
- تطبيق السياسات المتعلقة بأسماء الحزم الداخلية والحزم العامة غير الموثوقة.
هذا الأمر مهم لأن تأثير هجوم التباس التبعيات في npm لا يقتصر الأمر على أجهزة الكمبيوتر المحمولة الخاصة بالمطورين. بل يمكنه الوصول إلى مشغلات التكامل المستمر، وصور البناء، وطبقات Lambda، وحاويات النشر، والبيئات المجاورة لوقت التشغيل.
للاطلاع على سياق أوسع لأمن التطبيقات وسلسلة التوريد، انظر تصميم المستقبل SCA:تأمين سلسلة توريد البرمجيات الخاصة بك و Software Supply Chain Security أتمتة.
ما يجب على المدافعين استخلاصه
تُظهر هذه الحملة كيف يمكن أن يتجاوز الارتباك المتعلق بالتبعية مجرد إشارات إثبات التنفيذ الأساسية.
لا يقتصر دور الحمولة على تأكيد ذلك فحسب. npm install تم تشغيله. يحاول التفاعل مع واجهة برمجة تطبيقات وقت تشغيل AWS Lambda والتقاط حدث استدعاء حقيقي.
هذا تصعيد ذو مغزى.
بالنسبة للفرق التي تستخدم الحوسبة السحابية بدون خوادم، يُعدّ حلّ التبعيات جزءًا من نموذج التهديدات أثناء التشغيل. قد تُصبح حزمة npm عامة تحمل اسمًا داخليًا ثغرةً للوصول إلى سياق تنفيذ وظائف Lambda، وبيانات الطلبات، وبيانات تعريف حسابات السحابة.
الدرس الأساسي واضح: يجب حماية بادئات الحزم الداخلية، وتحديد نطاقها، وتثبيتها في سجلات موثوقة. يجب التعامل مع نصوص التثبيت كسطح هجوم قابل للتنفيذ، خاصة في CI/CD، وبناء الحاويات، وطبقات لامدا، والنشر pipelines.
CISتؤكد إرشادات سلسلة توريد البرمجيات الخاصة بشركة A على ضرورة حماية البرمجيات، وتطبيق فحوصات الأمان، والاستجابة للثغرات الأمنية بشكل مستمر طوال عملية التطوير. في هذه الحالة، يعني ذلك التعامل مع حل الحزم، ونصوص الحزم، وبيئات البناء بدون خوادم كضوابط أمان أساسية.
تم الإبلاغ إلى npm بشأن تطبيق القوانين على مستوى الحساب، وقوائم الحظر، وحفظ ملفات tarball غير المنشورة.





