شناسایی و تحلیل بدافزارها

چکیده

سال‌هاست که بدافزارهای گوناگون برای عملیات خرابکارانه در سیستم‌های کامپیوتری تولید می‌شوند. در سالیان اخیر شناسایی بدافزارها مسئله دشواری است، زیرا با وجود پیشرفت الگوریتم‌ها و نرم‌افزارهای شناسایی و پویش بدافزارها، نویسندگان و سازندگان بدافزارها نیز رشد کرده‌اند و از روش‌های متنوع و هوشمند برای تولید بدافزارشان بهره برده‌اند که بدافزار تولیدی آن‌ها از شناسایی فرار کند و این امر شناسایی بدافزارها را بسیار پیچیده و دشوار کرده است. برای شناسایی بدافزارها سه روش کلی وجود دارد. روش‌‎های مبتنی بر تحلیل ایستا، مبتنی بر تحلیل پویا و روش های ترکیبی این دو، تاکنون مدنظر بوده‌اند. روش‌های ایستا که سعی می‌کنند اطلاعات مختلفی از کد دودویی و یا کد اسمبلی بدافزار، استخراج کنند تا برای شناسایی خانواده‌های مختلف بدافزار، استفاده شود. علی‌رغم موفقیت‌های بسیار این دسته از روش‌ها، هنوز شرایطی هست که عملکرد قوی ندارند و فنونی برای شکست این روش‌ها وجود دارد که یکی از این فنون مبهم‌سازی کد و اضافه شدن مقداری کد از فایل سالم درون بدافزار جدید است. در مقابل، روش‌های مبتنی بر تحلیل پویا سعی می‌کنند در محیط‌های محافظت شده، جعبه شنی و یا مجازی بدافزارها را اجرا کنند که با مشاهده رفتار بدافزار و کنش‌های انجام گرفته، تحلیلی را صورت دهند. متأسفانه سربار محاسباتی مشکل عمده روش‌های پویا است؛ علاوه بر این بدافزار در اقدام مقابل می‌تواند روش کشف پویا را گمراه سازد. اخیراً سعی در پیشنهاد روش‌هایی مبتنی بر ترکیب روش‌های پویا و ایستا بوده است که برای بهره‌گیری از مزایای دو رویکرد ایستا و پویا و نیز کاهش مشکلات هر کدام، اقدام به طراحی روش‌های ترکیبی کرده‌اند به طوریکه بتوان ضمن حفظ کارایی کشف روش‌های ایستا، از اطلاعات ارزشمندی که حین اجرا از تحلیل پویا حاصل می‌شود نیز بهره‌برداری نمود.