حذرت مايكروسوفت من حملة هجمات إلكترونية منظمة تستهدف المطورين عبر مستودعات خبيثة تنتحل صفة مشاريع Next.js ومشروعات تقييم تقني حقيقية. تعتمد هذه الهجمات على إغراءات متعلقة بالتوظيف، حيث تقدم تحديات توظيف وهمية تدفع المطورين إلى استنساخ وتشغيل تعليمات برمجية مسمومة على أجهزتهم.
بمجرد قيام المطور بتنفيذ المشروع، فإنه يتصل صامتًا ببنية تحتية للقيادة والتحكم (C2) يسيطر عليها المهاجمون، مما يمنحهم وصولًا عن بُعد إلى نظام المطور وأي بيانات حساسة مخزنة عليه. تم رصد هذه الحملة لأول مرة من خلال اتصالات شبكية صادرة مشبوهة ناجمة عن عمليات Node.js على أجهزة المطورين المتأثرة.
تحذيرات مايكروسوفت من مخاطر هجمات مطوري Next.js
كشفت فرق خبراء Microsoft Defender وفريق أبحاث الأمان في Microsoft Defender عن مجموعة أوسع من المستودعات ذات الصلة من خلال ربط هياكل شفرة متشابهة، ومنطق التحميل، وأنماط التسمية. حملات مثل “Cryptan” و “JP-soccer” و “RoyalJapan” و “SettleMint” احتوت على متغيرات متطابقة تقريبًا تحمل تسميات مثل v1، master، demo، platform، و server.
ساهم هذا الهيكل المتناسق في مساعدة المحللين على اكتشاف مستودعات إضافية لم تتم الإشارة إليها في القياسات المرصودة، ولكنها تعرض نفس منطق التنفيذ والبنية التحتية للمرحلة. إن نطاق هذه الحملة يجعلها خطيرة بشكل خاص على فرق التطوير التي تعمل في بيئات الشركات.
عادةً ما تحتوي أجهزة المطورين على وصول إلى أصول ذات قيمة عالية، بما في ذلك الشيفرة المصدرية، وأسرار البيئة، ومفاتيح API السحابية، وبيانات اعتماد قاعدة البيانات، وخطوط أنابيب البناء. عندما يتم تشغيل تعليمات برمجية غير موثوق بها على جهاز تابع للشركة، يمكن أن يمتد الاختراق الوحيد بسرعة إلى ما وراء نقطة نهاية واحدة، وربما يكشف عن البنية التحتية الكاملة للمؤسسة.
تعكس هذه الحملة تحولًا محسوبًا في كيفية تعامل المهاجمين مع تهديدات سلسلة توريد البرمجيات. من خلال تضمين سلوك خبيث داخل ما يبدو أنه مشروع عادي، يمكن للمهاجمين تحقيق تنفيذ موثوق للشفرة مع الاندماج في سير عمل المطور الروتيني، مما يجعل هذا تهديدًا كبيرًا لفرق التطوير في جميع أنحاء العالم.
نقاط الدخول الثلاث وباب خلفي مشترك
جميع مسارات التنفيذ الثلاثة في هذه الحملة تؤدي إلى نفس النتيجة: استرداد وقت التشغيل وتنفيذ JavaScript الذي يتحكم فيه المهاجم في الذاكرة. المسار الأول يستغل الأتمتة في Visual Studio Code. عند فتح المطورين وتوثيق مجلد مشروع، يتم تكوين ملف `.vscode/tasks.json` مسبقًا باستخدام `runOn: “folderOpen،”` مما يؤدي فورًا إلى تشغيل نص Node.js الذي يجلب مُحمِّل JavaScript من نقطة نهاية مرحلية مستضافة على Vercel.
بعد التنفيذ، يبدأ النص في إرسال إشارات إلى البنية التحتية التي يتحكم فيها المهاجمون. المسار الثاني يتم تشغيله عندما يبدأ المطور خادم التطوير باستخدام `npm run dev`. الأصول المخترقة، مثل `jquery.min.js` المعدل، تقوم بفك تشفير عنوان URL مشفر بـ Base64 واسترداد نفس مُحمِّل JavaScript من Vercel.
المسار الثالث يتم تشغيله عند بدء تشغيل الخادم، حيث تقوم مسارات الخلفية الخبيثة بفك تشفير نقطة نهاية مخفية مشفرة بـ Base64 من ملف `.env`، وإرسال بيئة العملية بأكملها – بما في ذلك مفاتيح API السحابية ورموز الوصول – إلى المهاجم، وتنفيذ JavaScript المقدم من المهاجم عبر تجميع ديناميكي.
بمجرد تشغيل أي من هذه المسارات، يقوم حمولة المرحلة الأولى خفيفة الوزن بفحص المضيف ويبدأ في استقصاء خادم C2 على فترات زمنية ثابتة. تتولى المرحلة الثانية بعد ذلك، مما يوفر مهام مستمرة يديرها المشغل، وتصفح الدلائل، وجمع الملفات الحساسة، وتحميل البيانات المسروقة على مراحل إلى البنية التحتية للمهاجمين.
يجب على المطورين تمكين Visual Studio Code Workspace Trust و Restricted Mode لحظر التنفيذ التلقائي للشفرة في المجلدات غير المعروفة. يجب على المؤسسات تطبيق قواعد تقليل سطح الهجوم لمنع تنفيذ النصوص المشفرة، وإنفاذ المصادقة القوية والوصول المشروط لحسابات المطورين، وتجنب تخزين بيانات اعتماد الإنتاج على أجهزة التطوير.
يجب على فرق الأمان مراقبة اتصالات Node.js الصادرة غير العادية باستخدام استعلامات البحث `DeviceNetworkEvents` و `DeviceProcessEvents`، وإجراء تصنيف لمخاطر الهوية كلما تم الاشتباه في اختراق نقطة نهاية للمطور.

