Primjeri mrežnih virusa. Makrovirusi, mrežni virusi - virusi i antivirusi. Šta je "virus crva"

Ovaj dio biltena koristi informacije iz Kaspersky Lab http://www.avp.ru - najpoznatije i najpopularnije ruske kompanije koja proizvodi antivirusni softver.

Mrežni virusi
Mrežni virusi uključuju viruse koji aktivno koriste protokole i mogućnosti lokalnih i globalnih mreža za svoje širenje. Glavni princip mrežnog virusa je mogućnost samostalnog prijenosa svog koda na udaljeni server ili radnu stanicu. "Završeno" mrežni virusi u isto vrijeme, oni također imaju mogućnost pokretanja vlastitog koda udaljeni računar ili barem "natjerati" korisnika da pokrene zaraženu datoteku.
Postoji pogrešno mišljenje da je svaki virus koji se širi u računarskoj mreži mrežni virus. Ali u ovom slučaju, gotovo svi virusi bi bili mrežni virusi, čak i najprimitivniji od njih: na kraju krajeva, najčešći nerezidentni virus ne razumije kada inficira datoteke - da li je riječ o mrežnom (udaljenom) disku ili lokalnom . Kao rezultat, takav virus može zaraziti datoteke unutar mreže, ali se ne može klasificirati kao mrežni virus.
Mrežni virusi kasnih 1980-ih postali su najpoznatiji, nazivaju se i mrežnim crvima (worms). To uključuje Morris virus, viruse "Cristmas Tree" i "Wank Worm". Za svoju distribuciju koristili su greške i nedokumentirane funkcije tadašnjih globalnih mreža - virusi su prenosili svoje kopije sa servera na server i pokretali ih na izvršenje. U slučaju Morris virusa, epidemija je zahvatila čak nekoliko globalnih mreža u Sjedinjenim Državama.
Mrežni virusi prošlosti širili su se kompjuterskom mrežom i po pravilu, baš kao i njihovi pratioci virusi, nisu mijenjali datoteke ili sektore na diskovima. Oni su prodrli u memoriju računara iz računarske mreže, izračunali mrežne adrese drugih računara i poslali njihove kopije na te adrese. Ovi virusi su ponekad kreirali i radne fajlove na sistemskim diskovima, ali uopšte nisu mogli da pristupe računarskim resursima (sa izuzetkom RAM-a).
Nakon nekoliko epidemija mrežnih virusa, greške u mrežnim protokolima i softver su popravljena i "stražnja vrata" (stražnja vrata) zatvorena. Kao rezultat toga, u proteklih deset godina nije zabilježen niti jedan slučaj zaraze mrežnim virusom, kao što se nije pojavio niti jedan novi mrežni virus.
Opet, problem mrežnih virusa pojavio se tek početkom 1997. godine pojavom virusa "Macro.Word. ShareFun" i "Win.Homer". Prvi koristi mogućnosti Email Microsoft Mail - kreira novu e-poštu koja sadrži zaraženu datoteku dokumenta ("ShareFun" je makro virus), zatim bira tri nasumične adrese sa liste MS-Mail adresa i šalje im zaraženu e-poštu. Budući da mnogi korisnici postavljaju postavke MS-Maila na način da se MS Word automatski pokreće kada se poruka primi, virus se "automatski" ubrizgava u računar primaoca zaražene poruke.
Ovaj virus je primjer prvog tipa modernog mrežnog virusa koji kombinira mogućnosti ugrađenog programa Word/Excel Osnovni jezik, protokole i funkcije e-pošte i funkcije automatskog pokretanja neophodne za širenje virusa.
Drugi virus ("Homer") koristi FTP (File Trabsfer Protocol) za svoju distribuciju i prenosi svoju kopiju na udaljeni ftp server u Incoming direktoriju. Budući da FTP mrežni protokol isključuje mogućnost pokretanja datoteke na udaljenom serveru, ovaj virus se može opisati kao "polumrežni" virus, ali ovo je pravi primjer sposobnosti virusa da koriste savremene mrežne protokole i zaraze globalno mreže.
Postoje, naravno, i drugi načini da virusi prodru u moderne mreže, ali ne bih želio da ih ovdje predstavljam, jer će to potaknuti autore virusa da implementiraju ove ideje.

Zlonamjerni kod može iskoristiti ranjivosti zbog grešaka u softveru. Možete ispraviti greške i spriječiti sigurnosne incidente korištenjem zakrpa koje je obezbijedio proizvođač softvera. Planovi zakrpa ne bi trebalo da se fokusiraju samo na operativne sisteme i dodatke pretraživača, već i na sav softver koji se primenjuje. Redovno katalogizirajte softver instaliran na računarima, od uredskih uslužnih programa do baza podataka i web serverskih aplikacija, i provjerite ima li ažuriranja. Redovno provjeravajte da li interni kod ima sigurnosnih rupa i popravite ih što je prije moguće. Redovno proveravajte uređaje kao što su ruteri i štampači da li postoje ažuriranja softvera i brzo ih popravljajte. Ova karakteristika je postala jedan od najvećih vektora napada u korporativnom okruženju.

Šta je to

Riječ "virusi" odavno i dobro poznat korisnicima računara. Odavno je prerastao svoje izvorno značenje i sada se često koristi za označavanje bilo kojeg malware, sposoban da se "reproducira", širi se sa računara na računar i ponekad zarazi čitave računarske mreže - sve do globalnih epidemija na Internetu.

Upozorenje. Pristup svim mrežnim resursima trebao bi zahtijevati jaku lozinku koju nije lako pogoditi. "Otvorena dijeljenja" su mrežni resursi koji dozvoljavaju korisnikovim naslijeđenim dozvolama za provjeru pristupa. Otvorena dijeljenja ne zahtijevaju dodatnu autentifikaciju, što omogućava da se prijetnje vrlo brzo šire. Zbog toga biste trebali što je više moguće smanjiti upotrebu otvorenih dionica. Kada su neophodne za kontinuitet poslovanja, otvorene dionice moraju biti ograničene na korištenje privilegija snimanja i izvršavanja.

To su "klasični" virusi, mrežni i mail crvi, "trojanski konji", backdoor programi itd.

Zašto su opasni

Rezultat virusa može biti:

relativno bezopasno ometanje rada računara - na primjer, okrutna šala kada se ekran ugasne i prikaže se poruka da je vaš HDD formatirano;

nanošenje stvarne štete - kada je čvrsti disk stvarno formatiran ili su važne datoteke izbrisane;

Prema njihovom staništu, virusi se mogu podijeliti na

Ako korisnik želi samo da dobije datoteke iz izvora, dajte mu pristup za čitanje. Za dodatnu sigurnost, možete ograničiti pristup pisanju za korisnike kojima su potrebne mogućnosti prijenosa datoteka u "privremenu" mapu za pohranu na serveru datoteka koju ste postavili za poluredovno čišćenje. Ograničite dozvole za izvršavanje na administratore ili napredne korisnike koji imaju ovu potrebu.

Vrste mrežnih crva

Jednom kada se korisnik prijavi, njegova prava i dozvole su implicitne - vrata su otključana. Iako nisu uobičajeni, napadači i dalje koriste privitke e-pošte za distribuciju zlonamjernog koda. Većina servera pošte pruža mogućnost onemogućavanja određenih vrsta priloga emails. Ograničavanje tipova datoteka koje vrijede kao prilozi sprječava širenje mnogih prijetnji.

Pravi zločin je kada napadači koriste trojance da ukradu brojeve vaših kreditnih kartica, pristupne lozinke i druge povjerljive informacije.

Virusi se mogu podijeliti u klase prema sljedećim glavnim karakteristikama:

stanište;

operativni sistem (OC);

karakteristike algoritma rada;

destruktivne mogućnosti.

Ulaganje u softver protiv neželjene pošte je još jedan način da se smanji uticaj pretnji. Ovo smanjuje broj phishing napada i neželjene pošte koji dopiru do krajnjih korisnika, a time i do mreže u cjelini. Zaštitni zidovi perimetra su kritični za zaštitu mreže u cjelini, ali ne mogu pokriti sve ulazne tačke. Zaštitni zidovi na strani klijenta dodaju dodatni sloj sigurnosti štiteći pojedinačne računare od zlonamjernog ponašanja kao što su napadi uskraćivanja usluge i ključni su za upravljanje današnjim okruženjem prijetnji.

Prema STANIŠTU, virusi se mogu podijeliti na:

fajl;

boot;

Virusi datoteka ili infiltriraju izvršne datoteke na različite načine (najčešći tip virusa), ili stvaraju duple datoteke (prateći virusi), ili koriste posebnosti organizacije sistema datoteka (virusi veza).

