ضدويروسها چگونه كار ميكنند؟
ضدويروسها چگونه كار ميكنند؟
ضدويروسها چگونه كار ميكنند؟
اولين قدم جهت انتخاب يك ضدويروس مناسب آشنايي با كاركرد ضدويروسها ميباشد.
پس از آشنايي با خصوصيات يك ضدويروس، واژگاني كه در اين زمينه استفاده ميشود، را خواهيد شناخت. اينكه بدانيد ضدويروس چه كارهايي ميتواند انجام بدهد و چه كارهايي نميتواند انجام دهد، به شما كمك ميكند كه انتظارات معقولي از آن داشته باشيد.
يك ضدويروس چگونه ويروسها را شناسايي ميكند؟
روشهاي مختلفي براي شناسايي ويروسها وجود دارد.
ويروسها (بهطور معمول) چيزي بيشتر از كد يك برنامه نيستند. بنابراين اگر ما بدانيم كه هر كدي چه كاري انجام ميدهد قادر خواهيم بود كه كد حامل ويروس را به محض رويت شناسايي كنيم.
اين كار اولين عملي است كه انجام ميگيرد و به نام Signature Matching معروف است.
نرمافزارهاي ضدويروس كه به اين روش كار ميكنند داراي يك بانك اطلاعاتي هستند كه شامل Virus signatureها است و به محض اينكه كدي را ملاحظه كرد كه معادل يكي از ركوردها باشد آن را به عنوان ويروس شناسايي ميكند. به نظر ميرسد كه موثرترين راه براي كشف ويروسها همين باشد. روش فوق ذاتاً بهگونهاي است كه اول ويروس را شناسايي ميكند و بعد متناظر با آن يك ركورد (virus signature) به بانك اطلاعاتي اضافه ميكند و حالا اگر ويروسي پيدا كند، در صورتيكه متناظر با اين ويروس ركوردي در بانك اطلاعاتي باشد قادر به شناسايي آن خواهد بود و همين امر ايجاب ميكند شركتهايي كه از اين فناوري در نرمافزار خود استفاده ميكنند مدام آن را بروز نگه دارند. به هر حال اين يك نقطه ضعف ميباشد و براي فائق آمدن بر آن دو روش ديگر در نرمافزارهاي ضدويروس معرفي شده است.
1- 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 از فعاليت آن جلوگيري ميشود. اين تكنولوژي از تمام فعاليتهايي كه ممكن است توسط يك كد مخرب صورت بپذيرد جلوگيري ميكند مثلاً اگر تشخيص دهد كه هاردديسك در حال فرمت شدن است از آن جلوگيري ميكند.
معيارهاي انتخاب يك ضدويروس
حالا كه متوجه شديد ضدويروس چگونه كار ميكند و چه كارهايي را ميتواند براي شما انجام دهد، وقت آن است ببينيم چه معيارهايي براي انتخاب يك ضدويروس مهم هستند.
1- شناسايي
مهمترين وظيفه يك ضدويروس شناسايي ويروسها است. اما چگونه بايد مطمئن شويم كه يك ضدويروس همان كاري را كه ادعا ميكند انجام ميدهد؟
آيا همين قدر كه برنامه ضدويروس يك گزارش مبني بر شناسايي ويروسها توليد ميكند متقاعد ميشويد كه كار خود را به خوبي انجام ميدهد؟ پيدا كردن جواب دو سوال زير ميتواند به شما كمك كند:
پرسش اول: نرمافزار ضدويروس قادر است چه تعداد ويروس را مورد شناسايي قرار دهد. از اين پارامتر عموماً با نام detection Rate ياد ميشود.
پرسش دوم: نرمافزار ضدويروس تحت چه شرايطي ميتواند يك ويروس را شناسايي كند؟ آيا اگر اين ويروس در حافظه مقيم شده باشد توسط ضدويروس قابل تشخيص است؟
توصيه هاي مهم
اول: يك راهحل اين است كه شما خودتان ضدويروس را بررسي كنيد. براي اين كار بر روي اينترنت به دنبال ويروسهاي مختلفي بگرديد و اين ويروسها را به سيستم خودتان بياوريد و ببينيد كه آيا ضدويروس ميتواند اين ويروسها را شناسايي كند يا نه؟ ولي من شما را از انجام اين عمل شديداً منع ميكنم. حتي اگر فروشنده ضدويروس خودش اين پيشنهاد را به عنوان يك راهحل براي آزمايش ضدويروس داده باشد. همانطورEicar كه گفته است: استفاده از ويروسهاي واقعي براي تست كردن يك ضدويروس در يك محيط عملياتي مانند اين است كه شما آتش را به دفتر كار خود بياوريد و بعد بخواهيد بررسي كنيد كه آيا حسگرهاي دود به خوبي كار ميكنند يا نه؟ شما هرگز نميتوانيد از نتيجه كار مطمئن باشيد. ممكن است برنامه ضدويروس نتواند همه موارد را شناسايي كند و ويروسها شروع به پاك كردن دادههاي ارزشمند سيستم شما و پخش شدن در شبكه بنمايند. امري كه ممكن است به بهاي از دست دادن شغلتان تمام شود.
دوم: اگر شما واقعاً ميخواهيد مطمئن شويد كه يك ضدويروس قادر به انجام چه كارهايي است ميتوانيد در سايت
www.eicar.org يك سري آزمايشهاي بيخطر جهت آزمايش ضدويروس پيدا كنيد. در اين سايت فايلهاي آزمايشي و بيخطري وجود دارند كه بيشتر ضدويروسها آنها را به عنوان ويروس شناسايي ميكنند.
در اين حالت اگر ضدويروس موفق به از بينبردن ويروس شود چه بهتر و چنانچه نتواند، شما هيچگونه اطلاعاتي از دست نخواهيد داد. بدينترتيب ميتوانيد يك روش امن براي آزمايش ضدويروس به كار ببنديد.
سوم: شما ميتوانيد از منابع موجود كه قبلاً اين كار را انجام دادهاند استفاده كنيد. بعضي از سازمانها، متولي انجام همين فعاليت ميباشند. ليستي از ويروسها توسط
www.wildlist.org نگهداري ميشود. در اين سايت ميتوانيد ببينيد كه detection Rate يا نرخ شناسايي هر ضدويروس چقدر است.
اين سايتها نيز براي اين منظور مفيد ميباشند:
www.virusbtn.com: اين سايت، آماري از توان ضدويروسها براي شناسايي ويروسهاي موجود در سايت wildlist (در دو مورد on-demand,Real-time) را ارايه ميكند.
www.chech-mark.com/cgi-bin/Redirect.pl: در اين سايت ضدويروسها در دو سطح مورد بررسي قرار ميگيرند. سطح اول همان است كه در سايت Virusbtn نيز انجام ميشود يعني فقط شناسايي ويروسها.
نرمافزارهايي در سطح دوم موفق هستند كه قادر به از بين بردن ويروس نيز باشند.
2- امكانات
بسيار مهم است كه بدانيم چه نوع فناوري در ضدويروس موردنظر استفاده شده است و چه ويژگيهايي دارد.
1- سازگاري سختافزاري و نرمافزاري سيستم شما با ضدويروس انتخاب شده.
در نگاه اول شايد اين مساله كمي بديهي به نظر برسد. اما به هر حال برخي از فروشندگان آخرين نسخه نرمافزار ضدويروس خود را كه تنها با جديدترين سيستمعاملها كار ميكنند، ارايه ميدهند.
بنابراين منطقي به نظر ميرسد كه قبل از اقدام به خريد نرمافزار حتماً به اين نكته توجه كنيد.
2- توانايي پويش(on-Access Real time) را داشته باشد.
اين يكي از ويژگيهاي اساسي است كه يك ضدويروس بايد دارا باشد. اين بخش نرمافزار باعث ميشود كه نرمافزار ضدويروس مانند يك سگ نگهبان عمل كند. يعني همان موقع كه ويروس در حافظه بارگذاري ميشود ويروس را شناسايي و خنثي كند.
اين بخش نرمافزار بايد قادر باشد كه به تمام نواحي سيستم از جمله فايل سيستم، بوت ركورد،
Mabter Boot Record) MBR) و حافظه سركشي كند.
3- توانايي پويش به صورت on-demand را داشته باشد. يكي از كارهاي ضروري كه براي حفظ سلامت سيستمتان بايد انجام دهيد اين است كه هرازچندگاهي وضعيت سيستم خود را با اجراي ضدويروس بررسي كنيد.
مخصوصاً هنگامي كه آخرين نسخه ضدويروس را دريافت ميكنيد حتماً اين كار را انجام دهيد. سناريوي زير انجام توصيه بالا را توجيه ميكند.
شما يك e-mail دريافت ميكنيد كه اين e-mail شامل يك ضميمه و ويروسي است. منتهي شما اين ضميمه را هيچگاه باز نكردهايد. اجراي ضدويروس بروز شده باعث ميشود كه (احتمالاً) ويروس فوق شناسايي شود.
4- از الگوريتمهاي Heuristic پشتيباني كند.
5- بتواند انواع فايلها با فرمتهاي مختلف را پويش كند.
اگر شما ويروسي در سيستم داشته باشيد كه قادر باشد به هر نوع فايلي بچسبد، نياز به ضدويروسي داريد كه بتواند فايلهاي مختلف با پسوندهاي مختلف را مورد بررسي قرار دهد. قبلاً تنها راه انتشار يك ويروس اين بود كه به فايلهاي برنامهاي بچسبد، اما امروزه اين امكان وجود دارد كه ويروس براي انتشار خودش از فايلهاي غيراجرايي نيز استفاه كند.
6- توانايي جلوگيري از فعاليت اسكريپتهاي مخرب را داشته باشد. بعضي از ويروسها هستند كه با استفاده از اسكريپتها طراحي شدهاند. كرمهاي I Love You از اين نوع است.
موتور ضدويروس بايد اين قابليت را داشته باشد كه كدهاي VBS و JS را شناسايي كند و در صورتي كه آنها را مخرب تشيخص دهد از فعاليتشان جلوگيري كند.
7- توانايي بررسي ضميمه e-mail را داشته باشد.
امروزه بسياري از ويروسها توسط e-mail انتشار پيدا ميكنند.
بعضي از آنها مانند كرم KAK حتي اين توانايي را دارند تا در سيستمهايي كه خوب پيكربندي نشدهاند، بدون اينكه ضميمه e-mail باز شود شروع به انتشار خود بنمايند.
8- قابليت بررسي فايلهاي فشرده را نيز داشته باشد. اگر چه يك ويروس هنگامي كه در يك فايل فشرده قرار دارد نميتواند آسيبي به سيستم برساند ولي بهتر است است كه اصلاً اين ويروس در سيستم شما وجود نداشته باشد.
9- قابليت اين را داشته باشد كه اسبهاي تراوا، جاوااپلتهاي مخرب و اكتيوايكسهاي مزاحم را شناسايي كند. نرمافزارهاي ضدويروس نه تنها بايد اين قابليت را داشته باشند كه ويروسها و كرمها را شناسايي كنند بلكه بايد بتوانند از فعاليتاسبهاي تراوا، اكتيويكسها و اپلتهاي جاوا نيز جلوگيري كنند.
امروزه بيشتر ضدويروسها داراي اين خصوصيت ميباشند.
3- نگهداري از نرمافزار
دو مورد زير در نگهداري از نرمافزارهاي ضدويروس قابل توجه هستند.
1- بروز كردن مداوم ضدويروس براي مقابله با ويروسهاي جديد.
در بخشهاي قبل لزوم بروز نگهداشتن بانكاطلاعاتي ضدويروس توضيح داده شد. بنابراين ضدويروس منتخب شما بايد به گونهاي باشد كه به راحتي قابليت روزآمد شدن را داشته باشد و علاوهبرآن بهطور مداوم ركوردهاي اين بانك اطلاعاتي زياد شود. شما همچنين بايد متوجه اين مطلب باشيد كه از چه مكانيزمهايي جهت بروز نگهداشتن ضدويروس استفاده ميشود. آيا نسخههاي بروز شده بر روي وب سايت فروشندگان قرار دارد؟ و آيا به راحتي قابل دريافت ميباشد؟ و آيا شما به راحتي ميتوانيد از وجود يك ويروس جديد آگاهي يابيد يا نه؟
اگر شما داراي ارتباط اينترنتي كم سرعتي باشيد دريافت كردن اين نرمافزار بسيار خستهكننده ميباشد. اين نكته نيز مهم است كه در هر بار انجام اين عمل بايد فقط قسمت روزآمد شده نرمافزار دريافت شود.
نكته ديگر اينكه، نويسندگان ضدويروسها چقدر سعي ميكنند تا روشهاي جديدي كه براي توليد ويروسها استفاده ميشود بشناسند و در نرمافزار خود به كار گيرند؟
و نكته مهمتر اينكه از زمان خبر انتشار يك ويروس تا وقتي كه نرمافزار ضدويروس براي اين ويروس بروز شود چقدر طول ميكشد؟
4- نرمافزارهاي ضدويروس چقدر بر كارايي سيستم شما تأثيرگذار ميباشند؟
همه نرمافزارهاي ضدويروس بر كارايي سيستم شما تأثير ميگذارند. اغلب اوقات اندازهگيري ميزان اين تأثير سخت است ولي به هر حال به عنوان يك معيار مهم در انتخاب ضدويروس مطرح ميباشد. پرسشهاي زير در اين مقوله مهم ميباشند.
- آيا نرمافزار ضدويروس باعث كندتر شدن پروسه بوت سيستم شده است؟
- زمان دسترسي به يك فايل را افزايش داده است؟
پس براي انتخاب يك ضدويروس مناسب ناچاريد كه چند آزمايش را انجام دهيد.
مثلاً ميتوانيد زماني كه براي پويشهاي مختلف (تحت شرايط مختلف) توسط يك ضدويروس مصرف ميشود را محاسبه كنيد و در اين مدت، زمان ميانگين استفاده از حافظه و cpu را نيز اندازهگيري كنيد.
يا اينكه زماني كه براي اسكن on-demand نياز ميباشد را براي محصولات مختلف اندازهگيري كنيد.
يا اينكه وقتي كه ضدويروس در حال پويشReal-time ميباشد ببينيد كه باز كردن يك فايل بزرگ چقدر طول ميكشد؟
توجه به اين موضوع كه محيط تست براي همه ضدويروسها كه مورد ارزيابي قرار ميگيرند، مشابه باشد بسيار مهم است از جلمه اينكه:
حجم فايلها و نوع فايلهايي كه براي هر يك از ضدويروسها مورد بررسي قرار ميگيرد مهم است.
هر دو ضدويروس به يك ترتيب و روي يك سختافزار پيكربندي شده باشند.
5- نرمافزار ضدويروس قابل كنترل باشد.
اگر شما نتوانيد بر روي ضدويروس خود نظارت كامل داشته باشيد مانند اين است كه ضدويروس نداريد.
شما بايد بتوانيد بهطور مرتب (هر زمان كه نياز داشتيد) و بدون زحمت زيادي بانك اطلاعاتي خود را كاملتر يا بروز كنيد.
به راحتي بتوانيد از سرورها خود و كلاينتهاي خود محافظت كنيد و گزارشهاي نرمافزار ضدويروس را براي هر كدام از آنها ببينيد.
6- پشتيباني ضدويروس هميشگي و موثر باشد.
فروشنده نرمافزار بايد قادر باشد كه پشتيباني مورد نظر شما را انجام دهد. مطمئناً پشتيباني كه براي كاربر در خانه ارايه ميشود با پشتيباني كه براي يك شركت بزرگ انجام ميشود با يكديگر متفاوت هستند.
فروشنده براي پشتيباني ميتواند خدمات زير را به شما ارايه دهد.
1- قادر باشد كه شما را به صورت on-line پشتيباني كند و اگر شك كرديد كه فايلي حاوي ويروس است، بتوانيد آن را براي فروشنده ارسال كنيد تا نظر خودش را راجعبه فايل بيان كند.
اگر يك ويروس جديد شناخته شود، فروشنده بايد بتواند اين موضوع را به اطلاع شما برساند تا اقدامات لازم را براي خودتان، يا براي شبكهاي كه شما مس‡وول آن هستيد انجام دهيد.
چند تکنیک آنتی ویروس Kaspersky : (از بهترین آنتی ویروسها )
1. تکنیک تله گذاری: در این روش آنتی ویروس توجه ویروس را به خود جلب می کند.
2. مخفی ماندن : وقتی ما آنتی ویروسی در کامپیوتر نصب میکنیم ویروسها در بین فایلها پنهان می شوند. در آنتی ویروس Kaspersky هیچ قسمتی از سیستم (نرم افزاری) متوجه نصب نمی شوند.
3. سیستم رادار : اطلاع رسانی به کاربران.