پژوهشگران امنیت سایبری نوعی حمله تایپوسکواتینگ (Typosquat) در مخزن NuGet کشف کرده‌اند که الگوهای رایج بدافزارهای سرقت اطلاعات را زیر و رو می‌کند. این پکیج مخرب نه برای سرقت داده‌ها، بلکه برای دستکاری نتایج زنده بازی‌های شرط‌بندی در پلتفرم Digitain طراحی شده است.

پکیج مشکوک با نام Newtonsoftt.Json.Net منتشر شده و خود را به جای کتابخانه محبوب Newtonsoft.Json جا زده است. تا کنون هفت نسخه از این فورک تروجان‌شده در مخزن منتشر شده که شامل نسخه‌های 11.0.4، 11.0.5، 11.0.7، 11.0.8، 11.0.9، 11.0.10 و 11.0.11 می‌شود. آمارها نشان می‌دهد این پکیج تاکنون حدود 1,200 بار دانلود شده است.

پنهان‌کاری زیر رادار؛ کتابخانه‌ای که کار می‌کند اما حمله می‌کند

مالک این پکیج با نام کاربری MagicalPuff96، آن را از نتایج جستجوی NuGet خارج (unlist) کرده است. با این حال، فایل‌های پکیج همچنان از طریق مخزن قابل دانلود هستند. آنچه این حمله را متمایز می‌کند، رفتار دوگانه آن است: توسعه‌دهندگانی که به دلیل اشتباه تایپی این پکیج را نصب می‌کنند، یک نسخه کاملاً کارآمد و واقعی از کتابخانه Newtonsoft.Json دریافت می‌کنند.

گای کورولفسکی، پژوهشگر امنیتی در JFrog، توضیح می‌دهد: «رفتار مخرب تنها پس از مقداردهی اولیه JsonConvert.DefaultSettings توسط سیستم میزبان آغاز می‌شود و صرفاً در سیستم‌هایی موفق عمل می‌کند که متد بک‌اند بازی هدف را در دسترس قرار می‌دهند و فقط پس از یک تأخیر تصادفی فعال می‌گردد.»

نمایش گرافیکی حمله تایپوسکواتینگ در مخزن پکیج

سیر تکاملی یک بک‌دور سه‌نسلی

تمام هفت نسخه منتشر شده حاوی همان فورک تروجان‌شده Newtonsoft.Json نسخه 13.0 هستند که در سه نسل مختلف بین 13 آگوست و 10 اکتبر 2025 منتشر شده‌اند. بک‌دور از طریق ویژگی DefaultSettings فعال می‌شود که به گونه‌ای دستکاری شده تا پیش از اجرای کد مخرب، یک تأخیر تصادفی ایجاد کند و از شناسایی توسط ابزارهای امنیتی جلوگیری نماید.

هدف نهایی این بدافزار، سرورهایی است که بک‌اند بازی Crash-Game دیجیتین را اجرا می‌کنند. نتایج دستکاری‌شده به آدرس سخت‌کدگذاری‌شده 185.126.237[.]64:5341 ارسال می‌شوند و تحت عنوان داده‌های تله‌متری پنهان می‌گردند. JFrog در تحلیل خود توضیح می‌دهد که هر نسل از این بدافزار، استراتژی متفاوتی را دنبال کرده است:

  • نسل اول (Gen-1): یک مفهوم اثبات (PoC) برای دستکاری محلی بدون ارسال داده به بیرون
  • نسل دوم (Gen-2): افزودن قابلیت خروج اطلاعات با پنهان‌سازی پشت Reflection و ابزار ConfuserEx
  • نسل سوم (Gen-3): پاکسازی منطق دستکاری و پایدارسازی مسیر خروج اطلاعات

نسخه 11.0.11 به طور کامل بدون مبهم‌سازی (Obfuscation) منتشر شده که نشان می‌دهد نویسنده احتمالاً یک بیلد تمیز را به اشتباه انتشار داده است.

هدفگیری یک نهاد مشخص؛ نشتی از کد منبع

قربانی اصلی این حمله، شرکت Digitain است که اپراتور بازی شرط‌بندی FG-Crash محسوب می‌شود. بررسی متادیتای پکیج نشان می‌دهد که URL یک مخزن داخلی Digitain در تمام نسخه‌ها هفت بار نشت کرده است. این یعنی نویسنده بدافزار به کد منبع FG-Crash دسترسی داشته و از اطلاعات داخلی برای طراحی حمله استفاده کرده است.

کورولفسکی تأکید می‌کند: «این تروجان تنها زمانی فعال می‌شود که JsonConvert.DefaultSettings مقداردهی شود و فقط متدی را که در بک‌اند FG-Crash وجود دارد، پچ می‌کند. کاربران غیر هدف فقط یک کتابخانه JSON کارآمد می‌بینند و هیچ رفتار مخربی مشاهده نمی‌کنند، که این دقیقاً دلیل اثربخشی این حمله است.»

بدافزاری بدون سرقت اطلاعات

این پکیج هیچ قابلیت سرقت اعتبارنامه، تثبیت (Persistence) یا حرکت جانبی (Lateral Movement) در شبکه ندارد. هدف انحصاری آن، به خطر انداختن یکپارچگی بازی Crash است. سایر توسعه‌دهندگانی که این پکیج را نصب کرده‌اند، ممکن است هرگز متوجه نشوند که بدافزاری در سیستمشان حضور داشته، چرا که این کد مخرب صرفاً یک سازمان خاص را هدف قرار می‌دهد.

اقدامات پیشگیرانه و واکنش Digitain

برای مقابله با این تهدید، تیم‌های امنیتی توصیه می‌کنند اقدامات زیر را انجام دهید:

  • پکیج Newtonsoftt.Json.Net را از پروژه‌ها حذف کنید
  • آدرس سرور فرمان و کنترل (C2) را در فایروال مسدود کنید
  • نسخه معتبر Newtonsoft.Json را از طریق فایل packages.lock.json قفل کنید تا از نصب نسخه‌های مشکوک جلوگیری شود

شرکت Digitain نیز اعلام کرده است که از این مسئله آگاه بوده و اقدامات لازم را برای رفع مشکل انجام داده است. با این حال، وسعت دقیق این نفوذ و اینکه آیا داده‌های دستکاری‌شده پیش از شناسایی روی نتایج بازی‌ها تأثیر گذاشته‌اند یا خیر، هنوز مشخص نیست. این حمله بار دیگر خطر زنجیره تأمین نرم‌افزار و اهمیت بررسی دقیق پکیج‌های نصبی را برجسته می‌کند.