Virusi za pokretanje upisuju se ili u sektor za pokretanje diska (sektor za pokretanje) ili u sektor koji sadrži pokretač hard diska (Master Boot Record), ili mijenjaju pokazivač na aktivni sektor za pokretanje.

Pored osnovnih zaštitnih zidova, sistemi za otkrivanje upada u mrežu i hostove i sistemi protiv upada mogu pomoći u kontroli neželjene mrežne aktivnosti i, u mnogim slučajevima, zaustaviti ili upozoriti promet u realnom vremenu. Mnogi zaštitni zidovi na strani klijenta danas pružaju ove karakteristike.

Timski i planovi reagovanja u vanrednim situacijama

Obrazovani krajnji korisnik je sigurniji. Uvjerite se da vaši korisnici razumiju osnove sigurnog računarstva kao što su. Čak i nakon što završite sve zadatke, morate se pripremiti za najgori scenario. Razvijte plan koji detaljno opisuje kako odgovoriti na potencijalnu epidemiju i dodjeljuje zadatke i odgovornosti članovima vašeg tima za odgovor. hitne slučajeve.

Makro virusi inficiraju datoteke dokumenata i proračunske tablice nekoliko popularnih uređivača.

Mrežni virusi koriste protokole ili komande računarskih mreža i e-pošte za širenje.

Postoji veliki broj kombinacija - na primjer, virusi za pokretanje datoteka koji inficiraju i datoteke i sektore za pokretanje diskova. Takvi virusi, u pravilu, imaju prilično složen algoritam rada, često koriste originalne metode prodiranja u sistem, koriste stealth i polimorfne tehnologije. Još jedan primjer takve kombinacije je mrežni makro virus koji ne samo da inficira uređene dokumente, već i šalje svoje kopije e-poštom.

Dok planirate svoj odgovor, postavite i odgovorite na sljedeća pitanja. Mogu li se zaraženi računari brzo staviti u karantin prije zaraze drugih računara?

  • Koliko brzo će sistemi generirati upozorenja ako postoji nešto na mreži?
  • Da li su administratori dostupni da riješe ovaj problem?
  • Koliko je lako preusmjeriti promet i usluge na mreži?
Imajući planove za ove stvari, mnogo je lakše nositi se sa teškim situacijama i štedi vrijeme i novac.

Dodatni resursi i informacije

Koristite zaštitni zid da blokirate sve dolazne veze sa Interneta za usluge koje ne bi trebale biti javne. Odbijte sve dolazne veze prema zadanim postavkama i ponudite samo odobrene usluge vanjskom svijetu. Jaka lozinka otežava probijanje datoteka lozinki na kompromitovanim računarima i sprečava ili ograničava oštećenje ako pretnja zapreti računaru. Uverite se da programi i korisnici računara koriste najniži nivo privilegija potrebnih za završetak zadatka. Ako vam nije potreban pristup za pisanje, omogućite način rada samo za čitanje ako je ova opcija dostupna. Onemogući opšti pristup datoteke ako nisu potrebne. Onemogućite anonimni pristup dijeljeni folderi. Podrazumevano, mnogi operativni sistemi instaliraju pomoćne usluge koje nisu kritične. Ove usluge su napadi. Izvršite forenzičku analizu i oporavite računare koristeći pouzdane medije. Educirajte korisnike da ne otvaraju priloge ako ih ne očekuju. Takođe, korisnici ne bi trebalo da pokreću softver koji preuzimaju sa interneta osim ako korisnik prethodno nije skenirao datoteku na viruse. Jednostavna posjeta ranjivoj web stranici može uzrokovati infekciju ako se određene ranjivosti preglednika ne zakrpe. Ako je potrebna veza uređaja, uvjerite se da su svi uređaji postavljeni na Neovlašteno, što zahtijeva autorizaciju za svaki zahtjev za povezivanje. Ne prihvatajte prijave koje nisu potpisane ili dostavljene iz nepoznatih izvora.

Brze definicije virusa

Maloprodajne prijave podliježu samo automatiziranoj analizi.

Zaraženi OPERATIVNI SISTEM (ili bolje rečeno, OS čiji su objekti podložni infekciji) je drugi nivo podjele virusa na klase. Svaki fajl ili mrežni virus inficira datoteke jednog ili više OS - DOS, Windows, Win95/NT, OS/2, itd. Makro virusi inficiraju Word, Excel, Office97 datoteke. Virusi za pokretanje takođe su fokusirani na specifične formate za lokaciju sistemskih podataka u sektorima za pokretanje diskova.

Virusi, crvi, trojanci i botovi su dio klase softvera koji se naziva zlonamjerni softver. Zlonamjerni ili zlonamjerni softver ne odgovara zlonamjernom softveru. Ovo je kod ili softver koji je posebno dizajniran da ošteti, uništi, ukrade ili općenito uzrokuje neke druge "loše" ili nezakonite aktivnosti na podacima, hostovima ili mrežama.

Postoji mnogo različitih klasa zlonamjernog softvera koji imaju Različiti putevi infekcija i širenje sistema. Zlonamjerni softver može zaraziti sisteme tako što će biti povezan s drugim programima ili prikačen kao makronaredba na datoteke. Drugi se instaliraju iskorištavanjem poznate ranjivosti u operativnom sistemu, mrežnom uređaju ili drugom softveru kao što je rupa u pretraživaču koja zahtijeva od korisnika da posjete web stranicu kako bi zarazili svoje računare.

Među OSOBINAMA ALGORITMA RADA virusa, ističu se sljedeće:

boravak;

korištenje stealth algoritama;

samošifriranje i polimorfizam;

upotreba nestandardnih metoda.

Kada rezidentni virus inficira računar, on ostavlja svoj rezidentni dio u RAM-u, koji zatim presreće pozive operativni sistem na objekte infekcije i unosi se u njih. Rezidentni virusi se nalaze u memoriji i aktivni su sve dok se računar ne isključi ili operativni sistem ponovo pokrene. Nerezidentni virusi ne inficiraju memoriju računala i ostaju aktivni ograničeno vrijeme. Neki virusi ostavljaju male rezidentne programe u RAM-u koji ne šire virus. Takvi virusi se smatraju nerezidentnim.

Neki od poznatijih vrsta zlonamjernog softvera su virusi, crvi, trojanci, botovi, backdoor, špijunski softver i adware. Zlonamjerni softver ne može oštetiti fizički hardver sistema i mrežne opreme, ali može oštetiti podatke i softver koji se nalaze na hardveru. Zlonamjerni softver također ne treba miješati sa neispravnim softverom koji je dizajniran za legitimne svrhe, ali ima greške ili greške.

Dvije najčešće vrste zlonamjernog softvera su virusi i crvi. Ovi tipovi programa su sposobni sami sebe kopirati i mogu distribuirati vlastite kopije, koje se mogu čak i modificirati. Da bi bio klasifikovan kao virus ili crv, zlonamjerni softver mora imati mogućnost širenja. Razlika je u tome što crv radi manje-više neovisno o drugim datotekama, dok virus ovisi o host programu koji će se širiti. Ove i druge klase zlonamjernog softvera opisane su u nastavku.

Makrovirusi se mogu smatrati rezidentnim, jer su stalno prisutni u memoriji računara sve vreme dok zaraženi uređivač radi. U ovom slučaju, ulogu operativnog sistema preuzima urednik, a koncept "ponovnog pokretanja operativnog sistema" se tumači kao izlazak iz editora.

U multitasking operativnim sistemima, "životni vijek" rezidentnog DOS virusa također može biti ograničen na trenutak zatvaranja zaraženog DOS prozora, a aktivnost virusa za pokretanje u nekim operativnim sistemima ograničena je na trenutak instaliranja drajvera OC diska.

Mrežni crv: kako ukloniti virus?

Računalni virus je vrsta zlonamjernog softvera koji se širi tako što ubacuje svoju instancu i postaje dio drugog programa. Širi se sa jednog računara na drugi, ostavljajući za sobom infekcije tokom putovanja. Virusi mogu varirati po ozbiljnosti, uzrokujući blago iritirajuće efekte na oštećene podatke ili softver, i uzrokujući uslove uskraćivanja usluge. Gotovo svi virusi se vezuju za izvršnu datoteku, što znači da virus može postojati na sistemu, ali neće biti aktivan niti moći da se širi dok korisnik ne pokrene ili otvori datoteku ili program zlonamjernog hosta.

