همانطور که مردم و مشاغل بیشتر به تکنولوژی وابسته میشوند، بدافزارها به شکل فزایندهای تبدیل به یک تهدید بزرگ برای مردم و سازمانها میشوند.
در همین حال، پبشرفت تکنولوژی به مجرمان سایبری کمک میکند تا بدافزارهای پیچیدهتر و موثرتری توسعه دهند. خرابکاران از ابزارهای هوش مصنوعی مانند chatGpt برای توسعه بدافزار استفاده میکنند. طبق گزارشات AT test روزانه بیش از ۴۵۰ هزار بدافزار گزارش میشود.
به منظور محافظت در برابر تهدید بدافزارها، محققان امنیتی از آنالیز بدافزار برای شناسایی و تحلیل رفتار، مشخصات و قابلیتهای بدافزار استفاده ميکنند. این به محققان کمک میکند تا تهدیدهای بدافزار را بشناسند و مکانیزمهای دفاعی در برابر آنها را ایجاد کنند.
دو نوع تحلیل بدافزار وجود دارد: استاتیک و داینامیک. در ادامه به تفاوتهای این دو تکنیک، نقاط قوت و ضعف آنها اشاره میکنیم.
آنالیز بدافزار چیست؟
تجزیه و تحلیل بدافزار، بررسی اجزای اصلی و کد منبع برای فهمیدن رفتار، منبع و اقدامات احتمالی آن است که با کمک اینها بتوان تهدیدهای بالقوه را کاهش داد.
بدافزار به هر نوع نرمافزاری گفته میشود که برای نفوذ به دستگاه قربانیها بدون اطلاع آنها طراحی شده است. چنین فایلهایی شامل روتکیتها، جاسوسافزارها، باجافزارها، تروجانها و کرمها و سایر انواع بدافزارهاست.
برنامههای مخرب میتوانند به گونهای طراحی شوند که دادههای کاربران را به سرقت برند، از فعالیتهای آنلاین آنها جاسوسی کنند، به فایلهای سیستم آسیب وارد کنند و غیره.
آنالیز استاتیک و داینامیک بدافزار
۱-آنالیز استاتیک بدافزار
در تحلیل استاتیک بدافزار، محققان امنیتی یک بدافزار را بدون اجرای کد آن تجزیه و تحلیل میکنند; هدف در اینجا شناختن خانواده بدافزار، نحوه عملکرد و قابلیتهای آن است.
در این روش، از آنجاییکه هیچ کدی اجرا نمیشود، برخی اطلاعات مهم میتواند از چشم تحلیلگران مخفی بماند. در ادامه به مشخصات تحلیل استاتیک بدافزار اشاره میکنیم:
۱- سریع و سر راست است
این روش ساده است، زیرا کارشناسان فقط باید ویژگیهای نمونه بدافزار مانند ابرداده، رشتهها، ساختار وکد آن را بررسی کنند. از آنجاییکه نیازی به اجرای کد نیست، محققان میتوانند سریع عملکرد و قابلیتهای بدافزار را شناسایی کنند. همچنین میتوان از ابزارهای نظیر disassemblers, decompilers, و debuggers برای آنالیزخودکار و سریع بدافزار استفاده کرد.
۲- مبتنی بر امضاست
تجزیه و تحلیل استاتیک بدافزار از رویکرد تشخیص مبتنی بر امضا استفاده میکند. بدین صورت که ردپای دیجیتال کد نمونه را با پایگاه داده امضای سایر نرمافزارهای مخرب مقایسه میکنند. هر بدافزار یک اثر انگشت دیجیتال منحصر بفرد دارد. این امضا میتواند یک هش رمزنگاری، یک رشته، یا یک الگوی باینری باشد.
اپلیکیشنهای آنتیویروس هم بر همین اساس کار میکنند. آنها با بررسی ردپای دیجیتالی بدافزار در پایگاه دادههای امضای بدافزارها به دنبال انطباق میگردند تا آن فایل را به عنوان بدافزار علامتگذاری کنند.
همانطور که مشخص است رویکرد تجزیه و تحلیل استاتیک بدافزار در مواجه با بدافزارهای شناخته شده بسیار خوب عمل میکند. اما در مورد بدافزار جدید و نوظهور موثر نیست. همچنین این روش احتمالا نمیتواند بدافزارهایی که فقط در شرایط خاص فعال میشوند را شناسایی و علامت گذاری کند.
۳- تکنیکهای مورد استفاده
علاوه بر بررسی امضای بدافزار با پایگاهداده مرتبط، در این روش از disassembler یا debugger برای مهندسی معکوس به جهت بررسی کد استفاده میشود. روش دیگر، برخی از تحلیلگران با استخراج ابرداده رشته نمونه، تجزیه و تحلیل بدافزار استاتیک را انجام میدهند. انجام این کار جزئیاتی مانند دستورات، نام فایلها، پیامها، فراخوانیهای API، کلیدهای رجیستری، URLها و سایر IOC ها را نشان میدهد.
۲- آنالیز داینامیک بدافزار
تجزیه و تحلیل پویای یک بدافزار به معنی اجرای کد آن در یک محیط کنترل شده و نظارت بر نحوه تعامل آن با سیستم است. چنین آنالیزی به محققان این امکان را میدهد که اهداف وقعی بدافزار را شناسایی و راههای مقابله با آن را کشف کنند.
این رویکرد گزارش دقیقتر و عمیقتری ارائه میدهد، اما طولانیتر است. همچنین نیاز به ابزارهای بخصوصی دارد، به علاوه اینکه امکان آلوده شدن محیط تست نیز وجود دارد. در مورد آنالیز پویای یک بدافزار:
۱- به Sandbox نیاز دارد
برای اجرای ایمن یک بدافزار، تحلیلگران به یک محیط تستی بسته (Sandbox) نیاز دارند که در آن بدافزار بتواند بدون آلوده کردن کل سیستم یا شبکه اجرا شود.
۲- جامعتر و دقیقتر است
تحلیل داینامیک خیلی دقیقتر و جامعتر از تحلیل استاتیک است. در این روش محققان با مشاهده اجرای هر یک از دستورات فایل مشکوک، میتوانند به منطق، عملکرد و شاخصهای سازش بدافزار دید جامعتر و عمیقتری داشته باشند. مانند تشخیص اینکه بدافزار برای چه کاری برنامهریزی شده، چگونه ارتباط برقرار میکند و راههای مقابله با آن کدامند.
۳- مبتنی بر رفتار است
در حالیکه روش آنالیز استاتیک مبتنی بر امضاست، تجزیه و تحلیل پویا مبتنی بر رفتار است. بدافزارها مدام در حال تکامل هستند و از طرفی بدافزارهای نوظهور را به سختی بتوان با تحلیل استاتیک شناسایی کرد. علاوه بر این برخی بدافزارها میتوانند امضای خود را مخفی نگاه دارند.
اما تجزیه و تحلیل پویای یک بدافزار مبتنی بر رفتار است و به همین دلیل محققان میتوانند تهدیدهای جدید را شناخته، شناسایی و راههای مقابله با آن را کشف کنند.
در این روزها و همچنین سالهای آتی منتظر ظهور انواع جدید بدافزارهایی هستیم که توسط هوش مصنوعی یا به کمک آن توسعه پیدا کردهاند. در همچین شرایطی تحلیل داینامیک بدافزار بسیار موثر عمل خواهد کرد.
۴- تکنیکهای مورد استفاده
- نظارت بر فعالیت:این تکنیک شامل نظارت بر فراخوانیهای سیستمی ایجاد شده توسط بدافزار در هنگام اجرا است، مانند ایجاد یا اصلاح فایلها، باز کردن اتصالات شبکه و ایجاد تغییرات در رجیستری.
- تجزیه و تحلیل ترافیک شبکه : بدافزار اغلب با سرورهای راه دور تماس میگیرد تا دستورات را دریافت یا دادهها را استخراج کند.به همین دلیل محققان با مانیتور ترافیک بدافزار سعی میکنند سرورهای مخرب، انواع دستورات و دادههایی که استخراج میکند را شناسایی کنند.
- تجزیه و تحلیل داینامیک کد : نظارت بر جریان اجرای بدافزار برای درک نحوه عملکرد بدافزار.
- تجزیه و تحلیل حافظه : بدافزارها اغلب سعی میکنند رفتارشان در حافظه را مخفی کنند. تحلیلگران با بررسی محتویات حافظه در هنگام و بعد اجرای بدافزار سعی میکنند فعالیتهای پنهان را شناسایی کنند.
با ترکیب هر دو تکنیک ( آنالیز استاتیک و پویای بدافزار )، تیمهای امنیتی میتوانند تهدیدات بدافزار را بهتر درک کنند و استراتژیهای دفاعی مؤثرتری برای شناسایی و کاهش حملات احتمالی ایجاد کنند.