Компјутерски вируси

Адаптирани текст са линка.

Компјутерски вируси се могу класификовати према свом окружењу и методама инфекције. Под окружењем се подразумева апликација или оперативни систем чије је присуство потребно како би вирус инфицирао фајлове. Методе инфекције су технике које се користе за убацивање вирусног кода у дати фајл.

Окружење

Већина вируса може се наћи у једном од следећих окружења:

  • Системски фајлови

  • Boot сектори

  • Macro окружења

  • Script хостови

Вирусни фајлови за ширење користе системски фајл датог оперативног система (или више њих). Вирусни фајлови се могу поделити у следеће категорије:

  • они који инфицирају извршне фајлове (ово је највећа група вируса)

  • они који стварају дупликате фајлова (вируси пратиоци)

  • они који стварају своје копије у различитим директоријумима

  • они који користе својства системског фајла (линк вируси)

Вируси boot сектора се уписују или у boot сектор диска или на мастер boot record, или пак инфекцију изврше тако што измештају активан boot сектор. Ови вируси су били широко распрострањени деведесетих година прошлог века, али су скоро нестали са појавом 32-бит процесора и повлачењем из употребе флопи дискова. Технички је могуће писање boot сектор вируса за CD-ове и УСБ флеш РОМ, али такви вируси још увек нису откривени.

Многе апликације за обраду текста, рачунање, едитовање као и апликације за израду пројеката имају уграђене macro script-ове који аутоматизују често коришћене фреквенце. Ови macro језици су често сложени и укључују широк спектар команди. Macro вируси су писани у macro језицима и инфицирају апликације са уграђеним macro-има. Macro вируси се шире коришћењем могућности macro језика како би остварили прелаз са инфицираног на други фајл.

Методе инфекције

Група вируса који су приказани у тексту изнад могу се разврстати у подгрупе према техникама које вируси користе за инфекцију објеката.

Вирусни фајл

Вирусни фајл користи следеће методе инфекције:

  • преписивање (преко постојећег)

  • паразитирање

  • пратилац

  • линкови

  • object модули (ОБЈ)

  • компајлинг (превођење) датотека

  • изворни код апликације

Преписивање

Ово је наједноставнији метод инфекције: вирус замењује код зараженог фајла сопственим, бришући оргиналан код. Фајл тако постаје неупотребљив и не може се довести у пређашње стање. Овакви вируси се брзо откривају зато што ће оперативни систем и погођена апликација престати да раде убрзо после инфекције.

Паразитирање

Паразитски вируси мењају код зараженог фајла. Заражени фајл остаје при том делимично или потпуно функционалан.

Паразитски вируси су груписани према делу фајла где уписују свој код:

  • Препендинг: штетан код је уписан на почетку фајла

  • Апендинг: штетан код је уписан на крају фајла

  • Inserting: штетан код је убачен у средину фајла

'Prepending' вируси

'Prepending' вируси уписују свој код у циљани фајл на два начина. У првом случају, вирус помера код са почетка циљаног фајла на крај и уписује себе на упражњено место. У другом случају, вирус додаје код циљаног фајла у свој сопствени код.

У оба случаја, сваки пут кад се заражени фајл покрене, вирусни код је први који се извршава. У настојању да се одржи интегритет апликације, вирус може очистити заражени фајл, поново га покренути, сачекати да се фајл изврши, и онда кад се тај процес оконча, вирус ће копирати себе поново на почетак фајла. Неки вируси користе привремене фајлове како би сачували чисте верзије заражених фајлова. Неки вируси ће обновити код апликације у меморији и вратити га у почетно стање, и повратити неопходне адресе у телу, и на тај начин дуплирати рад оперативног система.

'Appending' вируси

Већина вируса потпада под ову категорију. 'Appending' вируси уписују себе на крај инфицираног фајла. Међутим, ови вируси обично мењају фајлове (мењају улазни део у заглављу фајла) како би осигурали да се команде садржане у вирусном коду изврше пре команди зараженог фајла.

