إذا كنت تستخدم حزمًا من npm أو PyPI وتثبيتها، فإن الساعات الأولى بعد نشر الحزمة هي الأكثر خطورة لأن الماسحات الضوئية لا يمكنها تحليل الحزم قبل النشر. تم اكتشاف أحداث سلسلة التوريد الأخيرة التي أثرت على حزم NodeJS وPython وإزالتها في غضون ساعات. ومع ذلك، على الرغم من أن هذه الحزم كانت متاحة لعامة الناس، فمن الممكن أن يتم تثبيتها من قبل المستخدمين، مما يخلق احتمال وقوع حادث أمني. وكما سترون من البيانات التالية، إذا انتظر المستخدمون يومًا واحدًا قبل الوصول إلى هذه الحزم، فلن يكون لأي من الأحداث الأمنية الأخيرة لسلسلة التوريد أي تأثير.

في هذا المنشور، أعرض لك تكوينًا من سطر واحد يمكنك استخدامه للتخلص من هذا التعرض في بيئتك: فترة تباطؤ التبعية لـ npm وpip. يخبر هذا التغيير مدير الحزم الخاص بك بتخطي الإصدارات المنشورة خلال الـ 24 ساعة الماضية، مما يمنح مجتمع الأمان الوقت الكافي لاكتشاف الحزم غير المتوقعة وإزالتها قبل أن تصل إلى أنظمتك. تعمل هذه الإعدادات على تأمين الإعداد الافتراضي. هناك حالة استخدام أخرى لتحديثات الحزمة: تلقي إصلاحات الأمان لمعالجة المخاطر الأمنية. تتضمن هذه العملية تحديث الحزم إلى إصدار أحدث. سأوضح لك أيضًا كيفية تجاوز تكوين فترة التهدئة حتى تتمكن من تثبيت أحدث تصحيحات الأمان أثناء تأخير تحديثات الحزمة المثبتة حديثًا. نوصي بتقييم مدى خطورة عيوب التعليمات البرمجية وتطبيق الإصلاحات الأمنية إذا كانت هناك مخاطر معروفة. إن التعامل مع إصلاحات الأمان بناءً على خطورتها – وكيفية تحديد اتفاقيات مستوى الخدمة لهذه الإصلاحات بناءً على خطورتها – يقع خارج نطاق منشور المدونة هذا.

الخلفية: هناك خطران يسيران في اتجاهين متعاكسين

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

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

المشكلة: اليوم الأول يمثل أعلى المخاطر

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

تقرير حالة DevSecOps لعام 2026 الصادر عن Datadog وجدت أن 54% من تطبيقات JavaScript تقوم بتثبيت تبعية واحدة على الأقل خلال يوم واحد من إصدارها. هذه هي النافذة الزمنية التي تمثل أعلى مخاطر سلسلة التوريد. تُظهر الأحداث الأخيرة مدى سرعة الاكتشاف:

حدث نافذة التعرض
Nx s1ngularity (أغسطس 2025) 4-5 ساعات
أكسيوس (مارس 2026) 2-3 ساعات
Bitwarden CLI (أبريل 2026) 93 دقيقة
تانستاك (مايو 2026) 30 دقيقة
عقدة IPC (مايو 2026) أقل من 24 ساعة

الحل: تخطي الحزم المنشورة اليوم

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

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

يدعم كل من npm (v11.10.0+) وpip (v26.1+) فترات التباطؤ. يقوم Amazon Linux 2023 بشحن هذه الحزم في NodeJS 24 وPython 3.14 منذ ذلك الحين الإصدار 2023.11.20260608.

إذا كنت تستخدم عمليات التثبيت المستندة إلى lockfile من خلال npm ci أو pip install -r requirements.txt مع الإصدارات المثبتة، لن تتمكن من سحب آخر تحديثات الحزمة. لا ينطبق التباطؤ على تلك التثبيتات. يؤثر التباطؤ فقط على دقة الحزم الجديدة أو المحدثة. انظر عمليات التثبيت المستندة إلى Lockfile وفترة التهدئة قسم للحصول على التفاصيل.