Upotreba STEALTH algoritama omogućava virusima da se potpuno ili djelimično sakriju u sistemu. Najčešći stealth algoritam je presretanje OC zahtjeva za čitanje/pisanje za zaražene objekte. U isto vrijeme, stealth virusi ih ili privremeno liječe, ili umjesto njih "zamjenjuju" nezaražene informacije. U slučaju makro virusa, najpopularnija metoda je onemogućavanje poziva u meni za pregled makroa. Jedan od prvih stealth virusa baziranih na fajlovima bio je "Frodo", a prvi stealth virus za pokretanje bio je "Brain".

Kako i u koju svrhu se šire mrežni crvi?

Kada se izvrši kod hosta, izvršava se i virusni kod. Obično, glavni program nastavlja da radi nakon što je zaražen virusom. Međutim, neki virusi zamenjuju druge programe svojim kopijama, što u potpunosti uništava glavni program. Virusi se šire kada se softver ili dokument uz koji su priloženi prenesu sa jednog računara na drugi pomoću mreže, diska, dijeljenja datoteka ili zaraženih priloga e-pošte.

Kompjuterski crvi su slični virusima po tome što kopiraju funkcionalne kopije sebe i mogu uzrokovati istu vrstu štete. Za razliku od virusa, koji zahtijevaju distribuciju zaražene host datoteke, crvi su samostalni softver i ne zahtijevaju distribuciju glavnog programa ili ljudsku pomoć. Da bi se širili, crvi koriste ranjivost u ciljnom sistemu ili koriste neku vrstu društvenog inženjeringa da prevare korisnike da to urade. Crv ulazi u računar kroz ranjivost u sistemu i iskorištava mogućnost prenosa datoteka ili informacija sistema, omogućavajući mu da putuje bez pomoći.

SAMOKRIPTIRANJE i POLIMORFNOST koriste gotovo sve vrste virusa kako bi se što više zakomplikovala procedura detekcije virusa. Polimorfni virusi (polimorfni) su prilično teško detektljivi virusi koji nemaju signature, tj. ne sadrži niti jedan konstantni dio koda. U većini slučajeva, dva uzorka istog polimorfnog virusa neće imati jedno podudaranje. To se postiže šifriranjem glavnog tijela virusa i modifikacijom programa za dešifriranje.

Trojanac je još jedna vrsta zlonamjernog softvera nazvana po drvenom konju kojeg su Grci koristili za infiltriranje u Troju. Ovo je zlonamjerni softver koji izgleda legitimno. Obično su korisnici prevareni da ga preuzmu i izvrše na svojim sistemima. Jednom aktiviran, može postići bilo koji broj napada na host, od uznemiravanja korisnika do oštećenja hosta. Trojanci su takođe poznati po tome što stvaraju backdoor za napadače kako bi dobili pristup sistemu.

Za razliku od virusa i crva, trojanci se ne razmnožavaju tako što inficiraju druge datoteke i ne kopiraju ih sami. Trojanci se moraju širiti kroz interakciju korisnika, kao što je otvaranje privitka e-pošte ili preuzimanje i pokretanje datoteke s Interneta.

Različite NESTANDARDNE TEHNIKE se često koriste u virusima kako bi se sakrili što je dublje moguće u OC kernelu (kao što to čini virus "3APA3A"), kako bi zaštitili svoju rezidentnu kopiju od otkrivanja (virusi "TPVO", "Trout2"), otežati liječenje virusa (na primjer, stavljanjem vaše kopije u Flash-BIOS) itd.

Prema svojim DESTRUKTIVNIM SPOSOBNOSTIMA, virusi se mogu podijeliti na:

bezopasan, tj. koji ni na koji način ne utiču na rad računara (osim smanjenja slobodnog prostora na disku kao rezultat njegove distribucije);

neopasni, čiji je uticaj ograničen na smanjenje slobodnog prostora na disku i grafičke, zvučne, itd. efekte;

opasni virusi koji mogu uzrokovati ozbiljne kvarove na računalu;

veoma opasan, čiji je algoritam rada namjerno zasnovan na procedurama koje mogu dovesti do gubitka programa, uništavanja podataka, brisanja informacija potrebnih za rad računara zapisanih u sistemskim memorijskim područjima, pa čak, kako kaže jedna od neprovjerenih kompjuterskih legendi , doprinose brzom trošenju mehanizama pokretnih dijelova - da uđu u rezonanciju i unište glave nekih vrsta tvrdih diskova.

Ali čak i ako se u algoritmu virusa ne pronađu grane koje oštećuju sistem, ovaj virus se ne može s punim povjerenjem nazvati bezopasnim, jer njegov prodor u kompjuter može uzrokovati nepredvidive, a ponekad i katastrofalne posljedice. Uostalom, virus, kao i svaki program, ima greške, zbog čega se mogu oštetiti i fajlovi i sektori diska (na primjer, naizgled bezopasni virus "DenZuk" radi sasvim korektno s 360K disketama, ali može uništiti informacije na veće diskete). Do sada su postojali virusi koji definišu "COM ili EXE" ne internim formatom datoteke, već njegovom ekstenzijom. Naravno, ako se format i ekstenzija imena ne podudaraju, datoteka postaje neoperabilna nakon infekcije. Takođe je moguće "zaglaviti" rezidentni virus i sistem kada koristite nove verzije DOS-a, kada radite u Windows-u ili sa drugim moćnim softverskim sistemima. I tako dalje.

U ovu grupu spadaju virusi koji se tokom svoje reprodukcije na ovaj ili onaj način koriste sistem podataka bilo koji (ili bilo koji) OS.

Uvođenje fajl virusa moguće je u gotovo sve izvršne datoteke svih popularnih operativnih sistema. Do danas su poznati virusi koji inficiraju sve tipove standardnih DOS izvršnih objekata: batch datoteke (BAT), učitave drajvere (SYS, uključujući posebne datoteke IO.SYS i MSDOS.SYS) i izvršne binarne datoteke (EXE, COM). Postoje virusi koji inficiraju izvršne datoteke drugih operativnih sistema - Windows 3.x, Windows95/NT, OS/2, Macintosh, UNIX, uključujući Windows 3.x i Windows95 VxD drajvere.

Postoje virusi koji inficiraju datoteke koje sadrže izvorne tekstove programa, bibliotečke ili objektne module. Moguće je da virus piše u datoteke sa podacima, ali to se dešava ili kao rezultat greške virusa ili kada se ispolje njegova agresivna svojstva. Makro virusi također pišu svoj kod u datoteke s podacima - dokumente ili proračunske tablice - međutim, ovi virusi su toliko specifični da su smješteni u posebnu grupu.

Prepisivanje

Ovaj način zaraze je najjednostavniji: virus piše vlastiti kod umjesto koda zaražene datoteke, uništavajući njen sadržaj. Naravno, u ovom slučaju, datoteka prestaje raditi i ne vraća se. Takvi virusi se vrlo brzo otkrivaju, jer operativni sistem i aplikacije prestaju da rade prilično brzo. Ne znam ni za jedan slučaj da su virusi ovog tipa pronađeni "živi" i izazvali epidemiju.

Virusi za prepisivanje uključuju viruse koji su napisani umjesto DOS zaglavlja NewEXE datoteka. Glavni dio datoteke ostaje nepromijenjen i nastavlja normalno raditi u odgovarajućem operativnom sistemu, ali je DOS zaglavlje oštećeno.

parazitski

Virusi pratioci

Kategorija "pratilac" uključuje viruse koji ne mijenjaju zaražene datoteke. Algoritam rada ovih virusa je da se za zaraženu datoteku kreira blizanac, a kada se zaraženi fajl pokrene, taj blizanac dobija kontrolu, tj. virus.

Najčešći prateći virusi koriste DOS funkciju da prvo izvrše .COM datoteku ako postoje dvije datoteke u istom direktoriju s istim imenom, ali različitim ekstenzijama imena - .COM i .EXE. Takvi virusi kreiraju satelitske datoteke za EXE datoteke koje imaju isto ime, ali sa ekstenzijom .COM, na primjer, XCOPY.COM se kreira za datoteku XCOPY.EXE. Virus piše u COM datoteku i ni na koji način ne mijenja EXE datoteku. Prilikom pokretanja takve datoteke, DOS će prvi otkriti i izvršiti COM datoteku, tj. virus, koji će zatim pokrenuti EXE datoteku. Neki virusi koriste ne samo COM-EXE varijantu, već i BAT-COM-EXE.

