تحقیقات تیم Socket Threat Research یک حمله پیچیده زنجیره تأمین را در مخزن NuGet فاش کرده است؛ جایی که ۹ پکیج منتشرشده توسط کاربری با نام مستعار shanhai666 شامل Payloadهای مخرب زمان‌دار هستند که می‌توانند اپلیکیشن‌های پایگاه‌داده و سیستم‌های کنترل صنعتی را در تاریخ‌های خاص از بین ببرند.

این پکیج‌ها بین سال‌های ۲۰۲۳ تا ۲۰۲۴ منتشر شده‌اند و تا امروز بیش از ۹٬۴۸۸ بار دانلود شده‌اند. نکته مهم اینجاست که ۹۹٪ از کد هر پکیج واقعی و کاربردی است و تنها حدود ۲۰ خط کد مخرب در میان هزاران خط کد سالم پنهان شده است.

«این طراحی هوشمند باعث می‌شود پکیج‌ها در ظاهر حرفه‌ای، کاربردی و قابل‌اعتماد باشند، از بررسی‌های کد عبور کنند و حتی در پروژه‌های واقعی مورد استفاده قرار گیرند—تا زمانی که در تاریخ مشخص، ناگهان برنامه را از کار بیندازند یا داده‌ها را تخریب کنند.»


ساختار فنی حمله: تزریق از طریق Extension Method

هسته‌ی فنی این حمله استفاده از الگوی تزریق Extension Method در زبان C# است. مهاجم از این ویژگی برای افزودن توابع جدید به کلاس‌های موجود بدون تغییر در کد اصلی استفاده کرده و از آن برای تزریق منطق مخرب به تمام عملیات پایگاه داده و PLC بهره برده است.

«بدافزار از Extension Methodها برای افزودن منطق مخرب به APIهای استاندارد استفاده می‌کند، به‌گونه‌ای که تمام عملیات دیتابیس و PLC به‌صورت نامحسوس آلوده می‌شوند.»

دو متد مخرب اصلی عبارتند از:

  • .Exec() برای اجرای دستورات دیتابیس

  • .BeginTran() برای ارتباطات PLC

هر دو متد حاوی شرط‌های زمانی و احتمالی هستند که می‌توانند پس از تاریخ‌های خاص، برنامه را خاتمه دهند یا داده‌ها را خراب کنند.


منطق تخریب زمان‌دار

Socket اعلام کرده است که بیشتر پکیج‌های مخرب دارای تاریخ‌های تریگر هاردکد شده مانند ۸ اوت ۲۰۲۷ و ۲۹ نوامبر ۲۰۲۸ هستند. پس از این تاریخ‌ها، با هر بار اجرای Query یا عملیات PLC، بدافزار عددی تصادفی بین ۱ تا ۱۰۰ تولید می‌کند و اگر مقدار بیش از ۸۰ باشد، برنامه را فوراً متوقف می‌کند:

if (DateTime.Now > triggerDate && new Random().Next(1,100) > 80)
Process.GetCurrentProcess().Kill();

با وجود احتمال ۲۰٪، برنامه‌هایی که صدها Query در دقیقه اجرا می‌کنند، در چند ثانیه از کار می‌افتند.

نوع سیستم نرخ Query زمان تقریبی تا Crash
فروشگاه آنلاین ۱۰۰ در دقیقه ۳ ثانیه (خرابی در حین پرداخت)
سامانه درمانی ۵۰ در دقیقه ۶ ثانیه (از کار افتادن بحرانی)
مالی ۵۰۰ در دقیقه کمتر از ۱ ثانیه (اختلال کامل سرویس)
صنعتی (Sharp7Extend) ۱۰ عملیات در دقیقه ~۳۰ ثانیه (خرابی PLC و تخریب داده‌ها)

نمونه خاص: Sharp7Extend

پکیج Sharp7Extend پیشرفته‌ترین نمونه این کمپین است و سیستم‌های اتوماسیون صنعتی (Industrial Control Systems) را هدف قرار می‌دهد. این پکیج وانمود می‌کند نسخه‌ای ارتقاءیافته از کتابخانه واقعی Sharp7 برای کنترل‌کننده‌های منطقی زیمنس (Siemens S7 PLCs) است.

«Sharp7Extend نسخه اصلی Sharp7 (v1.1.79) را در خود دارد تا رفتار واقعی کتابخانه را تقلید کند و در تست‌ها کاملاً سالم به نظر برسد.»

اما در پشت صحنه، دو مکانیسم تخریب فعال دارد:

  1. خاموش‌سازی تصادفی فرآیندها: با احتمال ۲۰٪ در هر ارتباط PLC تا تاریخ ۶ ژوئن ۲۰۲۸

  2. خرابی خاموش داده‌ها: پس از گذشت ۳۰ تا ۹۰ دقیقه، حدود ۸۰٪ از عملیات نوشتن در PLC شکست می‌خورند بدون هیچ هشدار ظاهری

این دو مرحله باعث می‌شوند خطاها تصادفی یا ناشی از «مشکل سخت‌افزار» به نظر برسند و بدافزار مدت زیادی ناشناخته باقی بماند.


تاکتیک‌های فریب و منشأ احتمالی

مهاجم برای جلب اعتماد توسعه‌دهندگان سه پکیج سالم نیز منتشر کرده تا سابقه‌ی معتبری در NuGet ایجاد کند. او همچنین فیلدهای نویسنده (.nuspec author) را جعل کرده تا سیستم‌های امنیتی مبتنی بر شهرت را دور بزند.

در تحلیل DLLها، Socket نشانه‌هایی از منبع چینی یافته است:

  • وجود نظراتی به زبان چینی مانند «出现异常» (خطا رخ داد) و «连接失败» (اتصال ناموفق)

  • نام مستعار shanhai666 که از واژه‌ی چینی «山海» (کوه و دریا) و عدد عامیانه‌ی «۶۶۶» (به معنی عالی یا روان) گرفته شده است.


مایکروسافت و NuGet در حال بررسی گزارش Socket هستند، اما تا زمان انتشار گزارش، پکیج‌های مخرب هنوز در مخزن NuGet فعال بوده‌اند.


دوست داشتید؟ لطفا با دوستان خود به اشتراک بگذارید.

199
199 امتیاز

یک نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

واکنش شما به این مطلب چیست ؟

جالب جالب
6
جالب
خنده‌دار خنده‌دار
6
خنده‌دار
انزجار انزجار
4
انزجار
عجیب عجیب
3
عجیب
ناراحت ناراحت
2
ناراحت
بد بد
1
بد
باحال باحال
6
باحال
خوب خوب
6
خوب
ترسناک ترسناک
4
ترسناک