آنتی ویروس چیست و چگونه عمل میکند ؟

رم افزارهای آنتی ویروس اختصاصاً برای دفاع از سیستم ها در برابر تهدیدهای ویروسها طراحی و نوشته می شوند. متخصصان امنیتی قویاً توصیه به استفاده از آنتی ویروس می كنند زیرا آنتی ویروس از رایانه شما نه تنها در برابر ویروسها بلكه در برابر انواع بدافزارها نیز محافظت می كند. در واقع آنتی ویروس یك برنامه كامپیوتری است كه برای مرور فایلها و تشخیص و حذف ویروسها و دیگر بدافزارها از آن استفاده می شود

در این مقاله برخی از تكنیكهای رایج در بین آنتی ویروسها را كه برای تشخیص بدافزارها به كار برده می شوند مورد بررسی قرار خواهیم داد. در حالت كلی آنتی ویروس ها از دو تكنیك اصلی برای رسیدن به اهدافشان استفاده می كنند:
روش مبتنی بر كد (امضا): در این روش با استفاده از یك دیكشنری ویروس كه حاوی امضای ویروسهای شناخته شده است، احتمال وجود ویروسهای شناخته شده در فایلها مورد بررسی و آزمایش قرار می گیرند.
روش مبتنی بر رفتار: در این روش هدف شناسایی رفتارهای مشكوك هر برنامه كامپیوتری است، زیرا احتمال دارد رفتار مذكور نشان دهنده یك آلودگی ویروسی باشد.
اغلب آنتی ویروسهای تجاری از هر دو روش فوق ولی با تأكید بر روی امضای ویروس، استفاده می كنند. در زیر روشهای مذكور را با تفصیل بیشتری توضیح می دهیم.

روش مبتنی بر كد (امضا)

اغلب برنامه های آنتی ویروس در حال حاضر از این تكنیك استفاده می كنند. در این شیوه، رایانه میزبان، درایوهای حافظه و یا فایلها با هدف پیدا كردن الگویی كه نشان دهنده یك بدافزار باشد، مورد جستجو قرار می گیرند. این الگوها معمولاً در فایلهایی به نام فایلهای امضا ذخیره می شوند. فایلهای مذكور توسط فروشندگان نرم افزارهای آنتی ویروس طبق یك برنامه منظم به روز رسانی می شوند تا قادر باشند بیشترین تعداد ممكن حمله های بدافزاری را شناسایی كنند. مشكل اصلی تكنیك بررسی امضا این است كه نرم افزار آنتی ویروس باید قبلاً به روز رسانی شده باشد تا بتواند به مقابله و خنثی سازی بدافزارها بپردازد و لذا بدافزارهای جدیدی كه هنوز شناسایی نشده و به فایلهای امضا اضافه نشده اند تشخیص داده نمی شوند.
در این شیوه زمانی كه نرم افزار آنتی ویروس یك فایل را مورد آزمایش قرار می دهد، به یك دیكشنری ویروس كه حاوی امضای ویروسهای شناخته شده است مراجعه می كند. در صورتی كه هر تكه از كد فایل با یك ویروس شناخته شده مطابقت داشته باشد، فایل مذكور به عنوان یك فایل آلوده شناسایی شده و آنتی ویروس یا آن را پاك می كند و یا آن را قرنطینه می نماید تا برنامه های دیگر به آن دسترسی نداشته و همچنین از انتشار آن جلوگیری به عمل آید. در برخی موارد نیز امكان بازسازی فایل آلوده از طریق حذف ویروس از فایل اصلی وجود دارد كه در صورت امكان آنتی ویروس این كار را انجام می دهد.
همان طور كه در بالا نیز گفتیم، آنتی ویروسهای مبتنی بر امضا برای موفق بودن در درازمدت، نیاز دارند كه مرتباً دیكشنری حاوی امضاهای ویروس را به صورت آنلاین به روز رسانی نمایند. زمانی كه یك ویروس جدید در دنیای رایانه پدیدار می شود، كاربران با تجربه تر فایلهای آلوده را برای نویسندگان آنتی ویروس ها ارسال می كنند تا آنها بتوانند ویروس مزبور را شناسایی كرده و مشخصات آن را به دیكشنری اضافه كنند.
آنتی ویروس های مبتنی بر امضا غالباً فایلها را در زمان اجرا، باز و بسته شدن و همچنین زمانی كه ایمیل می شوند، مورد آزمایش قرار می دهند. به این وسیله یك ویروس شناخته شده به محض وارد شدن به رایانه تشخیص داده می شود. همچنین می توان برنامه های آنتی ویروس را طوری برنامه ریزی كرد كه در زمانهای معینی به بررسی كل فایلهای موجود بر روی دیسك سخت بپردازند.
با وجودی كه روش مبتنی بر امضا مؤثر شناخته شده است ولی ویروس نویسان همواره تلاش می كنند تا یك قدم جلوتر از آنتی ویروس ها حركت كنند و این كار را از طریق ایجاد ویروسهای چندریختی انجام می دهند. ویروسهای چندریختی در واقع دارای یك مكانیزم دفاعی رمزنگاری هستند. بدافزارهایی از این نوع رمزنگاری به عنوان یك مكانیزم دفاعی استفاده می كنند كه می خواهند خود را تغییر دهند تا از خطر تشخیص داده شدن توسط نرم افزارهای آنتی ویروس در امان بمانند. این بدافزار ها معمولاً خود را با یك الگوریتم رمزنگاری به صورت رمزی درآورده و سپس برای هر دگرگونی از یك كلید رمزگشایی متفاوت استفاده می كنند. بنابراین بدافزار های چندریختی می توانند از تعداد نامحدودی الگوریتم رمزنگاری به منظور ممانعت از تشخیص استفاده كنند. در هر بار تكرار بدافزار جزئی از كد رمزگشایی دچار تغییر می شود. بسته به نوع هر بدافزار، عملیات خرابكارانه یا دیگر اعمالی كه توسط بدافزار انجام می شوند می توانند تحت عملیات رمزنگاری قرار بگیرند. معمولاً یك موتور دگرگونی در بدافزار رمزنگاری شده تعبیه شده است كه در هر بار تغییر، الگوریتم های رمزنگاری تصادفی را تولید می كند. سپس موتور مذكور و بدافزار توسط الگوریتم تولیدی رمزنگاری شده و كلید رمزگشایی جدید به آنها الصاق می شود.
نكته ای كه نباید آن را از نظر دور داشت اینست كه روشهای متنوعی برای رمزنگاری و بسته بندی بدافزارها وجود دارد كه تشخیص انواع شناخته شده بدافزارها را برای آنتی ویروسها بسیار سخت یا غیرممكن می سازد. لذا تشخیص اینگونه ویروسها نیازمند موتورهای قوی باز كردن بسته بندی است كه بتوانند فایلها را قبل از آزمایش رمزگشایی نمایند. متأسفانه بسیاری از آنتی ویروس های محبوب و معروف امروزی فاقد توانایی تشخیص ویروس های رمزنگاری شده هستند.

