ارسالی: صدف صافی
همه چیز در باره آنتی ویروس ها و روش کار آنها
در این ترفند قصد داریم بحث آنتی ویروسها را به طور کامل برای شما باز کنیم. اینکه چه آنتی ویروسی مطمئن تر است؟ آنتی ویروسها چگونه یک ویروس را میشناسند؟ تکنیک های ویروس یابی و بسیاری مطالب دیگر.
با بهره گیری از این ترفند میتوانید خودتان آنتی ویروس بهتر و مطمئن تر را انتخاب کنید.
اشاره : در دنیای شبكه یی امروز، لزوم داشتن یك نرم افزار ضد ویروس قدرتمند كه كامپیوتر ما را از انواع ویروس ها، كرم ها، بمب های منطقی و به طور كلی كود های مخرب مصون بدارد، بیش از هر زمان دیگری احساس می شود. خوشبختانه (شاید هم متأسفانه) انتخاب های متعددی در این زمینه وجود دارد. ولی واقعاً کودام یك از آن ها می تواند بهتر مشكل كامپیوتر (یا كامپیوتر های شبكه) ما را حل كند؟ كافی است سری به سایت های مربوط به فروشندگان این نوع نرم افزار ها بزنید. به نظر می رسد كه همه آن ها از بهترین ها هستند. و همه آن ها در تمام طول سال و در تمام 24 ساعت شبانه روز خدمات خود را ارایه می دهند. از طرفی به دلیل بازار رقابتی موجود، هیچکودام از آن ها اطلاعات دقیقی از نرم افزار خود ارایه نمی دهند. شما چه یك متخصص آی تی باشید و چه یك كاربر معمولی، ممكن است به دلیل نداشتن اطلاعات صحیح برای انتخاب ضد ویروس مناسب خود با مشكل مواجه شوید. بنابرین بسیار مهم است كه بدانید ضد ویروس ها چگونه كار می كنند و در واقع عوامل مهم برای انتخاب آن ها کودامند.
ضد ویروس ها چگونه كار می كنند؟
اولین قدم جهت انتخاب یك ضد ویروس مناسب آشنایی با كاركرد ضد ویروس ها می باشد. پس از آشنایی با خصوصیات یك ضد ویروس، واژگانی كه در این زمینه استفاده می شود، را خواهید شناخت. این كه بدانید ضد ویروس چه كارهایی می تواند انجام بدهد و چه كارهایی نمی تواند انجام دهد، به شما كمك می كند كه انتظارات معقولی از آن داشته باشید.
یك ضد ویروس چگونه ویروس ها را شناسایی می كند؟
روش های مختلفی برای شناسایی ویروس ها وجود دارد. ویروس ها (به طور معمول) چیزی بیشتر از كود یك برنامه نیستند. بنابرین اگر ما بدانیم كه هر كودی چه كاری انجام می دهد قادر خواهیم بود كه کود حامل ویروس را به محض رویت شناسایی كنیم. این كار اولین عملی است كه انجام می گیرد و به نام 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)
در روش 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 یك سری آزمایش های بی خطر جهت آزمایش ضد ویروس پیدا كنید. در این سایت فایل های آزمایشی و بی خطری وجود دارند كه بیشتر ضد ویروس ها آن ها را به عنوان ویروس شناسایی می کنند. در این حالت اگر ضد ویروس موفق به از بین بردن ویروس شود چه بهتر و چنانچه نتواند، شما هیچگونه اطلاعاتی از دست نخواهید داد. بدین ترتیب می توانید یك روش امن برای آزمایش ضد ویروس به كار ببندید.
سوم: شما می توانید از منابع موجود كه قبلاً این كار را انجام دادهاند استفاده كنید. بعضی از سازمان ها، متولی انجام همین فعالیت می باشند. لیستی از ویروسها توسط www.wildlist.org نگهداری می شود. در این سایت می توانید ببینید كه detection Rate یا نرخ شناسایی هر ضد ویروس چقدر است. این سایت ها نیز برای این منظور مفید می باشند:
سایت www.virusbtn.com آماری از توان ضد ویروس ها برای شناسایی ویروس های موجود در سایت (wildlist) در دو مورد ( on-demandReal-time,) را ارایه می كند.
در سایت www.chech-mark.com/cgi-bin/Redirect.pl ضد ویروس ها در دو سطح مورد بررسی قرار می گیرند. سطح اول همان است كه در سایت Virusbtn نیز انجام می شود یعنی فقط شناسایی ویروس ها. نرم افزارهایی در سطح دوم موفق هستند كه قادر به از بین بردن ویروس نیز باشند.
امكاناتبسیار مهم است كه بدانیم چه نوع فناوری در ضد ویروس مورد نظر استفاده شده است و چه ویژگی هایی دارد.
- سازگاری سخت افزاری و نرم افزاری سیستم شما با ضد ویروس انتخاب شده. در نگاه اول شاید این مساله كمی بدیهی به نظر برسد. اما به هر حال برخی از فروشندگان آخرین نسخه نرم افزار ضد ویروس خود را كه تنها با جدیدترین سیستم عامل ها كار می کنند، ارایه می دهند. بنابراین منطقی به نظر می رسد كه قبل از اقدام به خرید نرم افزار حتماً به این نكته توجه كنید.
- توانایی پویش(on-Access Real time) را داشته باشد. این یكی از ویژگی های اساسی است كه یك ضد ویروس باید دارا باشد. این بخش نرم افزار باعث می شود كه نرم افزار ضد ویروس مانند یك سگ نگهبان عمل كند. یعنی همان موقع كه ویروس در حافظه بارگذاری می شود ویروس را شناسایی و خنثی كند. این بخش نرم افزار باید قادر باشد كه به تمام نواحی سیستم از جمله فایل سیستم، بوت ركورد (Mabter Boot RecordMBR) و حافظه سركشی كند.
- توانایی پویش به صورت on-demand را داشته باشد. یكی از كارهای ضروری كه برای حفظ سلامت سیستم تان باید انجام دهید این است كه هراز چند گاهی وضعیت سیستم خود را با اجرای ضد ویروس بررسی كنید. مخصوصاً هنگامی كه آخرین نسخه ضد ویروس را دریافت می كنید حتماً این كار را انجام دهید. سناریوی زیر انجام توصیه بالا را توجیه می كند. شما یك ایمیل دریافت می كنید كه اینایمیلشامل یك ضمیمه ی ویروسی است. منتهی شما این ضمیمه را هیچگاه باز نكرده اید. اجرای ضد ویروس بروز شده باعث می شود كه (احتمالاً) ویروس فوق شناسایی شود.
- از الگوریتم های Heuristic پشتیبانی كند.
- بتواند انواع فایل ها با فرمت های مختلف را پویش كند. اگر شما ویروسی در سیستم داشته باشید كه قادر باشد به هر نوع فایلی بچسبد، نیاز به ضد ویروسی دارید كه بتواند فایل های مختلف با پسوند های مختلف را مورد بررسی قرار دهد. قبلاً تنها راه انتشار یك ویروس این بود كه به فایل های برنامه یی بچسبد، اما امروزه این امكان وجود دارد كه ویروس برای انتشار خودش از فایل های غیر اجرایی نیز استفاه كند.
- توانایی جلوگیری از فعالیت اسكریپت های مخرب را داشته باشد. بعضی از ویروس ها هستند كه با استفاده از اسكریپت ها طراحی شده اند. كرم های I Love You از این نوع است. موتور ضد ویروس باید این قابلیت را داشته باشد كه کودهای VBS و JS را شناسایی كند و در صورتی كه آن ها را مخرب تشیخص دهد از فعالیت شان جلوگیری كند.
- توانایی بررسی ضمیمه ایمیل را داشته باشد. امروزه بسیاری از ویروس ها توسطایمیلانتشار پیدا می کنند. بعضی از آن ها مانند كرم KAK حتی این توانایی را دارند تا در سیستم هایی كه خوب پیكربندی نشده اند، بدون اینكه ضمیمه ایمیل باز شود شروع به انتشار خود بنمایند.
- قابلیت بررسی فایل های فشرده را نیز داشته باشد. اگر چه یك ویروس هنگامی كه در یك فایل فشرده قرار دارد نمی تواند آسیبی به سیستم برساند ولی بهتر است است كه اصلاً این ویروس در سیستم شما وجود نداشته باشد.
- قابلیت این را داشته باشد كه اسب های تراوا، جاوا اپلت های مخرب و اكتیوایكس های مزاحم را شناسایی كند. نرم افزار های ضد ویروس نه تنها باید این قابلیت را داشته باشند كه ویروس ها و كرم ها را شناسایی كنند بلكه باید بتوانند از فعالیت اسب های تراوا، اكتیویكس ها و اپلت های جاوا نیز جلوگیری كنند. امروزه بیشتر ضد ویروس ها دارای این خصوصیت می باشند.
نگهداری از نرم افزار
دو مورد زیر در نگهداری از نرم افزارهای ضد ویروس قابل توجه هستند.
- به روز كردن مداوم ضد ویروس برای مقابله با ویروس های جدید. در بخش های قبل لزوم به روز نگه داشتن بانك اطلاعاتی ضد ویروس توضیح داده شد. بنابراین ضد ویروس منتخب شما باید به گونه ای باشد كه به راحتی قابلیت روز آمد شدن را داشته باشد و علاوه بر آن به طور مداوم ركورد های این بانك اطلاعاتی زیاد شود. شما همچنین باید متوجه این مطلب باشید كه از چه مكانیزم هایی جهت بروز نگه داشتن ضد ویروس استفاده می شود. آیا نسخه های بروز شده بر روی وب سایت فروشندگان قرار دارد؟ و آیا به راحتی قابل دریافت می باشند؟ و آیا شما به راحتی می توانید از وجود یك ویروس جدید آگاهی یابید یا نه؟ اگر شما دارای ارتباط اینترنتی كم سرعتی باشید دریافت كردن این نرم افزار بسیار خسته كننده می باشد. ایننكته نیز مهم است كه در هر بار انجام این عمل باید فقط قسمت روزآمد شده نرم افزار دریافت شود.
- نكته دیگر این كه، نویسندگان ضد ویروس ها چقدر سعی می کنند تا روش های جدیدی كه برای تولید ویروس ها استفاده می شود بشناسند و در نرم افزار خود به كار گیرند؟ و نكته مهم تر این كه از زمان خبر انتشار یك ویروس تا وقتی كه نرم افزار ضد ویروس برای این ویروس بروز شود چقدر طول می كشد؟
- نرم افزارهای ضد ویروس چقدر بر كارایی سیستم شما تأثیرگذار میباشند؟ همه نرم افزارهای ضد ویروس بر كارایی سیستم شما تأثیر می گذارند. اغلب اوقات اندازه گیری میزان این تأثیر سخت است ولی به هر حال به عنوان یك معیار مهم در انتخاب ضد ویروس مطرح می باشد. پرسش های زیر در این مقوله مهم می باشند.
- آیا نرم افزار ضد ویروس باعث كندتر شدن پروسه بووت سیستم شده است؟
- زمان دسترسی به یك فایل را افزایش داده است؟ پس برای انتخاب یك ضد ویروس مناسب ناچارید كه چند آزمایش را انجام دهید. مثلاً می توانید زمانی كه برای پویش های مختلف (تحت شرایط مختلف) توسط یك ضد ویروس مصرف می شود را محاسبه كنید و در این مدت، زمان میانگین استفاده از حافظه و cpu را نیز اندازه گیری كنید. یا این كه زمانی كه برای اسكن on-demand نیاز می باشد را برای محصولات مختلف اندازه گیری كنید. یا این كه وقتی كه ضد ویروس در حال پویشReal-time می باشد ببینید كه باز كردن یك فایل بزرگ چقدر طول می كشد؟ توجه به این موضوع كه محیط تست برای همه ضد ویروس ها كه مورد ارزیابی قرار می گیرند، مشابه باشد بسیار مهم است از جلمه این كه: حجم فایل ها و نوع فایل هایی كه برای هر یك از ضد ویروس ها مورد بررسی قرار می گیرد مهم است. هر دو ضد ویروس به یك ترتیب و روی یك سخت افزار پیكر بندی شده باشند.
- نرمافزار ضد ویروس قابل كنترل باشد. اگر شما نتوانید بر روی ضد ویروس خود نظارت كامل داشته باشید مانند این است كه ضد ویروس ندارید. شما باید بتوانید به طور مرتب (هر زمان كه نیاز داشتید) و بدون زحمت زیادی بانك اطلاعاتی خود را كامل تر یا بروز كنید. به راحتی بتوانید از سرور های خود و كلاینت های خود محافظت كنید و گزارش های نرم افزار ضد ویروس را برای هر کود هم از آن ها ببینید.
- پشتیبانی ضد ویروس همیشگی و موثر باشد.فروشنده نرم افزار باید قادر باشد كه پشتیبانی مورد نظر شما را انجام دهد. مطمئناً پشتیبانی كه برای كاربر در خانه ارایه میشود با پشتیبانی كه برای یك شركت بزرگ انجام می شود با یکدیگر متفاوت هستند.فروشنده برای پشتیبانی می تواند خدمات زیر را به شما ارایه دهد.
- قادر باشد كه شما را به صورت on-line پشتیبانی كند و اگر شك كردید كه فایلی حاوی ویروس است، بتوانید آن را برای فروشنده ارسال كنید تا نظر خودش را راجع به فایل بیان كند. اگر یك ویروس جدید شناخته شود، فروشنده باید بتواند این موضوع را به اطلاع شما برساند تا اقدامات لازم را برای خودتان، یا برای شبكه ای كه شما مسوول آن هستید انجام دهید.
نتیجه گیری
هیچ کود هم از نرم افزارهای ضد ویروس بهترین نیستند. یك ضد ویروس وقتی برای شما بهترین است كه بتواند نسبت به نرم افزار های دیگر به صورت كاملتری نیاز های شما را برآورده كند. اطلاعاتی كه فروشنده نرم افزار ارایه می كند همیشه خوب است ولی انتخاب ضد ویروس نباید تنها براساس ادعاهای فروشنده باشد.