استقبال مهاجمان از مبهمسازی کدهای مبتنی بر JavaScript
محققان آکامای (.Akamai Technologies, Inc) در تحقیقات خود بیش از 10 هزار نمونه از نرمافزارهای مخرب مختلف را که به زبان JavaScript نوشته شده بودند را مورد تحلیل قرار دادند. نتایج این تحلیل نشان میدهد که به منظور جلوگیری از شناسایی، بر روی تقریباً 26 درصد از آنها تکنیک مبهمسازی (Obfuscation) صورت گرفته است.
مهاجمان معمولاً از مبهمسازی برای دشوار نمودن تحلیل کدهای مخرب Script و دورزدن نرمافزارهای امنیتی استفاده میکنند. در تکنیک مبهمسازی، که معمولاً به صورت دستی یا به کمک ابزارهای مخصوصی موسوم به مبهمساز (Obfuscator) انجام میشود، Source Code قابل فهم یک برنامه با روشهای مختلف به گونهای تغییر داده میشود که پیچیده شده و درک کد دشوار شود.
مبهمسازی معمولاً از طریق روشهایی همچون افزودن کدهای بلااستفاده به یک Script، تقسیم کد و اضافه نمودن کدهای بیربط به بخشهای غیرمرتبط، بهرهگیری از الگوهای هگزادسیمال، نامگذاری متغیرها و توابع به صورت بیمعنا و گمراهکننده و حذف فرادادههای راهنماییکننده از هریک از خطوط کد صورت میگیرد. البته مبهمسازی به گونهای صورت میگیرد که قابلیت و عملکرد کد از بین نرود و همچنان طبق هدف نویسنده کد، کد به درستی عمل کند.
محققان آکامای در این تحقیق بیش از 10 هزار نمونه از نرمافزارهای مخرب مبتنی بر JavaScript همچون فایلهای فراخوانیکننده بدافزار (Dropper)، صفحات فیشینگ، ابزارهای کلاهبرداری (Scamming Tools)، ابزارهای موسوم به Magecart Snippet جهت سرقت اطلاعات بانکی از سایتهای خرید و فروش اینترنتی و استخراجکنندگان رمزارز (Cryptominer) را مورد تحلیل قرار دادند. نتایج این تحلیل نشان میدهد که به منظور جلوگیری از شناسایی، بر روی تقریباً 26 درصد از آنها مبهمسازی صورت گرفته است.
یافتههای تحقیق مذکور نشان داد که به منظور عدم شناسایی و بیتاثیر کردن راهکارهای امنیتی در حداقل 26 درصد از نمونههای مخرب تحلیل شده، از نوعی مبهمسازی استفاده شده است که نشانه افزایش گرایش به استفاده از این تکنیک اساسی و در عین حال موثر است.
به نظر می رسد اکثر این نمونههای مبهمسازی شده دارای کد مشابه هستند زیرا توسط یک بستهبندیکننده (Packer) مشابه ایجاد شدهاند، بنابراین ساختار کد آنها حتی اگر تابع بکار رفته متفاوت باشد، مشابه به نظر میرسند.
محققان آکامای قصد دارند در کنفرانسی در آینده به جای تحلیل کد فایل، جزئیات بیشتری در مورد روشهای بستهبندی (Packing) ارائه دهند.
گرچه تکنیکهای مبهمسازی اغلب توسط تبهکاران سایبری مورد استفاده قرار میگیرد، اما همه مبهمسازیها مخرب یا فریبنده نیستند.
به گزارش سایت Alexa، حدود 0.5 درصد از 20 هزار سایت برتر، تکنیکهای مبهمسازی را جهت موارد زیر بکار میگیرند:
- سایتها به منظور پنهان نمودن برخی از عملکردهای کدهای Client-side از مبهمسازی استفاده میکنند.
- کدهای JavaScript Snippets بکارگرفته شده در این سایتها که توسط ارائهدهندگان ثالث (Third-party provider) مبهمسازی میشوند.
- اطلاعات حساسی همچون نشانی ایمیل با تکنیکهای مبهمسازی باید از دید عموم پنهان شود.
به این ترتیب، تشخیص کد مخرب بر اساس این واقعیت که مبهمسازی در آن صورت گرفته است، به تنهایی کافی نبوده و باید عملکردهای مخرب دیگری نیز در کدها بررسی و شناسایی شود.
بکارگیری تکنیکهای مبهمسازی در پیادهسازیهای نرمافزاری معتبر در کنار موارد نرمافزاری مخرب، دقیقاً همان چیزی است که تشخیص کدهای مبهم خطرناک و مخرب را چالش برانگیز میکند. از طرف دیگر به همین علت است که مهاجمان سایبری به مبهمسازی کدهای مخرب گرایش شدیدی پیدا کردهاند.
مشروح گزارش این محققان در نشانی زیر قابل مطالعه است:
https://www.akamai.com/blog/security/over-25-percent-of-malicious-javascript-is-being-obfuscated