🚀 أصبحت CloudSek أول شركة للأمن السيبراني من أصل هندي تتلقى استثمارات منها ولاية أمريكية صندوق
اقرأ المزيد

هناك فئة من السخرية في هذا المجال تتوقف عن كونها مضحكة بمجرد تتبعها عبر ثلاث سنوات مالية متتالية، وكان البرنامج الأكثر استهدافًا بشكل منهجي في سلسلة توريد البرامج هو برنامج الأمان نفسه. ليست واجهات برمجة تطبيقات الدفع الخاصة بالتكنولوجيا المالية. ليس مزودي اتحاد الهوية. ماسحات نقاط الضعف الأمنية. أدوات التحقق من سلامة CI/CD. مكتبة ضغط مدمجة في أنابيب مصادقة SSH لما يقرب من نصف أسطول Linux على كوكب الأرض.
هذا ليس حظًا سيئًا. إنه اختيار الهدف. وتستحق معايير الاختيار الفحص بعناية، لأنها تكشف شيئًا عن تطور المهاجم الذي يميل معظم البائعين الذين يبلغون عن حوادث البائعين لأسباب تجارية واضحة إلى التقليل من شأنه.
تغطي هذه المدونة أربعة تنازلات مؤكدة ومتميزة في سلسلة التوريد خلال مارس 2024 ومارس 2025 ومارس 2026، حيث انفجر الأخيران في غضون 24 ساعة من بعضهما البعض في نفس الشهر. تم توثيق الحوادث الفردية في مكان آخر. لم يتم نشر الارتباطات المرسومة هنا، على حد علمي، في هذا النموذج. سأوضح على وجه التحديد أين أعتقد أن الصناعة أخطأت في التأطير.
في 28 مارس 2024، لاحظ أندريس فرويند، مهندس Microsoft الذي يقوم بقياس شيء لا علاقة له بنظام Debian sid الشخصي الخاص به، تأخر مصادقة SSH بحوالي 500 مللي ثانية. هذه الملاحظة هي السبب في أننا لا نكتب نوعًا مختلفًا تمامًا من الاستعادية في الوقت الحالي. سجل الباب الخلفي المضمن في XZ Utils 5.6.0 و 5.6.1 CVSS 10.0 وتم القبض عليه قبل ثلاثة أسابيع من الهبوط المستقر في ديبيان وفيدورا.
يعمل ممثل التهديد تحت عنوان GitHub JiaT75، ويقدم باسم «جيا تان». تم إنشاء الحساب في أكتوبر 2021. ما تبع ذلك كان أكثر من 30 شهرًا من كونك مساهمًا مفيدًا حقًا. إصلاحات الأخطاء وتحسينات الأداء والمشاركة المختصة تقنيًا في سلاسل العلاقات العامة. اجتاز الحساب مراجعة الكود بشكل متكرر لأن الرمز كان في الواقع صحيحًا.
هذا هو الجزء الذي تقضي معظم عمليات الكتابة فيه جملة واحدة: قام المهاجم بعمل حقيقي. هذا ليس عرضيًا للعملية، إنها العملية. المعالم الرئيسية:
حملة الضغط هي أسلوب HUMINT في الكتب المدرسية، يصنع إجماعًا اجتماعيًا حول الهدف، ويتم تطبيقه على حوكمة المشاريع مفتوحة المصدر. منذ ذلك الحين، تحدث Lasse Collin علنًا عن ضغوط الصيانة الفردية تحت ضغط اجتماعي نشط.
تستحق آلية الحقن في وقت البناء مزيدًا من الاهتمام مما حصلت عليه في عام 2024 بأثر رجعي. أثناء الصنع، bad-3-lzma2.xz الفاسد تم إزالة الغموض عن ملف الاختبار باستخدام أداة Unix tr، وهي أداة ترجمة سلسلة بدون ارتباط بعمليات التشفير، مما يعني أنها لا تطلق أي استعلامات مسح وقت الإنشاء من أي ماسح ضوئي شائع الاستخدام. قام البرنامج النصي bash الناتج بحقن ملف كائن تم تجميعه مسبقًا في مرحلة إنشاء liblzma.
تم ربط الزرع النهائي فك تشفير RSA_Public_التشفير القرار في SSHD. في البنيات المرتبطة بالنظام حيث يربط libsystemd liblzma، أضعف الباب الخلفي مصادقة المفتاح العام - أوراكل المصادقة في مكدس SSH. قبل تسليح نفسها، قامت بإجراء فحوصات البيئة: بنية x86_64، وجود systemd، libsystemd في خريطة ذاكرة العملية. هذه الخصوصية هي سبب عدم اكتشافها في إصدارات macOS وبيئات CI غير النظامية أثناء اختبار ما قبل الإصدار.
في 14 مارس 2025، إجراءات tj/الملفات المتغيرة، مضمن في أكثر من 23,000 مستودع، تم العثور عليه وهو ينفذ نصًا برمجيًا خبيثًا من Python على مشغلات CI. وضعت التقارير الأولية هذا كحل وسط أحادي الإجراء.
ال كلب المراجعة (جيت هاب) تم اختراق org من خلال نظام دعوة الفريق الآلي الخاص بـ GitHub، وفي ظل تكوينات معينة للمستودعات، يتلقى المساهمون الذين يصلون إلى حدود النشاط دعوات الفريق التلقائية مع إمكانية الوصول للكتابة. قام المهاجم بإلغاء هذا الحد، وتلقى دعوة إلى @reviewdog /actions-maintainer، ودفع بارتكاب ضار، وأعاد توجيه علامة v1. كل شيء في المراحل النهائية تبعه تغيير مؤشر علامة واحدة.