'Inserting' вируси

Писци вируса користе различите технике како би убацили вирусе у средину фајла. Наједноставније технике подразумевају премештање дела кода фајла на крај фајла или потискивање оргиналног кода у страну како би се створио простор за вирус.

'Inserting' вируси укључују такозване 'cavity' вирусе (вирусе шупљина); овакви вируси уписују свој код у делове фајлова за које се зна да су празни. На пример, ови вируси могу се копирати на неискоришћени део заглавља exe фајлова, затим у празнине између делова exe фајла, или у текстуална поља популарних компајлера (преводилаца). Неки од ових вируса ће заразити фајл на месту где одређени блок садржи одређени бајт; изабрани блок ће бити преписан вирусним кодом.

Најзад, неки 'inserting' вируси су лоше написани и преписују се преко дела кода који је неопходан како би заражени фајл уопште функционисао. То за последицу има дефинитивно оштећење фајла.

Улазно место опскурних вируса - ЕПО

Постоји мала група паразитских вируса која укључује и 'appending' и 'inserting' вирусе који не мењају адресе улазног места у узглављима EXE фајлова. ЕПО вируси уписују шаблонско подешавање из тела вируса у средиште зараженог фајла. Вирусни код се онда извршава само ако шаблон садржи позивани вирус . Ако је овај шаблон ретко коришћен (на пример, ретко обавештење о грешци), ЕПО вирус може остати дуго времена неактиван.

Писци вируса треба пажљиво да одаберу улазно место: лоше одабрано улазно место може или оштетити хост фајл или проузроковати да вирус остане неактиван довољно дуго док заражени фајл најзад не буде обрисан.

Писци вируса користе различите методе како би пронашли погодно улазно место:

  • Претраживање фрејмова и преписивање преко њих заражених почетних места

  • Растављање кода хост фајла

  • Промена адреса важних функција

Вируси пратиоци (Companion viruses)

Вируси пратиоци не мењају хост фајл. Уместо тога, они стварају дупликат фајла који садржи вирус. Када се покрене заражени фајл копија која садржи вирус ће бити прва извршена.

Ова категорија укључује вирусе који преименују хост фајл, бележећи ново име за будуће позивање и онда преписују оригиналан фајл. На пример, вирус може преименовати notepad.exe у notepad.exd и уписатии сопствени код у фајл под оргиналним називом. Сваки пут када корисник покрене notepad.exe, вирусни код се извршава док оргиналан Notepad фајл, notepad.exd, се покреће тек после тога.

Постоје друге врсте вируса пратиоца које користе оргиналне методе или искоришћавају рањивости одређеног оперативног система. На пример, Path-companion вируси смештају своје копије у системске директоријуме Виндоуза, користећи чињеницу да је овај директоријум први на PATH листи; систем ће стартовати од овог директоријума када покрене Виндоуз. Многи данашњи црви и Тројанци користе овакве autorun методе.

Остале технике инфекције

Неки вируси не користе извршне фајлове за инфекцију компјутера, већ се једноставно копирају у одређеном броју директоријума у нади да ће пре или касније бити покренути од стране корисника. Неки писци вируса пишу вирусе тако да им додељују фајлове као што су install.exe или winstart.bat како би убедили корисника да покрене фајл који садржи вирус.

Други вируси се копирају у компресоване фајлове у форматима као што су ARJ, ZIP и RAR, док неки користе команде за покретање зараженог фајла у BAT-фајлу.

Линк вируси такође не мењају хост фајлове. Међутим, они приморавају оперативни систем да извршава вирусни код мењањем одговарајућих поља у системским фајловима.

Вируси boot сектора

