بدافزار سرقت اطلاعات (Information Stealer) موسوم به Vidar که از سال ۲۰۱۸ فعال است، با معرفی یک ماشین مجازی (Virtual Machine) سبک و تغییرات در رمزنگاری جریان (Stream Cipher) برای هر Build، سطح پیچیدگی شناسایی استاتیک و مهندسی معکوس خود را افزایش داده است.
تکامل مکانیزمهای حفاظتی Vidar
اپراتورهای این بدافزار بهطور مداوم لایههای حفاظتی داخلی را تغییر میدهند تا از شناسایی توسط سیستمهای امنیتی جلوگیری کنند، در حالی که هدف نهایی آنها همچنان سرقت دادههای مرورگر، کیف پولهای ارز دیجیتال و اطلاعات حساس کاربران است. در نسخههای اولیه، این بدافزار از طرح XOR تکبایتی و در نسخه ۱.۵ از الگوریتم ChaCha20 استفاده میکرد. اما از نسخه ۲.۰ به بعد، مدل حفاظتی به یک ساختار لایهای تغییر یافته است که ترکیبی از یک مفسر بایتکد (Bytecode Interpreter) سفارشی و رمزنگاریهای جریان متغیر است.
ساختار ماشین مجازی (VM) سفارشی
ماشین مجازی جدید Vidar بسیار مینیمال طراحی شده و از یک حلقه fetch-decode-execute برای پردازش آرایهای از بایتکدها استفاده میکند. ویژگیهای کلیدی این VM عبارتند از:
- جدول Opcode: استفاده از یک جدول توزیع ۲۵۶ ورودی که تنها ۱۴ مورد آن به هندلرهای فعال متصل است.
- مدیریت وضعیت: تکیه بر یک Accumulator تکبایتی، مقدار آخرین بایت خروجی و یک کلید XOR متغیر.
- عملیات: اجرای عملیاتهای فشردهای مانند XOR، جمع، تفریق، چرخش (Rotation)، نقیض بیتی (Bitwise Negation) و ضرب.
به دلیل تغییر کلیدهای XOR چهار بایتی، تخصیص Opcodeها و جداول جایگزینی در هر Build، اسکریپتهای رمزگشایی برای یک نمونه خاص، روی نمونههای دیگر کار نمیکنند.
رمزنگاری ARX و لایههای دکدینگ
بدافزار Vidar از VM خود در دو حالت استفاده میکند: رمزگشایی مستقیم رشتهها یا بازیابی متریال لازم برای مرحله دوم رمزگشایی. در نسخههای ۲.۲ به بعد، این بدافزار به یک رمزنگاری جریان مبتنی بر ARX (Add-Rotate-XOR) کوچ کرده است.
در این پیادهسازی، کلید بازیابی شده با استفاده از عدد اول FNV-1a در یک وضعیت ۳۲ بیتی ادغام شده و سپس بایتهای Nonce با ثابت 0x9E3779B9 (مرتبط با نسبت طلایی) پردازش میشوند. این رویکرد باعث میشود تطبیقهای استاتیک مبتنی بر YARA که بر اساس رشتههای متنی یا ثابتهای رمزنگاری کار میکنند، ناکارآمد شوند.
توصیههای دفاعی برای SOC و تحلیلگران
با توجه به پیچیدگی مبهمسازی (Obfuscation)، متخصصان امنیت باید اولویت خود را از شناسایی رشتهها به تحلیل رفتاری (Behavioral Analysis) و تلهمتری تغییر دهند. شاخصهای شناسایی پایدارتر عبارتند از:
- دسترسیهای مشکوک به ذخیرهگاههای Credentials و دادههای مرورگر.
- هدف قرار دادن فایلهای کیف پول ارز دیجیتال.
- انتقال غیرمعمول دادهها به بیرون (Outbound Transfers).
- زنجیرههای اجرای پروسسهای غیرعادی.
برای تحلیلگران، ابزارهای Instrumentation برای استخراج خروجیهای رمزگشایی شده در زمان اجرا (Runtime) یا شبیهسازی مجموعه Opcodeهای کوچک VM، موثرترین روش برای بازیابی رشتههای هر Build است.