کمیته رکن چهارم – ویروس پلی مورفیک ویروسی است که بدنه ی خود را هر بار با کلیدهای مختلف رمزنگاری میکند و بعد از آن خودش هم در زمان اجرا عملیات رمزگشایی (Decode) را انجام می دهد.
به گزارش کمیته رکن چهارم،یعنی برای شناسایی نشدن کد اصلی برنامه یک نقاب برا ی کد ایجاد می کند،مثلا اینکه تمامی بیت ها را با ۱، XOR کند پس opcode تغییر کرده و برای آنتی ویروس مجهول می باشد.
اما اینکار باعث میشود که کد اصلی در پردازنده قابل اجرا نباشد به همین منظور باید در سیستم قربانی کد به حالت اولیه برگردد. برای برگرداندن کد از حالت رمز شده یک دیکدر در کنار بدنه ی اصلی ویروس قرار دارد تا با اجرا شدنش بدنه ی اصلی را دیکد کند یعنی هنگامی که برنامه آلوده شده به ویروس، شروع به کار کند، ماژول رمزگشا کار خود را آغاز می کند و بدنه ویروس را رمزگشایی می کند. ویروس های پلی مورفیک می توانند رمزگشاهای خود را تغییر دهند به گونه ای که میلیون ها شکل مختلف از ان در اختیار باشند و این کار را با موتور جهش (mutation Engine) انجام می دهند که پیاده سازی آن به مراتب سخت تر از کد بدافزار می باشد.
دلایل استفاده از رمزنگاری برای ویروس ها را می توان به صورت زیر تعریف کرد :
۱- جلوگیری از تحلیل ثابت کد: تحلیل ثابت یعنی کد ویروس از فایل اجرایی آن استخراج شده و برخی دستورات مشکوک کد را یافته و فایل به عنوان ویروس شناسایی می شود. مثلا int 21H اغلب برای از کار انداختن سیستم فایل و سیستم مدیریت حافظه است.
۲- تاخیر در روند تحلیل: در واقع برای شناسایی ویروس مدت زمان زیادی باید صرف شود تا کد اصلی ویروس استخراج شود.
مهمترین مشکل وضعف این نوع ویروس ها ثابت بودن بدنه ی اصلی ویروس بعد از رمزگشایی می باشد و به همین دلیل تکنیکهای پیشرفته ای که در شناسایی ویروس استفاده میشوند پس از رمزگشایی ویروس، آنها را شناسایی و جلوی عملکردشان را میگیرند.
یکی دیگه از ضعف های آن این است که تمام این ویروسها نیاز به بازنویسی بدنهی خودشون در زمان اجرا دارند و در بسیاری از سیستم ها به عنوان رفتار غیرعادی در نظر گرفته و ابزار بلاک می شود.
به دلیل ضعفهایی که ویروسهای پلی مورفیک دارند در ویروس های جدید به ندرت از این روش استفاده می شود ولی بیشتر روشهایی مثل متامورفیک استفاده می شود.
در تکنیک های متاموفیک، هدف اینه که شکل ظاهری بدنه ی اصلی ویروس تغییر داده بشه ولی با این وجود بدنه عملیاتی باقی بماند. نوشتن ویروس های متامورفیک بسیار دشوار است. بطور کلی ویروس های متامورفیک خوب باید شامل شش ویژگی اصلی باشند: جداساز داخلی، جمع کننده ی دستورات، گسترش دهنده ی دستورات، جابجاکننده ی دستورات، تولید کننده ی دستورات زائد و محاسبه گر اشاره گرها باشند.
در بخش اول ویروس باید بتواند کد خود را از برنامه ی آلوده جدا کرده تا بتواند در هنگام گسترش، نسخه ی جدیدی از خود را تولید کند. به این بخش جداساز داخلی می گویند. یکی از روش هایی که تقریبا در تمامی این نوع ویروس ها استفاده میشود، بکارگیری دستورات معادل است. به عنوان مثال استفاده ی متوالی از عملگر های OR و NOT همانند عملگر NOR عمل می کنند. بعد از جداسازی ویروس، بخش جمع کننده ی دستورات، این معادل ها را جایگزین می کند تا حجم کد ویروس را تا بیشترین مقداری که ممکن است، کاهش دهد و سپس برای به حداکثر رساندن میزان تفاوت در دو نسخه از کد دوباره به صورت تصادفی معادل گذاری کند، که این عمل بوسیله ی بخش گسترش دهنده ی دستورات انجام می شود.
یکی دیگر از روش ها مورد استفاده در این نوع ویروس ها جابجا کردن ترتیب انجام بعضی دستورات است. به عنوان مثال عمل ۱+۲+۳ را می توان به ۶ حالت مختلف نوشت به طوری که هیچ تغییری در نتیجه ایجاد نشود. جابجاکننده ی دستورات مسئول این کار است. در بسیاری از موارد می توان بین دستورات برنامه، دستورات دیگری را به گونه ای قرار داد تا هیچ نتیجه ی منفی روی عملکرد برنامه نداشته باشند. به این نوع دستورات دستورات زائد گفته می شود استفاده ی درست از دستورات پشته ای نمونه ای از این روش است. بعد از گسترش دستورات و اضافه کردن دستورات زائد اشاره گرهای برنامه به محل های نادرستی اشاره می کنند که برای درست عمل کردن برنامه مقادیر آنها باید دوباره محاسبه و مقداردهی شوند. این مرحله سخت ترین و پیچیده ترین عملی است که موتورهای متامورفیک انجام می دهند.
تمامی مراحل بالا باید در کنار هم و با دقت بسیاری انجام شوند. کوچکترین اشکال در هر یک از بخش های فوق باعث شناسایی ویروس می شود و این باعث سخت شدن کار می شود. لازم به ذکر است که کوچکترین موتور متامورفیک موجود حدودا ۲۰KB حجم دارد که نسبت به موتور های پلی مورفیک رایج بسیار بزرگتر است.
البته روشهای متامورفیک هم به طور کامل غیرقابل شناسایی نیستند و روشهایی پیشنهاد شده اند که تا ۹۵ درصد شباهت بین دو نمونهی تغییر یافته از ویروس را می توانند شناسایی کنند ولی هزینهی اجرایی این روشها معمولا بسیار زیاد است.
منبع:سعیدآسین