Drugu grupu čine virusi koji, kada su zaraženi, preimenuju datoteku u neko drugo ime, pamte je (za naknadno pokretanje host fajla) i zapisuju svoj kod na disk pod imenom zaražene datoteke. Na primjer, datoteka XCOPY.EXE je preimenovana u XCOPY.EXD, a virus je napisan pod imenom XCOPY.EXE. Prilikom pokretanja, kontrola preuzima virusni kod, koji zatim pokreće originalni XCOPY, pohranjen pod imenom XCOPY.EXD. Zanimljiva činjenica je da ovu metodu radi, vjerovatno, u svim operativnim sistemima - virusi ovog tipa pronađeni su ne samo u DOS-u, već iu Windowsu i OS / 2.

Treća grupa uključuje takozvane "Path-companion" viruse koji "igraju" na karakteristike DOS PATH. Oni ili pišu svoj kod pod imenom zaražene datoteke, ali "viši" jedan PATH nivo (DOS će tako biti prvi koji će otkriti i pokrenuti virusnu datoteku), ili premještaju datoteku žrtve jedan poddirektorij više, itd.

Mogu postojati i drugi tipovi pratećih virusa koji koriste druge originalne ideje ili karakteristike drugih operativnih sistema.

File crvi

Datotečni crvi (crvi) su, u određenom smislu, vrsta pratećih virusa, ali ni na koji način ne povezuju svoje prisustvo sa bilo kojom izvršnom datotekom. Kada se reproduciraju, oni samo kopiraju svoj kod u neke direktorije diska u nadi da će te nove kopije jednog dana pokrenuti korisnik. Ponekad ovi virusi svojim kopijama daju "posebna" imena kako bi ohrabrili korisnika da pokrene njihovu kopiju - na primjer, INSTALL.EXE ili WINSTART.BAT.

Postoje crvi koji koriste prilično neobične metode, na primjer, pišu svoje kopije u arhive (ARJ, ZIP i druge). Ovi virusi uključuju "ArjVirus" i "Winstart". Neki virusi pišu naredbu za pokretanje zaražene datoteke u BAT datoteke (pogledajte, na primjer, "Worm.Info").

Datotečne crve ne treba brkati sa mrežnim crvima. Prvi koriste samo funkcije datoteka nekog operativnog sistema, dok drugi koriste mrežne protokole za njihovu reprodukciju.

Link virusi

Virusi veza, kao i prateći virusi, ne mijenjaju fizički sadržaj datoteka, međutim, kada se zaražena datoteka pokrene, oni "tjeraju" OS da izvrši svoj kod. Ovaj cilj postižu modifikacijom potrebnih polja sistema datoteka.

Do danas je poznat samo jedan tip Link-virusa - virusi iz porodice "Dir_II". Kada zaraze sistem, upisuju svoje tijelo u posljednji klaster logičkog pogona. Kada inficiraju datoteku, virusi ispravljaju samo broj prvog klastera datoteke koji se nalazi u odgovarajućem sektoru direktorija. Novi početni klaster datoteka pokazat će na klaster koji sadrži tijelo virusa. Dakle, kada su datoteke zaražene, njihova dužina i sadržaj klastera diskova koji sadrže ove datoteke se ne mijenjaju, a sve zaražene datoteke na jednom logičkom disku imat će samo jednu kopiju virusa.

OBJ-, LIB-virusi i virusi u izvornom kodu

Virusi koji inficiraju biblioteke kompajlera, objektne module i izvorne kodove programa prilično su egzotični i praktički neuobičajeni. Ukupno ih je desetak. Virusi koji inficiraju OBJ i LIB datoteke zapisuju im svoj kod u obliku objektnog modula ili biblioteke. Zaražena datoteka stoga nije izvršna i nesposobna za dalje širenje virusa u svom trenutnom stanju. Nositelj "živog" virusa je COM ili EXE datoteka dobivena povezivanjem zaražene OBJ/LIB datoteke s drugim objektnim modulima i bibliotekama. Dakle, virus se širi u dvije faze: OBJ/LIB datoteke se inficiraju u prvoj fazi, au drugoj fazi (povezivanje) dobija se funkcionalni virus.

Infekcija izvornih tekstova programa je logičan nastavak prethodne metode širenja. U ovom slučaju, virus dodaje svoj izvorni kod izvornim tekstovima (u ovom slučaju virus ga mora sadržavati u svom tijelu) ili vlastiti heksadecimalni dump (što je tehnički lakše). Zaražena datoteka može dalje širiti virus samo nakon kompilacije i povezivanja (pogledajte, na primjer, virusi "SrcVir", "Urphin").

Primitive Disguise

Kada je datoteka zaražena, virus može izvršiti brojne radnje koje maskiraju i ubrzavaju njegovo širenje. Takve radnje uključuju obradu atributa samo za čitanje, njegovo uklanjanje prije infekcije i vraćanje nakon. Mnogi virusi datoteka čitaju datum posljednje izmjene datoteke i vraćaju je nakon infekcije. Da bi prikrili svoje širenje, neki virusi presreću DOS prekid koji se javlja prilikom pristupa disku zaštićenom od pisanja (INT 24h) i sami ga obrađuju.

Brzina širenja

Govoreći o virusima datoteka, potrebno je napomenuti njihovu osobinu kao što je brzina distribucije. Što se virus brže širi, veća je vjerovatnoća da će doći do epidemije tog virusa. Što se virus sporije širi, teže ga je otkriti (osim ako, naravno, ovaj virus još nije poznat antivirusnim programima). Koncepti "brzi" i "spori" virusi (Fast infector, Slow infector) su prilično relativni i koriste se samo kao karakteristika virusa kada se opisuju.

Nerezidentni virusi su često "spori" - većina njih inficira jednu ili dvije ili tri datoteke pri pokretanju i nemaju vremena da preplave računar prije nego što se antivirusni program pokrene (ili nova verzija antivirus konfigurisan za ovaj virus). Postoje, naravno, nerezidentni "brzi" virusi koji prilikom pokretanja traže i inficiraju sve izvršne datoteke, ali takvi virusi su vrlo uočljivi: kada se pokrene svaka zaražena datoteka, računalo aktivno radi s tvrdim diskom za neke (ponekad dosta dugo), što razotkriva virus.

"Brzina" rezidentnih virusa je obično veća od one nerezidentnih - oni inficiraju datoteke kada im se pristupi. Kao rezultat, sve ili gotovo sve datoteke na disku koje se stalno koriste u radu su zaražene.

Stopa širenja rezidentnih virusa datoteka koji zaraze datoteke samo kada su pokrenute za izvršenje bit će niža od one virusa koji inficiraju datoteke i kada se otvore, preimenuju, promijene atributi datoteka itd. Mnogi virusi, kada kreiraju svoju kopiju u RAM-u računara, pokušavaju da zauzmu memorijsku oblast sa najvišim adresama, uništavajući privremeni deo interpretatora komandi COMMAND.COM. Na kraju zaraženog programa vraća se privremeni dio interpretera, otvara se datoteka COMMAND.COM i, ako virus zarazi datoteke kada se otvore, on je zaražen. Dakle, kada se takav virus pokrene, datoteka COMMAND.COM će biti prva zaražena.

Boot virusi

Virusi za pokretanje inficiraju sektor za pokretanje diskete i sektor za pokretanje ili glavni zapis za pokretanje (MBR) tvrdog diska. Princip rada virusa za pokretanje zasniva se na algoritmima za pokretanje operativnog sistema kada se računar uključi ili ponovo pokrene - nakon neophodnih testova instalirane opreme (memorije, diskova itd.), program za pokretanje sistema čita prvi fizički sektor diska za pokretanje (A:, C: ili CD-ROM u zavisnosti od parametara postavljenih u BIOS Setup-u) i prenosi kontrolu na njega.

U slučaju diskete ili CD-a, boot sektor dobija kontrolu, koja analizira tabelu parametara diska (BPB - BIOS Parameter Block), izračunava adrese datoteka operativnog sistema, čita ih u memoriju i pokreće ih za izvršenje. Sistemske datoteke su obično MSDOS.SYS i IO.SYS, ili IBMDOS.COM i IBMBIO.COM, ili druge ovisno o instaliranu verziju DOS, Windows ili drugi operativni sistemi. Ako na disku za pokretanje nema datoteka operativnog sistema, program koji se nalazi u sektoru za pokretanje diska prikazuje poruku o grešci i predlaže zamjenu diska za pokretanje.

U slučaju čvrstog diska, kontrolu prima program koji se nalazi u MBR-u čvrstog diska. Ovaj program analizira tabelu particija diska (Tabela particija diska), izračunava adresu aktivnog sektora za pokretanje (obično je ovaj sektor boot sektor C: drajva), učitava ga u memoriju i prenosi kontrolu na njega. Nakon što je dobio kontrolu, aktivni sektor za pokretanje tvrdog diska obavlja iste radnje kao sektor za pokretanje diskete.

