ویروس
تعریف ویروس
ویروس، یک نوع از بدافزار است که در اغلب مواقع بدون اطلاع کاربر اجرا شده و تلاش میکند خودش را در یک کد اجرایی دیگر کپی کند. وقتی موفق به انجام این کار شد، کد جدید، آلوده نامیده میشود. کد آلوده وقتی اجرا شود، به نوبهٔ خود کد دیگری را میتواند آلوده کند. این عمل تولید مثل یا کپیسازی از خود بر روی یک کد اجرایی موجود، ویژگی کلیدی در تعریف یک ویروس است.[۱] معمولاً کاربران رایانه به ویژه آنهایی که اطلاعات تخصصی کمتری دربارهٔ کامپیوتر دارند، ویروسها را برنامههایی هوشمند و خطرناک میدانند که خود به خود اجرا و تکثیر شده و اثرات تخریبی زیادی دارند که باعث از دست رفتن اطلاعات و گاه خراب شدن کامپیوتر میگردند در حالیکه طبق آمار تنها پنج درصد ویروسها دارای اثرات تخریبی بوده و بقیه صرفاً تکثیر میشوند؛ بنابراین یک ویروس رایانهای را میتوان برنامهای تعریف نمود که میتواند خودش را با استفاده از یک میزبان تکثیر نماید. بنابر این تعریف اگر برنامهای وجود داشته باشد که دارای اثرات تخریبی باشد ولی امکان تکثیر نداشته باشد، نمیتوان آنرا ویروس نامید؛ بنابراین ویروسهای رایانهای از جنس برنامههای معمولی هستند که توسط ویروسنویسان نوشته شده و سپس به طور ناگهانی توسط یک فایل اجرایی یا جا گرفتن در ناحیه سیستمی دیسک، فایلها یا کامپیوترهای دیگر را آلوده میکنند. در این حال پس از اجرای فایل آلوده به ویروس یا دسترسی به یک دیسک آلوده توسط کاربر دوم، ویروس به صورت مخفی نسخهای از خودش را تولید کرده و به برنامههای دیگر میچسباند و به این ترتیب داستان زندگی ویروس آغاز میشود و هر یک از برنامهها یا دیسکهای حاوی ویروس، پس از انتقال به کامپیوترهای دیگر باعث تکثیر نسخههایی از ویروس و آلوده شدن دیگر فایلها و دیسکها میشوند؛ لذا پس از اندک زمانی در کامپیوترهای موجود در یک کشور یا حتی در سراسر دنیا منتشر میشوند. از آنجا که ویروسها به طور مخفیانه عمل میکنند، تا زمانی که کشف نشده و امکان پاکسازی آنها فراهم نگردیده باشد، برنامههای بسیاری را آلوده میکنند و از این رو یافتن سازنده یا منشأ اصلی ویروس مشکل است.
تاریخچه
اولین تحقیق واقعی علمی و آکادمیک بر روی ویروسها توسط فرد کوهن در سال ۱۹۸۳، با نام ویروس که توسط لِن آدلمن ابداع شده بود، انجام شد. بعضاً از کوهن به عنوان «پدر ویروسهای کامپیوتری» نام برده میشود، اما واقعاً ویروسهایی بودند که قبل از شروع تحقیقات او تولید شده بودند. ویروس Elk Cloner نوشته شده توسط ریچ اسکرنتا در سال ۱۹۸۲ در گردش بود و ویروسهای تولید شده توسط جو دلینگر نیز بین سالهای ۱۹۸۱ تا ۱۹۸۳ ساخته شده بودند؛ که همهٔ آنها برای پلتفرمهای Apple II بودند. برخی منابع یک نقص فنی در Arpanet را در سال ۱۹۸۰ به عنوان اولین ویروس ذکر میکنند، اما آن فقط یک کد قانونی و مجاز بود که اشتباه کار میکرد و تنها مسئلهای که ایجاد میکرد این بود که دادهها را در بستههای شبکه پخش میکرد. ویروسهای گریگوری بنفورد، تنها به داستانهای علمیاش ختم نشد. او در سال ۱۹۶۹ ویروسهای غیر مخرب خود را در جایی که امروزه «آزمایشگاه ملی لیوِرمور لارنس» خوانده میشود و در Arpanet اولیه تولید و منتشر کرد
انواع ویروس
رائه یک تقسیمبندی دقیق از ویروسها کار مشکلی است و میتوان ویروسها را به روشهای مختلفی تقسیمبندی کرد. این روشها میتواند بر اساس میزبان ویروس، سیستمعاملی که ویروس میتواند در آن فعالیت کند، روش آلودهسازی فایل و … باشد. در زیر به برخی از این روشها اشاره میکنیم:
تقسیمبندی ویروسها بر اساس مقصد آلودهسازی:
۱ - ویروسهای فایلی (File Viruses): ویروسهای فایلی، معمولاً فایلهای اجرایی را آلوده میکنند. فایلهای آلوده به این نوع از ویروسها اغلب (اما نه همیشه) دارای پسوند .com یا .exe هستند.
۲ - ویروسهای ماکرو (Macro Viruses): ویروسهای ماکرو، مستندات برنامههایی را که از امکان ماکرونویسی پشتیبانی مینمایند (مانند MS Word , MS Excel و…) آلوده میکنند. فایلهای اینگونه برنامهها اجرایی نیستند ولی درون آنها قسمتهایی اجرایی به نام «ماکرو» وجود دارد که میتواند میزبان مناسبی برای ویروسهای ماکرو باشد.
۳ - ویروسهای بوت و پارتیشن سکتوری (Boot Sector and Partition Table Viruses): اینگونه ویروسها سکتور راهانداز (Boot Sector) دیسک سخت و دیسکت فلاپی یا جدول بخشبندی دیسکهای سخت را آلوده میکنند. با راهاندازی سیستم از روی دیسکی که به اینگونه ویروسها آلوده شدهاست، ویروس در حافظه مقیم شده و متعاقباً دیسکهایی را که مورد دسترسی قرار گیرند، آلوده میکند.
۴ - ویروسهای اسکریپتی (Script Viruses): این ویروسها که اسکریپتهای نوشته شده به زبانهای ویژوال بیسیک یا جاوا میباشند، تنها در کامپیوترهایی اجرا میشوند که بر روی آنها Internet Explorer یا هر مرورگر وب دیگری با توانایی اجرای اسکریپتها، نصب شده باشد و فایلهای با پسوند .html , .htm , .vbs , .js , .htt یا .asp را آلوده میکنند.
ویروسها جدا از تقسیمبندی فوق، ممکن است در یک یا چند دسته از دستههای زیر نیز قرار بگیرند:
ویروسهای مقیم در حافظه (Memory Resident Viruses):
اینگونه ویروسها با مقیم شدن در حافظه، هنگام دسترسی به فایلهای دیگر، آنها را آلوده میکنند.
ویروسهای مخفیکار (Stealth Viruses):
اینگونه ویروسها به روشهای مختلف ردپای خویش را مخفی میکنند. به این معنی که فایلهای آلوده به اینگونه ویروسها به گونهای نشان داده میشود که یک فایل غیرآلوده جلوه کند. به عنوان مثال عموم ویروسها پس از آلوده کردن یک فایل، اندازه آن را افزایش میدهند یا گاهی تاریخ و زمان ضبط فایل را عوض میکنند. اما ویروسهای مخفیکار میتوانند با روشهای خاص و بدون تغییر وضعیت ظاهری، عملیات خویش را انجام دهند.
ویروسهای کدگذاری شده (Encrypting Viruses):
این ویروسها پس از هر بار آلودهسازی، با استفاده از شیوههای خود رمزی شکل ظاهری خود را تغییر میدهند.
ویروسهای چندشکلی (Polymorphic Viruses):
اینگونه ویروسها با استفاده از الگوریتمهای خاص، علاوه بر تغییر شکل ظاهری خود، ساختار خود را نیز تغییر میدهند به طوریکه ممکن است جای دستورالعملها و حتی خود دستورالعملها نیز تغییر کنند.
ویروسهای فعالشونده بر اساس رویداد خاص(Triggered Event Viruses):
ویروسهایی هستند که بخشی از عملیات تخریب خود را در ساعت یا در تاریخ خاص انجام میدهند. البته باید توجه داشت که تکثیر و آلودهسازی فایلها در تمام اوقات فعال بودن ویروس انجام میشود.