المتطلبات الأساسية

لتنفيذ الحل التالي، تحتاج أولاً إلى توفر المتطلبات الأساسية التالية:

  • Node.js 24 مع npm 11.10.0 أو الأحدث (فيnodejs24-24.14.1-1.amzn2023.0.1 أو الأحدث).
  • Python 3.14 مع النقطة 26.1 (في python3.14-pip-26.1.1-1.amzn2023.0.1 أو الأحدث)
  • تدقيق النقاط (أداة لفحص حزم بايثون المطلوبة للنصوص البرمجية للتجاوز القائمة على العيوب). يستخدم python3.14 -m pip install pip-audit لتثبيت.

ستجلب الإصدارات المستقبلية من Node.js وPython أوامر جديدة. تعمل أوامر الأداة التالية مع Amazon Linux 2023 مع Node.js 24 وPython 3.14. تستهدف الأوامر المقدمة إصدارات حزمة محددة. اضبط الأوامر إذا كنت تستخدم الإصدارات الأحدث.

لإعداد فترة التهدئة npm

  1. قم بإنشاء دليل التكوين العام، اعتمادًا على إصدار NodeJS الخاص بك.

    sudo mkdir -p /usr/lib/nodejs24/etc
  2. أضف ملف التكوين npm مع إعداد Cooldown.

    sudo npm-24 config set min-release-age 1 --location=global
  3. تأكد من أن فترة التهدئة نشطة عن طريق تشغيل الأمر التالي.

    npm-24 config list

سوف ترى before = "<timestamp from 24 hours ago>" في الإخراج، يؤدي تأكيد npm إلى تحويل فترة التهدئة لمدة يوم واحد إلى مرشح للتاريخ.

لمزيد من المعلومات، راجع وثائق الحد الأدنى لعمر الإصدار npm.

لإعداد فترة تهدئة النقطة

  1. قم بإنشاء ملف تكوين النقطة على مستوى النظام باستخدام إعداد التهدئة.

    sudo python3.14 -m pip config set --global global.uploaded-prior-to P1D
  2. تحقق من التكوين (لـ Python 3.14 والنقطة 26.1+).

    python3.14 -m pip config list

سوف ترى global.uploaded-prior-to='P1D’ في الإخراج.

يعد هذا التكوين آمنًا للنشر على الفور، نظرًا لأن إصدارات النقطة الأقدم (25.x) تتجاهل الإعداد بصمت.

لتثبيت أحدث إصدار من الحزمة دون فترة تهدئة

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

npm auditor python3.14 -m pip_audit

لحزم npm

قم بتثبيت الحزمة مع تجاوز فترة التهدئة.

npm-24 install <package-name> --min-release-age=0

لحزم النقطة

قم بتثبيت الحزمة مع تجاوز فترة التهدئة.

python3.14 -m pip install <package-name> --uploaded-prior-to="P0D”

تحديث الحزم التي تحتاج إلى تحديثات عاجلة

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

المتطلبات الأساسية: تأكد من تثبيت Python 3 وpip-audit (python3.14 -m pip install pip-audit).

مهم: توضح هذه النصوص هذا المفهوم. لاستخدام الإنتاج، أضف معالجة الأخطاء والتسجيل والاختبار. قم بمراجعة الحزم قبل تحديثها في خطوط الأنابيب الآلية.

لحزم npm

يوضح البرنامج النصي التالي الخطوات المطلوبة لتحديد حزم npm ذات الإصلاح الأمني ​​المعروف. يقوم أمر npm Audit بطباعة هذه الحزم بتنسيق JSON. بعد ذلك، يتم تحديث الحزم الموجودة في هذه القائمة باستخدام أمر npm install، حيث يتم تجاوز فترة التهدئة الخاصة بها بحيث يتم اختيار الإصدار الأحدث.