الخطوة 1 - إعداد كلب المراجعة/الإجراء هو إجراء المنفعة - يقوم بتثبيت أداة فحص Reviewdog على عداء CI. إنها لبنة أساسية تعتمد عليها إجراءات المراجعة الأخرى.
الخطوة 2 - تستدعي أخطاء reviewdog/action-typos (وإجراءات reviewdog الأخرى) إعداد الإجراء أولاً لتثبيت الأداة قبل القيام بعملهم الخاص. لذلك عندما تم تسميم إعداد الإجراءات، كل إجراء استعمل لقد ورثت الشفرة الخبيثة بصمت.
الخطوة 3 - تستخدم ملفات tj-actions/eslint-changed-files إجراءات reviewdog داخليًا لمسح الملفات التي تم تغييرها، لذلك تم سحب إعداد الإجراء المسموم بشكل انتقالي.
الخطوة 4 - تعد tj-actions/الملفات المتغيرة واحدة من أكثر إجراءات GitHub استخدامًا في الوجود - فهي تكتشف الملفات التي تم تغييرها في العلاقات العامة. يعتمد الأمر داخليًا على الملفات التي تم تغييرها بواسطة eslint، لذا فقد جذب السم أيضًا.
الخطوة 5 - يحتوي أكثر من 23,000 مستودع على إجراءات tj-action/ملفات متغيرة في عمليات سير العمل الخاصة بهم. لم يغير أي منهم سطرًا واحدًا من الكود الخاص به. لقد قاموا فقط بتشغيل خطوط أنابيب CI العادية الخاصة بهم وتم تنفيذ حمولة تجريف الذاكرة الخبيثة بصمت على المتسابقين.
النقطة الأساسية: لم يلمس المهاجم أبدًا المستودعات المتأثرة البالغ عددها 23000 مستودع بشكل مباشر. لقد عرضوا للخطر إجراءً تأسيسيًا واحدًا يعتمد عليه كل شيء آخر، مثل تسميم محطة معالجة المياه بدلاً من طرق 23,000 باب فردي.
أجرى البرنامج النصي الضار وصولاً مباشرًا إلى ذاكرة العملية عبر /proc/ {PID} /mem في عملية GitHub Actions Runner:
الذاكرة الأولية الممسوحة ضوئيًا بواسطة Regex لبنية JSON السرية الداخلية لـ GitHub: «الاسم»: {«القيمة»:»...» ، «هو سر»: صحيح}
ثلاث موجات، ثلاثة أنماط فشل مختلفة
استغل الروبوت المستقل، hackerbot-claw، مشغل pull_request_target في سير عمل إجراءات GitHub الخاص بـ Trivy. على عكس حدث pull_request القياسي، يقوم هذا المشغل بتنفيذ سير عمل الفرع الأساسي مع الوصول الكامل لنطاق الكتابة إلى أسرار المستودع عند فتح PR خارجي. تم استخراج رمز الوصول الشخصي المميز.
كشفت شركة Aqua علنًا عن Wave 1 وقامت بتدوير أوراق الاعتماد في 1 مارس. أغفل التدوير الرمز المميز لحساب خدمة aqua-bot، والذي تم تزويده بأذونات توقيع الإصدار المتطابقة لـ PAT التي تم تدويرها. احتفظ المهاجم بالوصول المتبقي لمدة 18 يومًا من خلال رمز الروبوت الذي لم يتم إبطاله.
باستخدام بيانات اعتماد aqua-bot المحتفظ بها، دفع المهاجم بقوة 76 من 77 علامة إصدار في trivy-action وجميع علامات الإصدار السبعة في setup-trivy إلى ارتكاب ضار، مع نشر trivy v0.69.4 في نفس الوقت من خلال التشغيل الآلي للإصدار المخترق. كانت العلامة النظيفة الوحيدة الباقية - v0.35.0 - ترتكز على ميزة الاشتراك في الإصدارات غير القابلة للتغيير في GitHub.
الطب الشرعي للحمولة: دلتا entrypoint.sh
زيادة حجم الملف بمقدار 6.16 ×. لم تظهر واجهة مستخدم إصدار GitHub أي مؤشر على هذا التغيير. لا توجد أداة SCA سائدة تقوم بمراقبة سلامة الملفات الأثرية على نقاط إدخال الإجراءات عبر عمليات تشغيل خطوط الأنابيب.
نفذت الكتلة التي تم حقنها المكونة من 105 أسطر مسحًا كاملاً لبيانات الاعتماد قبل استدعاء الماسح الضوئي الشرعي، لذلك بدا أن خطوط الأنابيب تنجح بشكل طبيعي أثناء استنزافها. تشعبت عملية المسح حسب نوع العداء: حصل المتسابقون المستضافون على GitHub على تجريف ذاكرة العملية (تقنية مماثلة لإجراءات tj)؛ حصل المتسابقون المستضافون ذاتيًا على شبكة بحث واسعة لنظام الملفات تستهدف مفاتيح SSH وبيانات اعتماد AWS/GCP/Azure ورموز Kubernetes،
تكوينات Docker وحالة Terraform وأسرار Helm وملفات محفظة العملات المشفرة. تم تشفير البيانات المحصودة باستخدام AES-256-CBC تحت مفتاح جلسة ملفوف بـ RSA-4096، مما يجعل payload.enc غير قابل للاسترداد بدون المفتاح الخاص للمهاجم حتى إذا تم التقاط الملف الثنائي وتحليله.
بلوكتشين سي ٢: مشكلة البنية التحتية غير القابلة للإزالة
انخفض الملف الثنائي trivy v0.69.4 ~/.config/sysmon.py، الذي سمي بالاندماج في البيئات التي تعمل بأدوات النظام الشرعية، ونام لمدة 5 دقائق (التهرب من وضع الحماية)، ثم استطلع C2 في:
hxxps: //tdtqy-oyaaa-aaae-af2dq-cai.raw.icp0.io
يتم تقديم نقطة النهاية هذه بواسطة بلوكتشين كمبيوتر الإنترنت (ICP)، الذي تديره مؤسسة DFINITY. لا يوجد مسجل. لا يوجد مشغل DNS. لا يوجد مزود استضافة. لا يوجد عنوان abuse@ ينتج عنه إزالة. لا يعمل دليل الاستجابة للحوادث القياسي وشكوى المسجل ومسار BGP الفارغ وإشعار CISA ضد البنية التحتية التي يستضيفها ICP حسب التصميم. يعمل حظر *.icp0.io في محيط الشبكة، ولكنه سيؤدي إلى زيادة الأضرار الجانبية مع نمو تطبيقات ICP الشرعية في النشر.
تم النظر في مسار exfil الاحتياطي بنفس القدر: إذا تعذر الوصول إلى C2 الأساسي، فقد أنشأت البرامج الضارة مستودعًا عامًا على GitHub باسم tpcp-docs في المؤسسة الضحية، ونشرت إصدارًا مختومًا بالوقت، وحمّلت حزمة بيانات الاعتماد المشفرة بـ RSA كأصل إصدار، وتوجيه الاستخراج عبر objects.githubusercontent.com، وهو مجال لا يمكن للمنظمات حظره عمليًا دون كسر خطوط أنابيب CI/CD الخاصة بها.
LiteLM، وهي واحدة من مكتبات Python الأكثر استخدامًا لتوجيه المكالمات عبر OpenAI و Anthropic و Cohere وواجهات برمجة تطبيقات LLM الأخرى، لديها إصدارات v1.82.7 و v1.82.8 تم نشرها على PyPI مع حمولة ضارة. تم تحميل الحزم بدون علامة GitHub أو إصدار مطابق، مما يعني أنه تم تجاوز خط أنابيب الإصدار القياسي تمامًا وتم دفع المهاجم مباشرة إلى سجل الحزمة باستخدام بيانات اعتماد المشرف المخترقة.
تم إغلاق قضية GitHub التي أثارها المجتمع باعتبارها «غير مخطط لها» في غضون ساعات وتم إغراقها على الفور بمئات حسابات الروبوتات لتخفيف خيط المناقشة - وهي تقنية قمع تشير إلى الأمن التشغيلي المخطط له مسبقًا، وليس الفاعل الانتهازي.
آلية التنفيذ التلقائي .pth
هذا هو التصعيد الفني الذي يميز هجوم litelm عن كل ما قبله في هذا التقرير. تطلبت الهجمات السابقة تنفيذ خط أنابيب CI/CD أو جلسة SSH نشطة لتشغيل الحمولة. استخدمت برامج ليتيلم الخبيثة ملف بايثون .pth المسمى litellm_init.pth.
ملفات Python .pth هي ملفات تكوين المسار تتم معالجتها تلقائيًا بواسطة مترجم Python عند كل بدء تشغيل، ولا يوجد بيان استيراد، ولا توجد مكالمة صريحة، ولا يلزم إجراء المستخدم. تعمل أي عملية Python يتم تشغيلها على جهاز مع تثبيت الحزمة على تشغيل الحمولة بصمت وتلقائيًا من لحظة التثبيت. يتضمن ذلك أجهزة الكمبيوتر المحمولة المطورة محليًا، وليس فقط أجهزة CI runners.
تخلق الآلية أثرًا جانبيًا غير مقصود للقنبلة الشوكية: ينتج ملف.pth عملية Python فرعية عبر Subprocess.popen، والتي تؤدي في حد ذاتها إلى تشغيل نفس ملف.pth عند بدء التشغيل، مما يؤدي إلى تقسيم العمليات بشكل كبير حتى يتعطل الجهاز. كان هذا خطأ في البرامج الضارة، وكان من الممكن أن يؤدي ملف القفل أو فحص PID إلى تشغيله بصمت إلى أجل غير مسمى. ومن المفارقات أن الحادث هو ما لفت الانتباه.
لا تحتوي ثلاثة نواقل هجوم محددة من هذه الحوادث على مخطط هجوم نظيف:
1. تصعيد امتياز pull_request_target
إن استغلال مشغل pull_request_target الخاص بـ GitHub للوصول إلى أسرار الفرع الأساسي من علاقات عامة خارجية غير موثوقة هو أسلوب وصول أولي خاص بـ CI/CD. T1195.001 هو أقرب تعيين ولكنه يصف حل وسط التبعية، وليس إساءة استخدام مشغل سير العمل. لا توجد تقنية ATTACK لـ «إساءة استخدام نطاق امتياز مشغل سير عمل CI/CD.»
2. انتشار التبعية المتعدية كحركة جانبية
لم تتضمن سلسلة القتل reviewdog → tj-actions أي سرقة لبيانات الاعتماد، ولا محور للشبكة، ولا ثغرة مستغلة بالمعنى التقليدي. لقد كان ميراثًا خالصًا للثقة من خلال الرسم البياني للتبعية. T1199 (علاقة موثوقة) تقترب من ذلك، ولكن تم تصميم هذه التقنية لعلاقات موفري تكنولوجيا المعلومات من الأطراف الثالثة، وليس الرسوم البيانية لتبعية الحزمة الآلية. التمييز مهم لهندسة الكشف.
3. C2 المستضافة بواسطة البلوك تشين
T1102 (خدمة الويب) هي أقرب خريطة لـ ICP blockchain C2، ولكن تم تصميم T1102 لاستخدام المهاجمين لخدمات الويب المشروعة مثل Twitter أو Pastebin. تختلف البنية التحتية لـ ICP blockchain بشكل قاطع، فهي لا مركزية وغير قابلة للتغيير وليس لها مسار للإبلاغ عن إساءة الاستخدام. لا يتم تسجيل ملف تعريف مقاومة الإزالة الخاص بـ blockchain C2 في أي مكان في إطار ATTACK الحالي. هذه فجوة حقيقية ستحتاج MITRE إلى معالجتها مع انتشار هذه التقنية.
أدوات XZ: مارس 2024. الإجراءات التجارية/المراجعة: مارس 2025. تريفي/أكوا: مارس 2026.
قد يكون بعض هذا توقيت الكشف بدلاً من توقيت التفجير، وتستغرق التحقيقات أسابيع. ولكن هناك حجة هيكلية: شهر مارس هو الوقت الذي يصل فيه ضغط دورة الإصدار في الربع الأول إلى ذروته، وعندما يتم جذب المشرفين الأساسيين للسفر في المؤتمرات (تقع كل من RSA و KubeCon EU و S4 في الربع الأول من الربع الأول إلى الربع الثاني)، وعندما تعني دورات النشر في الربع الأول للمؤسسات أن الاعتماد النهائي للإصدارات الجديدة يصل إلى أعلى مستوياته السنوية. سيجد عامل التهديد الذي يستخدم تردد التزام GitHub ووقت استجابة مراجعة العلاقات العامة كبروكسيات الانتباه تجريبيًا أن شهر مارس هو نافذة الاستغلال المثلى. تشير ثلاث مسيرات متتالية إلى أن هذه الفرضية تستحق أن تؤخذ على محمل الجد.
تشترك المشاريع الثلاثة المخترقة، xz-utils (المضمنة في sshd عبر liblzma)، و trivy-action (ماسح الأمان)، و tj-actions/الملفات المتغيرة (اكتشاف تغيير CI)، في خاصية لا تمتلكها مكتبات التطبيقات: فهي تعمل بثقة ضمنية مرتفعة عند التقاطع المميز لسطح النشر بأكمله للمؤسسة.
لا يقوم ماسح الأمان المخترق بجمع بيانات اعتماد خط أنابيب واحد. إنه يحصد بيانات الاعتماد لكل هدف يقوم بمسحه نيابة عن المؤسسة، وسجلات الحاويات، والحسابات السحابية، وتكوينات IaC، ومجموعات Kubernetes. إن مضاعف نطاق الانفجار لأداة الأمان المخترقة أعلى بشكل قاطع من مكتبة التطبيقات المخترقة. لقد اكتشفت الجهات الفاعلة في مجال التهديد ذلك بشكل واضح. كان مجتمع الدفاع أبطأ في التعبير عنها.
يصف التقدم من الزرع السلبي ← حذف السجل المؤقت ← HTTPS المطبعي ← GitHub CDN ← blockchain C2 بحثًا منهجيًا عن البنية التحتية المقاومة للإزالة. ICP هي نقطة النهاية الحالية لهذا البحث.
في كل من tj-actions و Trivy، تركت المعالجة اللاحقة للإفصاح الوصول المتبقي سليمًا. أكدت شركة أكوا سيكيوريتي أن رمز أكوا بوت نجا من اكتساح الدوران في 1 مارس. هذا ليس فشلًا خاصًا بـ Aqua، فهو يعكس كيفية إدارة رموز الروبوت عالميًا: يتم توفيرها مرة واحدة، ودمجها في أسرار المستودع، واستبعادها من نظام التناوب المطبق على بيانات الاعتماد البشرية.
تعيش الروبوتات البشرية في مديرين سريين لديهم مسارات تدقيق. الرموز المميزة لحساب الخدمة الآلية ليس لها مالك، ولا سياسة انتهاء صلاحية، وهي دائمًا أول شيء يتم تفويته في عملية التدوير. الإصلاح الهيكلي واضح ولم يتم تنفيذه على نطاق واسع: يجب أن يتم تدوير رموز الروبوت التي تم تحديد نطاقها للإصدار والوصول إلى كتابة العلامات وفقًا لنفس الجدول الزمني لبيانات الاعتماد البشرية المميزة ويجب أن تكون أول عملية تدقيق في أي مراجعة بعد التسوية.
حمل ارتكاب Trivy الضار طوابع زمنية للمؤلف يعود تاريخها إلى 2024-07-09، تم تعيينها عبر GIT_AUTHOR_DATE و GIT_COMMITTER_DATE، مع نسخ اسم المؤلف من ملتزم سابق شرعي ورسالة التزام مكتوب عليها «ترقية التوافه إلى v0.53.0 (#369)». عرضت واجهة مستخدم إصدار GitHub هذه البيانات الوصفية بشكل متماثل قبل وبعد إعادة تعيين العلامة. لا يوجد مؤشر مرئي يعكس التغيير.
تعمل أي عملية إعادة بناء للجدول الزمني للاستجابة للحوادث ترتكز على بيانات GitHub web UI الوصفية مع دليل يمكن للمهاجم تزويره باستخدام أمر shell واحد. المرساة الوحيدة الموثوقة من الناحية الجنائية هي SHA الملتزم، الذي تم التحقق منه مقابل شهادات مصدر SLSA، أو سجلات شفافية Sigstore، أو سجلات الإصدار الموقعة.
أسقط ثنائي تريفي (v0.69.4) بابًا خلفيًا عند ~/.config/sysmon.py. يقوم برنامج litell الضار بتثبيت الثبات عند ~/.config/sysmon/sysmon.py مع خدمة مستخدم systemd مطابقة. تتطابق اصطلاح التسمية وهيكل الدليل ونظام التشفير AES-256-CBC + RSA-4096 وحصاد نقطة نهاية البيانات الوصفية لـ IMDS في كلا الحادثتين - وتم تفجير كلا الحادثين في مارس 2026، في غضون خمسة أيام من بعضهما البعض.
هذا هو إما نفس عامل التهديد الذي يعيد استخدام نفس إطار الأدوات عبر هدفين منفصلين، أو ممثلين مختلفين باستخدام مجموعة برامج ضارة تجارية/سرية مشتركة. أي من التفسيرين أكثر إثارة للقلق من الصدفة. يجب الآن التعامل مع نمط تسمية sysmon.py كمؤشر لمجموعة التهديدات، وأي ملف يطابق ~/.config/sysmon*.py على جهاز مطور أو CI runner يتطلب الفرز الفوري.
قم بتسجيل حجم البايت لكل إجراء GitHub Action entrypoint.sh تم تنزيله لكل {action} @ {sha} في وقت تنفيذ خط الأنابيب. تنبيه بشأن الانحرافات التي تتجاوز 50٪ عن خط الأساس المحدد. كان من الممكن اكتشاف حقنة Trivy، وهي زيادة في الحجم بمقدار 6.16 ×، قبل سرقة بيانات اعتماد واحدة. هذا غلاف مكون من 10 أسطر حول حذاء الجري الخاص بك. لم يقم أحد تقريبًا ببنائه.
لا يمكن الوصول إلى ارتكاب Trivy الضار e0198fd2b6e1679e36d32933941182d9afa82f6f من الفرع الرئيسي، فهو موجود فقط لأن العلامة تشير إليه. تعرض واجهة برمجة تطبيقات GitHub إمكانية الوصول إلى الالتزام.
ليس لدى المتسابقين الذين تستضيفهم GitHub أي سبب مشروع للاتصال بـ*.icp0.io أو *.ic0.app. كان الحظر على مستوى الشبكة على الشبكات الفرعية لـ CI runner بالإضافة إلى تسجيل استعلام DNS لهذه المجالات من شأنه أن يوفر اكتشافًا مسبقًا للاستغلال لدورة استطلاع C2 الخاصة بـ Trivy binary.
ضع علامة على أي حدث git.push حيث لم تظهر المجموعة (hashed_token، بادئة الشبكة الفرعية /16، target_repo) في خط الأساس السابق لمدة 7 أيام. نادرًا ما يقدم نشاط المطور الشرعي جميع الأبعاد الثلاثة في وقت واحد. سيتم استخدام الرموز المسروقة من البنية التحتية التي يتحكم فيها المهاجم للدفع إلى مستودعات غير مألوفة.
تجاوز هجوم litellm GitHub تمامًا عن طريق التحميل مباشرة إلى PyPI باستخدام بيانات اعتماد المشرف المخترقة. راقب ملفات قفل تبعية Python الخاصة بك لأي إصدار حزمة لا يحتوي على علامة إصدار GitHub المقابلة أو شهادة المصدر الموقعة على PyPI. يمكن لأدوات مثل pip-audit جنبًا إلى جنب مع واجهة برمجة تطبيقات مصدر PyPI الإبلاغ عن حالات عدم التطابق بين الإصدار والإصدار. يجب التعامل مع أي إصدار حزمة على PyPI بدون إصدار GitHub مطابق على أنه لم يتم التحقق منه حتى يثبت خلاف ذلك.
العلامات هي مؤشرات قابلة للتغيير. يمكن للمهاجم الذي لديه حق الوصول للكتابة في الريبو إعادة توجيه العلامة بصمت إلى شفرة ضارة باستخدام طابع زمني مزور ومؤشر صفر لواجهة المستخدم. يتم إصلاح الالتزام الكامل لـ SHA بشكل مشفر ويزيل فئة هجوم التسمم بالعلامات بأكملها.
يتم تدوير المسارات البشرية؛ يتم نسيان رموز الروبوت. في كل من حوادث tj-actions و Trivy، أعطت الرموز المميزة لحساب الخدمة غير المبطلة ذات الأذونات المتطابقة المهاجمين وصولاً مستمرًا بعد الكشف العام. احتفظ بمخزون مخصص وقم بتدوير رموز الروبوت في نفس دورة 90 يومًا مثل بيانات الاعتماد البشرية المميزة.
وهو يحمل بيانات اعتماد متزامنة للحسابات السحابية وسجلات الحاويات ومجموعات Kubernetes وتكوينات IaC، وكل شيء يقوم بمسحه نيابة عنك. لا يكشف الماسح الضوئي المخترق عن خط أنابيب واحد؛ إنه يعرض كل هدف يُسمح لخط الأنابيب بالوصول إليه.
تضخمت نقطة إدخال Trivy الضارة من 2,855 إلى 17592 بايت، بزيادة قدرها 6.16 مرة لم يتم وضع علامة عليها لأي أداة. كان من الممكن أن يكتشف خط الأساس البسيط للحجم لكل {action} @ {sha}، الذي ينبه إلى الانحرافات التي تزيد عن 50٪، قبل سرقة بيانات اعتماد واحدة.
أصاب هجوم tj-actions 23,000 مستودع من خلال إجراء المنفعة بثلاثة مستويات من التبعية في المنبع لم يشر إليها أي من هذه الفرق على الإطلاق. قم بتعيين شجرة تبعية الإجراء المتعدي الكاملة الخاصة بك وقم بوضع علامة على أي شيء باستخدام حق الوصول للكتابة أو تنفيذ shell التعسفي الذي لا يمكنك حسابه بشكل مباشر.
وقد تمت استضافة تريفي سي 2 على بلوكشين ICP على العنوان *.icp0.io. لا يوجد مسجل ولا مزود استضافة ولا يوجد مسار للإزالة. يُعد حظر طبقة الشبكة هو عنصر التحكم الوحيد المتاح، ويجب أن يكون موجودًا قبل وقوع الحادث، وليس استجابة له.
يمكن خداع GIT_AUTHOR_DATE و GIT_COMMITTER_DATE بحرية. يعود تاريخ ارتكاب Trivy الضار إلى عام 2024 مع اسم مؤلف منسوخ ورسالة معقولة. بالنسبة لأي تحقيق بعد الحادث، يمكن الوثوق فقط بالالتزام الذي تم التحقق من صحة SHA مقابل مصدر SLSA أو سجلات شفافية Sigstore.
على عكس pull_request، يقوم هذا المشغل بتنفيذ عمليات سير عمل الفرع الأساسي بنطاق سري كامل حتى على الانقسامات من المساهمين غير الموثوق بهم. قم بمراجعة كل سير عمل باستخدام هذا المشغل وتطبيق تحديد النطاق الأقل امتيازًا. إذا لم يكن هناك مبرر موثق لاستخدامه، فانتقل إلى pull_request.
ثلاث مسيرات متتالية، وأربع تفجيرات مؤكدة لسلسلة التوريد، اثنتان في مارس 2026 وحده، والثانية في اليوم التالي لنشر هذا التقرير. يتقارب ضغط الإطلاق في الربع الأول وسفر الصيانة للمؤتمرات ودورات ذروة النشر في المؤسسة في نافذة استغلال موثوقة. قم بتشغيل تدقيق رمز الروبوت قبل الربع، وقم بزيادة مراقبة التبعية، وأضف تدقيقًا إضافيًا للمراجعة إلى مستودعات أدوات الأمان قبل حلول شهر مارس.
تم تصميم حل وسط reviewdog خصيصًا للوصول إلى خط أنابيب CI الخاص بـ Coinbase. كانت المستودعات الأخرى البالغ عددها 23000 التي تم حصادها على طول الطريق عبارة عن غطاء جانبي. إذا قام خط الأنابيب الخاص بك بتنفيذ إجراء مخترق أثناء نافذة التعرض، فقد تم أخذ بيانات الاعتماد الخاصة بك، بغض النظر عما إذا كنت الهدف المقصود أم لا. تقييمات خرق النطاق وفقًا لذلك.
هذه هي الملاحظة التي يجب أن تكون في كل ملخص تنفيذي وليست كذلك: شركة Aqua Security، وهي شركة منتجها الأساسي هو أمن سلسلة توريد الحاويات والبرامج، تعرضت سلسلة التوريد الخاصة بها للخطر بطريقة لم تكتشفها أدواتها الخاصة. اكتشفت CrowdStrike تسوية Trivy من خلال التشوهات السلوكية في خطوط أنابيب العملاء، وليس من خلال البنية التحتية للمسح الضوئي الخاصة بـ Aqua. تم اكتشاف tj-actions بواسطة باحث تابع لجهة خارجية، وليس من قبل فريق أمان GitHub أو أي من أدوات الأمان الخاصة بالمنظمات المتأثرة. تم اكتشاف XZ Utils من قبل مهندس يلاحظ وجود خلل في الأداء أثناء القياس غير ذي الصلة. في جميع الحالات الثلاث، كان الاكتشاف عرضيًا أو خارجيًا أو سلوكيًا، ولم يكن أبدًا نتيجة لضوابط الأمان التي كانت موجودة اسميًا. تم اكتشاف مشكلة litellm لأن خطأ القنبلة الشوكية أدى إلى تعطل الآلات، وليس لأن أي أداة أمنية قامت بوضع علامة على الحزمة الضارة. كان من الممكن أن يعمل التنفيذ الأنظف بصمت إلى أجل غير مسمى. خمس حوادث، بدون أي اكتشافات استباقية من خلال عناصر التحكم الأمنية المعينة.
فوجئت بحدوث ذلك في مارس مرة أخرى؟ من الواضح أن الجهات الفاعلة في مجال التهديد لديها تخطيط ربع سنوي أفضل من معظم الفرق الأمنية. ثلاث سنوات، ثلاث مسيرات، ثلاث تنازلات، ولكن بالتأكيد، دعونا نحدد موعد اختبار القلم للربع الرابع. كانت الأداة المصممة لحماية أسرارك هي التي تسرقها، ولم يغض أحد الطرف. ارتكب المهاجم رمزًا نظيفًا بصبر لمدة عامين ونصف؛ وظل التصحيح الخاص بك معتمدًا لسنتين ونصف. وفي مكان ما الآن، تتم صياغة نصيحة CISA ستوصي بالتثبيت لارتكاب SHAs، بينما يتم بالفعل تنظيم حادثة خامسة في مارس المقبل، باستخدام مسار الثبات الذي لم يضيفه أحد إلى قواعد الكشف الخاصة به حتى الآن.