تاریخچه
اگر بخواهیم به تاریخچه آنتیویروسها بپردازیم، باید به گذشته برگشته و نیمنگاهی به تولید ویروسهای کامپیوتری بیاندازیم.
با وجودی که اولین ویروس کامپیوتری را فومن نیومن در سال 1949 با توانایی ساخت یک برنامه کامپیوتری همراه ویروس تولید کرد اما تولید یک ویروس به معنای واقعی در اوایل دهه 1980 میلادی و در سال 1984 توسط Ken Thompson انجام شد.
درست در همان سال، شخصی به نام Fred Cohen تأثیر ویروسها روی سیستمهای کامپیوتری را در آزمایشگاه خود بررسی کرد که به ارائه یک تعریف رسمی برای ویروسها منجر شد و از آن پس برای نامگذاری یک فایل مخرب ویروس بهعنوان مرجع استفاده شد.
بنابراین، اولین ویروسهای کامپیوتری مخرب در دهه 1980 میلادی بهطور رسمی پا به عرصه وجود گذاشتند.
با اینکه درباره اولین نرمافزار تولیدشده برای حذف ویروس نظرات متعددی وجود دارد اما بسیاری معتقدند، یک هکر آلمانی به نام Brend Fix اولین نرمافزار را برای حذف یک ویروس کامپیوتری در سال 1987 نوشتهاست. درست در همان سال برای دستگاههای Atari ST دو نرمافزار آنتیویروس به نامهای G Data و UVK2000 تولید شد.
در سال 1988 Fred Cohen که اولین تعریف رسمی برای ویروس را در سال 1984 به جهانیان معرفی کردهبود، به توسعه استراتژیهای موردنیاز برای تولید نرمافزارهای ضدویروس پرداخت، استراتژیهایی که آنتیویروسهای تولیدی بعد از این تاریخ از آنها استفاده کردند.
همچنین در سال 1988 گروهی که به Virus-L معروف بودند با عضویت در BITNET (شبکهای بین دو دانشگاه معروف نیویورک) به بحث و بررسی درباره چگونگی فعالیت ویروسها و روشهای شناسایی و حذف آنها پرداختند.
در این گروه، افراد معروفی چون John McAfee و Eugene Kaspersky دیدهمیشدند که بعدها در زمینه تولید آنتیویروس دو شرکت به راه انداختند.
قبل از اینکه شبکههای جهانی اینترنت عمومیت پیدا کنند، بیشتر ویروسها از طریق فلاپی درایوها انتقال پیدا میکردند، به همین دلیل بیشتر آنتیویروسهای تولیدشده فقط به بررسی بوتسکتورهای فلاپیها و هارددرایوها میپرداختند.
البته بعد از جهانی شدن اینترنت شکل و شمایل انتقال ویروسها نیز تغییر یافت. با توجه به تغییرات مختلفی که در ساختار ویروسها به وجود آمد، به مرور زمان ویروسهای کامپیوتری جای خود را به بدافزار دادند. به همین دلیل، در حال حاضر ویروسها خود در زمره بدافزارها طبقهبندی میشوند.
در حال حاضر، بدافزارهای مختلفی در دنیای کامپیوتر وجود دارند که از آنجمله میتوان به: ویروس، تروجان، کرم اینترنتی، جاسوسافزار، آگهیافزار، روتکیت، بکدور و... اشاره کرد. از اینرو به نظر میرسد، لفظ عامیانه ویروس کامپیوتری جای خود را به لفظ بزرگتری به نام بدافزار (Malware) داده باشد.
بدافزارها (Malicious Software) به برنامههای مخربی گفتهمیشود که با آلوده کردن سیستمهای کامپیوتری به دنبال رسیدن به اهدافی خاص هستند. هر بدافزار برای آلوده کردن و آسیبرسانی از فرآیند مختص به خود استفاده میکند که دارای پیچیدگیهای خاص خود است. از اینرو، آنتیویروسها باید طوری طراحی شوند که بتوانند با هرگونه تهدیدی مقابله کنند.
روشهای شناسایی
یکی از معدود نتایج نظری برگرفته از مطالعاتی که روی ویروسهای کامپیوتری انجام گرفته به اثباتهای عملی که Fred Cohen در سال 1987 به آن رسیدهبود، مربوط میشود. در این مطالعات، Fred Cohen به این نتیجه رسید که هیچ الگوی مشخصی نیست که بتوان تمامی ویروسها را از طریق آن شناسایی کرد.
پس از انجام تحقیقات نهایی، نتیجه این شد که، ویروسهای کامپیوتری، نرمافزار یا کدهای مخربی هستند که توانایی بازتولید و انتشار خود را دارند. اما بعدها محققان متوجه شدند، معانی جدیدی نیز وجود دارند که با وجود نقاط مشترک با ویروسها، از لحاظ عملکرد مترادف با ویروسها نبودند، ابزارهای مخربی برای رسیدن به اهداف خاص...
از سوی دیگر، نرمافزارهای آنتیویروس نیز برای شناسایی و حذف انواع مختلف بدافزار که با روشهای خاص و حرفهای در حال طراحی بودند، به فناوریهای جدید مجهز میشدند که این فناوریها پایه و اساس طراحی آنتیویروسهای جدید هستند.
روشهای طراحی و شناسایی ویروسها توسط نرمافزارهای آنتیویروس
1. شناسایی از روی امضاء دیجیتالی (Signature Based detection)
معمولترین روشی که آنتیویروسها برای شناسایی بدافزارها استفاده میکنند، شناسایی ویروسها از روی امضاء دیجیتالی است که در آن، آنتیویروسها محتویات یک فایل را با بانک اطلاعاتی از امضاء دیجیتالی ویروسهای اکتشافی مقایسه کرده و در صورت آلوده بودن فایلها بهعنوان بدافزار معرفی میشوند. به این دلیل که ویروسها میتوانند خود را داخل فایلها جاسازی کنند، در این روش، تمام یا بخشی از فایلها اسکن میشود.
2. روش اکتشافی (Heuristic Based Detection)
در این روش، آنتیویروسها با بررسی عملکرد فعالیتهای مشکوک به اکتشاف ویروسهای ناشناخته میپردازند. این فناوری یکی از جدیدترین روشهای اکتشافی است.
3. روش تقلید (File Emulation)
یکی دیگر از روشهای شناسایی ویروسها توسط نرمافزارهای آنتیویروس که بر مبنای فناوری Heuristic Analyzer استوار هستند، روش تقلید فایل است. در این روش، با اجرای یک برنامه در محیط مجازی و سنجش رفتارهای به وقوع پیوسته و مقایسه آن با رفتارهای بدافزارهایی که از قبل به ثبت رسیدهاند، میتوان تشخیص داد که این رفتار به یک بدافزار مربوط است یا نه. درصورتی که برنامه اجراشده، یک بدافزار باشد، اقدامات لازم برای پاکسازی و جلوگیری از فعالیت آن انجام خواهدشد.
شناسایی از روی امضاء دیجیتالی لازم اما ناکافی
همانطور که میدانید، نرمافزارهای آنتیویروس اغلب با روش تست امضاء دیجیتالی به شناسایی بدافزارها میپردازند. با وجودی که این روش یکی از روشهای مؤثر در این زمینه است اما زمانی بیشترین کارایی را دارد که آنتیویروس از قبل با این بدافزار برخورد کردهباشد و امضاء دیجیتالی آن توسط شرکتهای تولیدکننده آنتیویروس تولید و به بانک اطلاعاتی آنتیویروس افزوده شدهباشد. به همین دلیل این روش در مقابله با بدافزارهای جدید و ناشناخته راهی از پیش نخواهدبرد.
در روش شناسایی بر مبنای امضاء دیجیتالی با توجه به اینکه روزانه ویروسهای جدیدی تولید میشوند، نیاز بهبروزرسانی بانک اطلاعاتی امضاهای دیجیتالی امری اجتنابناپذیر به نظر میرسد. از این رو، برای یاری رساندن به شرکتهای تولیدکننده آنتیویروس امکاناتی داخل خود نرمافزارهای آنتیویروس تعبیه شده که امکان ارسال فایلهای مشکوک توسط کاربران کامپیوتر به شرکتهای سازنده آنتیویروس برای تجزیه و تحلیل و افزودن به بانک اطلاعاتی امضاهای ویروسی داده شدهاست. عملیات کشف و خنثیسازی ویروسها توسط متخصصان این رشته و با بهکارگیری نرمافزارها و روشهای خاص در شرایط مهندسی معکوس اتفاق میافتد.
یکی از نرمافزارهایی که برای تجزیه و تحلیل فایلهای مشکوک استفاده میشود، نرمافزار Interactive Disassambler است. البته توجه داشتهباشید که این نرمافزارها کار یک آنتیویروس را انجام نمیدهند، بلکه به متخصصان برای شناسایی و اضافهکردن امضاء دیجیتالی یک ویروس جدید به بانک اطلاعاتی آنتیویروس یاری میدهند.
با وجودی که روش شناسایی بر مبنای امضاء دیجیتالی روش مؤثری در جلوگیری از شیوع بسیاری از ویروسهای کامپیوتری است اما ویروسنویسان همواره با بهکارگیری فناوریهایی چون «Oligomorphic» و «Polymorphic» و به تازگی نیز فناوری کاملاً پیچیده «Metamorphic» سعی دارند، همواره یک قدم از نرمافزارهای آنتیویروس جلوتر باشند. در تکنیکهای جدیدی که برای ویروسنویسی استفاده میشوند، این امکان وجود دارد که بخشی یا تمام فایل آلوده به صورت رمزنگاریشده تولید شود که این امر باعث میشود، ویروسهای از پیش شناختهشده نیز تنها با ایجاد تغییر در رفتار و شکل و شمایل خود، آنتیویروس را در روش مبتنی بر امضاء دیجیتالی فریب دهند، حتی اگر امضاء دیجیتالی ویروس پیشتر به بانک اطلاعاتی آنتیویروس افزوده شدهباشد.
با توجه به اینکه بسیاری از ویروسها برای انتشار و آلوده ساختن سیستمهای کامپیوتری از روشهای مشابه استفاده میکنند و فقط پس از نفوذ به کامپیوترها تنها با تغییر در بعضی از رفتارها، میزبان خود را تخریب میکنند، از این رو با ایجاد یک روش اکتشافی عمومی بسیاری از ویروسهای کامپیوتری که برای آلودهکردن سیستمها از یک مفهوم مشخص استفاده میکنند، شناسایی شده و در یک خانواده طبقهبندی میشوند. بنابراین برای شناسایی هر نوع ویروس جدید نیازی نیست امضاء دیجیتالی آن ویروس در بانک اطلاعاتی آنتیویروس موجود باشد، بلکه با استفاده از فناوری Heuristic Analysis با تشخیص و تطبیق نوع رفتار و عملکرد یک فایل مشکوک با بدافزاری که از قبل شناسایی شده، آن فایل نیز جزء آن دسته از ویروس طبقهبندی شده و توسط آنتی ویروس شناسایی و حذف میشوند.
از آن جمله میتوان بدافزار Sality را نام برد که در کلاسهبندی آنتیویروسهای مختلف دارای همخانوادههای مختلفی است که برای مثال در آنتیویروس VBA32 این بدافزار دارای دو همخانواده کاملاً متمایز به نامهای Sality Baka و Sality Kaka است.
با اینکه شناسایی یک ویروس مشخص و خاص از طریق امضاء دیجیتالی به نظر سودمند میآید اما شناسایی یک خانواده از ویروسها از طریق روش امضاء دیجیتالی عمومی (روش معمول در فناوری Heuristic Analysis) سریعتر است.
محققانی که در زمینه ویروسنویسی تبحر دارند به این موضوع پی بردهاند که، تمامی ویروسهایی که در یک خانواده طبقهبندی میشوند دارای نقاط مشترکی در کدنویسی هستند که به آنتیویروسها کمک میکنند با شناسایی این نقاط و ارتباط آنها با یک امضاء عمومی، تمامی آن بدافزارها شناسایی شوند (این امضاء دیجیتالی عمومی به بانک اطلاعاتی آنتیویروسها افزوده میشود).
این امضاهای دیجیتالی اغلب دارای کدهای ناپیوسته تقلبی هستند که ویروسنویسان غیرحرفهای به منبع ویروس اصلی که در گذشته تولید شده، اضافه کردهاند. از این رو، وجود همین کدهای نامتعارف و تقلبی به اسکنرهای آنتیویروسها اجازه میدهند که بتوانند ویروسها را شناسایی کنند، حتی اگر در ساختمان آن ویروسها از کدهای بیمعنی استفاده شدهباشد. به این روش شناسایی که از روش بالا استفاده میکند، روش «Heuristic Detection» گفتهمیشود.