Kada inficiraju diskove, virusi za pokretanje "zamjenjuju" svoj kod za neki program koji preuzima kontrolu kada se sistem pokrene. Dakle, princip infekcije je isti u svim gore opisanim metodama: virus "prisiljava" sistem, kada se ponovo pokrene, da čita u memoriju i da kontrolu ne originalnom kodu pokretača, već kodu virusa.

Diskete su zaražene jednim poznat način- virus piše vlastiti kod umjesto originalnog koda sektora za pokretanje diskete. Winchester se zarazi sa tri mogući načini- virus je napisan ili umjesto MBR koda, ili umjesto koda sektora za pokretanje diska za pokretanje (obično C: pogon), ili mijenja adresu aktivnog sektora za pokretanje u tablici particija diska koja se nalazi u MBR-u hard diska.

Kada je disk inficiran, virus u većini slučajeva prenosi originalni sektor za pokretanje (ili MBR) u neki drugi sektor diska (na primjer, u prvi slobodni). Ako je dužina virusa veća od dužine sektora, tada se prvi dio virusa stavlja u zaraženi sektor, a preostali dijelovi u druge sektore (npr. u prve slobodne).

Makro virusi su programi na jezicima (makro-jezicima) ugrađeni u neke sisteme za obradu podataka (uređivači teksta, tabele itd.). Za svoju reprodukciju takvi virusi koriste mogućnosti makro jezika i uz njihovu pomoć se prenose iz jedne zaražene datoteke (dokumenta ili tablice) u druge. Makro virusi su najčešće korišteni Microsoft Word, Excel i Office97. Postoje i makro virusi koji inficiraju Ami Pro dokumente i Microsoft Access baze podataka.

Za postojanje virusa u određenom sistemu (editoru) neophodno je da u sistem bude ugrađen makro jezik sa sledećim mogućnostima:

Vezivanje programa na makro jeziku za određenu datoteku;

Kopiranje makro programa iz jedne datoteke u drugu;

Mogućnost preuzimanja kontrole nad makro programom bez intervencije korisnika (automatski ili standardni makroi);

Ove uslove ispunjavaju Microsoft Word, Office97 i AmiPro urednici, kao i Excel tabela i Microsoft Access baza podataka. Ovi sistemi sadrže makro jezike: Word - Word Basic, Excel, Office97 (uključujući Word97, Excel97 i Access) - Visual basic za aplikacije. pri čemu:

1) makro programi su vezani za određenu datoteku (AmiPro) ili su unutar datoteke (Word, Excel, Office97);

2) makro jezik vam omogućava da kopirate datoteke (AmiPro) ili premestite makro programe u sistemske servisne fajlove i datoteke koje se mogu uređivati ​​(Word, Excel, Office97);

3) pri radu sa fajlom pod određenim uslovima (otvaranje, zatvaranje itd.), pozivaju se makro programi (ako ih ima) koji su definisani na poseban način (AmiPro) ili imaju standardna imena (Word, Excel, Office97).

Ova karakteristika makro jezika dizajnirana je za automatsku obradu podataka u velikim organizacijama ili globalnim mrežama i omogućava vam da organizirate takozvani "automatizirani radni tok". S druge strane, mogućnosti makro jezika takvih sistema omogućavaju virusu da prenese svoj kod u druge datoteke i tako ih zarazi.

Do danas su poznata četiri sistema za koja postoje virusi - Microsoft Word, Excel, Office97 i AmiPro. U ovim sistemima, virusi preuzimaju kontrolu kada se zaražena datoteka otvori ili zatvori, presreću standardne funkcije datoteka, a zatim inficiraju datoteke kojima se pristupa na neki način. Po analogiji sa MS-DOS-om, možemo reći da je većina makro virusa rezidentna: oni su aktivni ne samo u trenutku otvaranja/zatvaranja datoteke, već sve dok je aktivan i sam uređivač.

Mrežni virusi

Mrežni virusi uključuju viruse koji aktivno koriste protokole i mogućnosti lokalnih i globalnih mreža za svoje širenje. Glavni princip mrežnog virusa je mogućnost samostalnog prijenosa svog koda na udaljeni server ili radnu stanicu. U isto vrijeme, "punopravni" mrežni virusi također imaju mogućnost pokretanja vlastitog koda na udaljenom računalu ili, barem, "guranja" korisnika da pokrene zaraženu datoteku.

Postoji pogrešno mišljenje da je svaki virus koji se širi u računarskoj mreži mrežni virus. Ali u ovom slučaju, gotovo svi virusi bi bili mrežni virusi, čak i najprimitivniji od njih: na kraju krajeva, najčešći nerezidentni virus ne razumije kada inficira datoteke - da li je riječ o mrežnom (udaljenom) disku ili lokalnom . Kao rezultat, takav virus može zaraziti datoteke unutar mreže, ali se ne može klasificirati kao mrežni virus.

Mrežni virusi kasnih 1980-ih postali su najpoznatiji, nazivaju se i mrežnim crvima (worms). To uključuje Morris virus, viruse "Cristmas Tree" i "Wank Worm". Za svoju distribuciju koristili su greške i nedokumentirane funkcije tadašnjih globalnih mreža - virusi su prenosili svoje kopije sa servera na server i pokretali ih na izvršenje. U slučaju Morris virusa, epidemija je zahvatila čak nekoliko globalnih mreža u Sjedinjenim Državama.

Mrežni virusi prošlosti širili su se kompjuterskom mrežom i po pravilu, baš kao i njihovi pratioci virusi, nisu mijenjali datoteke ili sektore na diskovima. Oni su prodrli u memoriju računara iz računarske mreže, izračunali mrežne adrese drugih računara i poslali njihove kopije na te adrese. Ovi virusi su ponekad kreirali i radne fajlove na sistemskim diskovima, ali uopšte nisu mogli da pristupe računarskim resursima (sa izuzetkom RAM-a).

Nakon nekoliko izbijanja mrežnih virusa, ispravljene su greške u mrežnim protokolima i softveru i zatvorena su stražnja vrata. Kao rezultat toga, u posljednjih deset godina nije zabilježen niti jedan slučaj zaraze mrežnim virusom, kao što se nije pojavio niti jedan novi mrežni virus.

Opet, problem mrežnih virusa pojavio se tek početkom 1997. godine pojavom virusa "Macro.Word.ShareFun" i "Win.Homer". Prvi koristi mogućnosti Microsoft Mail e-pošte - kreira novo pismo koje sadrži zaraženu datoteku dokumenta ("ShareFun" je makro virus), zatim bira tri nasumične adrese sa liste MS-Mail adresa i šalje zaražene pismo njima. Budući da mnogi korisnici postavljaju postavke MS-Maila na način da se MS Word automatski pokreće kada se poruka primi, virus se "automatski" ubrizgava u računar primaoca zaražene poruke.

Ovaj virus predstavlja primjer prvog tipa modernog mrežnog virusa koji kombinuje mogućnosti osnovnog jezika ugrađenog u Word/Excel, protokole i karakteristike e-pošte, te funkcije automatskog pokretanja neophodne za širenje virusa.

Drugi virus ("Homer") koristi FTP (File Trabsfer Protocol) za svoju distribuciju i prenosi svoju kopiju na udaljeni ftp server u Incoming direktoriju. Budući da FTP mrežni protokol isključuje mogućnost pokretanja fajla na udaljenom serveru, ovaj virus se može opisati kao "polumrežni", ali ovo je pravi primjer sposobnosti virusa da koriste moderne mrežne protokole i zaraze globalne mreže.

Ostalo

Osim virusa, "zlonamjerni programi" također uključuju trojanske konje (logičke bombe), predviđene viruse, konstruktore virusa i polimorfne generatore.

Trojanski konji (logičke bombe)

Trojanski konji su programi koji izazivaju neku vrstu destruktivne akcije, tj. u zavisnosti od bilo kakvih uslova ili pri svakom startovanju, uništavanje informacija na diskovima, "okačenje" sistema itd.

Većina trojanskih konja koje poznajem su programi koji nekakvu "lažiranje". korisni programi, nove verzije popularnih uslužnih programa ili njihove dodatke. Vrlo često se šalju na BBS-stanice ili elektronske konferencije. U poređenju s virusima, "trojanski konji" se ne koriste široko iz prilično jednostavnih razloga - oni ili sami sebe uništavaju zajedno s ostatkom podataka na disku, ili demaskiraju svoje prisustvo i uništavaju pogođenog korisnika.

