روشهای مختلف تشخیص آنتیویروس
آشنایی با عملکرد آنتی ویروس
در این ترفند قصد داریم بحث آنتی ویروسها را به طور کامل برای شما باز کنیم. اینکه چه آنتی ویروسی مطمئن تر است؟ آنتی ویروسها چگونه یک ویروس را میشناسند؟ تکنیک های ویروس یابی و بسیاری مطالب دیگر. با بهره گیری از این ترفند میتوانید خودتان آنتی ویروس بهتر و مطمئن تر را انتخاب کنید.

خرید لایسنس nod32: در دنیای شبکهای امروز، لزوم داشتن یک نرمافزار ضدویروس قدرتمند که کامپیوتر ما را از انواع ویروسها، کرمها، بمبهای منطقی و بهطور کلی کدهای مخرب مصون بدارد، بیش از هر زمان دیگری احساس میشود. خوشبختانه (شاید هم متاسفانه) انتخابهای متعددی در این زمینه وجود دارد. ولی واقعا کدام یک از آنها میتواند بهتر مشکل کامپیوتر (یا کامپیوترهای شبکه) ما را حل کند؟ کافی است سری به سایتهای مربوط به فروشندگان این نوع نرمافزارها بزنید. به نظر میرسد که همه آنها از بهترینها هستند. و همه آنها در تمام طول سال و در تمام 24 ساعت شبانهروز خدمات خود را ارایه میدهند. از طرفی به دلیل بازار رقابتی موجود، هیچکدام از آنها اطلاعات دقیقی از نرمافزارخود ارایه نمیدهند. شما چه یک متخصصIT باشید و چه یک کاربر معمولی، ممکن است به دلیل نداشتن اطلاعات صحیح برای انتخاب ضدویروس مناسب خود با مشکل مواجه میشوید. بنابراین بسیار مهم است که بدانید ضدویروسها چگونه کار میکنند و در واقع عوامل مهم برای انتخاب آنها کدامند.
نسخه اصلی نود 32: اولین قدم جهت انتخاب یک ضدویروس مناسب آشنایی با کارکرد ضدویروسها میباشد. پس از آشنایی با خصوصیات یک ضدویروس، واژگانی که در این زمینه استفاده میشود، را خواهید شناخت. اینکه بدانید ضدویروس چه کارهایی میتواند انجام بدهد و چه کارهایی نمیتواند انجام دهد، به شما کمک میکند که انتظارات معقولی از آن داشته باشید.
روشهای مختلفی برای شناسایی ویروسها وجود دارد. ویروسها (بهطور معمول) چیزی بیشتر از کد یک برنامه نیستند. بنابراین اگر ما بدانیم که هر کدی چه کاری انجام میدهد قادر خواهیم بود که کد حامل ویروس را به محض رویت شناسایی کنیم. این کار اولین عملی است که انجام میگیرد و به نام Signature Matching معروف است.
نرمافزارهای ضدویروس که به این روش کار میکنند دارای یک بانک اطلاعاتی هستند که شامل Virus signatureها است و به محض اینکه کدی را ملاحظه کرد که معادل یکی از رکوردها باشد آن را به عنوان ویروس شناسایی میکند. به نظر میرسد که موثرترین راه برای کشف ویروسها همین باشد. روش فوق ذاتا بهگونهای است که اول ویروس را شناسایی میکند و بعد متناظر با آن یک رکورد (virus signature) به بانک اطلاعاتی اضافه میکند و حالا اگر ویروسی پیدا کند، در صورتیکه متناظر با این ویروس رکوردی در بانک اطلاعاتی باشد قادر به شناسایی آن خواهد بود و همین امر ایجاب میکند شرکتهایی که از این فناوری در نرمافزار خود استفاده میکنند مدام آن را بروز نگه دارند. به هر حال این یک نقطه ضعف میباشد و برای فائق آمدن بر آن دو روش دیگر در نرمافزارهای ضدویروس معرفی شده است.
فلسفه Heuristic این است که بتوانیم ویروسهایی را شناسایی کنیم که هنوز Virus Signature آنها در بانک اطلاعاتی موجود نمیباشد. این کار با استفاده از یک بانک اطلاعاتی که رکوردهای آن حاوی Virus behavior signature میباشد قابل انجام است. رکوردهای این بانک اطلاعاتی امضای ویروس خاصی را نگهداری نمیکنند بلکه بیشتر رفتارهای (رفتار بد) ویروسها را ذخیره میکنند. مثلا اینکه هر کجا تشخیص بدهند کدی قصد پاک کردن Boot Sector را دارد از آن جلوگیری میکنند.
الگوریتمهایHeuristic به دو صورت پیادهسازی میشوند: ● اگر تکنولوژی Heuristic کد هر برنامه را با Virus behavior Signature مقایسه کند و مورد آنالیز قرار دهد آن را روش static heuristic مینامیم. ● در بعضی مواقع این تکنولوژی قطعه کد را در یک ماشین مجازی اجرا میکند تا نتایج رفتاری آن را ببیند به این روش dynamic heuristic میگوییم. این روش ممکن است نتایج غلطی نیز تولید کند.
در روش integrity checksum، فرض براین است که ویروس قصد اعمال تغییراتی در فایل دارد. مثلاً یک ویروس میخواهد که روی یک فایل چیزی بنویسد یا اینکه خودش را به آخر فایلی اضافه کند. در این روش نرمافزار checksum فایل غیرویروسی و یا درایورهای تمیز را ذخیره میکند و هرگاه که تغییری در این checksum مشاهده شود متوجه میشود که احتمال دارد ویروسی این کار را انجام داده باشد. در این روش نیز احتمال تولید نتایج غلط وجود دارد. این روش در مقابله با ویروسهای ماکرویی یا ویروسهای مانند code Red که بدون اینکه در هیچ فایلی ذخیره شوند در حافظه بارگذاری و اجرا میشوند، کارایی چندانی ندارد.
اگر یک کد مزاحم از تمام الگوریتمهای یک ضدویروس که تاکنون نام بردیم بگذرد، در گام آخر توسط فناوری دیگری به نام Activity Blocker از فعالیت آن جلوگیری میشود. این تکنولوژی از تمام فعالیتهایی که ممکن است توسط یک کد مخرب صورت بپذیرد جلوگیری میکند مثلا اگر تشخیص دهد که هارددیسک در حال فرمت شدن است از آن جلوگیری میکند.
معمولا ضدویروسها به دو روش میتوانند ویروسها را شناسایی کنند. در روش اول ضدویروس، به صورت Real Time (بلادرنگ) و همان موقع که فایل مورد دسترسی قرار میگیرد عمل میکند. در این روش، ضدویروس درون حافظه مقیم میشود و تمام فعالیتهای مربوط به سیستم را مورد ارزیابی و بررسی قرار میدهد. این نرمافزارها با همکاری سیستمعامل متوجه میشوند که هماکنون قرار است فایلی مورد دسترسی قرار بگیرد. سریعا این فایل را بررسی و نتیجه را گزارش میدهند. به این روش on-access میگویند. مزیت این روش در ارایه یک حفاظت دایمی است ولی اشکالی که دارد این است که تنها فایلها را به هنگام دسترسی مورد بررسی قرار میدهد. یعنی احتمالا اگر ویروسی در یک فایل قرار گرفته باشد و در دیسک ذخیره شده باشد، با این روش قابل شناسایی نیست. در روش دوم این امکان به کاربر داده میشود که خودش نرمافزار ضدویروس را برای بررسی کردن دیسک یا یک فایل به کمک بگیرد. برای اینکه فعالیت فوق بازده بهتری داشته باشد باید ضدویروس را طوری تنظیم کرد که در دورههای زمانی معین اقدام به اسکن کند. این روش به on-demand معروف است.
هیچ ضدویروسی وجود ندارد که بتواند به صورت صددرصد سیستم شما را در مقابل ویروسها ایمن کند. ویروسها و کدهای مخرب همیشه از ضدویروسها جلو بودهاند CodeRed.،Melissa ،Funlove ،Nimda و ویروسهای زیاد دیگر این فرضیه را ثابت نمودهاند و البته دلیل پویایی و حیات نرمافزارهای ضدویروس نیز همین قضیه میباشد.
به خاطر دارید که ضدویروسها برای شناسایی یک ویروس بهطور معمول نیاز به virus signature دارند و البته هنگامی که این signature موجود نباشد از روشهای heuristic استفاده میشود که این روش نیز همیشه جواب درست را برنمیگرداند. با این همه، ضدویروسها در مقابل ویروسهای شناخته شده (بیش از60 هزار عدد) یک حفاظت همه جانبه از سیستم شما به عمل میآورند. بیشتر ضدویروسها در صورت بروز و ظهور یک ویروس جدید قادر خواهند بود که به سرعت آن را شناسایی کنند و سیستم شما را از وجود این ویروس پاک نگه دارند.
آیا هر ویروسی که توسط نرمافزار ضدویروس شناسایی شد قابل از بین بردن است؟ بستگی دارد که عملکرد ویروس چگونه باشد. بعضی از ویروسها مانند ویروسهای ماکرویی به راحتی توسط نرمافزار ضدویروسی تشخیص داده میشوند و از فایل بیرون کشیده میشوند و پاک میشوند. این فایلها هیچ آسیبی به فایل میزبان خود نمیرسانند. اما بعضی از ویروسهای دیگر نیز هستند که بر روی فایل میزبان چیزی مینویسند یا اینکه اصلا کدویروس را درون فایل میزبان قرار میدهند. یکی از انواع این ویروسها Loveletter است. در این مورد به وضوح دیده میشود که فایل میزبان قابل بازیابی نیست و تنها راهحل این است که این فایل را پاک کنیم.
دسته دیگری از ویروسها وجود دارند (مانند ویروس Nimda) که علاوه بر ایجاد تغییرات بر روی فایل، قابلیت دستکاری فایلهای سیستم و رجیستری را نیز دارند. در این موارد ضدویروس به تنهایی نمیتواند کاری بکند. شما به ابزاری نیاز دارید که بتواند فایل ویروسی را حذف کند و تغییرات اعمال شده در سیستم شما را به حالت اولیه برگرداند. معمولا این ابزار کمکی بر روی وب سایتهای فروشندگان نرمافزار ضدویروس موجود میباشد.
حالا که متوجه شدید ضدویروس چگونه کار میکند و چه کارهایی را میتواند برای شما انجام دهد، وقت آن است ببینیم چه معیارهایی برای انتخاب یک ضدویروس مهم هستند.
مهمترین وظیفه یک ضدویروس شناسایی ویروسها است. اما چگونه باید مطمئن شویم که یک ضدویروس همان کاری را که ادعا میکند انجام میدهد؟ آیا همین قدر که برنامه ضدویروس یک گزارش مبنی بر شناسایی ویروسها تولید میکند متقاعد میشوید که کار خود را به خوبی انجام میدهد؟ پیدا کردن جواب دو سوال زیر میتواند به شما کمک کند: پرسش اول: نرمافزار ضدویروس قادر است چه تعداد ویروس را مورد شناسایی قرار دهد. از این پارامتر عموما با نام detection Rate یاد میشود. پرسش دوم: نرمافزار ضدویروس تحت چه شرایطی میتواند یک ویروس را شناسایی کند؟ آیا اگر این ویروس در حافظه مقیم شده باشد توسط ضدویروس قابل تشخیص است؟
اول: یک راهحل این است که شما خودتان ضدویروس را بررسی کنید. برای این کار بر روی اینترنت به دنبال ویروسهای مختلفی بگردید و این ویروسها را به سیستم خودتان بیاورید و ببینید که آیا ضدویروس میتواند این ویروسها را شناسایی کند یا نه؟ ولی من شما را از انجام این عمل شدیدا منع میکنم. حتی اگر فروشنده ضدویروس خودش این پیشنهاد را به عنوان یک راهحل برای آزمایش ضدویروس داده باشد. همانطورEicar که گفته است: استفاده از ویروسهای واقعی برای تست کردن یک ضدویروس در یک محیط عملیاتی مانند این است که شما آتش را به دفتر کار خود بیاورید و بعد بخواهید بررسی کنید که آیا حسگرهای دود به خوبی کار میکنند یا نه؟ شما هرگز نمیتوانید از نتیجه کار مطمئن باشید. ممکن است برنامه ضدویروس نتواند همه موارد را شناسایی کند و ویروسها شروع به پاک کردن دادههای ارزشمند سیستم شما و پخش شدن در شبکه بنمایند. امری که ممکن است به بهای از دست دادن شغلتان تمام شود.
دوم: اگر شما واقعا میخواهید مطمئن شوید که یک ضدویروس قادر به انجام چه کارهایی است میتوانید در سایتwww.eicar.org یک سری آزمایشهای بیخطر جهت آزمایش ضدویروس پیدا کنید. در این سایت فایلهای آزمایشی و بیخطری وجود دارند که بیشتر ضدویروسها آنها را به عنوان ویروس شناسایی میکنند. در این حالت اگر ضدویروس موفق به از بینبردن ویروس شود چه بهتر و چنانچه نتواند، شما هیچگونه اطلاعاتی از دست نخواهید داد. بدینترتیب میتوانید یک روش امن برای آزمایش ضدویروس به کار ببندید.