بدافزار Vidar که یک Information Stealer (سرقت اطلاعات) است و اولین بار در سال ۲۰۱۸ شناسایی شد، در نسخههای اخیر خود تغییرات گستردهای در روشهای مبهمسازی رشتهها (String Obfuscation) ایجاد کرده است تا تحلیل استاتیک و شناسایی توسط آنتیویروسها را دشوارتر کند.
سیر تکاملی متدهای مبهمسازی
تحلیلهای صورت گرفته نشان میدهد که این بدافزار از عملیات ساده XOR در نسخههای اولیه شروع کرد و سپس به الگوریتم ChaCha20 مهاجرت نمود. باHowever، در نسخههای ۲.۰ و ۳.x، توسعهدهندگان Vidar رویکرد پیچیدهتری را اتخاذ کردند که ترکیبی از یک ماشین مجازی (Virtual Machine) سبک و یک رمز جریانی (Stream Cipher) سفارشی است که در هر Build تغییر میکند.
تحلیل فنی ماشین مجازی (VM)
در نسخههای جدید، Vidar از یک مفسر Bytecode برای رمزگشایی رشتهها استفاده میکند. این VM شامل یک حلقه fetch–decode–execute است که دستورات را از یک آرایه بایت میخواند. ویژگیهای کلیدی این سیستم عبارتند از:
- جدول توزیع (Dispatch Table): شامل ۱۴ هندلر برای Opcodeهای مختلف است.
- عملیاتهای پایه: استفاده از Primitives سادهای مانند XOR، جمع، تفریق، چرخش (Rotation) و ضرب.
- تغییرپذیری: مقادیر ثابت، Opcodeها و جداول جایگزینی (Substitution Tables) در هر نسخه تغییر میکنند تا تحلیلهای خودکار با شکست مواجه شوند.
این ماشین مجازی به دو صورت به کار میرود: یا مستقیماً رشتهها را بازسازی میکند و یا کلید (Key) و Nonce مورد نیاز برای رمزگشایی توسط Stream Cipher را تولید میکند.
رمز جریانی سفارشی (Custom Stream Cipher)
علاوه بر VM، بدافزار Vidar از یک رمز جریانی برای رمزگشایی دادههای حساستر استفاده میکند. دو پیادهسازی اصلی در این حوزه شناسایی شده است:
- الگوریتم مبتنی بر ChaCha: در نسخههای ۲.۰ و ۲.۱ استفاده شده که دارای حالت اولیه ۱۲۸ بیتی سفارشی است.
- الگوریتم مبتنی بر ARX: در نسخه ۲.۲ و بالاتر، از عملیات Add-Rotate-XOR استفاده شده است. در این روش، ابتدا وضعیت (State) با استفاده از ثابتهای FNV-1a و نسبت طلایی (Golden Ratio) مقداردهی اولیه شده و سپس یک Keystream تولید میشود تا با دادههای رمزگذاری شده XOR شود.
نتیجهگیری فنی
استراتژی Vidar بر پایه حفظ رابطهای پایدار (Stable Interfaces) اما تغییر مداوم در ثابتها و عملیاتهای ریز (Micro-operations) استوار است. این رویکرد باعث میشود امضاهای استاتیک (Static Signatures) به سرعت منقضی شوند و نیاز به سیستمهای شناسایی مبتنی بر رفتار (Behavioral Detection) در سطح Endpoint و Network را دوچندان کند.