آنتی ویروس چیست و چگونه عمل می کند؟
نرم
افزارهای آنتی ویروس اختصاصاً برای دفاع از سیستم ها در برابر تهدیدهای
ویروسها طراحی و نوشته می شوند. متخصصان امنیتی قویاً توصیه به استفاده از
آنتی ویروس می کنند زیرا آنتی ویروس از رایانه شما نه تنها در برابر
ویروسها بلکه در برابر انواع بدافزارها نیز محافظت می کند. در واقع آنتی
ویروس یک برنامه کامپیوتری است که برای مرور فایلها و تشخیص و حذف ویروسها و
دیگر بدافزارها از آن استفاده می شود.
در این مقاله برخی از تکنیکهای
رایج در بین آنتی ویروسها را که برای تشخیص بدافزارها به کار برده می شوند
مورد بررسی قرار خواهیم داد. در حالت کلی آنتی ویروس ها از دو تکنیک اصلی
برای رسیدن به اهدافشان استفاده می کنند:
روش مبتنی بر کد (امضا): در
این روش با استفاده از یک دیکشنری ویروس که حاوی امضای ویروسهای شناخته شده
است، احتمال وجود ویروسهای شناخته شده در فایلها مورد بررسی و آزمایش قرار
می گیرند.
روش مبتنی بر رفتار: در این روش هدف شناسایی رفتارهای مشکوک
هر برنامه کامپیوتری است، زیرا احتمال دارد رفتار مذکور نشان دهنده یک
آلودگی ویروسی باشد.
اغلب آنتی ویروسهای تجاری از هر دو روش فوق ولی با
تأکید بر روی امضای ویروس، استفاده می کنند. در زیر روشهای مذکور را با
تفصیل بیشتری توضیح می دهیم.
روش مبتنی بر کد (امضا)
اغلب
برنامه های آنتی ویروس در حال حاضر از این تکنیک استفاده می کنند. در این
شیوه، رایانه میزبان، درایوهای حافظه و یا فایلها با هدف پیدا کردن الگویی
که نشان دهنده یک بدافزار باشد، مورد جستجو قرار می گیرند. این الگوها
معمولاً در فایلهایی به نام فایلهای امضا ذخیره می شوند. فایلهای مذکور
توسط فروشندگان نرم افزارهای آنتی ویروس طبق یک برنامه منظم به روز رسانی
می شوند تا قادر باشند بیشترین تعداد ممکن حمله های بدافزاری را شناسایی
کنند. مشکل اصلی تکنیک بررسی امضا این است که نرم افزار آنتی ویروس باید
قبلاً به روز رسانی شده باشد تا بتواند به مقابله و خنثی سازی بدافزارها
بپردازد و لذا بدافزارهای جدیدی که هنوز شناسایی نشده و به فایلهای امضا
اضافه نشده اند تشخیص داده نمی شوند.
در این شیوه زمانی که نرم افزار
آنتی ویروس یک فایل را مورد آزمایش قرار می دهد، به یک دیکشنری ویروس که
حاوی امضای ویروسهای شناخته شده است مراجعه می کند. در صورتی که هر تکه از
کد فایل با یک ویروس شناخته شده مطابقت داشته باشد، فایل مذکور به عنوان یک
فایل آلوده شناسایی شده و آنتی ویروس یا آن را پاک می کند و یا آن را
قرنطینه می نماید تا برنامه های دیگر به آن دسترسی نداشته و همچنین از
انتشار آن جلوگیری به عمل آید. در برخی موارد نیز امکان بازسازی فایل آلوده
از طریق حذف ویروس از فایل اصلی وجود دارد که در صورت امکان آنتی ویروس
این کار را انجام می دهد.
همان طور که در بالا نیز گفتیم، آنتی ویروسهای
مبتنی بر امضا برای موفق بودن در درازمدت، نیاز دارند که مرتباً دیکشنری
حاوی امضاهای ویروس را به صورت آنلاین به روز رسانی نمایند. زمانی که یک
ویروس جدید در دنیای رایانه پدیدار می شود، کاربران با تجربه تر فایلهای
آلوده را برای نویسندگان آنتی ویروس ها ارسال می کنند تا آنها بتوانند
ویروس مزبور را شناسایی کرده و مشخصات آن را به دیکشنری اضافه کنند.
آنتی
ویروس های مبتنی بر امضا غالباً فایلها را در زمان اجرا، باز و بسته شدن و
همچنین زمانی که ایمیل می شوند، مورد آزمایش قرار می دهند. به این وسیله
یک ویروس شناخته شده به محض وارد شدن به رایانه تشخیص داده می شود. همچنین
می توان برنامه های آنتی ویروس را طوری برنامه ریزی کرد که در زمانهای
معینی به بررسی کل فایلهای موجود بر روی دیسک سخت بپردازند.
با وجودی که
روش مبتنی بر امضا مؤثر شناخته شده است ولی ویروس نویسان همواره تلاش می
کنند تا یک قدم جلوتر از آنتی ویروس ها حرکت کنند و این کار را از طریق
ایجاد ویروسهای چندریختی انجام می دهند. ویروسهای چندریختی در واقع دارای
یک مکانیزم دفاعی رمزنگاری هستند. بدافزارهایی از این نوع رمزنگاری به
عنوان یک مکانیزم دفاعی استفاده می کنند که می خواهند خود را تغییر دهند تا
از خطر تشخیص داده شدن توسط نرم افزارهای آنتی ویروس در امان بمانند. این
بدافزار ها معمولاً خود را با یک الگوریتم رمزنگاری به صورت رمزی درآورده و
سپس برای هر دگرگونی از یک کلید رمزگشایی متفاوت استفاده می کنند.
بنابراین بدافزار های چندریختی می توانند از تعداد نامحدودی الگوریتم
رمزنگاری به منظور ممانعت از تشخیص استفاده کنند. در هر بار تکرار بدافزار
جزئی از کد رمزگشایی دچار تغییر می شود. بسته به نوع هر بدافزار، عملیات
خرابکارانه یا دیگر اعمالی که توسط بدافزار انجام می شوند می توانند تحت
عملیات رمزنگاری قرار بگیرند. معمولاً یک موتور دگرگونی در بدافزار
رمزنگاری شده تعبیه شده است که در هر بار تغییر، الگوریتم های رمزنگاری
تصادفی را تولید می کند. سپس موتور مذکور و بدافزار توسط الگوریتم تولیدی
رمزنگاری شده و کلید رمزگشایی جدید به آنها الصاق می شود.
نکته ای که
نباید آن را از نظر دور داشت اینست که روشهای متنوعی برای رمزنگاری و بسته
بندی بدافزارها وجود دارد که تشخیص انواع شناخته شده بدافزارها را برای
آنتی ویروسها بسیار سخت یا غیرممکن می سازد. لذا تشخیص اینگونه ویروسها
نیازمند موتورهای قوی باز کردن بسته بندی است که بتوانند فایلها را قبل از
آزمایش رمزگشایی نمایند. متأسفانه بسیاری از آنتی ویروس های محبوب و معروف
امروزی فاقد توانایی تشخیص ویروس های رمزنگاری شده هستند.
روش مبتنی بر رفتار
روش
مبتنی بر رفتار بر خلاف روش پیشین تنها در تلاش برای شناسایی ویروسهای
شناخته شده نیست و به جای آن رفتار همه برنامه ها را نظارت می کند. این
تکنیک سعی در تشخیص انواع شناخته شده و همچنین انواع جدید بدافزار دارد و
این کار را از طریق جستجوی ویژگیهای عمومی و مشترک بدافزارها انجام می دهد.
برای مثال اگر یک برنامه سعی در نوشتن داده بر روی یک برنامه اجرایی دیگر
را داشته باشد، این رفتار به عنوان یک رفتار مشکوک شناسایی شده و به کاربر
هشدار لازم داده می شود. سپس از او در مورد اینکه چه کاری باید انجام شود
سؤال می شود.
آنتی ویروس های مبتنی بر رفتار بر خلاف آنتی ویروس های
مبتنی بر امضا از رایانه در برابر ویروسهای جدید نیز که امضای آنها در هیچ
دیکشنری موجود نیست، محافظت به عمل می آورند. البته مشکل این آنتی ویروسها
تعداد زیاد تشخیصهای مثبت اشتباه و هشدارهای به کاربر است که موجب خستگی و
سر رفتن حوصله کاربران می شود. در صورتی که کاربران به همه هشدارها پاسخ
Accept را بدهند عملاً آنتی ویروس بلااستفاده شده و کارایی خود را از دست
خواهد داد، به همین دلیل آنتی ویروس ها استفاده از این روش را روز به روز
محدودتر می کنند.
به روش مبتنی بر رفتار جستجوی اکتشافی یا Heuristic
نیز گفته می شود زیرا سعی در کشف رفتارهای مشکوک و شناسایی بدافزارها دارد.
مهمترین فایده این روش تکیه نکردن آن بر فایلهای امضا برای تشخیص و مقابله
با بدافزار است. به هر حال همان طور که گفتیم بررسی اکتشافی نیز با مشکلات
خاصی روبرو است از جمله:
-
تشخیص مثبت اشتباه یا False Positive
این روش از ویژگیهای عمومی بدافزار ها استفاده می کند، و بنابراین ممکن است برخی از نرم افزارهای قانونی و معتبر را در صورتی که خصوصیاتی شبیه بدافزارها داشته باشند، نیز به اشتباه بدافزار شناسایی کند. -
بررسی کندتر
پروسه جستجوی ویژگیها برای یک نرم افزار بسیار سخت تر از جستجوی الگوهایی مشخص است. به همین دلیل جستجوی اکتشافی مدت زمان بیشتری نسبت به جستجوی امضا جهت شناسایی بدافزارها نیاز دارد. -
ندیدن ویژگیهای جدید
در صورتی که یک حمله بدافزاری جدید ویژگیهایی را از خود به نمایش بگذارد که پیش از این شناسایی نشده اند، جستجوی اکتشافی نیز آن را شناسایی نمی کند مگر اینکه به روز رسانی شده و ویژگی مذکور به حافظه آن اضافه شود.
روشهای دیگر
استفاده از Sandbox
یک
روش دیگر برای تشخیص ویروسها استفاده از sandbox است. یک sandbox سیستم
عامل را شبیه سازی کرده و فایلهای اجرایی را در این شبیه سازی اجرا می کند.
بعد از پایان اجرای برنامه ها sandbox در مورد تغییراتی که ممکن است نشان
دهنده ویروس باشد مورد ارزیابی قرار می گیرد. به علت سرعت پایین این روش
تشخیص، از آن فقط در صورت تقاضای کاربر استفاده می شود.
فناوری ابر
در
نرم افزارهای آنتی ویروس رایج و امروزی یک فایل یا برنامه جدید تنها توسط
یک تشخیص دهنده ویروس در یک زمان مورد بررسی قرار می گیرد. آنتی ویروس ابری
می تواند برنامه ها یا فایلها را به یک شبکه ابری ارسال کند که در آن از
چندین آنتی ویروس و چندین ابزار تشخیص بدافزار به صورت همزمان استفاده می
شود.
آنتی ویروس ابری در واقع یک آنتی ویروس مبتنی بر محاسبات ابری است
که توسط دانشمندان دانشگاه میشیگان تولید شده است. هر زمان که رایانه یک
فایل یا برنامه جدید را دریافت یا نصب کند یک نسخه از آن به صورت خودکار
برای ابر آنتی ویروس ارسال می شود و در آنجا با استفاده از 12 تشخیص دهنده
متفاوت که با یکدیگر کار می کنند، مشخص می شود که آیا باز کردن فایل یا
برنامه مذکور امن است یا خیر.
ابزار پاکسازی ویروس
یک
ابزار پاکسازی ویروس در واقع نرم افزاری است که برای تشخیص و پاکسازی
ویروسهای خاصی طراحی شده است. لذا بر خلاف آنتی ویروسهای کامل از آنها
انتظار تشخیص گستره وسیعی از ویروسها را نداریم بلکه آنها برای تشخیص و
پاکسازی ویروسهای ویژه ای از روی رایانه های قربانی طراحی شده اند و در این
کار به مراتب موفق تر از آنتی ویروس های عمومی عمل می کنند. برخی اوقات
آنها برای اجرا در محلهایی طراحی می شوند که آنتی ویروس های معمولی نمی
توانند در آن محلها اجرا شوند. این حالت برای مواقعی که رایانه به شدت آسیب
دیده و آلوده شده است مناسب است.
تشخیص آنلاین
برخی
وب سایتها امکان بررسی فایلهای بارگذاری شده توسط کاربر به صورت آنلاین را
فراهم می کنند. این وب سایتها از چندین تشخیص دهنده ویروس به صورت همزمان
استفاده می کند و گزارشی را در مورد فایلهای بارگذاری شده برای کاربر تهیه
می کنند. برای مثال می توان به وب سایتهای COMODO Automated Analysis
System و VirusTotal.com اشاره کرد.
در پایان باید بگوییم درست است که
استفاده از آنتی ویروس ها اجتناب ناپذیر بوده و شکی در سودمند بودن آنها
نیست ولی برخی از اوقات دردسرهایی را برای کاربران ایجاد می کنند. برای
مثال برنامه های آنتی ویروس در صورتی که به صورت مؤثر طراحی نشده باشند،
کارایی رایانه را کاهش داده و باعث کند شدن آن می شوند، ممکن است کاربران
بی تجربه در فهمیدن هشدارهای آنتی ویروس مشکل داشته باشند و پیشنهاداتی را
که آنتی ویروس به آنها ارائه می کند درست متوجه نشوند. گاهی اوقات یک تصمیم
نادرست ممکن است منجر به نشت اطلاعات شود. در صورتی که آنتی ویروس از
جستجوی اکتشافی استفاده کند کارایی آن به میزان تشخیصهای مثبت نادرست و
تشخیصهای منفی نادرست بستگی دارد، و در آخر از آنجا که برنامه های آنتی
ویروس غالباً در سطوح بسیار قابل اطمینان در هسته سیستم اجرا می شوند، محل
خوبی برای اجرای حملات بر علیه رایانه می باشند.
منابع:
The Antivirus Defense in Depth. PDF
http://www.antivirusworld.com/articles/antivirus.php
http://www.net-security.org/article.php?id=485&p=1
http://en.wikipedia.org/wiki/Antivirus