تعریف ویروس
به زبان ساده می توان گفت ویروس، برنامه مخفی و کوچکی است که باعث آلوده شدن برنامه های دیگر می شود و می تواند داده ها را دستکاری و یا تخریب نموده، سرعت سیستم را کاهش داده، باعث اغتشاش و عدم کارائی کامپیوتر شود.
مهمترین خصوصیت ویروس قدرت تکثیر آن است. ویروس ها برای تکثیر نیاز به یک برنامه اجرائی دارند .یعنی بیشتر ویروس ها در فایل های اجرائی جای می گیرند و آنها را آلوده میکنند و کمتر ویروسی پیدا می شود که در یک فایل غیر اجرائی جای بگیرد و بتواند از طریق آن تکثیر شود .بنابراین ویروس برنامه ای است که می تواند نسخه های اجرائی از خود را در برنامه های دیگر قرار دهد. برنامه آلوده به ویروس می تواند هر برنامه سیستمی یا کاربردی باشد که شرایط مورد نیاز برای پذیرش ویروس را داشته باشد. برنامه آلوده نیز، قادر است برنامه های دیگر را آلوده کند.
از آنجائیکه ویروس ها می توانند به تمام فایل هایی که توسط سیستم اجرا می شوند، اضافه شوند به آنها خود تکثیر می گویند.
با وجودیکه ویروس ها توسط برنامه نویسان مجرب و حرفه ای نوشته می شوند، ولی برخی ها تصور می کنند که خود به خود و به طور تصادفی وارد سیستم می شوند. ولی فرد کوهن و سایر کارشناسان احتمال به وجود آمدن ویروس به طور تصادفی را بسیار کم دانسته اند. زیرا:
a-گر طول برنامه ویروس هزار بیت فرض شود.
b-اگر پنجاه درصد از بیت ها صحیح فرض شوند.
c-اگر فرض کنیم با پانصد تغییر در برنامه، ویروس کامل می شود.
آنگاه احتمال به وجود آمدن ویروس برابر است با :
با فرض های فوق که شرایط مطلوبی برای ایجاد خود به خودی ویروس است عددp برابر مقدار کوچک می شود که شانس بسیار کمی برای بوجود آمدن و تکامل ویروس به طور تصادفی است.اما نرم افزارهای موجود معمولا دارای روال های خواندن و نوشتن داده ها و... هستند که این نشان دهنده وجود توابع اساسی ویروسها، در برنامه ها است. بنابراین برخی احتمال به وجود آمدن ویروس به طور تصادفی را ، با احتمال بسیار کم می پذیرند.
مقایسه ویروس های بیولوژیکی و کامپیوتری
به کار بردن کلمه ویروس برای این برنامه ها، به دلیل شباهت فراوان آنها با ویروس های بیولوژیکی است که در بدن موجود زنده فعالیت می کنند. بنابراین ویروس های کامپیوتری را می توان با ویروس های بیولوژیکی مقایسه کرد. ویروس های بیولوژیکی رشته هایی از اسید نوکلئیک همراه با پوشش پروتئینی هستند که به تنهایی هیچ اثری از حیات ندارند مگر اینکه به یک سلول زنده به عنوان میزبان وارد شوند. پس از ورود ویروس های بیولوژیکی به بدن، آنها شروع به فعالیت کرده و فعالیتهای سلول میزبان را متوقف می کنند. ویروسهای بیولوژیکی در بدن میزبان می توانند تولید مثل کرده و ویروس های جدید به وجود آورند.
ویروس های کامپیوتری مانند ویروس های بیولوژیکی به تنهایی نمی توانند فعالیت کنند و همانند ویروس های بیولوژیکی نیاز به میزبان دارند. ویروس های کامپیوتری به طور غیر فعال در برنامه میزبان باقی می مانند تا در شرایط مناسب فعال شده و عملیات تخریبی و تکثیر خود را آغاز کنند. شرایط مناسب برای فعالیت ویروس ها، بسته به نوع آنها متفاوت است. راه اندازی سیستم، اجرای یک برنامه اجرائی و ... باعث فعال شدن ویروس ها می شود. در برخی موارد، یک تاریخ مشخص باعث فعالیت ویروس می شود.
باید توجه داشت هیچ کامپیوتری در برابر ویروس مقاوم نیست. اگر کامپیوتری در حال حاضر فاقد هر نوع ویروس باشد، آن وقت کامپیوتر به ویروس آلوده نمی شود، اگر:
a- هیچ نوع دیسکت یا “سی دی” در آن مورد استفاده قرار نگیرد .
b- به شبکه متصل نباشد.
یعنی همه درگاه های ارتباطی را باید کنار بگذارید. که البته کامپیوتری که قادر به انجام این کار باشد نادر و کمیاب است. در صورت وجود چنین کامپیوتری میتوان گفت ویروس به صورت مستقیم یعنی تایپ خود برنامه ویروس می تواند این کامپیوتر را آلوده کند
محل فعالیت ویروس
بعضی ویروس ها بر روی فایل های با پسوند exe و بعضی از آنها بر روی فایل های با پسوند com و بعضی دیگر بر روی هر دو دسته اثر می گذارند. بنابراین می توان گفت : یکی از محل های وجود ویروس، فایل های اجرایی است. پسوندهای رایج فایل هایی که توسط ویروس ها آلوده می شوند عبارتند از:
EXE-COM-SYS-BIN-OVL-DLL-SCR-DOC-DOT-OVR-APP-XTP
بعضی از ویروس ها علاقه خاصی به بوت سکتور و پارتیشن تیبل دارند. ویروس های بوت سکتور، جای بوت سکتور را با برنامه خودشان عوض می کنند. اگر ویروس ها بیش از یک سکتور نیاز داشته باشند، سکتورهای دیگری از دیسک را به کار می برند و در این صورت در FAT آنها را به عنوان “ بد سکتور“ علامت گذاری می کنند تا از نوشتن روی آنها جلوگیری شود و اکثر برنامه های کمکی مانند نورتن نیز نمی توانند محتویات این سکتورهای به ظاهر خراب را نمایش دهند.
وقتی فایل آلوده به ویروس را اجرا کنید، ویروس در حافظه قرار می گیرد و در آنجا مقیم میشود. پس از آن، هر وقت فایل سالمی را اجرا کنید، برای اجرا به داخل حافظه می رود، و ویروس مقیم در حافظه خود را به آن متصل می کند و بالاخره فایل آلوده در دیسک ذخیره می شود. بیشتر ویروس ها مانند برنامه های مقیم در حافظه عمل می کنند. برنامه های مقیم در حافظه پس از اجرا، جای خود را در حافظه از دست نمی دهند. محل حافظه این برنامه ها با روش خاصی اداره می شود و در اختیار برنامه های دیگر قرار نمی گیرد. ویروس های مقیم در حافظه کنترل سیستم عامل را در دست می گیرند و فر آیندهای ورودی/خروجی ، مترجم های فرمان و ... را تحت کنترل می گیرند. اما بعضی از ویروس ها فقط در حافظه قرار می گیرند و نمی توانند مانند برنامه های مقیم در حافظه عمل کنند. یعنی تنها از اقامت در حافظه استفاده می کنند و نمی توانند تحت عنوان وقفه ها سیستم عامل فعالیت نمایند.
برخی از ویروس ها بر روی برنامه های غیر اجرائی یا داده ای اثر گذاشته و آنها را غیر فعال می کنند. ویروس ها، فقط می توانند به فایل ها داده ای صدمه بزنند، اما نمی توانند همه انواع آنها را آلوده کنند. در نتیجه فایل های داده ای نیز نمی توانند کامپیوتر را آلوده کنند.
بعضی از ویروس ها خودشان را فقط یک بار به یک فایل اضافه می کنند. یعنی هر فایل را فقط یک بار آلوده می کنند زیرا بیشتر ویروس ها دارای یک علامت مشخصه هستند که باعث می شود فایل های آلوده شده، توسط خودشان را تشخیص دهند. این امر آنها را قادر می سازد تا از کشف شدنشان جلوگیری بعمل آید زیرا فایل آلوده به ویروس، در صورت آلودگی پی در پی به صورت قابل توجهی بزرگ می شود.
خصوصیات ویروس
بر اساس تعاریفی که تا به حال بیان شد، برنامه ویروس باید دارای خصوصیات زیر باشد:
برنامه نرم افزاری کوچک و مضری است که روی نوعی وسیله ذخیره اطلاعات کامپیوتری قرار می گیرد.
به صورت خودکار و بدون دخالت اشخاص اجرا می شود.
معمولا مقیم در حافظه هستند و با اجرای فایل های آلوده به ویروس در حافظه کپی می شوند. ویروس های مقیم در حافظه می توانند از طریق وقفه ها در حافظه مقیم شوند.روش دوم نیاز به مهارت فراوان در برنامه نویسی دارد ولی در عوض دیرتر کشف می شود زیرا اغلب برنامه های ضد ویروس بر روی وقفه ها نظارت دارند.
نام ویروس ها در فهرست فایل ها ظاهر نمی شود.
ویروس ها می توانند خود را در سایر کامپیوترها از طریق برنامه های آلوده کپی کرده و تولید مثل نمایند.
ویروس های کامپیوتری توسط برنامه نویسان تکامل پیدا می کنند. یعنی در حال حاضر تکامل آنها وابسته به دخالت برنامه نویسان است.
اکثر ویروس ها بوت سکتور کوچکتر از 512 بیت هستند زیرا فضای ذخیره شده در این قسمت 512 بایت (یک سکتر)است.
بعضی از ویروس ها مانع از اجرای ضد ویروس هایی مانند scan می شوند و این در صورتی است که حافظه آلوده به ویروس نباشد. در این صورت برنامه ضد ویروس ظاهرا اجرا می شود ولی ویروس را نمی تواند بر روی دیسک تشخیص دهد. ویروس های “ وان هاف” و “ایرانین” از این نوع هستند.
ویروس های مقیم در حافظه، در صورت اجرا یا باز شدن فایل، آنها را آلوده می سازدند ولی ویروس هایی که در حافظه مقیم نیستند باید در فهرست جاری یا مسیر های تعریفی در دستور path به دنبال فایل های سالم بگردنند و آنها را آلوده کنند.بعضی از ویروس ها به دنبال فایل خاص در مسیرهای خاص می گردند و در صورت وجود فایل خاص، آنرا آلوده می کنند.