باج افزار یا RansomWare یک نرمافزار مخرب است که در رایانه یا تلفن همراه ما نصب میشود. این بدافزار بعد از قفل کردن اطلاعات شما، پیامهایی را نمایش میدهد که خواستار پرداخت هزینه برای بازگردانی اطلاعات شما هستند.
مانند بدافزارهای دیگر، باجافزار را ممکن است از طریق لینکهای فریبنده و آلوده (با روشهای مهندسی اجتماعی) در یک پیام ایمیل، پیام فوری یا یک وب سایت نصب شود.
امروزه، حملات باجافزاری گسترش زیادی پیدا کردهاند زیرا ایجاد و کپیبرداری از آنها بسیار آسان است و گاهی به سختی قابل تشخیص هستند؛ قربانیان این دسته از حملات، مردم عادی – شرکتهای خصوصی و سازمانهای دولتی هستند که مجبور به پرداخت باج میشوند.
البته طبق قوانین آمریکا، شرکتها اعم از دولتی و خصوصی، از پرداخت باج منع شدهاند چرا که دولت امریکا این کار را باعث ترغیب سازندگان باجافزار میداند. با این حال، خیلی از شرکتهایی که قربانی این حملات میشوند، بهصورت مخفی باج را پرداخت کرده و در ظاهر ادعا میکنند که دادهها را از بکاپ یا ساخت کلید رمزگشایی اختصاصی برگرداندهاند.
چگونه یک باجافزار بسازیم؟
برای ایجاد یک باجافزار، نمونهای از “CRYSIS” معروف را که اخیرا در حملات زیرساخت ایران دخیل بود، بررسی میکنیم:
باجافزار تمام دیتا و فایلها را رمزنگاری کرده و سپس به کاربر میگوید که فایل و دادههای او قفل شده است و اطلاعاتی از قبیل راه ارتباطی (که اکثرا از protonmail استفاده میکنند) و زمان باقیمانده برای پرداخت باج و مقدار پول درخواستی را نشان میدهد. اکثر باجافزارها به همین ترتیب کار میکنند.
همچنین چند نمونه از ویژگیهای این باجافزار عبارتند از:
- از کار انداختن System restore
- عدم شناسایی توسط آنتیویروسهایی مانند windows defender
- تشخیص sandbox
- کپی خوشهای نمونههایی از خود در دایرکتوریهای مختلف و اجرای همزمان آنها برای جلوگیری از شناسایی
- فعالسازی شمارش معکوس
- امنیت بالا در رمزنگاری
در ادامه، روشهای مورد استفاده این باجافزار را بررسی میکنیم:
رمزنگاری
این باجافزار برای رمزگذاری و رمزگشایی سریع پروندهها، از دو نوع رمزنگاری متقارن و نامتقارن استفاده میکند. به این شیوه رمزگذاری، رمزنگاری ترکیبی یا هیبرید (hybrid encryption) گفته میشود.
- وقتی باجافزار شروع به کار میکند، یک جفت کلید برای سمت client ایجاد میکند (C_pub & C_prv).
- ما همچنین کلید عمومی قابل اجرای سرور (S_pub) را که هنگام ایجاد باجافزار در داخل آن ایجاد شده است، داریم. در ارتباط با آن، کلید خصوصی سرور (S_prv) نیز در جایی دیگر پنهان است که ما به آن دسترسی نداریم (در نقطه تاریکی و مبهمی از اینترنت).
- برای تمامی فایلها کلاینت یه کلید رمزنگاری متقارن (برای مثال AES) تولید کرده و آن فایل را رمزنگاری میکند.
- سپس کلید تولید شده با C_prv تولید شده مجدد رمزنگاری میشود. یعنی، حالا تنها کلیدی که میتواند منجر به رمزگشایی و رهایی از باجافزار شود، کلید عمومی سرور یا همان S_pub است.
بیایید وانمود کنیم که فقط یک فایل یا داکیومنت روی دیسک داریم. اگر میخواستیم همه اینها را واگرد (undo) کنیم و فایل خود را پس بگیریم، یعنی در کل بخواهیم فایلها را رمزگشایی کنیم، باید:
- آن را با (کلید AES) که یک کلید متقارن است رمزگشایی کنیم.
- اما این کلید با کلید عمومی کلاینت (C_pub) رمزگذاری شده است، بنابراین باید (C_prv) را هم داشته باشیم.
- اما باز هم مشکل داریم، (C_prv) با کلید عمومی سرور (S_pub) رمزگذاری شده است.
- بنابراین، تنها راهی که میتوانیم (S_prv) را پیدا کنیم، این است که از سرور درخواست کنیم یا از آن بخواهیم (C_prv) را برای ما رمزگشایی کند.
به طور کلی، اگر کسی باج را پرداخت کند و قصد بازیابی پروندههایش را داشته باشد، کلاینت کلید خصوصی را به سرور ارسال و سرور (C_prv) را با (S_prv) رمزگشایی میکند، که میتوانیم از آن برای رمزگشایی کلید AES استفاده کنیم.
سناریو آزمایشی بخش اول
- در این اسکریپت، از دو الگوریتم رمزگذاری متقارن و نامتقارن برای دستیابی به سرعت و امنیت مطلوب استفاده کردیم.
- برای رمزنگاری نامتقارن، الگوریتم RSA را انتخاب کردیم ، که بیشتر به ویژه در تجارت الکترونیکی و مبادله اطلاعات محرمانه در اینترنت استفاده میشود.
- برای رمزنگاری متقارن، AES را انتخاب کردیم که به عنوان رمزگذاری مدرن تعریف میشود از سه طول کلید رمزگذاری 128، 192 و 256 بیتی پشتیبانی میکند و همچنین امنیت طولانیمدت بسیار خوبی را در برابر حملات brute-force ایجاد میکند.
- پسوندهایی که برنامه ما شناسایی و رمزنگاری میکند:
{‘doc’, ‘docx’, ‘txt’, ‘jpeg’, ‘png’, ‘jpg’, ‘pst’, ‘ost’, ‘msg’, ’eml’, ‘avi’,’pdf’}
توجه داشته باشید که به انتهای همین پسوندها مجددا پسوند جدید اضافه خواهیم کرد.
- بعد از اجرای برنامه به دایرکتوری home قربانی اضافه میشود.
- کلید 2048بیت RSA بعد از اجرا ایجاد میشود (client key).
- بعد کلید خصوصی کلاینت (C_prv) با کلید عمومی سرور رمزنگاری میشود.
- هر فایلی با پسوندهای بالا پیدا شده و توسط AES رمزنگاری میشود که هر فایل AES key , Initialization vector مخصوص خود را دارد.
- بعد از این AES key با کلید عمومی کلاینت (C_pub) رمزنگاری میشود و در نهایت پسوند فایلها به inValid تغییر پیدا میکند.
از این جا به بعد، ویژگیهایی قرار است به برنامه ما اضافه شود که بحث را عمیق و جذاب خواهند کرد. قسمتی از این ویژگیها، در این بخش گفته میشوند و چند مورد دیگر مثل کار با رجیستریها و دستکاری process ها و بایپس آنتی ویروس و… در بخشهای بعدی مقاله.
هنگامی که برنامه روی تارگت اجرا شد، میتوانیم از سرور Command & Control خود بخواهیم که برخی دستورات را راهاندازی کند.
مثلا: keylog_start یک keylogger را در قالب یک thread جدید شروع میکند، و خروجی روی فایلی به نام out.txt خواهد بود که میتواند با دستورات دیگر به سرور منتقل شود.
برای مثال، دستور dir را گرفته، روی تارگت اجرا کرده و خروجی را به سرور برمیگرداند.
نحوه آمادهسازی و رساندن به دست تارگت
باجافزارها از طریق مهندسی اجتماعی به صورت گسترده پخش شده و میزان قابل توجهی از اهداف را قربانی میکنند:
ایمیلهای آلوده
ایمیلهایی در مقیاس گسترده با محتوای جذاب و پیوست مخرب ارسال میشوند. مثلا، برای یک شرکت که درخواست جذب نیرو داده، یکسری ایمیل با محتوای استخدامی و پیوست آلوده ارسال میشود. حالا این پیوست ممکن است فایل zip و pdf و ورد و… باشد. بعد از بازکردن این پیوست معمولا اتفاقی نمیافتد اما در واقع، باجافزار به سیستم شما وارد شده و بعد از گذشت چند روز شروع به کار میکند.
آدرسهای مشکوک و آلوده (Malicious URLs)
مهاجمان همچنین با درج پیوندهای مخرب در پیامها، ایمیلها و رسانههای اجتماعی برای توزیع باجافزار استفاده میکنند. بر اساس آمار Coveware، در طی یک سوم سال 2019، تقریباً از هر 4 حمله باجافزاری یکی از آنها از ایمیل فیشینگ به عنوان حمله استفاده کرده است.
برای تشویق شما برای کلیک بر روی پیوندهای مخرب، پیامها معمولاً به گونهای نوشته میشوند که افراد حس کنند پیام ضروری است و خواندن آن مهم است. با کلیک بر روی لینک، بارگیری باج افزار آغاز میشود.
از طریق Remote Desktop Protocol
چند نمونه از باجافزارهایی که از طریق RDP گسترش مییابند، شامل SamSam ،Dharma و GandCrab و بسیاری از نمونههای دیگر هستند.
بهطور پیشفرض، RDP درخواستهای اتصال را از طریق پورت 3389 دریافت میکند. مجرمان با استفاده از اسکنر پورت برای جستجوی این پورت آسیبپذیر استفاده میکنند. سپس بعد از پیدا کردن آن شروع به حملات بروت فورس روی این پروتکل میکنند تا به اطلاعات ورود دسترسی پیدا کنند.
هنگامی که مهاجم به دستگاه دسترسی پیدا کرد، میتواند کم و بیش هر کاری را که میخواهد انجام دهد. بهطور معمول، این کارها شامل غیرفعال کردن نرمافزار آنتیویروس و سایر راهکارهای امنیتی، حذف نسخه پشتیبان (بکاپ) تهیه شده و استقرار باجافزار است. همچنین ممکن است مهاجم یک backdoor بگذارد تا در آینده بتواند از آن استفاده کند.
تبلیغات مخرب
تبلیغات مخرب در حال تبدیل شدن به یک روش فزاینده محبوب در ارسال باجافزار است. این تبلیغ ممکن است یک تصویر تحریک کننده، اعلان پیام یا پیشنهادی برای نرمافزار رایگان باشد.
وقتی روی تبلیغ کلیک میکنید، exploit kit سیستم شما را برای به دست آوردن اطلاعات در مورد نرمافزار، سیستمعامل، جزئیات مرورگر و موارد دیگر اسکن میکند. اگر exploit kit یک آسیبپذیری را تشخیص دهد، سعی میکند باجافزار را روی دستگاه کاربر نصب کند.
نرمافزارهای کرک شده (Pirated software)
استفاده از نرمافزارهای غیرقانونی ممکن است به طور غیرمستقیم هم خطر آلودگی به باجافزار را افزایش دهد. یعنی امکان دارد نرمافزارهای کرک شده دارای یک بخش آلوده نیز باشند؛ همانند باجافزار Djvu.
به طور معمول، نرمافزارهای کرک شده بهروزرسانیهای رسمی را از توسعهدهنده دریافت نمیکنند؛ این یعنی کاربران ممکن است وصلههای امنیتی (یا همان پچهای) مهم را که میتوانند توسط مهاجمان مورد سوءاستفاده قرار بگیرند و اکسپلویت شوند، از دست بدهند.
از طریق Drive-by downloads
در این حملات یک فایل بدون اطلاع کاربر دانلود و روی سیستمش نصب میشود. توزیعکنندگان Ransomware از این طریق یا با استفاده از آسیبپذیریهای شناخته شده، محتوای مخرب سایت خود را به وبسایتهای قانونی تزریق میکنند.
هنگام بازدید از وبسایت آلوده، محتوای مخرب دستگاه شما را برای یافتن آسیبپذیریهای خاص آنالیز میکند و باجافزار در پسزمینه به طور خودکار اجرا میشود. برخلاف بسیاری از روشهای حمله، در روش Drive-by Downloads نیاز نیست کاربر هیچ کاری انجام دهد.
لازم نیست روی چیزی کلیک کنید، لازم نیست چیزی نصب کنید و نیازی نیست پیوست مخربی را باز کنید – تنها بازدید از یک وب سایت آلوده برای آلوده شدن کافی است.
سناریو آزمایشی برای پخش باجافزار
ما شرکتی را مثال میزنیم که تعداد زیادی کارمند دارد و آنها از عملکرد کمپینهای فیشینگ و غیره آگاهی ندارند. آسانترین کار، ارسال یک فایل word مخرب است.
فرد یا افراد پشت این باجافزار با سادهترین کار یعنی جستجوی malicious VBA script در گوگل میتوانند به نتایج خوبی برسند.
این اسکریپت یک dropper است. یعنی دانلود یک برنامه و اجرای آن، وظیفه این اسکریپت است.
اما هنوز سناریو مشکل دارد. چیزی که جستجو کردهایم یک ابزار یا اسکریپت عمومی است و مایکروسافت قطعا یک rule در ویندوز دیفندر برای آن تعریف کرده است. پس زمان اجرا، ویندوز دیفندر جلوی آن را میگیرد.
برای همین باید اسکریپت VBA را کمی به اصطلاح obfuscate یا مبهم کنیم.
همین برای رد کردن هشدار کافی است. البته کارهای بیشتری هم میشود انجام داد، کارکرد باجافزارهایی مانند CRYSIS و Maze Ransom خیلی پیچیدهتر از اینهاست.
در این مرحله، ما هنوز مشکل دکمه “enable contents” را داریم، در واقع ماکروها به طور پیشفرض در Office غیرفعال هستند و این باید برای همه صادق باشد، بنابراین اولین باری که یک کاربر پروندهای را باز میکند، به وی این امکان داده میشود که بر روی دکمه کلیک و انتخاب کند که ماکروها را اجرا کند یا خیر.
ما باید او را متقاعد کنیم که کلیک کند. مثالهای زیادی در مورد نحوه انجام این کار وجود دارد:
توجه داشته باشید که ما از () Sub AutoClose استفاده کردیم که پس از بسته شدن سند، ماکرو را اجرا می کند. بنابراین، بله، اگر شخص بر روی دکمه کلیک کند، تا زمانی که تصمیم به بستن نگیرد، هیچ اتفاقی نمیافتد:
کاربر کافیست برنامه را ببند تا قربانیِ حمله شود. اگر او خروج را لغو کند، برخی از پیامها نمایش داده میشود. افزودن برخی از آرمها و برخی از امضاها و همه برای واقعیتر ساختن آن، اطمینان و اعتبار بیشتری ایجاد میکند.
یکی از قانع کنندهترین و فریبندهترین راهها جعل هویت بخش IT است که درصد موفقیت هکرها را بسیار بالا میبرد.
نویسنده: مهندس نیما دباغی