ویروس چیست؟
ویروس، یک نوع بدافزار است که در اغلب مواقع بدون اطلاع کاربر اجرا شده و تلاش میکند خودش را در یک کد اجرایی دیگر کپی کند. وقتی موفق به انجام این کار شد، کد جدید، آلوده نامیده میشود. کد آلوده وقتی اجرا شود، به نوبهٔ خود کد دیگری را میتواند آلوده کند. این عمل تولید مثل یا کپیسازی از خود بر روی یک کد اجرایی موجود، ویژگی کلیدی در تعریف یک ویروس است.کار علمی اولیه در برنامه های خود تکرار کننده
اولین اثر علمی در تئوری برنامه های کامپیوتری خود تکثیر در سال ۱۹۴۹ توسط جان فون نویمان انجام شد که در دانشگاه ایلینوی سخنرانی در مورد “نظریه و سازمان پیچیده اتوماتیک” انجام داد. کار فون نویمان بعدها به عنوان “تئوری اتوماتای تکثیر خود” منتشر شد. فون نویمن در مقاله خود توضیح داد چگونه یک برنامه کامپیوتری می تواند برای تکثیر خود طراحی شود. طراحی وون نیومن برای یک برنامه کامپیوتری خود بازپرداخت اولین ویروس کامپیوتری جهان است و او به عنوان پدر “نظریه” ویروس شناسی کامپیوتر شناخته می شود.در سال ۱۹۷۲، ویت ریساک، مستقیما با ساختن اثر فون نویمان در زمینه تکثیر خود، مقاله خود را منتشر کرد (Automats mitten minimalinform Informationsübertragung) (اتوماتای خود بخودی با حداقل اطلاعات) این مقاله یک ویروس کاملا کاربردی که در زبان برنامه نویسی اسمبلر برای یک سیستم کامپیوتری SIEMENS 4004/35 نوشته شده است را توصیف می کند. در سال ۱۹۸۰، یورگن کراوس در دانشگاه دیورتموند پایان نامه دیپلم خود را “Selbstreproduktion bei Programmen” (تکثیر خود از برنامه ها) نوشت. Kraus معتقد است که در کار خود برنامه های کامپیوتری می توانند به گونه ای مشابه ویروس های بیولوژیکی رفتار کنند.
مثال های اول:
ویروس مک مگ “صلح جهانی”، در مارس ۱۹۸۸ در مک نشان داده شده است.
ویروس Creeper ابتدا در ARPANET، پیشگام اینترنت در اوایل دهه ۱۹۷۰ کشف شد. Creeper یک برنامه آزمایشی خود تکراری بود که توسط Bob Thomas در BBN Technologies در سال ۱۹۷۱ نوشته شده است. خزنده ARPANET را برای آلوده کردن رایانه های DEC PDP-10 که سیستم عامل TENEX را دارند آلوده می کند. خزنده دسترسی از طریق ARPANET به دست آورد و خود را به سیستم از راه دور کپی کرد که در آن پیام، “من خزنده ام، اگر شما می توانید مرا بگیرید!” نمایش داده شد برنامه ی Reaper برای حذف Creeper ایجاد شد. در داستان، فیلم Westfront فیلم Sci-Fi 1973 مایکل کریچتون، ابتدا مفهوم یک ویروس کامپیوتری را ذکر کرد، که موضوع اصلی طرح است که باعث می شود اندرویدی ها را اجرا کند. شخصیت آلن اپنهاجر با بیان اینکه “… یک الگوی روشن در اینجا وجود دارد که نشان می دهد که یک فرایند بیماری عفونی، گسترش از یک منطقه … به بعد” وجود دارد، این مشکل را خلاصه می کند. به آن پاسخ می گویند: “شاید شباهت های سطحی به بیماری وجود داشته باشد” و “باید اعتراف کنم که باور دارم در یک بیماری از ماشین آلات دشوار است.”
میزبان ویروس:
ویروس هم مانند هر برنامه کامپیوتری نیاز به محلی برای ذخیره خود دارد؛ ولی این محل باید به گونهای باشد که ویروسها را به وصول اهداف خود نزدیکتر کند. همان گونه که قبلاً ذکر شد اکثر ویروسها به طورانگلوار به فایلهای اجرایی میچسبند و آنها را آلوده میکنند. اصولاً میتوان فایلها را به دو گونه کلی «اجرایی» و «غیر اجرایی» تقسیم کرد که عموم ویروسها در فایلهای اجرایی جای گرفته و آنها را آلوده میکنند و واقعاً کمتر ویروسی یافت میشود که در یک فایل غیراجرایی قرار بگیرد و بتواند از طریق آن تکثیر شود.
لازم است ذکر شود که بعضی از فایلها را شاید نتوان ذاتاً اجرایی نامید اما چون اینگونه فایلها میتوانند حاوی قسمتهایی اجرایی باشند، لذا آنها را از نوع اجرایی در نظر میگیریم. از این نوع فایلها میتوان به فایلهای اچتیامال و مستندات برنامههای اداره اشاره کرد که به ترتیب ممکن است شامل اسکریپت و ماکرو باشند. اسکریپتها و ماکروها قسمتهایی اجرایی هستند که در دل این فایلها قرار گرفته و کار خاصی را انجام میدهند.
در ذیل فهرست پسوندهای رایج فایلهای اجرایی ارائه شدهاست و اکثر نرمافزارهای ضد ویروس در حالت عادی (بدون تنظیمات خاص) این فایلها را ویروسیابی میکنند (البته در برخی برنامههای ضد ویروس ممکن است برخی پسوندها حذف یا اضافه شوند):
.com , .exe , .dll , .ovl , .bin , .sys , .dot , .doc , .vbe , .vbs , .hta , .htm , .scr , .ocx , .hlp , .eml
عملیات وتوابع:
یک ویروس کامپیوتری مؤثر باید یک روال جستجو داشته باشد که فایل های جدید یا دیسک های جدید را که اهداف ارزشمندی برای عفونت هستند، قرار می دهد. در مرحله دوم، هر ویروس کامپیوتری باید یک روال معمول داشته باشد تا خود را در برنامه ای قرار دهد که مسیر جستجوی آن پیدا می شود.سه قسمت اصلی ویروس عبارتند از:
مکانیسم عفونت:
مکانیسم عفونت (که همچنین “بروز عفونت” نامیده می شود) این است که چگونه ویروس گسترش می یابد یا آن را گسترش می دهد. یک ویروس به طور معمول دارای یک روش جستجو است که فایل های جدید یا دیسک های جدید را برای عفونت قرار می دهد.
ماشه:
این ماشه، که همچنین به عنوان بمب منطق شناخته می شود، نسخه کامپایل شده است که می تواند هر زمان که یک فایل اجرایی با ویروس اجرا می شود، فعال شود، تعیین می کند که رویداد یا شرایط برای بارگیری مخرب فعال یا تحویل داده شده است به عنوان یک تاریخ خاص، یک زمان خاص، حضور خاص برنامه دیگری، ظرفیت دیسک بیش از حد محدود، یا دوبار کلیک یک فایل خاص را باز می کند.
ظرفیت ترابری:
“loadload” بدن واقعی یا اطلاعاتی است که اهداف مخرب واقعی ویروس را انجام می دهند. فعالیت بارگیری ممکن است قابل توجه باشد (به عنوان مثال، چون باعث می شود که سیستم به کم کردن سرعت و یا “توقف”) بپردازد، زیرا اغلب زمان بارگیری “خود” فعالیت مضر است یا برخی موارد غیر مخرب اما توزیع کننده ویروس جعلی گفته می شود.
فاز:
فازهای ویروس، چرخه عمر ویروس کامپیوتری است که با استفاده از آنالوگ به زیست شناسی توصیف می شود. این چرخه زندگی را می توان به چهار مرحله تقسیم کرد:
فاز خاموش:
برنامه ویروس در این مرحله بیکار است. برنامه ویروس موفق به دسترسی به رایانه یا نرم افزار کاربر هدف شده است، اما در این مرحله، ویروس هیچ کاری انجام نمی دهد. ویروس در نهایت توسط “ماشه” فعال می شود که مشخص می کند که چه رویدادی ویروس را اجرا می کند، مانند یک تاریخ، حضور یک برنامه یا فایل دیگر، ظرفیت دیسک بیش از حد محدود یا کاربر اقدام خاصی (مثلا ، دو بار کلیک کردن بر روی یک آیکون مشخص، باز کردن ایمیل، و غیره). همه ویروس ها این مرحله را ندارند.
فاز انتشار:
این ویروس شروع به انتشار می کند، که آن را چند برابر و تکثیر می کند. این ویروس یک کپی از خود را به برنامه های دیگر و یا به برخی از مناطق سیستم بر روی دیسک قرار می دهد. کپی ممکن است با نسخه تبلیغاتی یکسان باشد؛ ویروسها اغلب “مورف” هستند و یا برای تشخیص فرار از طریق فناوری اطلاعات و نرم افزار ضد ویروس تغییر می کنند. هر برنامه آلوده در حال حاضر حاوی یک کلون از ویروس است که خود را در مرحله انتشار قرار می دهد.
فاز راه اندازی:
هنگامی که ویروس فعال می شود، یک ویروس خاموش به این مرحله حرکت می کند و اکنون عملکردی را که برای آن طراحی شده است انجام می دهد. مرحله تحریک می تواند ناشی از انواع حوادث سیستم باشد، از جمله تعدادی از تعداد دفعاتی که این کپی از ویروس خود را ساخته شده است.
فاز اجرایی:
این کار واقعی ویروس است، جایی که “loadload” منتشر می شود. این می تواند مخرب مانند حذف فایل ها بر روی دیسک، خراب شدن سیستم، یا خراب کردن فایل ها و یا نسبتا بی ضرر مانند ظاهر پیام های طنز آمیز و یا سیاسی بر روی صفحه نمایش است.
اهداف عفونت و تکنیک های تکثیر
ویروس های کامپیوتری انواع سیستم های مختلف را بر روی رایانه های میزبان و نرم افزار خود آلوده می کنند. یک روش طبقه بندی ویروس ها این است که تجزیه و تحلیل کنند که آیا آنها در اجرام دودویی (مانند فایل های .EXE یا .COM)، فایل های داده (مانند اسناد Microsoft Word یا فایل های PDF) یا در بخش بوت از هارد دیسک میزبان (یا برخی از ترکیبی از همه اینها)
Resident vs non-resident viruses:
یک ویروس حافظه مهاجم (یا به سادگی «ویروس مهاجم») خود را در هنگام اجرای برنامه، خود را به عنوان بخشی از سیستم عامل نصب می کند، پس از آن در RAM از زمان بوت شدن کامپیوتر تا زمانی که آن را خاموش می شود. ویروس Resident بازنویسی کد وقفه وقفه یا سایر توابع را انجام می دهد و هنگامی که سیستم عامل تلاش می کند تا به فایل مورد یا بخش دیسک دسترسی پیدا کند، کد ویروس درخواست را متوقف می کند و جریان کنترل را به ماژول تکرار هدایت می کند و هدف را آلوده می کند. در مقابل، یک ویروس بدون حافظه (یا «ویروس غیرمسلمان») هنگام اجرای آن، دیسک را برای اهداف اسکن می کند، آنها را آلوده می کند و سپس خروج می کند (یعنی پس از اجرای آن، در حافظه باقی نمی ماند).
انواع ویروس:
Memori Resident Virus:
ویروس هایی هستند که بعداز فعال شدن مانند یک برنامه ماندگار در حافظه RAMرایانه باقی می مانند.
Encrypting Virus:
این گونه ویروس ها خود را به صورت های مختلفی رمز میکنند وبه این ترتیب شناسایی انها مشکل تر می شود.
Polymorphic Virus:
این گونه ویروس ها پس از هربار الوده سازی ساختار داخلی خود را تغییر می دهند و یا از شیوه های خود رمزی استفاده میکنند.