روش مبتنی بر رفتار

روش مبتنی بر رفتار بر خلاف روش پیشین تنها در تلاش برای شناسایی ویروسهای شناخته شده نیست و به جای آن رفتار همه برنامه ها را نظارت می كند. این تكنیك سعی در تشخیص انواع شناخته شده و همچنین انواع جدید بدافزار دارد و این كار را از طریق جستجوی ویژگیهای عمومی و مشترك بدافزارها انجام می دهد. برای مثال اگر یك برنامه سعی در نوشتن داده بر روی یك برنامه اجرایی دیگر را داشته باشد، این رفتار به عنوان یك رفتار مشكوك شناسایی شده و به كاربر هشدار لازم داده می شود. سپس از او در مورد اینكه چه كاری باید انجام شود سؤال می شود.
آنتی ویروس های مبتنی بر رفتار بر خلاف آنتی ویروس های مبتنی بر امضا از رایانه در برابر ویروسهای جدید نیز كه امضای آنها در هیچ دیكشنری موجود نیست، محافظت به عمل می آورند. البته مشكل این آنتی ویروسها تعداد زیاد تشخیصهای مثبت اشتباه و هشدارهای به كاربر است كه موجب خستگی و سر رفتن حوصله كاربران می شود. در صورتی كه كاربران به همه هشدارها پاسخ Accept را بدهند عملاً آنتی ویروس بلااستفاده شده و كارایی خود را از دست خواهد داد، به همین دلیل آنتی ویروس ها استفاده از این روش را روز به روز محدودتر می كنند.
به روش مبتنی بر رفتار جستجوی اكتشافی یا Heuristic نیز گفته می شود زیرا سعی در كشف رفتارهای مشكوك و شناسایی بدافزارها دارد. مهمترین فایده این روش تكیه نكردن آن بر فایلهای امضا برای تشخیص و مقابله با بدافزار است. به هر حال همان طور كه گفتیم بررسی اكتشافی نیز با مشكلات خاصی روبرو است از جمله:


