لماذا كان 21-23 أبريل 2026 أسوأ أسبوع لسلسلة التوريد في العام
أنتجت نافذة الـ 48 ساعة من 21 إلى 23 أبريل 2026 ثلاث حملات مستقلة لسلسلة التوريد تستهدف في وقت واحد أكبر ثلاثة أنظمة بيئية لحزم البرمجيات مفتوحة المصدر. مع تنبيه CISA بشأن axios في 20 أبريل والاستجابة المستمرة لحادث Bitwarden CLI 2026.4.0، أرسى الأسبوع الخط الأساسي التشغيلي الجديد: بيئات المطورين وأنابيب CI/CD هي الآن الهدف الأساسي لجمع بيانات الاعتماد على الإنترنت المفتوح.
كانت الحملة الأولى دودة npm CanisterSprawl، التي ضربت في 21 أبريل حزمة pgserve وانتشرت ذاتياً بـ اختراق حزم أخرى وحصد رموز مشرفيها. الميزة المميزة للدودة، التي وثقها الباحث في GitGuardian Guillaume Valadon، كانت استخدامها canister من Internet Computer Protocol (ICP) كبنية تحتية لا مركزية للقيادة والتحكم — مما يجعل الإيقاف أصعب من C2 النموذجية ذات النطاقات المُرمَّزة.
الحملة الثانية كانت اختراق Checkmarx KICS في 22 أبريل، الذي قدّم حمولة مبهمة عبر صور Docker وملحقات VS Code. حصدت الحمولة رموز مصادقة GitHub، وبيانات اعتماد AWS، ورموز Azure و Google Cloud، وملفات تكوين npm، ومفاتيح SSH، ومتغيرات البيئة. ذهب الإسناد إلى مجموعة تطلق على نفسها TeamPCP، استناداً إلى منشورات على X.
الحملة الثالثة كانت حملة xinference على PyPI، أيضاً في 22 أبريل، ضربت ثلاث إصدارات متتالية من الحزمة. حصدت الحمولة مفاتيح SSH، وبيانات اعتماد السحابة، ومتغيرات البيئة، ومحافظ التشفير — نفس ملف الهدف لهجوم KICS، والذي نسبته StepSecurity أيضاً إلى TeamPCP.
الخيط المشترك، كما لخصه تحليل GitGuardian، أن الحملات الثلاث “أعطت الأولوية لاستخراج بيانات الاعتماد من بيئات المطورين وأنابيب CI/CD — لا تعطيل تسليم البرامج أو إفساد المخرجات”. هذا هو التحول الاستراتيجي الذي يجب على فرق CI/CD استيعابه: لم يعد المهاجمون بحاجة إلى شحن كود خبيث للمستخدمين. سرقة بيانات اعتماد المطورين تشتري الوصول إلى كل شيء في المراحل اللاحقة.
كدسة الدفاع التي توقف فعلاً هذه الفئة من الهجمات
تعتمد معظم منظمات الهندسة في أبريل 2026 ما زالت على مزيج من السياسات وتنبيهات Dependabot وعمليات تدقيق طرف ثالث ربع سنوية. لم يكن أي من هذه ليوقف حملات 21-23 أبريل. كدسة الدفاع التي تعمل لها ستة مكونات، وهي تعزّز بعضها بعضاً — التبني الجزئي يعطي حماية جزئية، لا 80% من الحماية.
الأول هو runners عابرة. مهام CI/CD التي تعمل على runners ثابتة (آلة افتراضية طويلة الأمد بحساب خدمة) تسرّب بيانات الاعتماد إلى بيئة كل مهمة لاحقة. تقضي runners العابرة — VM أو حاوية جديدة لكل مهمة، تُتلف بعدها — على التسرب بين المهام الذي تعتمد عليه ديدان مثل CanisterSprawl. runners المستضافة من GitHub، و runners التحجيم التلقائي في GitLab، و CodeBuild كلها عابرة افتراضياً؛ runners المستضافة ذاتياً والثابتة هي التكوين الأعلى مخاطرة.
الثاني هو npm provenance وشهادات الحزم المدعومة بـ Sigstore. دعم npm الـ provenance منذ 2023؛ كان معدل التبني في النظام البيئي بداية أبريل 2026 لا يزال أقل من 35% من حيث المشرفين. تتيح provenance للمستهلك التحقق من أن حزمة نُشرت من خلال workflow محدد لـ GitHub Actions على commit محدد — مما يهزم السيناريو النموذجي حيث يستخدم مهاجم سرق رمز مشرف لنشر إصدار خبيث من laptop. اجعل npm install --provenance افتراضياً في سياسة التثبيت لديك ورفض الحزم بدونها للتبعيات عالية الثقة.
الثالث هو مصادقة قائمة على OIDC لـ CI/CD، استبدالاً للرموز الثابتة طويلة الأمد. تدعم GitHub و GitLab و AWS و GCP و Azure جميعها تبادل رموز OIDC، الذي يتيح لمهمة CI/CD الحصول على بيانات اعتماد قصيرة الأمد صالحة فقط لمدة المهمة. حصدت حملات أبريل في الغالب _npmrc و ~/.aws/credentials ورموز الوصول الشخصي لـ GitHub طويلة الأمد. لا يمكن استخراج بيانات الاعتماد الصادرة عن OIDC وإعادة استخدامها غداً لأنها تنتهي خلال دقائق.
الرابع هو بوابات تثبيت لكل حزمة مع قوائم حزم مسموح بها. عامِل خطوة تثبيت الحزمة في CI/CD كعملية مميّزة. حافظ على قائمة بيضاء لإصدارات الحزم المعتمدة واحظر أي شيء خارجها في خطوة CI، لا في طبقة التطبيق. أدوات مثل Socket و Snyk و Phylum يمكنها فرض ذلك. حادثة xinference — ثلاث إصدارات خبيثة متتالية — كانت ستُحظر بقائمة بيضاء تتطلب موافقة صريحة على الإصدار.
الخامس هو مسح الأسرار مع تنبيه نشط للتسرب. تكشف GitGuardian و GitHub Secret Scanning و TruffleHog جميعها بيانات الاعتماد المسرّبة في المستودعات وعبر GitHub. ركّزت الحملات أعلاه على تسريب الأسرار إلى C2 يتحكم بها المهاجم؛ لم تدفع الأسرار إلى مستودعات عامة. لكن نفس وضعية المسح تلتقط المتابعة التشغيلية — حين يختبر مهاجم رمزاً مسروقاً بالـ commit في مستودع عام. عامِل تنبيهات المسح كحوادث Sev-1 مع SLA من خمس دقائق للإلغاء.
السادس هو الاحتفاظ بسجلات تدقيق CI/CD ومراقبتها. السؤال الجنائي بعد حادث في سلسلة التوريد دائماً: ماذا لمست بيانات الاعتماد هذه في الـ 90 يوماً الماضية؟ المنظمات التي لا تحتفظ بسجلات تدقيق CI/CD لمدة 12+ شهراً لا يمكنها الإجابة على السؤال. ينبغي شحن السجلات إلى SIEM خارجي (لا فقط مخزن مزود CI/CD الداخلي)، الاحتفاظ بها على تخزين غير قابل للتغيير، وفهرستها لاستعلامات ربط بيانات الاعتماد.
إعلان
ماذا يعني هذا لقادة الهندسة
1. انقلوا كل مهام CI/CD إلى runners عابرة بحلول نهاية الربع الثالث من 2026
إذا كانت أنابيب البناء لديكم لا تزال تعمل على runners مستضافة ذاتياً وثابتة، فإن فئة الديدان مثل CanisterSprawl قد تكون بالفعل في الداخل. اجردوا كل runner CI/CD — GitHub Actions و GitLab و Jenkins و CircleCI والداخلي — وصنّفوا حسب فترة العمر. تتلقى runners الثابتة خطة وقف تشغيل لمدة 90 يوماً؛ تتلقى runners العابرة مراجعة تصلب. تكلفة الترحيل حقيقية (تغييرات على أنماط الكاش، حقن الأسرار، وتبعيات وقت البناء) لكن البديل هو دفعها أثناء الاستجابة للحوادث بعد الاختراق، حين لا يكون هناك وقت لترحيل سلس.
2. افرضوا npm provenance والتحقق من Sigstore لتبعيات الإنتاج
حدّدوا سياسة ثنائية: أي حزمة على القائمة البيضاء لبناء الإنتاج يجب أن تنشر مع provenance. تتلقى التبعيات الحرجة من Tier-1 (إطار عملكم، ORM الأساسي، مكتبة المصادقة) تحققاً من provenance عند التثبيت، مع فشل البناء إن كانت مفقودة. تتلقى تبعيات Tier-2 provenance مفضّلة. تتلقى تبعيات Tier-3 الأدواتية إعفاء مع مراجعة ربع سنوية. هذا يفرض موقف ثقة متعمّد بدلاً من الافتراضي الضمني “نثبّت ما يُحلّ”. لن يصل النظام البيئي لـ provenance إلى 90% من تبني المشرفين دون ضغط المستهلكين؛ سياستكم جزء من هذا الضغط.
3. استبدلوا رموز CI/CD طويلة الأمد بـ OIDC بحلول نهاية الربع الثاني من 2026
الرموز طويلة الأمد في CI/CD هي جائزة جمع بيانات الاعتماد لعام 2026. دقّقوا كل رمز ثابت في تكوين CI/CD لديكم: مفاتيح وصول AWS، PAT لـ GitHub، رموز npm، كلمات مرور Docker Hub، مفاتيح حساب خدمة GCP. استبدلوا كلاً منها ببيان اعتماد قصير الأمد صادر عن OIDC، مدعوماً أصلياً من AWS STS و GCP Workload Identity Federation و Azure Federated Credentials ونقطة نهاية رمز OIDC في GitHub. الترحيل مشروع يستغرق 4-8 أسابيع لمنظمة هندسية متوسطة الحجم نموذجية؛ عاملوه كأولوية للربع الثاني من 2026، لا backlog لعام 2027.
4. افرضوا قائمة حزم مسموح بها مع حظر وقت البناء
ولّدوا قائمة بيضاء أساسية من شجرة تبعيات الإنتاج الحالية لديكم. ضعوا علامة على كل تثبيت حزمة في CI يحلّ إلى إصدار خارج القائمة البيضاء. احظروا البناء افتراضياً؛ اطلبوا موافقة صريحة من فريق الأمن لتوسيع القائمة البيضاء. شحنت حادثتا xinference و pgserve كلتاهما الكود الخبيث عبر مسار npm install القياسي — كانت قائمة بيضاء ستحظر التثبيت قبل تنفيذ خطاف postinstall. أدوات مثل Socket و Phylum تؤتمت ذلك؛ الجزء الأصعب هو الانضباط التشغيلي لفرض الحظر فعلياً بدلاً من تجاوزه.
5. شغّلوا تمرين محاكاة محدداً حول اختراق رمز المشرف
تركّز معظم تمارين الأمن في 2026 ما زالت على سيناريوهات اختراق المحيط. أضيفوا تمريناً مخصصاً لاختراق رمز المشرف: تبعية npm حرجة تنشر إصداراً خبيثاً تحت بيانات اعتماد مشرف صالحة. اعبروا الكشف (كيف تلاحظون خلال أقل من ساعة؟)، الاحتواء (أي خدمات لاحقة تسحب هذه التبعية في بنائها التالي؟)، والجنائي (إلى أي بيانات اعتماد في بيئة CI/CD لديكم وصلت التبعية؟). سيكشف التمرين عن ثغرات في تحققكم من provenance، تغطية القائمة البيضاء، وإجراءات تدوير بيانات الاعتماد — وهذا هو الهدف.
أين تحطّ تهديد سلسلة التوريد في خريطة مخاطر 2026
أسبوع أبريل 2026 ليس استثناءً؛ إنه الإيقاع الجديد. تقارير Bleeping Computer حول هجمات npm ذاتية الانتشار ورد Bitwarden على حادث Checkmarx كلاهما يشير إلى نفس الواقع التشغيلي — حصّادو بيانات الاعتماد هم الآن مشاريع مستدامة، بأدوات قابلة لإعادة الاستخدام و C2 لا مركزية. تشير إضافات CISA المستمرة إلى KEV وتنبيهات سلسلة التوريد إلى أن الموقف الفيدرالي يتحول من “استشاري” إلى “توجيه ملزم” لمشغّلي البنية التحتية الحرجة. قادة الهندسة الذين يعاملون كدسة الدفاع ذات المكونات الستة كخارطة طريق لـ 2027 سيقضون 2026 في الاستجابة للحوادث. الفرق التي تغلقها بحلول نهاية الربع الثالث من 2026 ستمتلك النظافة التشغيلية لاستيعاب الحملة التالية دون كشف عام.
الأسئلة الشائعة
ما الفرق بين Shai-Hulud و CanisterSprawl واختراق axios؟
يشير Shai-Hulud إلى نمط دودة npm ذاتية الانتشار الأوسع الذي لوحظ أول مرة أواخر 2025 ويستمر خلال 2026؛ CanisterSprawl هي حملة 21 أبريل 2026 التي ضربت حزمة pgserve في npm باستخدام بنية تحتية canister ICP لـ C2؛ اختراق axios كان حادثاً منفصلاً أبلغت عنه CISA في 20 أبريل 2026 يؤثر على مكتبة axios HTTP المستخدمة على نطاق واسع. الثلاثة تمثل التحول الاستراتيجي لجمع بيانات الاعتماد في هجمات سلسلة التوريد.
لماذا تعدّ npm provenance مهمة جداً وما الذي تتحقق منه فعلاً؟
npm provenance، المدعومة بـ Sigstore، تتيح لمستهلك حزمة التحقق تشفيرياً من أن حزمة نُشرت من قبل workflow محدد لـ GitHub Actions على commit محدد. تهزم الهجوم النموذجي حيث يستخدم رمز مشرف مسروق لنشر إصدار خبيث من laptop أو بيئة يتحكم بها المهاجم، لأن المنتج المنشور لن يحمل بيانات وصفية صالحة لـ provenance. اعتباراً من بداية أبريل 2026، كان تبني provenance أقل من 35% بحسب المشرفين.
هل runners المستضافة من GitHub أكثر أماناً من runners المستضافة ذاتياً؟
عموماً نعم، لأن runners المستضافة من GitHub عابرة افتراضياً — كل مهمة تعمل على VM جديدة تُتلف بعدها. غالباً ما تُكوّن runners المستضافة ذاتياً كثابتة (آلة افتراضية طويلة الأمد بحساب خدمة)، مما يسمح لبيانات الاعتماد والقطع الأثرية بالتسرب عبر المهام ويخلق مسار الانتشار بين المهام الذي تعتمد عليه ديدان مثل CanisterSprawl. يمكن جعل runners المستضافة ذاتياً آمنة بأنماط حاوية عابرة، لكن التكوينات الافتراضية أعلى مخاطرة.
—
المصادر والقراءات الإضافية
- Supply Chain Compromise Impacts axios Node Package Manager — CISA
- Three Supply Chain Campaigns Hit npm, PyPI, and Docker Hub in 48 Hours — GitGuardian
- Bitwarden Statement on Checkmarx Supply Chain Incident — Bitwarden Community
- New npm Supply Chain Attack Self-Spreads to Steal Auth Tokens — Bleeping Computer