"Trojanski konji" uključuju i "droppers" virusa - zaražene datoteke, čiji je kod ispravljen na način da poznate verzije antivirusa ne otkrivaju virus u datoteci. Na primjer, datoteka je šifrirana na neki poseban način ili pakirana sa rijetko korištenim arhivatorom, što sprječava antivirus da "vidi" infekciju.

Treba napomenuti i "zle šale" (hoax). To uključuje programe koji ne uzrokuju nikakvu direktnu štetu računaru, ali prikazuju poruke da je takva šteta već prouzrokovana, ili će biti uzrokovana pod bilo kojim uslovima, ili upozoravaju korisnika na nepostojeću opasnost. "Loše šale" uključuju, na primjer, programe koji "plaše" korisnika porukama o formatiranju diska (iako se formatiranje zapravo ne odvija), otkrivaju viruse u nezaraženim datotekama (kao što se široko radi poznati program ANTITIME), prikazuju čudne poruke nalik virusima (CMD640X disk drajver iz nekog komercijalnog paketa) itd. - zavisno od smisla za humor autora takvog programa. Očigledno, niz "CHOLEEPA" u drugom sektoru Seagate hard diskova takođe spada u "zle šale".

Istoj kategoriji "zlih šala" mogu se pripisati i svjesno lažni izvještaji o novim super-virusima. Takve poruke se povremeno pojavljuju na elektronskim konferencijama i obično izazivaju paniku među korisnicima.

Predviđeni virusi

Takvi virusi uključuju programe koji su na prvi pogled 100% virusi, ali se ne mogu reproducirati zbog grešaka. Na primjer, virus koji, kada je inficiran, "zaboravi" postaviti naredbu za prijenos kontrole na šifru virusa na početku datoteka, ili upiše pogrešnu adresu svog koda na njega, ili pogrešno postavi adresu prekida koji se može uhvatiti (što u većini slučajeva zamrzava računar) itd.

U kategoriju "namijenjenih" spadaju i virusi koji se, iz gore navedenih razloga, razmnožavaju samo jednom - iz "autorske" kopije. Nakon što zaraze bilo koju datoteku, oni gube mogućnost dalje reprodukcije.

Namenski virusi se najčešće pojavljuju kada se već postojeći virus nesposobno ponovo kompajlira, bilo zbog nedovoljnog poznavanja programskog jezika, bilo zbog nepoznavanja tehničkih suptilnosti operativnog sistema.

Virus Constructors

Virus Constructor je uslužni program dizajniran za kreiranje novih kompjuterskih virusa. Poznati su konstruktori virusa za DOS, Windows i makro viruse. Oni vam omogućavaju da generišete izvorni kod virusa (ASM datoteke), objektne module i/ili direktno zaražene datoteke.

Neki konstruktori (VLC, NRLG) opremljeni su standardnim interfejsom prozora, gde pomoću sistema menija možete odabrati vrstu virusa, objekte za zarazu (COM i/ili EXE), prisustvo ili odsustvo samošifrovanja, otpornost debagera, interne linije teksta, odabir efekata koji prate rad virusa itd. Ostali konstruktori (PS-MPC, G2) nemaju interfejs i čitaju informacije o tipu virusa iz konfiguracionog fajla.

Polimorfni generatori

Polimorfni generatori, poput konstruktora virusa, nisu virusi bukvalno ove riječi, budući da njihov algoritam ne sadrži funkcije množenja, tj. otvaranje, zatvaranje i pisanje u fajlove, sektore za čitanje i pisanje itd. Glavna funkcija takvih programa je šifriranje tijela virusa i generiranje odgovarajućeg dešifriranja.

Obično polimorfne generatore njihovi autori distribuiraju bez ograničenja u obliku arhivske datoteke. Glavna datoteka u arhivi bilo kojeg generatora je objektni modul koji sadrži ovaj generator. U svim generatorima koji se susreću, ovaj modul sadrži eksternu (eksternu) funkciju - poziv generatorskom programu.

Dakle, autor virusa, ako želi da stvori pravi polimorfni virus, ne mora da se bavi šiframa svog sopstvenog koda/dekodera. Ako želi, može povezati bilo koji poznati polimorfni generator sa svojim virusom i pozvati ga iz kodova virusa. Fizički se to postiže na sljedeći način: objektna datoteka virusa je povezana s objektnom datotekom generatora, a u izvorni tekst virus, prije naredbi za njegovo upisivanje u datoteku, ubacuje se poziv polimorfnom generatoru, koji kreira šifre za dešifriranje i šifrira tijelo virusa.

Izraz "rezidentnost" (DOS termin TSR - Terminate and Stay Resident) odnosi se na sposobnost virusa da ostave svoje kopije u operativnom sistemu, presretnu određene događaje (na primjer, pristup datotekama ili diskovima) i, u isto vrijeme, procedure poziva za inficiranje otkrivenih objekata (datoteka i sektora). Dakle, rezidentni virusi su aktivni ne samo kada je zaraženi program pokrenut, već i nakon što program završi svoj rad. Rezidencijalne kopije takvih virusa ostaju održive do sljedećeg ponovnog pokretanja, čak i ako su sve zaražene datoteke uništene na disku. takvi virusi se ne mogu eliminirati vraćanjem svih kopija datoteka sa distributivnih diskova ili rezervnih kopija. Stalna kopija virusa ostaje aktivna i inficira novostvorene datoteke. Isto vrijedi i za viruse za pokretanje sistema - formatiranje diska rezidentnim virusom u memoriji ne izliječi uvijek disk, budući da mnogi rezidentni virusi ponovo inficiraju disk nakon oh kako je to formatirano.

Nerezidentni virusi su, naprotiv, aktivni prilično kratko - samo u trenutku kada se zaraženi program pokrene. Za svoju distribuciju traže neinficirane datoteke na disku i pišu u njih. Nakon što virusni kod prenese kontrolu na glavni program, učinak virusa na rad operativnog sistema se smanjuje na nulu do sljedećeg pokretanja bilo kojeg zaraženog programa. Stoga je datoteke zaražene nerezidentnim virusima mnogo lakše ukloniti s diska i istovremeno ne dopustiti virusu da ih ponovo zarazi.

DOS virusi

DOS obezbeđuje dva legalnim putem kreiranje rezidentnih modula: pomoću drajvera navedenih u CONFIG.SYS i korištenjem funkcije KEEP (INT 21h, AH=31h ili INT 27h). Mnogi fajl virusi koriste drugu metodu da prikriju svoje širenje - obradom sistemskih područja koja kontroliraju dodjelu memorije (MCB). Oni dodjeljuju slobodnu površinu memorije za sebe (uključujući UMB), označavaju je kao zauzetu i tu prepisuju svoju kopiju. Neki virusi ubrizgavaju svoje TSR kopije u slobodna memorijska područja u tabeli vektora prekida, u video memoriju, u DOS radne prostore, u memoriju dodijeljenu za sistemske bafere i u HMA memoriju. Ove metode su detaljnije opisane u odjeljku "Otkrivanje rezidentnog virusa".

Nakon dodjeljivanja memorijskog bloka, virus kopira svoj kod u njega i poništava jedan ili više prekida koji su mu potrebni za traženje zaraženih datoteka, izvođenje destruktivnih radnji ili zvučnih i video efekata.

Kada inficiraju datoteke, nerezidentni i neki rezidentni virusi traže ove datoteke na diskovima koristeći DOS funkcije FindFirst i FindNext (INT 21h, AH=11h,12h,4Eh,4Fh). Stalni virusi koriste širu listu DOS funkcija koje, kada im se pristupi, inficiraju datoteku. Zapravo, ova lista sadrži sve funkcije čije se vrijednosti ulaznih ili izlaznih parametara mogu koristiti za određivanje imena datoteke kojoj se pristupa (ovi parametri uključuju vrijednosti odgovarajućih registara ili memorijskih područja). Kao rezultat toga, funkcije prekida 21h "opasne od virusa" uključuju izvršavanje (EXEC, AX=4B00), učitavanje memorije (AH=4Bh), pretraživanje (FindFirst i FindNext, AH=11h,12h,4Eh,4Fh) i kreiranje ( Kreiranje, AH =3Ch), otvaranje (Open, AH=3Dh), zatvaranje (Close, AH=3Eh), promjena atributa (ChMode, AH=43h), preimenovanje (Preimenuj, AH=56h) i neke druge funkcije rukovanja fajlovima .

