در این ترفند قصد داریم بحث آنتی ویروسها را به طور کامل برای شما بازکنیم. اینکه چه آنتی ویروسی مطمئن تر است؟ آنتی ویروسها چگونه یک ویروس را میشناسند؟ تکنیک های ویروس یابی و بسیاری مطالب دیگر. با بهره گیری از این ترفند میتوانید خودتان آنتی ویروس بهتر و مطمئن تر را انتخاب کنید.
اشاره :
در دنیای شبکهای امروز، لزوم داشتن یک نرمافزار ضدویروس قدرتمند که کامپیوتر ما را از انواع ویروسها، کرمها، بمبهای منطقی و بهطور کلی کدهای مخرب مصون بدارد، بیش از هر زمان دیگری احساس میشود. خوشبختانه (شاید هم متأسفانه) انتخابهای متعددی در این زمینه وجود دارد. ولی واقعاً کدام یک از آنها میتواند بهتر مشکل کامپیوتر (یا کامپیوترهای شبکه) ما را حل کند؟ کافی است سری به سایتهای مربوط به فروشندگان این نوع نرمافزارها بزنید. به نظر میرسد که همه آنها از بهترینها هستند. و همه آنها در تمام طول سال و در تمام ۲۴ ساعت شبانهروز خدمات خود را ارایه میدهند.از طرفی به دلیل بازار رقابتی موجود، هیچکدام از آنها اطلاعات دقیقی از نرمافزارخود ارایه نمیدهند. شما چه یک متخصصIT باشید و چه یک کاربر معمولی، ممکن است به دلیل نداشتن اطلاعات صحیح برای انتخاب ضدویروس مناسب خود با مشکل مواجه میشوید. بنابراین بسیار مهم است که بدانید ضدویروسها چگونه کار میکنند و در واقع عوامل مهم برای انتخاب آنها کدامند.
ضدویروسها چگونه کار میکنند؟
اولین قدم جهت انتخاب یک ضدویروس مناسب آشنایی با کارکرد ضدویروسها میباشد.
پس از آشنایی با خصوصیات یک ضدویروس، واژگانی که در این زمینه استفاده میشود، را خواهید شناخت. اینکه بدانید ضدویروس چه کارهایی میتواند انجام بدهد و چه کارهایی نمیتواند انجام دهد، به شما کمک میکند که انتظارات معقولی از آن داشته باشید.
یک ضدویروس چگونه ویروسها را شناسایی میکند؟
روشهای مختلفی برای شناسایی ویروسها وجود دارد.
ویروسها (بهطور معمول) چیزی بیشتر از کد یک برنامه نیستند. بنابراین اگر ما بدانیم که هر کدی چه کاری انجام میدهد قادر خواهیم بود که کد حامل ویروس را به محض رویت شناسایی کنیم.
این کار اولین عملی است که انجام میگیرد و به نام Signature Matching معروف است.
نرمافزارهای ضدویروس که به این روش کار میکنند دارای یک بانک اطلاعاتی هستند که شامل Virus signatureها است و به محض اینکه کدی را ملاحظه کرد که معادل یکی از رکوردها باشد آن را به عنوان ویروس شناسایی میکند. به نظر میرسد که موثرترین راه برای کشف ویروسها همین باشد. روش فوق ذاتاً بهگونهای است که اول ویروس را شناسایی میکند و بعد متناظر با آن یک رکورد (virus signature) به بانک اطلاعاتی اضافه میکند و حالا اگر ویروسی پیدا کند، در صورتیکه متناظر با این ویروس رکوردی در بانک اطلاعاتی باشد قادر به شناسایی آن خواهد بود و همین امر ایجاب میکند شرکتهایی که از این فناوری در نرمافزار خود استفاده میکنند مدام آن را بروز نگه دارند. به هر حال این یک نقطه ضعف میباشد و برای فائق آمدن بر آن دو روش دیگر در نرمافزارهای ضدویروس معرفی شده است.
۱- Heuristic method (روش مکاشفهای)
فلسفه Heuristic این است که بتوانیم ویروسهایی را شناسایی کنیم که هنوز Virus Signature آنها در بانک اطلاعاتی موجود نمیباشد.
این کار با استفاده از یک بانک اطلاعاتی که رکوردهای آن حاوی Virus behavior signature میباشد قابل انجام است. رکوردهای این بانک اطلاعاتی امضای ویروس خاصی را نگهداری نمیکنند بلکه بیشتر رفتارهای (رفتار بد) ویروسها را ذخیره میکنند. مثلاً اینکه هر کجا تشخیص بدهند کدی قصد پاک کردن Boot Sector را دارد از آن جلوگیری میکنند.
الگوریتمهایHeuristic به دو صورت پیادهسازی میشوند:
● اگر تکنولوژی Heuristic کد هر برنامه را با Virus behavior Signature مقایسه کند و مورد آنالیز قرار دهد آن را روش static heuristic مینامیم.
● در بعضی مواقع این تکنولوژی قطعه کد را در یک ماشین مجازی اجرا میکند تا نتایج رفتاری آن را ببیند به این روش dynamic heuristic میگوییم. این روش ممکن است نتایج غلطی نیز تولید کند.
Integrity checksum -2 (جامعیت سرجمع)
در روش integrity checksum، فرض براین است که ویروس قصد اعمال تغییراتی در فایل دارد. مثلاً یک ویروس میخواهد که روی یک فایل چیزی بنویسد یا اینکه خودش را به آخر فایلی اضافه کند. در این روش نرمافزار checksum فایل غیرویروسی و یا درایورهای تمیز را ذخیره میکند و هرگاه که تغییری در این checksum مشاهده شود متوجه میشود که احتمال دارد ویروسی این کار را انجام داده باشد. در این روش نیز احتمال تولید نتایج غلط وجود دارد. این روش در مقابله با ویروسهای ماکرویی یا ویروسهای مانند code Red که بدون اینکه در هیچ فایلی ذخیره شوند در حافظه بارگذاری و اجرا میشوند، کارایی چندانی ندارد.
اگر یک کد مزاحم از تمام الگوریتمهای یک ضدویروس که تاکنون نام بردیم بگذرد، در گام آخر توسط فناوری دیگری به نام Activity Blocker از فعالیت آن جلوگیری میشود. این تکنولوژی از تمام فعالیتهایی که ممکن است توسط یک کد مخرب صورت بپذیرد جلوگیری میکند مثلاً اگر تشخیص دهد که هارددیسک در حال فرمت شدن است از آن جلوگیری میکند.
یک ضدویروس چه موقع ویروسها را شناسایی میکند؟
معمولاً ضدویروسها به دو روش میتوانند ویروسها را شناسایی کنند.
در روش اول ضدویروس، به صورت Real Time (بلادرنگ) و همان موقع که فایل مورد دسترسی قرار میگیرد عمل میکند. در این روش، ضدویروس درون حافظه مقیم میشود و تمام فعالیتهای مربوط به سیستم را مورد ارزیابی و بررسی قرار میدهد. این نرمافزارها با همکاری سیستمعامل متوجه میشوند که هماکنون قرار است فایلی مورد دسترسی قرار بگیرد. سریعاً این فایل را بررسی و نتیجه را گزارش میدهند. به این روش on-access میگویند.
مزیت این روش در ارایه یک حفاظت دایمی است ولی اشکالی که دارد این است که تنها فایلها را به هنگام دسترسی مورد بررسی قرار میدهد. یعنی احتمالاً اگر ویروسی در یک فایل قرار گرفته باشد و در دیسک ذخیره شده باشد، با این روش قابل شناسایی نیست. در روش دوم این امکان به کاربر داده میشود که خودش نرمافزار ضدویروس را برای بررسی کردن دیسک یا یک فایل به کمک بگیرد. برای اینکه فعالیت فوق بازده بهتری داشته باشد باید ضدویروس را طوری تنظیم کرد که در دورههای زمانی معین اقدام به اسکن کند. این روش به on-demand معروف است.