إليك ما حدث بالفعل، خطوة بخطوة: في 18 مايو، قام المهاجمون باختراق حساب النشر لشركة Nrwl (الشركة وراء Nx Console) في سوق VS Code. بين 12:36 و12:47 بالتوقيت العالمي ذلك اليوم، دفعوا الإصدار 18.3.4 من Nx Console الذي يحتوي على رمز ضار إلى السوق باستخدام بيانات اعتماد الناشر الشرعي. وقع الإصدار المخترق بشهادة نشر صالحة من Nrwl، وهو السبب في قبول التحقق المدمج في VS Code لها دون تحذير. عندما قام أي مطور بفحص VS Code لبعض التحديثات خلال تلك الفترة الزمنية التي تبلغ 11 دقيقة (أو عندما قاموا بتثبيت Nx Console يدويًا خلال تلك الفترة)، فانهم حصلوا على النسخة المسمومة مباشرة من سوق Microsoft الرسمي. لم يتم اختراق الامتداد بالمعنى الاعتيادي لتحرير ملفات على خادم، بل نُشر عبر المداخل الأمامية باستخدام بيانات اعتماد الناشر المسروقة. كيف حصل المهاجمون على بيانات اعتماد نشر سوق Nrwl في المقام الأول؟ هذه هي النقطة التي تفتقدها معظم التغطيات. يتطلب نشر سوق VS Code إما رمز وصول شخصي (PAT) من Azure DevOps أو بيانات اعتماد OAuth مرتبطة بحساب Microsoft. من شبه المؤكد أن هذه البيانات جُمعت من اختراق سلسلة توريد سابق، ربما من موجة سابقة من نفس الحملة. هذا يخلق نمط فشل تتابعي: اخترق أداة مطور ما لسرقة البيانات، استخدم تلك البيانات لنشر إصدارات ضارة من أداة مطور أخرى، استخدم تلك الأداة لسرقة المزيد من البيانات، وكرر. كل تكرار يزيد من وصول المهاجم إلى حسابات الناشرين عبر النظام البيئي. لم يكن اختراق Nx Console هو النقطة الصفرية، بل كان بالفعل عميقًا في السلسلة. بمجرد تثبيت الامتداد السام على جهاز المطور (بما في ذلك موظف GitHub الذي هو في قلب هذه القصة)، فإنه نفّذ فورًا رمزًا ماسحًا للآلة بالكامل لجمع البيانات. تكتب امتدادات VS Code بلغة JavaScript وTypeScript، وتعمل داخل Node.js، وهو نفس نظام التشغيل الذي يقوم بتشغيل VS Code نفسه. عند تثبيت امتداد، يقوم VS Code بتحميل شفرة JavaScript الخاصة به مباشرةً في مساحة معالجة المحرر مع الوصول الكامل إلى واجهات برمجة التطبيقات الخاصة بـ Node.js. استخدم الرمز الضار في Nx Console 18.3.4 واجهات برمجة الملفات في Node.js (تحديدا fs.readFile، fs.readdir، ووظائف التخطي عبر المسارات) لمسح الدليل الرئيسي للمستخدم وتخزينات البيانات الشائعة بشكل متكرر. بحثت في الملفات المطابقة للأنماط مثل .npmrc, .aws/credentials, .kube/config, .ssh/, .gitconfig, .netrc, وملفات التكوين لواجهة سطر الأوامر الخاصة بـ 1Password، و HashiCorp Vault، و Claude Code. كما استدعى الامتداد واجهات برمجة التطبيقات الخاصة بعمليات العملية في Node.js (child_process.exec وchild_process.spawn) لتنفيذ أوامر النظام التي تقوم بتفريغ متغيرات البيئة، واستعلام سلسلة المفاتيح في نظام macOS (باستخدام أداة سطر الأوامر الخاصة بالأمان)، واستخراج البيانات من مدير شهادة Windows Credential Manager (باستخدام cmdkey). يحدث كل هذا في JavaScript بحت يعمل بنفس امتيازات المستخدم الذي أطلق VS Code. لا توجد حماية صندوق الرمال، ولا مطالبات بالأذونات، ولا عزل على مستوى نظام التشغيل. امتدادات VS Code هي رمز موثوق به حسب التصميم. تم بعد ذلك استخراج البيانات المجمعة باستخدام وحدة https المدمجة في Node.js لإرسال البيانات POST إلى مجالات تسيطر عليها المهاجمون. قام الكود الضار بتعمية نقطة استخراج البيانات باستخدام ترميز base64 وتراكيب السلاسل لتفادي التحليل الثابت، ولكن بمجرد تنفيذ الامتداد، أجرى طلبات HTTPS مباشرةً لإرسال حمولات JSON مضغوطة تحتوي على جميع البيانات المجمعة. أعلن package.json الخاص بالامتداد عن أحداث التنشيط التي جعلته يعمل فورًا عند بدء تشغيل VS Code (باستخدام "*" الحدث التنشيطي، الذي ينطلق عند فتح أي مساحة عمل)، مما يعني أن المطورين لم يكن عليهم صراحة استدعاء ميزات Nx Console لتنفيذ الرمز الضار. مجرد وجود VS Code يعمل مع الامتداد المثبت كان كافيًا. كما قامت حزمة JavaScript بحقن خطافات في واجهات برمجة البيانات في VS Code (باستخدام واجهات برمجة التطبيقات vscode.authentication وvscode.workspace) لاعتراض أي بيانات يصل إليها المستخدم أثناء جلسة العمل، بما في ذلك رموز OAuth الخاصة بـ GitHub التي يستخدمها VS Code في دمجه الخاص ب Git. من هناك، استخدم المهاجمون تلك البيانات المسروقة لتثبيت امتداد سام ثانٍ على الجهاز نفسه لموظف GitHub (لم يكشف GitHub بعد أي امتداد كان هذا). قام هذا الامتداد الثاني باستخراج حوالي 3800 مستودع داخلي لـ GitHub على مدار الساعات أو الأيام التالية. بحلول 20 مايو، كانت مجموعة التهديد TeamPCP تعلن عن المستودعات المسروقة للبيع في منتدى للقرصنة بمبلغ 50,000 دولار فصاعدًا، ساعات قبيل تأكيد GitHub للخرق علنًا. المستودعات الداخلية ليست بيانات العملاء، بل هي شيء أسوأ لأمن البنية التحتية. تحتوي هذه المستودعات على نصوص النشر، وبيانات اعتماد النموذج، ومخططات API الداخلية، وتكوينات البنية التحتية. الوصول إلى الكود المصدر في هذا المستوى يمنح المهاجمين مخطط كيفية اتصال نظام GitHub، وتصديقه، وفشله. كل سر يصل إلى المشتري يقصر مرحلة الاستطلاع لأي هجوم كان المشتري يخطط له بالفعل. حذر المؤسس المشارك لـ Binance، CZ، على الفور أي شخص لديه مستودعات خاصة تحتوي على أسرار نصية مباشرة من تغيير كل شيء. أخبرني مايك ريمر، الرئيس التنفيذي للتكنولوجيا لشركة Ivanti، أن شبكة honeypot الخاصة بـ Azure تظهر الآن أن الهشاشة المعروفة يتم استغلالها في أقل من 90 ثانية، وتؤدي البيانات المسروقة إلى تقليل الزمن حتى أكثر.
قصة اختراق GitHub كاملة: تسريب 3800 مفتاح بفضل امتداد Nx Console لشركة Nrwl على VSCode
أكدت GitHub في 20 مايو أن امتدادين سامين لـ VS Code على جهاز أحد الموظفين منحا المهاجمين إمكانية الوصول إلى حوالي 3800 مستودع داخلي. أولاً، نسخ ضارة من Nx Console (بمجموع 2.2 مليون تنزيل) استخرجت بيانات الاعتماد في 18 مايو. ثم استخدم امتداد ثان غير معلن هذه البيانات لاستخراج المستودعات. مجموعة التهديد TeamPCP تبيع الحصيلة بدءًا من 50,000 دولار. لم تكن هذه حالة منعزلة: فقد جاءت جنبًا إلى جنب مع دودة سلسلة توريد صادقت توقيعات تشفيرية صالحة على 639 حزمة npm خبيثة وخرق SDK Python الخاص بـ Microsoft على PyPI.
رأيي
فشلت سبع سطحيات سلسلة توريد خلال 48 ساعة، ومجموعة واحدة تربط على الأقل ثلاثة منها. هذه ليست قصة عن امتداد سيء لـ VS Code فقط. هذه قصة عن انهيار بنية الثقة تحت الضغط العدائي الذي لم تكن مصممة لتحمله. العلامات البادجات لا تعني شيئًا عندما يكون هوية التوقيع مسروقة. الإشراف على السوق لا يعني شيئًا عندما يكون المشرف أيضًا ضحية. كل علامة خضراء في سلسلة أدوات المطور أصبحت طعمًا. ما يجعل هذا مختلفًا عن كل تهديدات سلسلة التوريد السابقة هو وتيرة العمليات الخاصة بالخصم والأدوات التي قاموا بنشرها كمصدر مفتوح. أطلقت TeamPCP الشفرة السلاحية الكاملة لدودة Mini Shai-Hulud في 12 مايو. ال Variant المقلدات تدور بالفعل. صرحت شركة Trend Micro عن سبع موجات مؤكدة على الأقل منذ مارس، استهدفت كل منها حزمة بتحميل أعلى وأدخلت متجهي وصول تقنيا أكثر تطورا. الدودة الآن تخلق التقاليد التشفيرية الخاصة بها بيانيًا. تنتشر عبر GitHub Actions، وامتدادات VS Code، وnpm، وPyPI في آن واحد. تتجاوز الأنظمة ذات الموقع الروسي. أخبرني كينيدي أن الإعداد الصحيح على الورق لم يعد يوقف هذه الهجمات. تم كتابة الهيكليات الامتثالية التي تعتمد عليها المؤسسات للبشر. لا تظهر هويات الوكلاء في أي كاتالوج للرقابة الذي واجهه أي شخص. الأشرار يدورون أسرع من صناعة الدفاع يمكنها تحديث كتب تعليماتها.
ماذا سيحدث بعد ذلك
كل مطور كان لديه Nx Console مثبّت في 18 مايو بين 12:36 و12:47 بالتوقيت العالمي يحتاج إلى تدوير كل بيانات الاعتماد على جهازه، فورًا. يتضمن ذلك ليس فقط بيانات اعتماد العمل ولكن أيضًا رموز GitHub الشخصية ومفاتيح AWS ومفاتيح SSH وقواعد بيانات مديري كلمات المرور وكل شيء آخر. معظمهم لن يفعلوا، لأن معظم المطورين لا يعرفون أنهم تأثروا. يعني وقت استجابة فريق Nx البالغ 11 دقيقة أن هذا الخرق لن يظهر في معظم سجلات تدقيق الأمان. لم يُطلق أي تنبيه، لم يُحفز أي محاولة تسجيل دخول مشبوهة على المراقبة، فقط تحديث امتداد عادي حدث ليحتوي على جامع بيانات الاعتماد. سيواجه موظف GitHub الذي تعرض للخرق ضغطًا للكشف عن أي امتداد تم تسميمه ثانيًا، وعندما يفعلون، سيطلب كل فريق أمني يشغل هذا الامتداد تقريرًا كاملًا بعد الوفاة. سيكون التأثير الدومينو الحقيقي عندما يستخدم المشتري الأول لتلك البيانات (ليس فقط المستودعات البالغ عددها 3800، بل قاعدة بيانات الوثائق الكاملة التي انتزعها TeamPCP من جميع من قام بتثبيت الامتداد المسموم) بيانات النموذج أو مخططات API الداخلية لخرق شركة لم تربط النقاط بعد. في هذه الأثناء، يعني نشر TeamPCP كود دودة Mini Shai-Hulud كمصدر مفتوح أننا على وشك رؤية انفجار ضخم لهجمات المقلدين التي تستهدف امتدادات وحزم شائعة أخرى. ستعمل طريقة الكشف الخاصة بكينيدي حتى يقوم البديل التالي بتغيير تلك التواقيع. السيناريو المعاكس الذي لا يقدره أحد: ماذا إذا حص ل اختراق Nx Console على بيانات اعتماد من مطورين في عشرات الشركات التقنية الكبرى، ومقدمي الخدمات السحابية، وبائعي الأمن، وGitHub مجرد أول ضحية أصبح خرقها عامًا؟ في هذا السيناريو، نحن نشاهد الفصل الافتتاحي لحملة أكبر بكثير، والبيانات الموجودة في قاعدة بيانات TeamPCP تفتح البنية التحتية عبر الصناعة بأكملها.
ما يخبرنا به التاريخ
هاجم خرق سلسلة توريد SolarWinds في عام 2020 حوالي 18,000 عميل عبر تحديث برنامج مسموم، مما أدى إلى إعادة تفكير جذرية في نماذج الثقة في برمجيات الشركات. استغرق اكتشاف هذا الهجوم شهورًا وتضمن خصمًا لدولة قومية (تم نسبه إلى SVR الروسية) بموارد كبيرة. ما يختلف في عام 2026 هو سرعة العمليات وملف الخصم. TeamPCP مدفوع ماليًا وليس برعاية الدولة، ومع ذلك يقومون بتنفيذ هجمات سلسلة التوريد بسرعة تتساوى أو تتجاوز قدرات الدولة القومية قبل بضع سنوات فقط. يمثل نشر أداتهم كمصدر مفتوح عبور العتبة: لم تعد هجمات سلسلة التوريد حكرًا على مجموعات APT (تهديد مستمر متقدم) ذات جداول زمنية تشغيلية تمتد لعدة سنوات. يمكن تنفيذها الآن من قبل أي فاعل تهديدي يتمتع بمهارة تقنية معتدلة، وتنشر الأدوات نفسها.
تأثير السوق
تواجه Microsoft (MSFT، حاليًا تتداول حول 425 دولار، بانخفاض حوالي 3٪ خلال الشهر الماضي وسط ضعف القطاع التكنولوجي العام) ضررًا سمعيًا من خرق بقي ضمن نظامها البيئي الخاص. GitHub هي شركة تابعة لـ Microsoft، وVS Code هو منتج لـ Microsoft، وجاء الامتداد الضار من خلال سوق تديره Microsoft. هذا يخلق ضغوطًا على مستوى مجلس الإدارة لإعادة النظر في أمان السوق، مما يعني على الأرجح زيادة الاحتكاك في بيئة الامتدادات وربما تباطؤ سرعة الميزات. هذا يشكل عبئًا على المدى المتوسط على موقف VS Code التنافسي مقابل JetBrains وبيئات التطوير المتكاملة الأخرى (IDEs). على الفور، من المتوقع أن تستفيد CrowdStrike (CRWD، تتداول حوالي 285 دولار، بارتفاع حوالي 8٪ شهرًا شھر نظرًا لزيادة إنفاق المؤسسات على الأمن بعد الخروقات البارزة) وشبكات Palo Alto Networks (PANW، حوالي 345 دولار، بارتفاع 6٪ هذا الشهر) مع قيام فرق المشتريات بتسريع تقييم الموردين. تحديدًا، خرق GitHub يصدق على النظرية وراء مزودي بنية الصفرية للسماح بالأقل امتياز وصول في وقت التشغيل. قد تشهد Cloudflare (NET، حول 95 دولار، شبه مستقر هذا الشهر) وOkta (OKTA، حول 78 دولار، بانخفاض 4٪ نظرًا للقلق حول الربحية) زيادة في الطلب على حلول إدارة الهوية والوصول التي تحد من دائرة التأثير عند تسرب البيانات.