Postoji nekoliko načina na koje rezidentni virus provjerava prisutnost svoje kopije u memoriji računara. Prvi je da virus uvodi novu funkciju neke vrste prekida, čija je radnja vraćanje vrijednosti "ja sam ovdje". Prilikom pokretanja virus mu pristupa, a ako se vraćena vrijednost poklapa sa vrijednošću "I'm here", tada je memorija računara već zaražena i ponovna infekcija se ne vrši. Prilikom provjere na drugi način, virus upisuje vrijednost "I'm here" u neko rijetko korišteno memorijsko područje - u tablicu vektora prekida ili u područje podataka BIOS-a (0040:00??). Prilikom narednih pokretanja zaraženih programa, virus provjerava ovu vrijednost i ne poziva proceduru infekcije memorije. Postoje, naravno, i drugi načini, na primjer, neki virusi jednostavno skeniraju memoriju računala.

Neki virusi rezidentnih datoteka (generalno, virusi kreirani pomoću konstruktora kao što su VCL i PS-MPC) pogrešno određuju svoju TSR kopiju i kopiraju se u RAM svaki put kada se pokrene zaražena datoteka. Naravno, u ovom slučaju, računar se ili odmah zamrzava ili prestaje da pokreće programe nakon nekog vremena zbog nedostatka slobodne memorije.


Boot virusi

