إليك ما حدث بالفعل، خطوة بخطوة: في 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 ثانية، وتؤدي البيانات المسروقة إلى تقليل الزمن حتى أكثر.