محققان شرکت فورتینت (Fortinet) در گزارشی به بررسی یک ابزار ساخت باجافزار با نام Cryptonite پرداختهاند.
Cryptonite که البته نباید آن را با باجافزار Chaos که برخی منابع از آن با Cryptonite یاد میکنند اشتباه گرفت، یک کیت ساخت باجافزار است.
Cryptonite به زبان Python نوشته شده و جهت نصب و استقرار نیاز به پیکربندی دارد. علاوه بر این، برای اینکه بدافزار به درستی کار کند، یک سرور نیز باید برای دریافت فایلهای موجود در دستگاه قربانی، پیکربندی و اجرا شود.
همانطور که در تصویر مشاهده میشود، در Comment پیشنهاد شده تا جهت تسهیل پیکربندی اولیه، از اسکریپت exeGen Python استفاده شود.
نشانی کیف پول بیتکوین، مبلغ باج، نشانی ایمیل – جهت تماس قربانیان – و پسوندی که در نهایت به فایلهای رمزگذاریشده الصاق میشود از جمله مواردی است که در این کیت توسط تبهکاران سایبری قابل پیکربندی است.
اسکریپت exeGen امکان تغییر پیکربندی را به صورت آسان از طریق یک رابط کاربری گرافیکی برای مهاجم بالقوه فراهم میکند تا مجبور نباشد کد منبع را خودش ویرایش کند.
همانطور که در شکل بالا مشاهده میشود، فیلدی با عنوان NGROK URL وجود دارد که مهاجم را ملزم به راهاندازی و استفاده از NGrok که در واقع یک سرویس پروکسی معکوس معتبر (Reverse Proxy Service) است، میکند؛ بسیاری از شرکتها جهت آزمایش و توسعه سیستمهای خود از آن استفاده میکنند. به نظر میرسد که زیرساخت محلی به زیردامنهای از ngrok.com متصل است و نه به مکان واقعی و نشانی IP مهاجم.
بکارگیری سرویس NGrok برای بخش سرویسدهنده Cryptonite که یک سرور وب ساده مبتنی بر Python بوده و به پایگاه داده SQL Lite متصل است، ضروری است. وظیفه آن شنود ترافیک ارسالی از سوی دستگاه قربانیان و استخراج مواردی همچون شناسه منحصربهفرد هر قربانی، نشانی IP دستگاه او و موقعیت جغرافیایی آن است.
کدنویسی و توسعه برنامه در Python بسیار سریع و آسان است. با این حال، از آنجایی که Python یک زبان تفسیری (interpreted language) است، مفسر آن باید روی هر ماشینی که اسکریپت Python را اجرا میکند، نصب شود. با توجه به اینکه وجود مفسر بر روی دستگاه قربانی قطعی نیست، Cryptonite حاوی PyInstaller (شامل تمام فایلهای لازم برای استقرار کد Python) است.
PyInstaller در ابتدا این فایلها را در پوشهای با نام تصادفی در Windows Temp دستگاه قربانی ذخیره میکند.
پس از اجرای فایلهای اولیه مورد نیاز توسط PyInstaller پروسه Cryptonite شروع به کار میکند. در ابتدا اتصال دستگاه به اینترنت بررسی میشود. در صورت عدم اتصال به اینترنت، پروسه از اجرا خودداری میکند.
در صورت برقراری اتصال، رمزگذاری فایلهای قربانی آغاز میشود. تصویر زیر، صفحه نمایشی را نشان میدهد که در حال دانلود بهروزرسانی یک نرمافزار است. با این حال، این تنها یک ترفند است و حواس کاربر را از آن چه که در پشت صحنه اتفاق میافتد پرت کند.
تصویر زیر قطعه کدی از Cryptonite را نمایش میدهد که وظیفه آن جستجوی فایلها برای رمزگذاری آنها است.
این باجافزار با بکارگیری ماژول Fernet در Python، رمزگذاری فایلها را با الگوریتم AES انجام میدهد.
پسوند فایلهای رمزگذاری شده به طور پیشفرض به cryptn8. تغییر داده میشود. با این حال، مهاجم میتواند پسوند دیگری را تعریف کند.
هنگامی که همه فایلها رمزگذاری شدند، Cryptonite سعی میکند تا با استفاده ازipinfo.io و استخراج نشانی IP، مکان قربانی را شناسایی کرده و در ادامه آن را به مهاجم ارسال کند.
در نهایت، پیام باجخواهی که حاوی اطلاعاتی همچون نشانی ایمیل مهاجم است، بر روی دستگاه قربانی ظاهر میشود.
برخلاف آن چه که در پیام آمده، به نظر میرسد هیچ محدودیتی در تعداد دفعاتی که کاربر یک کلید نادرست را وارد میکند، وجود ندارد. با این حال، قربانی هنگام ثبت کلید نادرست، پیام خطای زیر را دریافت خواهد کرد.
مشروح گزارش فورتینت در لینک زیر قابل دریافت و مطالعه است:
https://www.fortinet.com/blog/threat-research/Ransomware-Roundup-Cryptonite-Ransomware
علاوه بر استفاده از ضدویروس بهروز و قدرتمند، مسدودسازی نشانههای آلودگی اشاره شده در گزارش لینک مذکور توصیه میشود.