تشخیص مثبت اشتباه یا False Positive
این روش از ویژگیهای عمومی بدافزار ها استفاده می كند، و بنابراین ممكن است برخی از نرم افزارهای قانونی و معتبر را در صورتی كه خصوصیاتی شبیه بدافزارها داشته باشند، نیز به اشتباه بدافزار شناسایی كند.
بررسی كندتر
پروسه جستجوی ویژگیها برای یك نرم افزار بسیار سخت تر از جستجوی الگوهایی مشخص است. به همین دلیل جستجوی اكتشافی مدت زمان بیشتری نسبت به جستجوی امضا جهت شناسایی بدافزارها نیاز دارد.
ندیدن ویژگیهای جدید
در صورتی كه یك حمله بدافزاری جدید ویژگیهایی را از خود به نمایش بگذارد كه پیش از این شناسایی نشده اند، جستجوی اكتشافی نیز آن را شناسایی نمی كند مگر اینكه به روز رسانی شده و ویژگی مذكور به حافظه آن اضافه شود.
روشهای دیگر

استفاده از Sandbox

یك روش دیگر برای تشخیص ویروسها استفاده از sandbox است. یك sandbox سیستم عامل را شبیه سازی كرده و فایلهای اجرایی را در این شبیه سازی اجرا می كند. بعد از پایان اجرای برنامه ها sandbox در مورد تغییراتی كه ممكن است نشان دهنده ویروس باشد مورد ارزیابی قرار می گیرد. به علت سرعت پایین این روش تشخیص، از آن فقط در صورت تقاضای كاربر استفاده می شود.

فناوری ابر

در نرم افزارهای آنتی ویروس رایج و امروزی یك فایل یا برنامه جدید تنها توسط یك تشخیص دهنده ویروس در یك زمان مورد بررسی قرار می گیرد. آنتی ویروس ابری می تواند برنامه ها یا فایلها را به یك شبكه ابری ارسال كند كه در آن از چندین آنتی ویروس و چندین ابزار تشخیص بدافزار به صورت همزمان استفاده می شود.
آنتی ویروس ابری در واقع یك آنتی ویروس مبتنی بر محاسبات ابری است كه توسط دانشمندان دانشگاه میشیگان تولید شده است. هر زمان كه رایانه یك فایل یا برنامه جدید را دریافت یا نصب كند یك نسخه از آن به صورت خودكار برای ابر آنتی ویروس ارسال می شود و در آنجا با استفاده از 12 تشخیص دهنده متفاوت كه با یكدیگر كار می كنند، مشخص می شود كه آیا باز كردن فایل یا برنامه مذكور امن است یا خیر.

ابزار پاكسازی ویروس

یك ابزار پاكسازی ویروس در واقع نرم افزاری است كه برای تشخیص و پاكسازی ویروسهای خاصی طراحی شده است. لذا بر خلاف آنتی ویروسهای كامل از آنها انتظار تشخیص گستره وسیعی از ویروسها را نداریم بلكه آنها برای تشخیص و پاكسازی ویروسهای ویژه ای از روی رایانه های قربانی طراحی شده اند و در این كار به مراتب موفق تر از آنتی ویروس های عمومی عمل می كنند. برخی اوقات آنها برای اجرا در محلهایی طراحی می شوند كه آنتی ویروس های معمولی نمی توانند در آن محلها اجرا شوند. این حالت برای مواقعی كه رایانه به شدت آسیب دیده و آلوده شده است مناسب است.

تشخیص آنلاین

برخی وب سایتها امكان بررسی فایلهای بارگذاری شده توسط كاربر به صورت آنلاین را فراهم می كنند. این وب سایتها از چندین تشخیص دهنده ویروس به صورت همزمان استفاده می كند و گزارشی را در مورد فایلهای بارگذاری شده برای كاربر تهیه می كنند. برای مثال می توان به وب سایتهای COMODO Automated Analysis System و VirusTotal.com اشاره كرد.
در پایان باید بگوییم درست است كه استفاده از آنتی ویروس ها اجتناب ناپذیر بوده و شكی در سودمند بودن آنها نیست ولی برخی از اوقات دردسرهایی را برای كاربران ایجاد می كنند. برای مثال برنامه های آنتی ویروس در صورتی كه به صورت مؤثر طراحی نشده باشند، كارایی رایانه را كاهش داده و باعث كند شدن آن می شوند، ممكن است كاربران بی تجربه در فهمیدن هشدارهای آنتی ویروس مشكل داشته باشند و پیشنهاداتی را كه آنتی ویروس به آنها ارائه می كند درست متوجه نشوند. گاهی اوقات یك تصمیم نادرست ممكن است منجر به نشت اطلاعات شود. در صورتی كه آنتی ویروس از جستجوی اكتشافی استفاده كند كارایی آن به میزان تشخیصهای مثبت نادرست و تشخیصهای منفی نادرست بستگی دارد، و در آخر از آنجا كه برنامه های آنتی ویروس غالباً در سطوح بسیار قابل اطمینان در هسته سیستم اجرا می شوند، محل خوبی برای اجرای حملات بر علیه رایانه می باشند.