لحزم النقطة

يوضح البرنامج النصي التالي الخطوات المطلوبة لتحديد حزم النقاط ذات الإصلاح الأمني ​​المعروف. يقوم الأمر pip_audit بطباعة هذه الحزم بتنسيق JSON. بعد ذلك، يتم تحديث جميع الحزم الموجودة في هذه القائمة باستخدام أمر pip install الذي يتجاوز فترة التهدئة بحيث يمكن التقاط الإصدار الأحدث.

عمليات التثبيت المستندة إلى Lockfile وفترة التهدئة

إذا كنت تستخدم npm ci أو pip install -r requirements.txt مع الإصدارات المثبتة، لا يتم تطبيق فترة التهدئة. تقوم هذه الأوامر بتثبيت ما يحدده ملف القفل، بغض النظر عن عمر الحزمة. يؤثر التباطؤ فقط على دقة الحزم الجديدة أو المحدثة.

اعتماد الصناعة: يتم الآن استخدام فترات التهدئة عبر PyPI وNodeJS

بدأ مديرو الحزم والمؤسسات الكبرى في اعتماد عمليات تباطؤ التبعية. اعتبارًا من مايو 2026، تشتمل الآن العديد من أدوات إدارة الحزم الشائعة على ميزات التبريد: pnpm (مدير حزم Node.js سريع)، وRenovate (أداة تحديث التبعية الآلية)، وStepSecurity (منصة أمان سلسلة التوريد).

  • بي إن بي إم 11 السفن مع minimumReleaseAge ممكّن افتراضيًا. إنه أحد مديري الحزم الرئيسيين الأوائل الذين قاموا بإلغاء الاشتراك في فترات التهدئة بدلاً من الاشتراك فيها.
  • تجديد config best-practices يتضمن الإعداد المسبق فترة انتظار npm لمدة 3 أيام منذ عام 2025 ويتم اعتمادها على نطاق واسع عبر المؤسسات.
  • التسجيل الآمن لـ StepSecurity يستخدم فترة تهدئة قابلة للتكوين لعملاء المؤسسات. توصي StepSecurity بتأخير لمدة 10 أيام كإعداد افتراضي.

كيف تساعد AWS في حماية سلسلة التوريد مفتوحة المصدر

تقوم AWS بفحص سجلات الحزم الأولية لالتقاط الحزم غير المتوقعة قبل أن تصل إلى العملاء.

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

التوصيات

لتأمين تكوين Amazon Linux 2023 الخاص بك:

  1. قم بتعيين فترة تهدئة لمدة يوم واحد لـ npm وpip كما هو موضح في الأقسام السابقة. لا تخضع السجلات الخارجية للمراجعة البشرية، لذا امنح المدافعين الوقت الكافي لاكتشاف المشاكل.
  2. تجاوز عند الحاجة للحصول على تصحيحات أمنية عاجلة باستخدام علامات كل أمر.
  3. قم بتشغيل تدقيق npm أو pip_audit بانتظام لتحديد الحزم التي تحتاج إلى اهتمام فوري.

قم بإعداد فترة التهدئة بسطر واحد من التكوين، وستكون الحماية فورية.

خاتمة

من خلال تنفيذ الحلول المقدمة في المنشور، يمكنك تأمين بيئة npm وPyPI الخاصة بك من معظم حالات التعليمات البرمجية غير المتوقعة. يؤدي تأخير التحديث لمدة يوم واحد إلى حماية بيئتك، مع السماح بتطبيق أحدث الإصلاحات الأمنية. للتعرف على كيفية حماية بيئتك بشكل أكبر، راجع الموارد التالية:

إذا كانت لديك تعليقات حول هذا المنشور، فأرسل التعليقات في تعليقات القسم أدناه.


نوربرت مانثي

نوربرت مانثي

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

شاركها.
اترك تعليقاً