ویروس رایانه‌ای

ویروس رایانه‌ای (به انگلیسی: Computer virus) نوعی مخرب دیجیتال است که در سیستم‌های رایانه‌ای ایجاد اختلال ،جاسوسی و خرابی می‌کند.
تعریف ویروس
ویروس، یک نوع از بدافزار است که در اغلب مواقع بدون اطلاع کاربر اجرا شده و تلاش می‌کند خودش را در یک کد اجرایی دیگر کپی کند. وقتی موفق به انجام این کار شد، کد جدید، آلوده نامیده می‌شود. کد آلوده وقتی اجرا شود، به نوبه خود کد دیگری را می‌تواند آلوده کند. این عمل تولید مثل یا کپی‌سازی از خود بر روی یک کد اجرایی موجود، ویژگی کلیدی در تعریف یک ویروس است.
معمولا کاربران رایانه به ویژه آنهایی که اطلاعات تخصصی کمتری درباره کامپیوتر دارند، ویروس‌ها را برنامه‌هایی هوشمند و خطرناک می‌دانند که خود به خود اجرا و تکثیر شده و اثرات تخریبی زیادی دارند که باعث از دست رفتن اطلاعات و گاه خراب شدن کامپیوتر می‌گردند در حالیکه طبق آمار تنها پنج درصد ویروس‌ها دارای اثرات تخریبی بوده و بقیه صرفا تکثیر می‌شوند؛ بنابراین یک ویروس رایانه‌ای را می‌توان برنامه‌ای تعریف نمود که می‌تواند خودش را با استفاده از یک میزبان تکثیر نماید. بنابراین تعریف اگر برنامه‌ای وجود داشته باشد که دارای اثرات تخریبی باشد ولی امکان تکثیر نداشته باشد، نمی‌توان آنرا ویروس نامید؛ بنابراین ویروس‌های رایانه‌ای از جنس برنامه‌های معمولی هستند که توسط ویروس‌نویسان نوشته شده و سپس به‌طور ناگهانی توسط یک فایل اجرایی یا جا گرفتن در ناحیه سیستمی دیسک، فایل‌ها یا کامپیوترهای دیگر را آلوده می‌کنند. در این حال پس از اجرای فایل آلوده به ویروس یا دسترسی به یک دیسک آلوده توسط کاربر دوم، ویروس به صورت مخفی نسخه‌ای از خودش را تولید کرده و به برنامه‌های دیگر می‌چسباند و به این ترتیب داستان زندگی ویروس آغاز می‌شود و هر یک از برنامه‌ها یا دیسک‌های حاوی ویروس، پس از انتقال به کامپیوترهای دیگر باعث تکثیر نسخه‌هایی از ویروس و آلوده شدن دیگر فایل‌ها و دیسک‌ها می‌شوند؛ لذا پس از اندک زمانی در کامپیوترهای موجود در یک کشور یا حتی در سراسر دنیا منتشر می‌شوند. از آنجا که ویروس‌ها به‌طور مخفیانه عمل می‌کنند، تا زمانی که کشف نشده و امکان پاکسازی آنها فراهم نگردیده باشد، برنامه‌های بسیاری را آلوده می‌کنند و از این رو یافتن سازنده یا منشا اصلی ویروس مشکل است.
تاریخچه
اولین تحقیق واقعی علمی و آکادمیک بر روی ویروس‌ها توسط فرد کوهن در سال ۱۹۸۳، با نام ویروس که توسط لن آدلمن ابداع شده بود، انجام شد. بعضا از کوهن به عنوان «پدر ویروس‌های کامپیوتری» نام برده می‌شود، اما واقعا ویروس‌هایی بودند که قبل از شروع تحقیقات او تولید شده بودند. ویروس Elk Cloner نوشته شده توسط ریچ اسکرنتا در سال ۱۹۸۲ در گردش بود و ویروس‌های تولید شده توسط جو دلینگر نیز بین سال‌های ۱۹۸۱ تا ۱۹۸۳ ساخته شده بودند؛ که همه آن‌ها برای پلتفرم‌های Apple II بودند. برخی منابع یک نقص فنی در Arpanet را در سال ۱۹۸۰ به عنوان اولین ویروس ذکر می‌کنند، اما آن فقط یک کد قانونی و مجاز بود که اشتباه کار می‌کرد و تنها مسئله‌ای که ایجاد می‌کرد این بود که داده‌ها را در بسته‌های شبکه پخش می‌کرد. ویروس‌های گریگوری بنفورد، تنها به داستان‌های علمی‌اش ختم نشد. او در سال ۱۹۶۹ ویروس‌های غیر مخرب خود را در جایی که امروزه «آزمایشگاه ملی لیورمور لارنس» خوانده می‌شود و در Arpanet اولیه تولید و منتشر کرد.
میزبان ویروس
ویروس هم مانند هر برنامه کامپیوتری نیاز به محلی برای ذخیره خود دارد؛ ولی این محل باید به گونه‌ای باشد که ویروس‌ها را به وصول اهداف خود نزدیکتر کند. همان گونه که قبلا ذکر شد اکثر ویروس‌ها به‌طور انگل‌وار به فایل‌های اجرایی می‌چسبند و آنها را آلوده می‌کنند. اصولا می‌توان فایل‌ها را به دو گونه کلی «اجرایی» و «غیر اجرایی» تقسیم کرد که عموم ویروس‌ها در فایل‌های اجرایی جای گرفته و آنها را آلوده می‌کنند و واقعا کمتر ویروسی یافت می‌شود که در یک فایل غیراجرایی قرار بگیرد و بتواند از طریق آن تکثیر شود.
لازم است ذکر شود که بعضی از فایل‌ها را شاید نتوان ذاتا اجرایی نامید اما چون اینگونه فایل‌ها می‌توانند حاوی قسمت‌هایی اجرایی باشند، لذا آنها را از نوع اجرایی در نظر می‌گیریم. از این نوع فایل‌ها می‌توان به فایل‌های اچ‌تی‌ام‌ال و مستندات برنامه‌های اداره اشاره کرد که به ترتیب ممکن است شامل اسکریپت و ماکرو باشند. اسکریپت‌ها و ماکروها قسمت‌هایی اجرایی هستند که در دل این فایل‌ها قرار گرفته و کار خاصی را انجام می‌دهند.
در ذیل فهرست پسوندهای رایج فایل‌های اجرایی ارائه شده‌است و اکثر نرم‌افزارهای ضد ویروس در حالت عادی (بدون تنظیمات خاص) این فایل‌ها را ویروس‌یابی می‌کنند (البته در برخی برنامه‌های ضد ویروس ممکن است برخی پسوندها حذف یا اضافه شوند):
.com , .exe , .dll , .ovl , .bin , .sys , .dot , .doc , .vbe , .vbs , .hta , .htm , .scr , .ocx , .hlp , .eml
بنابراین یکی از اصلی‌ترین میزبان‌های ویروس، فایل‌های اجرایی هستند. از طرف دیگر برخی ویروس‌ها نیز از سکتور راه‌انداز (Boot Sector) و جدول بخش‌بندی دیسک (Master Boot Record یا Partition Table) به عنوان میزبان استفاده می‌کنند. سکتور راه‌انداز واحد راه‌اندازی سیستم‌عامل است که در سکتور شماره صفر دیسکت فلاپی یا درایوهای منطقی یک دیسک سخت قرار دارد و جدول بخش‌بندی شامل اطلاعات تقسیم‌بندی دیسک سخت می‌باشد که آن نیز در سکتور شماره صفر دیسک سخت قرار دارد. اینگونه ویروس‌ها با قرار گرفتن در یکی از این دو محل، هنگام راه‌اندازی کامپیوتر، اجرا شده و در حافظه سیستم مقیم می‌شوند و تا زمان خاموش کردن کامپیوتر یا راه‌اندازی دوباره، همان‌جا مانده و فلاپی‌ها یا دیسک‌های سخت دیگر را آلوده می‌کنند.
عملکرد ویروس
همان‌طور که گفته شد تنها پنج درصد از ویروس‌ها دارای اثرات تخریبی هستند و بقیه صرفا تکثیر می‌شوند. با توجه به این مطلب این پرسش مطرح است که چرا ویروس‌ها به عنوان یک معضل شناخته می‌شوند و باید با آنها مبارزه کرد؟ پاسخ به این پرسش در موارد زیر خلاصه گردیده‌است:
۱ - بسیاری از ویروس‌ها دارای اثراتی هستند که هرچند تخریبی نمی‌باشد ولی می‌تواند برای کاربر ایجاد مزاحمت کند. مثلا ممکن است پیغامی نمایش دهد، باعث ریزش حروف صفحه نمایش به پایین شود یا اینکه یک آهنگ پخش نماید. علاوه بر این برخی از ویروس‌ها به علت اشکالات نرم‌افزاری که ناشی از عدم دقت ویروس‌نویس می‌باشد، ممکن است دارای اثراتی غیرقابل پیش‌بینی باشند که گاهی این اثرات می‌توانند تخریبی نیز باشند. از دیدگاه کاربر اهمیتی ندارد که خسارت ایجاد شده بوسیله یک ویروس، یک کار عمدی پیش‌بینی شده توسط نویسنده ویروس بوده باشد یا یک اشتباه برنامه‌نویسی.
۲ - برخی از ویروس‌ها در حافظه کامپیوتر مقیم شده و از این طریق عملیات تکثیر خود را انجام می‌دهند. این عمل ممکن است به گونه‌ای باشد که جایی برای اجرای برنامه‌های دیگر نماند یا باعث ایجاد تاخیر یا وقفه در حین عملیات سیستم اعم از اجرای برنامه‌ها یا راه‌اندازی کامپیوتر گردد.
۳ - فرض کنید که شما یک ویروس بر روی کامپیوتر خود داشته باشید. بسیار احتمال دارد که این ویروس به صورت غیرعمدی به یک دوست، همکار یا مشتری منتقل شود که این امر ممکن است باعث از بین رفتن اعتماد آنها به شما و شرکت شما شود.
۴ - ویروس‌ها و برنامه‌های مخرب زیادی وجود دارند که اقدام به سرقت اطلاعات و کلمات عبور کاربر می‌نمایند. بعضی از اینگونه برنامه‌ها با مقیم شدن در حافظه از عباراتی که توسط شما تایپ می‌شود گزارش گرفته و پس از اتصال رایانه شما به اینترنت این اطلاعات را برای مقصد خاصی ارسال می‌کنند. گیرنده این اطلاعات می‌تواند به راحتی از آنها سوء استفاده‌های مختلفی نماید.
علاوه بر همه اینها هیچ ویروسی کاملا بی‌ضرر نیست و در خوشبینانه‌ترین حالت، آنها وقت شما، وقت پردازنده و فضای دیسک شما را تلف می‌کنند.
در مورد اثرات تخریبی ویروس‌هایی که آنها را به صورت عمدی انجام می‌دهند می‌توان به موارد زیر اشاره نمود:
تخریب یا حذف برنامه‌ها و اطلاعات بخش‌های مختلف دیسک‌ها.
فرمت کردن دیسک‌ها.
کد کردن اطلاعات و برنامه‌ها.
تخریب اطلاعات حافظه فلش‌ها.
مزاحمت‌های فوق ممکن است به محض فعال شدن ویروس (یعنی قرار گرفتن ویروس در حافظه از طریق اجرای یک برنامه آلوده) یا در یک تاریخ و زمان خاص یا حتی با اجرای یک برنامه کاربردی خاص انجام شود.
انواع ویروس‌ها
ارائه یک تقسیم‌بندی دقیق از ویروس‌ها کار مشکلی است و می‌توان ویروس‌ها را به روش‌های مختلفی تقسیم‌بندی کرد. این روش‌ها می‌تواند بر اساس میزبان ویروس، سیستم‌عاملی که ویروس می‌تواند در آن فعالیت کند، روش آلوده‌سازی فایل و … باشد. در زیر به برخی از این روش‌ها اشاره می‌کنیم:
تقسیم‌بندی ویروس‌ها بر اساس مقصد آلوده‌سازی:
۱ - ویروس‌های فایلی (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):
ویروس‌هایی هستند که بخشی از عملیات تخریب خود را در ساعت یا در تاریخ خاص انجام می‌دهند. البته باید توجه داشت که تکثیر و آلوده‌سازی فایل‌ها در تمام اوقات فعال بودن ویروس انجام می‌شود.
نشانه‌های وجود ویروس
معمولا سیستمی که به ویروس آلوده می‌گردد نشانه‌هایی را از خود بروز می‌دهد که با دقت در آنها می‌توان به ویروسی بودن احتمالی سیستم پی برد. بعضی از این نشانه‌ها در زیر آمده‌است. اما باید دقت داشت که این نشانه‌ها ممکن است در اثر عوامل غیرویروسی نیز ظاهر گردد. اما اگر کامپیوتر بطور عادی کار می‌کرده و ناگهان و بدون هیچگونه دستکاری، این علایم را از خود بروز می‌دهد، احتمال وجود ویروس بیشتر است:
۱ - سیستم در هنگام راه‌اندازی قفل می‌کند و احتمالا پیغام‌های غیرمعمول روی صفحه ظاهر می‌گردد(احتمال جعلی بودن پیغام‌ها و راهی برای دسترسی کاربری به ویروس داده شود).
۲ - هنگام اجرای برنامه‌ها پیغام کمبود حافظه ظاهر شده و برنامه اجرا نمی‌گردد.
۳ - در کارچاپگر اختلال ایجاد می‌شود یا بدون هیچگونه فرمان چاپی شروع به کار می‌کند.
۴ - امکان دسترسی به برخی از درایوها وجود ندارد.
۵ - هنگام اجرای فایل‌ها، پیغام File is Damaged یا File is Corrupted نمایش داده می‌شود.
۶ - هنگام اجرای یک فایل، کاراکترها یا پیغام‌های غیرعادی روی صفحه نمایش ظاهر که این کلمات همراه با symbol و یا کلمات کدگذاری شده با حروف‌های غیر عادی همراه می‌باشد .
۷ - هنگام کار در محیط‌های گرافیکی، تصاویر به هم می‌ریزد.
۸ - اصوات غیرمعمول یا موزیک از بلندگوهای کامپیوتر پخش می‌شود.
۹ - سیستم هنگام اجرای یک برنامه قفل کرده و حتی گاهی فشردن کلیدهای Ctrl+Alt+Del نیز نمی‌تواند سیستم را دوباره راه‌اندازی کند.
۱۰ - اطلاعات بخشی از دیسک سخت یا تمام آن بطور ناگهانی از بین می‌رود یا دیسک سخت ناخواسته فرمت می‌شود.
۱۱ - اندازه فایل‌های اجرایی افزایش می‌یابد.
۱۲ - خواص فایل‌های اجرایی تغییر می‌کند.
۱۳ - سرعت سیستم بطور نامحسوسی کاهش می‌یابد.
۱۴ - اطلاعات Setup کامپیوتر از بین می‌رود.
۱۵ - برنامه‌ها مراجعاتی به دیسکت انجام می‌دهند که قبلا انجام نمی‌دادند.
۱۶ - کاهش فضای خالی دیسک بدون اینکه فایلی اضافه شده یا به محتوای فایل‌ها افزوده شده باشد.
۱۷ - نرم‌افزارهای مقیم در حافظه با خطا اجرا شده یا اصلا اجرا نمی‌شوند.
۱۸ - بعضی برنامه‌ها سعی در برقراری ارتباط با اینترنتی را دارند، که امکان وجود جاسوسی از طریق ویروس آلوده کننده امکان پذیر می‌باشد .
۱۹ - هنگام کار با اینترنت مقدار ارسال و دریافت اطلاعات ناخواسته افزایش یافته و سرعت به شدت افت می‌کند.
۲۰ - نامه‌های الکترونیکی ناخواسته از روی سیستم ارسال شده یا دریافت می‌گردد.
21-تونل بار یا افزونه‌ای به صورت ناخواسته روی مرورگر نصب شده و پاک کردن آن نیز فایده‌ای ندارد.
22-آنتی ویروس غیر فعال شده و یا به درستی کار نمی‌کند.
23- بعضی از ویروس‌ها با ساخت فایل‌هایی با حجم‌های یکنواخت سعی در پر کردن رم کامپیوتر را دارند که از طریق task manager در سیستم عامل‌های ویندوز قابل مشاهده می‌باشند.
24- گاهی ویروس‌ها اقدام به واکنش نسبت به بازیابی اطلاعات از دست رفته با نرم افزار نموده و باعث پر شدن رم قربانی می‌شوند.