تحلیل بدافزار چیست؟ ۳ گام اصلی و ۴ نوع مهم تحلیل بدافزار را بشناسید.
تحلیل بدافزار (Malware Analysis) یکی از مهمترین فرایندها در حوزه امنیت سایبری است که با مطالعه سازوکار نرمافزارهای دارای عملکرد بدخواهانه، به مقابله با تهدیدات سایبری کمک میکند. امروزه، تهدیدات سایبری به یکی از مهمترین مشکلات بسیاری از سازمانهای دولتی و خصوصی و حتی کاربران شخصی تبدیل شدهاند. متأسفانه با وجود تلاشهای شبانهروزی جامعه امنیت سایبری رخداد حملات سایبری به شدت در حال افزایش است. از سال ۲۰۱۵ به این سو حملات هکری به طور میانگین سالیانه ۱۵ درصد رشد کردهاند و انتظار میرود که این روند تا سال ۲۰۲۵ ادامه داشته باشد. همچنین، پیشبینی میشود که خسارت حاصل از هکها از ۳ تریلیون دلار در سال ۲۰۱۵ به بیش از ۱۰ تریلیون دلار در سال ۲۰۲۵ برسد. بدافزارها مهمترین نقش را در حملات سایبری ایفا میکنند و شناخت سازوکارهای آنها به متخصصان حوزه امنیت سایبری، توسعهدهندگان نرمافزار، توسعهدهندگان وب و دیگر متخصصان حوزه فناوری کمک میکند تا با تهدیدات امنیتی فزاینده مقابله کنند.
تحلیل بدافزار چیست؟
تعاریف مختلفی برای تحلیل بدافزار وجود دارد ولی میتوان تعریف زیر را بهترین و کاملترین تعریف برای تحلیل بدافزار دانست:
«فرایند تجزیه یک بدافزار به مؤلفههای اصلی و کد منبع و بررسی مشخصات، عملکرد، منشاء و اثرات هر یک از این مؤلفهها به صورت جداگانه و در کنار همدیگر برای خنثیسازی تهدید و پیشگیری از حملات سایبری آتی را تحلیل بدافزار مینامند».
تعریف بالا از چندین مؤلفه جداگانه تشکیل میشود که در زیر، هر کدام از آنها را به صورت جداگانه توضیح میدهیم:
تجزیه بدافزار: بخش اصلی تحلیل بدافزار تجزیه ابهامزدایی (demystify) بدافزارها و تهدیدات سایبری برای شناخت بهتر آنها است. هر بدافزار چیزی بیش از یک نرمافزار نیست که با هدف انجام اقدامات بدخواهانه و دسترسی غیر مجاز، برنامهنویسی شده است. درک کد بدافزار و نحوه کارکرد آن برای مقابله با آن یا حداقل، جلوگیری از انتشار آن بسیار مهم است.
بررسی مشخصات بدافزار: هر نرمافزاری یک ردپای دیجیتالی منحصر به فرد از خودش بر جای میگذارد و بدافزارها نیز از این نظر فرقی با نرمافزارهای دیگر ندارند. اما هر نوع یا خانواده بدافزاری خاص، چطور کار میکند؟ چطور منتشر میشود؟ سرعت تکثیر چقدر است؟ و چه تاکتیکی برای استتار دارد؟ دانستن مشخصات دقیق بدافزار به شناسایی آسانتر آن کمک میکند.
بررسی عملکرد: بررسی عملکرد بدافزار یکی از مؤلفههای بسیار مهم در تحلیل بدافزار است و البته اجرای درست آن، کار سادهای نیست. معمولا، بدافزارها تا فرا رسیدن زمان مناسب برای حمله به صورت مخفی باقی میمانند و بنابراین، عملکرد آنها برای کاربر مشخص نیست تا اینکه بدافزار کار خودش را انجام میدهد و برای مقابله با آن بسیار دیر شده است. در تحلیل بدافزار تلاش میشود تا با خواندن کد بدافزار، قصد و عملکرد احتمالی آن مشخص شود.
رهگیری منشاء: معمولا، رهگیری بدافزارها کار سختی است و هکرها از این قابلیت بدافزارها برای باج گرفتن از قربانیان با استفاده از باجافزارها (ransomware) بهره میگیرند. یکی از اهداف تحلیل بدافزار، پیدا کردن منشاء بدافزارها است که این کار میتواند با رهگیری یک IP، یک فرد، یک موقعیت جغرافیایی یا حتی یک سازمان، انجام شود. پس از تعیین منشاء حمله میتوان از نهادهای قانونی برای برخورد با مجرمین سایبری کمک گرفت.
پیشبینی تأثیر بدافزار: در تحلیل بدافزار میتوان با کنار هم قرار دادن عناصر فوق، تأثیر احتمالی بدافزار را پیشبینی کرد. عملکرد بدافزار، ماهیت سیستمهای هدف، سرعت تکثیر و مسیرهای انتقال، میزان و شدت تأثیرگذاری بدافزار را نشان میدهند.
تحلیل بدافزار چه مراحلی دارد؟
فرایند تحلیل بدافزار را میتوان به مراحل زیر، تقسیمبندی کرد:
۱- به دام انداختن بدافزار
پیش از شروع تحلیل بدافزار، باید به کد رمزنشده یا محافظتنشده آن دسترسی پیدا کنید. برای این کار میتوان از ابزاری مثل HoneyDB برای جذب بدافزار و به دام انداختن آن در یک محیط امن مثل جعبه شن استفاده کرد.
۲- ایجاد یک آزمایشگاه تحلیل بدافزار
«آزمایشگاه تحلیل بدافزار» محیطی امن مثل جعبه شن است که میتوان بدافزارها را بدون نگرانی در آن اجرا کرد. معمولا، آزمایشگاههای بدافزار از ماشینهای مجازی ساخته میشوند.
۳- نصب ابزارهای لازم
ابزارهای مختلفی برای تحلیل بدافزار وجود دارد و برای پیدا کردن این ابزار میتوان از GitHub کمک گرفت. برای تحلیل بدافزار نیاز دارید که ابزارهای مختلفی را روی ماشین مجازی خود نصب کنید.
۴- گرفتن Snapshot
پیش از اجرای بدافزار در ماشین مجازی باید از محیط سیستم عامل ارزیابی یک Snapshot تهیه کنید. پس از گرفتن Snapshot میتوانید از بعضی ابزارها برای بررسی تغییرات محیط سیستم عامل به منظور شناسایی رفتار و تأثیر بدافزار کمک بگیرید.
۵- آغاز بررسی بدافزار
مرحله بررسی بدافزار از چندین فاز مختلف تشکیل میشود. بعضی از این فازها نیازمند کارهای دستی سنگین هستند اما بعضی دیگر، توسط ابزار خودکار انجام میشوند.
۶- مستندسازی نتایج
بسته به ابزارهایی که در اختیار دارید، به اطلاعات دقیق و دادههای زیادی در رابطه با رفتار، گرایشها و الگوهای تعاملی بدافزار با محیطی که در آن اجرا میشود، خواهید رسید. این دادهها و اطلاعات باید مستندسازی شوند تا بتوان از آنها برای تحلیل بدافزار استفاده کرد.
تحلیل بدافزار چه انواعی دارد؟
به طور کلی، میتوان گفت که دو نوع تحلیل بدافزار وجود دارد:
- تحلیل استاتیک (ایستا)
- تحلیل داینامیک (پویا)
همچنین، میتوان تحلیل بدافزار را بر اساس نوع عملیات به دو نوع زیر تقسیمبندی کرد:
- تحلیل دستی
- تحلیل خودکار
یک تحلیل جامع باید ترکیبی از تمامی این روشها باشد. در زیر، هر کدام از این روشها را به صورت جداگانه به شما عزیزان معرفی میکنیم. همچنان با ما همراه باشید.
۱- تحلیل استاتیک بدافزار
کدهای بدافزار دارای دو نوع عنصر داینامیک و استاتیک هستند. تحلیل استایتک روی عناصر استاتیک کد بدافزار، مثل متادیتا، هدرها، منابع و… انجام میشود.
معمولا، یک تحلیل استاتیک سریع، اطلاعات کافی مورد نیاز برای ایجاد شاخص خطر (Indicator Of Compromise) یا همان IOC را در اختیار قرار میدهد. IOC سندی است که ماهیت بدخواهانه نرمافزار در آن ثبت میشود.
۲- تحلیل داینامیک بدافزار
در تحلیل داینامیک به بدافزار اجازه داده میشود تا خودش را در یک محیط کنترلشده اجرا کند و رفتارش تحت مشاهده قرار بگیرد. از آنجایی که بدافزارها میتوانند به سیستمهایی که در آنها اجرا میشوند، آسیبهای غیر قابل برگشت وارد کنند، ضرورت دارد که برای این کار حتما از ماشینهای مجازی استفاده شود. در این نوع تحلیل بدافزار باید به چندین سیگنال رفتاری مثل تعاملات با ترافیک شبکه، الگوهای هدفگیری فایل سیستم و هر نوع تغییری در رجیستری باید مورد توجه قرار بگیرند. میتوان با گرفتن Snapshot پیش از تحلیل داینامیک و پس از آن، اطلاعات خوبی از الگوهای رفتاری بدافزار به دست آورد. بنابراین، به این نوع تحلیل بدافزار، تحلیل رفتاری نیز میگویند.
۳- تحلیل دستی بدافزار
در این نوع تحلیل بدافزار ممکن است که تحلیلگر، کد بدافزار را به صورت دستی و با استفاده از ابزارهایی مثل دیباگرها، دیکامپایلرها و دیکریپترها تجزیه و تحلیل کند. معمولا، تحلیل دستی هدف استراتژیک بدافزار را آشکار میکند زیرا تحلیلگر منطق اصلی الگوریتم را بررسی و تلاش میکند تا منطق عناصری را که در نگاه اول غیر ضروری به نظر میرسند، پیشبینی کند.
۴- تحلیل خودکار بدافزار
در تحلیل خودکار، بدافزار به صورت خودکار از مجموعهای از مراحل عبور میکند و الگوهای رفتاری و خواص استاتیک آن در هر کدام از این مراحل به صورت جداگانه بررسی میشود. با اینکه تحلیل خودکار، درک کاملی نسبت به منطق بدافزار ایجاد نمیکند اما برای دستهبندی و شناسایی خانواده آن بسیار مفید است. خودکارسازی میتواند منجر به ایجاد گزارشهایی دقیق شود و دادههای لازم برای یک سیستم «پاسخ به حادثه» را تأمین کند و تنها ضروریترین سیگنالها در اختیار تحلیلگر انسانی قرار بگیرند.
۳ گام اصلی تحلیل بدافزار
فرایند تحلیل بدافزار را میتوان به سه گام اصلی که در زیر توضیح داده شدهاند، تقسیمبندی کرد:
۱- مشاهده رفتار بدافزار
در شروع فرایند تحلیل بدافزار، تحلیلگر با اجرای ابزارها یا اقدامات دستی ساده تلاش میکند تا بدافزار را مجبور به واکنش کند. وقتی نرمافزار به محیط اطراف خودش (در یک ماشین مجازی) واکنش نشان میدهد، درک رفتار و تهدیدات بالقوه آن سادهتر میشود. انجام مطالعات رفتاری روی بدافزار میتواند به سادگی اجرای یک ضدویروس در محیط مجازی باشد. با ترکیب مزیتهای استراتژيهای تحلیل خودکار و تحلیل دستی میتوان از فریمورکهای تحلیل رفتاری برای ایجاد یک اسکریپت قابل استفاده مجدد بهره برد.
۲- تجزیه کد بدافزار
تجزیه یا دیس اسمبل کردن کد هم شامل تحلیل استاتیک (با بررسی عناصر غیر قابل تغییر کد بدافزار) و هم شامل بررسی منطق درونی آن است. در تجزیه کد تا حد زیادی از روشهای دستی استفاده میشود و به همین دلیل، بهتر است که تحلیلگر به زبان ماشین و اسمبلی آشنایی داشته باشد. همچنین، میتوان از یک دیساسمبلر (disassembler) پیشساخته نیز برای تجزیه کردن کد نرمافزار و تبدیل منطق آن از صفر و یک به زبان اسمبلی استفاده کرد. معمولا، از سه نوع ابزار برای تجزیه کد بدافزار استفاده میشود که به شرح زیر هستند:
- دیساسمبلر: کد نرمافزار را از زبان باینری به زبان اسمبلی تبدیل میکند که برای تحلیلگر انسانی قابل درک باشد.
- دیباگر: کد بدافزار را اسکن و عناصر مشکوک را برای بررسی بیشتر توسط تحلیلگر انسانی هایلایت میکند.
- کامپایلر: کد اصلی منبع برنامه را بازسازی میکند و میتواند به شناسایی اثر انگشت دیجیتالی برای رهگیری منشاء آن کمک کند.
۳- بررسی حافظه
در این گام مستقیما به سراغ ردپاهای جرمشناسی باقیمانده از بدافزار در حافظه سیستم میرویم. معمولا، بدافزارها به طور متوسط چیزی حدود یک مگابایت یا کمتر حجم دارند و بنابراین، بررسی رد پاهای آنها در حافظههای محیطهای رایانشی معمولی کار دشواری است. آزمایشگاههای تحلیل بدافزار باید شرایط ضروری برای بنچمارک کردن حالت حافظه قبل از فعالیت بدافزار را فراهم میآورند، آن را اجرا کرده و سپس، ردپاهای باقیمانده از فعالیتهای بدافزار را استخراج میکنند. تحلیل حافظه میتواند بسیار دشوار باشد زیرا تحلیلگر در جستجوی کوچکترین رد پاهای دیجیتالی به جا مانده از یک نرمافزار بسیار سبک و طراحیشده برای پنهانکاری است. خوشبختانه، چندین ابزار برای این کار وجود دارند که میتوان با نصب آنها در محیط مجازی آزمایشگاه تحلیل بدافزار، کار تحلیل حافظه را انجام داد. به طور کلی میتوان گفت که در این گام اطلاعات بیشتری در رابطه با بدافزار، حتی بعد از توقف اجرای آن جمعآوری میشود.
جمع بندیتحلیل بدافزار فرایندی است که در آن کد بدافزار تجزیه یا دیساسمبل میشود و اطلاعاتی در رابطه با مشخصات، رفتار و منشا و عملکرد آن به دست میآید و تأثیرات آن پیشبینی شود. برای تحلیل بدافزار نیاز به یک آزمایشگاه تحلیل بدافزار وجود دارد و سپس باید بدافزار به دام انداخته و در ماشین مجازی آزمایشگاه اجرا شود. در نهایت، تحلیلگر باید نتایج تحلیل را مستندسازی کند.
تحلیل بدافزار میتواند استاتیک یا داینامیک باشد. همچنین، میتوان بدافزارها را به صورت دستی یا خودکار تحلیل کرد. با این حال، در یک تحلیل جامع هم از روشهای استاتیک و هم از روشهای داینامیک، به هر دو صورت دستی و خودکار استفاده میشود.
به طور کلی میتوان گفت که تحلیل بدافزار دارای سه گام اصلی مشاهده رفتار بدافزار، تجزیه کد بدافزار و بررسی حافظه سیستم پس از توقف اجرای بدافزار است که به ویژه در جرمشناسی دیجیتال (Digital Forensics) اهمیت دارد.