Вируси boot сектора су познати по томе што су одговорни за инфекцију boot сектора флопи дискова или Мастер Boot Record (МБР) хард диска. Boot вируси функционишу на бази алгоритма који покреће оперативни систем онда када се компјутер укључи или рестартује. Онда када се изврши неопходна провера меморије, диска итд., boot програм система чита први физички сектор boot диска (А:, Ц: или CD-РОМ, зависно од тога који су параметри конфигурисани/инсталирани у опцији БИОС Setup) и пролази контролу овог сектора.

Када инфицира диск, boot вирус ће извршити замену програма - који успоставља контролу када се систем покрене - својим кодом. У настојању да инфицира систем, вирус ће приморати систем да чита меморију и преузме контролу не над оригиналним boot програмом већ над вирусним кодом.

Флопи дискови могу бити заражени само на један начин. Вирус уписује свој код на место оргиналног кода boot сектора диска. Хард дискови могу бити заражени на три начина: или вирус уписује свој код на место МБР кода или кода boot сектора boot диска, или мења адресе активних boot сектора на Диск Partition Табле на МБР хард диска.

У великој већини случајева, када инфицира диск, вирус ће изместити оргиналан boot сектор (или MBR) на другу секцију диска, најчешће прву која је слободна. Ако је вирус дужи од сектора, онда ће инфицирани сектор садржати први део вирусног кода, а остатак кода ће бити смештен у другим секторима, најчешће првим који буду слободни.

Macro вируси

Најраширенији macro вируси су они писани за Мајкрософт Офис апликације (Ворд, Ексел и PowerPoint) који чувају податке у OLE2 формату (Object Linking and Embedding - повезивање и постављање објеката).

Позиција вируса у МС Офис фајлу зависи од формата фајла, који је у случају Мајкрософт-ових проивода веома сложен. Сваки Ворд документ, Офис 97 или Ексел табела су састављени од делова блокова података (од којих сваки има сопствени формат) који су прикључени/повезани/удружени са сервисним подацима. Услед сложености формата Ворд, Ексел и Офис 97 фајлова, лакше је користити дијаграм да би се приказало место macro вируса у таквом фајлу:

Неинфицирани документ

Инфицирани документ

При раду са документима и табелама, МС Офис обавља многобројне различите радње: програм отвара документ, снима га, штампа, затвара итд. МС Ворд ће тражити и покретати одговарајуће уграђене macro-е. На пример, коришћење File/Save команде ће позвати FileSave macro, File/SaveAs команда ће позвати FileSaveAs macro, и тако редом, увек претпостављајући да је такав macro дефинисан/конфигурисан.

Такође постоје и ауто macro-и, који ће аутоматски бити позивани у одређеним ситуацијама. На пример, када је документ отворен, МС Ворд ће проверити документ у смислу евентуалног постојања AutoOpen macro-а. Ако се macro пронађе, Ворд ће га покренути. Када се документ затвара, Ворд ће покренути АутоЦлосе, када је Ворд покренут, програм ће покренути AutoExec macro итд. Ови macro-и се извршавају аутоматски, без икаквог учешћа корисника, било да су macro-и/функције које су повезане са одређеним тастером, или са одређеним временом или датумом.

По правилу, macro вируси који инфицирају МС Офис фајлове користе једну од техника описаних изнад. Вирус ће садржати или ауто macro (аутоматска функција) или ће један од macro система (удружен са ставком из менија) бити редефинисан, или ће macro вирус бити аутоматски позиван притиском на одређени тастер или комбинацију тастера. Онда кад macro вирус успостави контролу, пребациће се на друге фајлове, обично на оне који се тог тренутка уређују. Много ређе, вируси ће претраживати диск у потрази за другим фајловима.

Script вируси

Script вируси су подгрупа вирусних фајлова, писаних различитим script језицима (VBS, JavaScript, BAT, PHP итд.). Они или инфицирају друге script-ове, нпр. Виндоуз или Линукс команде и сервисни фајлове, или чине део мултикомпонентних вируса. Script вируси могу да заразе и друге формате фајлова, као што је ХТМЛ, уколико формат фајла допушта извршење script-а.

Чланак преузет са линка.