Velika većina rezidentnih virusa za pokretanje koristi isti trik da dodijeli sistemsku memoriju za svoju rezidentnu kopiju: smanjuju količinu DOS memorije (riječ na adresi 0040:0013) i kopiraju svoj kod u "odsječeni" memorijski blok. Količina DOS memorije se obično smanjuje za jedan (jedan kilobajt) u slučaju virusa za kratko pokretanje, čiji kod zauzima jedan sektor diskovnog prostora (512 bajtova). Drugu polovinu kilobajta koriste virusi kao što je bafer za čitanje/pisanje kada inficiraju diskove. Ako je veličina virusa veća od jednog kilobajta ili koristi nestandardne metode zaraze koje zahtijevaju veći bafer za čitanje/pisanje, veličina memorije se smanjuje za nekoliko kilobajta (među poznatim virusima, maksimalna vrijednost za „RDA. Fighter" virus je 30K).

U budućnosti, neki virusi "čekaju" da se DOS učita i vrati prvobitnu vrijednost količine sistemske memorije - kao rezultat toga, oni se ne nalaze izvan DOS-a, već kao poseban blok DOS memorije. Neki virusi za pokretanje uopšte ne koriste niti menjaju vrednost sistemske memorije. Oni se kopiraju u neko područje memorije neiskorišteno dok se DOS ne učita, čekaju da se DOS učita, a zatim instaliraju svoj kod na sistem na sve moguće načine pod DOS-om.

Takvi virusi koriste nekoliko metoda da presretnu trenutak učitavanja DOS-a. Najpopularniji način je provjeriti vrijednost INT 21h (prekid DOS funkcije). Ako se ova vrijednost promijeni, virusi smatraju da je instalacija DOS-a završena. Provjera vrijednosti INT 21h vrši se prilikom pozivanja INT 8, 1Ch (prekidi tajmera; za to virusi, osim prekida pristupa disku, presreću i prekide tajmera) ili prilikom pozivanja INT 13h. Manje popularan način je provjera podataka koji se čitaju s diska (ovo zahtijeva samo presretanje INT 13h). Ako bafer za čitanje sadrži zaglavlje EXE datoteke, virusi smatraju da je učitavanje DOS-a završeno jer se EXE datoteka učitava u memoriju radi izvršavanja.

Da bi presreli pristup disku, većina virusa za pokretanje presreće INT 13h - glavni prekid za rad sa diskovima. Intercept INT 40h se rjeđe koristi - prekid za rad sa disketama. Još rjeđe se koriste razne egzotične metode presretanja BIOS-a i DOS prekida koji se javljaju pri radu s disketama.

U slučaju presretanja INT 13h/40h, virusi obrađuju komande za čitanje/upisivanje sektora (AH=2,3), provjeravaju disk za infekciju i upisuju svoj kod u njegov boot sektor ili MBR hard diska. Ostale komande se presreću rjeđe - od komande Reset Disk (AH=0) do "dugačkih" naredbi za čitanje/pisanje (AH=0Ah,0Bh).

Većina virusa za pokretanje ne provjerava sistemsku memoriju na prisutnost svoje već instalirane TSR kopije – ili koriste prikrivene tehnike i nemoguće je ponovo pokrenuti virusni kod, ili se rukovode činjenicom da se virusni kod učitava jednom na vrijeme pokretanja DOS-a - nakon toga se diskovi s kodovima sektora za pokretanje više ne izvršavaju ni pod kojim okolnostima. Neki virusi provjeravaju prisutnost svoje kopije - za to se koriste ili posebni INT 13h pozivi s nekom nestandardnom vrijednošću, ili je neki očito neiskorišteni bajt (ili riječ) označen u tabeli vektora prekida ili u području podataka BIOS-a ( 0040:00 ??) . Postoje, naravno, i drugi načini da otkrijete vašu TSR kopiju.

Windows virusi

Da ostavite izvršni kod Windows memorija, postoje tri metode, a sve tri metode (sa izuzetkom Windows NT) su već koristili razni virusi.

Najlakši način je da registrujete program kao jednu od aplikacija koje se izvršavaju ovog trenutka. Da bi to uradio, program registruje svoj zadatak, čiji se prozor može sakriti, registruje svoj rukovalac sistemskim događajima i tako dalje. Drugi način je da dodijelite blok sistemske memorije koristeći DPMI pozive i kopirate svoj kod u njega (virus "Ph33r"). Treći način je da ostanete rezidentni kao VxD drajver (Wnidows 3.xx i Windows95) ili kao windows drajver NT.

Pristup fajlu se presreće na jedan od dva načina - ili se presretnu INT 21h pozivi (Hook_V86_Int_Chain, Get/Set_V86_Int_Vector, Get/Set_PM_Int_Vector) ili se presretne API sistemski poziv. Zatim, Windows rezidentni virusi djeluju na isti način kao DOS virusi: presreću pristup datotekama i inficiraju ih.

Da bi se otkrila rezidentna kopija koja je već prisutna u memoriji, koriste se približno iste metode kao što je gore opisano, s izuzetkom VxD virusa. Poznati VxD virusi se učitavaju u memoriju kada se Windows pokrene. Da bi to učinili, pišu naredbu za pokretanje u konfiguracijsku datoteku Windows SYSTEM.INI. Ako ova datoteka već sadrži naredbu za pokretanje VxD datoteke virusa, tada virus ne registruje ponovo svoju VxD datoteku.


Makro virusi

Većina makro virusa se može smatrati rezidentnim, jer su prisutni u sistemskoj makro oblasti tokom čitavog vremena rada uređivača. Oni, poput rezidentnih virusa za pokretanje i fajlove, presreću sistemske događaje i koriste ih za njihovu reprodukciju. Takvi događaji uključuju različite sistemske pozive koji se javljaju prilikom rada s njima Word dokumenti i Excel tabele (otvaranje, zatvaranje, kreiranje, štampanje, itd.), pozivanje stavke menija, pritiskanje tastera ili dostizanje određene tačke u vremenu. Da bi presreli događaje, makro virusi redefiniraju jedan ili više sistemskih makroa ili funkcija.

Prilikom zaraze, neki makro-virusi provjeravaju prisutnost svoje kopije u zaraženom objektu i ne kopiraju se ponovo. Drugi makro virusi to ne rade i prepisuju svoj kod sa svakom infekcijom. Ako zaražena datoteka ili područje sistemskih makroa već sadrži makro čije ime odgovara makronaredbi virusa, tada se takav makro uništava.

Stealth virusi na ovaj ili onaj način skrivaju činjenicu svog prisustva u sistemu. Poznati su stealth virusi svih vrsta, sa izuzetkom Windows virusa - virusi za pokretanje, DOS fajl virusi, pa čak i makro virusi. Pojava stealth virusa koji inficiraju Windows datoteke je najvjerovatnije pitanje vremena.

Boot virusi

Stealth virusi za pokretanje koriste dvije glavne metode da sakriju svoj kod. Prvi je da virus presreće naredbe za čitanje zaraženog sektora (INT 13h) i umjesto toga zamjenjuje neinficirani original. Ova metoda čini virus nevidljivim za bilo koji DOS program, uključujući antiviruse koji nisu u stanju da "izliječe" RAM računala. Moguće je presresti naredbe za čitanje sektora na nivou nižem od INT 13h.

Druga metoda je usmjerena protiv antivirusa koji podržavaju komande za direktno čitanje sektora kroz portove kontrolera diska. Takvi virusi, prilikom pokretanja bilo kojeg programa (uključujući antivirusni), vraćaju zaražene sektore, a nakon završetka njegovog rada ponovo inficiraju disk. Pošto za to virus mora presresti početak i kraj programa, mora presresti i DOS prekid INT 21h.

Uz neke rezerve, stealth virusi se mogu nazvati virusima koji unose minimalne promjene u zaraženi sektor (na primjer, prilikom inficiranja MBR-a ispravlja se samo aktivna adresa pokretačkog sektora - mogu se promijeniti samo 3 bajta) ili se prikrivaju kao kod standardnog bootloadera.

File virusi

Većina prikrivenih virusa datoteka koristi iste trikove kao gore: oni ili presreću DOS pozive za pristup fajlovima (INT 21h) ili privremeno izliječe datoteku kada se otvori i inficiraju kada se zatvori. Kao i za viruse za pokretanje, postoje virusi datoteka koji koriste presretanje prekida više od nizak nivo- Pozivi vozača DOS-a, INT 25h, pa čak i INT 13h.

Punopravni prikriveni virusi datoteka koji koriste prvu metodu skrivanja svog koda uglavnom su prilično glomazni, budući da moraju presresti veliki broj DOS funkcija za manipulaciju datotekama: otvaranje/zatvaranje, čitanje/pisanje, pretraživanje, pokretanje, preimenovanje , itd., te je potrebno podržati obje varijante nekih poziva (FCB/ASCII), a nakon pojave Windows95/NT, trebalo je rukovati i trećom opcijom – funkcijama za rad sa dugim nazivima datoteka.

Neki virusi koriste dio funkcija potpunog stealth virusa. Najčešće presreću DOS funkcije FindFirst i FindNext (INT 21h, AH=11h, 12h, 4Eh, 4Fh) i "smanjuju" veličinu zaraženih datoteka. Takav virus se ne može identificirati promjenom veličine datoteka, osim ako se, naravno, ne nalazi u memoriji. Programi koji ne koriste ove DOS funkcije (na primjer, "Norton Utilities"), ali direktno koriste sadržaj sektora koji pohranjuju direktorij, pokazuju ispravnu dužinu zaraženih datoteka.

Makro virusi

Implementacija stealth algoritama u makro virusima je vjerovatno najjednostavniji zadatak - dovoljno je samo onemogućiti meni File/Templates ili Tools/Macro. Ovo se postiže ili uklanjanjem ovih stavki menija sa liste, ili njihovom zamenom makroima FileTemplates i ToolsMacro.

Djelomično prikriveni virusi mogu se nazvati malom grupom makro virusa koji pohranjuju svoj glavni kod ne u samom makrou, već u drugim područjima dokumenta - u njegovim varijablama ili u automatskom tekstu.

To polimorfni virusi uključuju one koje je nemoguće (ili izuzetno teško) otkriti pomoću takozvanih virusnih maski - dijelova trajnog koda specifičnog za određeni virus. To se postiže na dva glavna načina - šifriranjem glavnog virusnog koda netrajnim ključem i nasumičnim skupom komandi za dešifriranje, ili promjenom stvarnog virusnog koda koji se izvršava. Postoje i drugi prilično egzotični primjeri polimorfizma - DOS virus "Bomber", na primjer, nije šifriran, ali je slijed naredbi koji prenosi kontrolu na šifru virusa potpuno polimorfan.

Polimorfizam različitog stepena složenosti nalazi se u virusima svih tipova - od virusa za pokretanje i datoteka DOS do Windows virusa, pa čak i makro virusa.

Nivoi polimorfizma

Postoji podjela polimorfnih virusa na nivoe ovisno o složenosti koda koji se nalazi u dekoderima ovih virusa. Ovu podjelu je prvi predložio dr. Alan Solomon, nakon nekog vremena Vesselin Bonchev ga je proširio.

Nivo 1: virusi koji imaju određeni skup dekriptora sa trajnim kodom i biraju jedan od njih kada su zaraženi. Takvi virusi su "polu-polimorfni" i nazivaju se i "oligomorfni" (oligomorfni). Primjeri: "Cheeba", "Slovakia", "Whale".

Nivo 2: Dekoder virusa sadrži jednu ili više trajnih instrukcija, ali njegov glavni dio nije trajan.

Nivo 3: Dekriptor sadrži neiskorištene instrukcije - "smeće" poput NOP, CLI, STI, itd.

Nivo 4: Dešifrator koristi zamjenjive instrukcije i instrukcije za promjenu redoslijeda (promjena). Algoritam dešifriranja se ne mijenja.

Nivo 5: koriste se svi gore navedeni trikovi, algoritam za dešifriranje je nestabilan, moguće je ponovno šifriranje virusnog koda, pa čak i djelomično šifriranje samog koda za dešifriranje.

Nivo 6: permutirajući virusi. Glavni kod virusa je podložan promjenama - podijeljen je na blokove koji se preuređuju proizvoljnim redoslijedom tijekom infekcije. Virus ostaje aktivan. Takvi virusi mogu biti nešifrirani.

Gornja podjela nije lišena nedostataka, jer je napravljena prema jednom kriteriju - mogućnosti otkrivanja virusa dešifrirajućim kodom koristeći standardnu ​​tehniku ​​maske virusa:

Nivo 1: za otkrivanje virusa dovoljno je imati nekoliko maski

Nivo 2: otkrivanje maske pomoću "zamjenskih znakova"

Nivo 3: otkrivanje maske nakon uklanjanja uputa za smeće

Nivo 4: Maska sadrži nekoliko mogućih opcija koda, tj. postaje algoritamski

Nivo 5: nemogućnost otkrivanja virusa pomoću maske

Nedovoljnost takve podjele pokazala se kod virusa 3. nivoa polimorfizma, koji se naziva "Level3". Ovaj virus, kao jedan od najsloženijih polimorfnih virusa, spada u nivo 3 prema gornjoj podjeli, budući da ima konstantan algoritam dešifriranja, kojem prethodi veliki broj "smeće" naredbi. Međutim, u ovom virusu algoritam generiranja "smeća" doveden je do savršenstva: gotovo sve i8086 instrukcije procesora mogu se naći u kodu za dešifriranje.

Ako napravimo podelu na nivoe u smislu antivirusa koji koriste sisteme za automatsko dešifrovanje virusnog koda (emulatore), onda će podela na nivoe zavisiti od složenosti emulacije virusnog koda. Virus je moguće otkriti i drugim metodama, na primjer, dešifriranjem pomoću elementarnih matematičkih zakona itd.

Stoga mi se čini objektivnijom podjelom, u kojoj osim kriterija virusnih maski učestvuju i drugi parametri.

1. Stepen složenosti polimorfnog koda (procenat svih instrukcija procesora koji se mogu naći u kodu za dešifriranje)

2. Korištenje trikova protiv emulatora

3. Postojanost algoritma dekriptora

4. Konstantnost dužine dekodera


Promjena izvršnog koda

Takvu metodu polimorfizma najčešće koriste makro virusi koji, prilikom kreiranja novih kopija sebe, nasumično mijenjaju imena svojih varijabli, ubacuju prazne redove ili mijenjaju svoj kod na neki drugi način. Dakle, algoritam virusa ostaje nepromijenjen, ali se virusni kod gotovo potpuno mijenja od infekcije do infekcije.

Ovu metodu rjeđe koriste kompleksni virusi za pokretanje sistema. Takvi virusi ubrizgavaju u boot sektore samo prilično kratku proceduru koja čita glavni kod virusa s diska i prenosi kontrolu na njega. Kod za ovu proceduru se bira između nekoliko razne opcije(koji se takođe mogu razblažiti "praznim" komandama), komande se preuređuju među sobom, itd.

Ova tehnika je još rjeđa za fajl viruse, jer moraju u potpunosti promijeniti svoj kod, a to zahtijeva prilično složene algoritme. Do danas su poznata samo dva takva virusa, od kojih jedan ("Ply") nasumično pomera svoje komande po svom telu i zamenjuje ih sa JMP ili CALL komandama. Drugi virus ("TMC") koristi više težak način- svaki put kada se zarazi, virus mijenja blokove svog koda i podataka, ubacuje "smeće", postavlja nove vrijednosti pomaka za podatke u svojim asemblerskim uputama, mijenja konstante itd. Kao rezultat toga, iako virus ne šifrira svoj kod, on je polimorfni virus - kod ne sadrži trajni skup naredbi. Štaviše, kada stvara nove kopije sebe, virus mijenja svoju dužinu.

Iz ličnog iskustva

Za sva pitanja kontaktirajte me na e-mail: [email protected]