Ett datavirus är en typ av skadlig kod som kan infiltrera koden för andra program, systemminnesområden, startsektorer och distribuera dess kopior över olika kommunikationskanaler.
Huvudsyftet med ett virus är att sprida det. Dessutom är dess åtföljande funktion ofta att störa driften av mjukvaru- och hårdvarusystem - radera filer, ta bort operativsystemet, göra datavärdstrukturer oanvändbara, störa nätverksstrukturer, stjäla personuppgifter, utpressning, blockera användararbete etc. Även om Författaren till viruset har inte programmerat skadliga effekter, viruset kan orsaka datorkraschar på grund av fel, utan hänsyn till subtiliteter av interaktion med operativsystemet och andra program. Dessutom tenderar virus att ta upp lagringsutrymme och konsumera systemresurser.
I vardagen kallas "virus" för all skadlig kod [1] , även om detta i själva verket bara är en av dess typer.
Grunden till teorin om självreproducerande mekanismer lades av John von Neumann , en amerikan av ungerskt ursprung , som 1951 föreslog en metod för att skapa sådana mekanismer. Arbetsexempel på sådana program har varit kända sedan 1961 [2] .
De första kända virusen är Virus 1,2,3 och Elk Cloner för Apple II PC , som dök upp 1981 . Vintern 1984 dök de första antivirusverktygen upp - CHK4BOMB och BOMBSQAD av Andy Hopkins ( engelska Andy Hopkins ). I början av 1985 skrev Gee Wong programmet DPROTECT , det första inbyggda antivirusprogrammet.
De första virusepidemierna går tillbaka till 1986 - 1989 : Hjärna (spridd i startsektorerna för disketter, orsakade den största epidemin), Jerusalem (dök upp fredagen den 13 maj 1988, förstörde program när de lanserades [3] ), Morris mask (över 6200 datorer, de flesta nätverk var ur funktion i upp till fem dagar), DATACRIME (cirka 100 000 infekterade datorer bara i Nederländerna).
Samtidigt tog huvudklasserna av binära virus form: nätverksmaskar ( Morris worm , 1987), " trojanska hästar " (AIDS, 1989 [4] ), polymorfa virus (Chameleon, 1990), smygvirus (Frodo, Whale ) , andra halvåret 1990).
Parallellt tar organiserade rörelser av både pro- och antivirusorientering form: 1990 dök en specialiserad BBS Virus Exchange, Mark Ludwigs "Little Black Book of Computer Viruses", det första kommersiella antivirusviruset Symantec Norton AntiVirus upp .
1992 dök den första viruskonstruktören för PC:n, VCL , upp (konstruktörer fanns för Amiga tidigare), liksom färdiga polymorfa moduler (MtE, DAME och TPE) och krypteringsmoduler för inbäddning i nya virus.
Under de närmaste åren fulländades äntligen stealth och polymorfa teknologier (SMEG.Pathogen, SMEG.Queeg, OneHalf , 1994; NightFall, Nostradamus, Nutcracker, 1995), och de mest ovanliga sätten att penetrera systemet och infektera filer prövades ( Dir II - 1991, PMBS, Shadowgard, Cruncher - 1993). Dessutom har det dykt upp virus som infekterar objektfiler (Shifter, 1994) och programkällkod (SrcVir, 1994). Med spridningen av Microsoft Office-paketet har makrovirus spridits (Concept, 1995).
1996 dök det första viruset för Windows 95 upp - Win95.Boza, och i december samma år - det första inhemska viruset för det - Win95.Punch.
Med spridningen av nätverk och Internet fokuserar filvirus alltmer på dem som huvudkanalen för arbetet (ShareFun, 1997 - MS Word-makrovirus som använder MS-Mail för distribution; Win32.HLLP.DeTroie, 1998 - en familj av spionvirus ; Melissa , 1999 - ett makrovirus och en nätverksmask som slog alla rekord när det gäller spridningshastighet). Storhetstiden för "trojanska hästar" inleddes av det dolda fjärradministrationsverktyget Back Orifice (1998) och dess motsvarigheter, såsom NetBus .
Win95 virus. CIH har nått en klimax när det gäller användningen av ovanliga metoder och har skrivit över FlashBIOS för infekterade maskiner (epidemin i juni 1998 anses vara den mest destruktiva under tidigare år).
I slutet av 1990-talet - början av 2000-talet, med den ökande komplexiteten för programvara och systemmiljö, den massiva övergången till relativt säkra Windows NT-familjer , konsolideringen av nätverk som den huvudsakliga datautbyteskanalen och framgången med antivirustekniker för att upptäcka virus som byggts upp. på komplexa algoritmer började den senaste allt mer ersätta injicering i filer med injektion i operativsystemet (ovanlig autorun , rootkits ) och ersätta polymorfism med ett stort antal arter (antalet kända virus växer exponentiellt ).
Samtidigt öppnade upptäckten av många sårbarheter i Windows och annan vanlig programvara vägen för exploateringsmaskar . År 2004 orsakade aldrig tidigare skådade epidemier MsBlast (enligt Microsoft , mer än 16 miljoner system [5] ), Sasser och Mydoom (uppskattade skador på $500 miljoner respektive $4 miljarder [6] ).
Dessutom ger monolitiska virus till stor del plats för rollseparerade skadliga programsviter och tillbehör (trojaner, nedladdare/droppers, nätfiskewebbplatser, spambots och spindlar). Social teknik som skräppost och nätfiske blomstrar också som ett sätt att infektion kringgå programvaruskyddsmekanismer.
Till en början, baserat på trojaner, och med utvecklingen av p2p-nätverkstekniker - och oberoende - den modernaste typen av virus - maskbotnät - tar fart (Rustock, 2006, cirka 150 tusen bots; Conficker , 2008-2009, mer än 7 miljoner bots; Kraken, 2009, cirka 500 tusen bots). Virus, bland annat skadlig programvara, formaliseras äntligen som ett medel för cyberbrottslighet .
Ett datavirus fick sitt namn efter biologiska virus för en liknande spridningsmekanism. Tydligen användes den första användningen av ordet "virus" i förhållande till programmet av Gregory Benford (Gregory Benford) i fantasyhistorien " The Scarred Man " [7] som publicerades i tidskriften Venture i maj 1970 .
Termen "datavirus" "upptäcktes" och återupptäcktes sedan mer än en gång. Variabeln i PERVADE-subrutinen ( 1975 ), vars värde avgjorde om ANIMAL- programmet skulle distribueras på disk, kallades alltså VIRUS. Joe Dellinger kallade också sina program för ett virus , och det var förmodligen det som först korrekt betecknades som ett virus.
Det finns ingen allmänt accepterad definition av ett virus. I den akademiska miljön användes termen av Fred Cohen i hans verk "Experiment with computer viruses" [8] [9] , där han själv tillskriver författarskapet av termen till Leonard Adleman [10] [11] .
Formellt definieras viruset av Fred Cohen med hänvisning till Turing-maskinen enligt följande [12] :
M : (S M , I M , O M : S M x I M > I M , N M : S M x I M > S M , D M : S M x I M > d)
med en given uppsättning tillstånd SM , en uppsättning ingångssymboler I M och mappningar (OM , NM , D M ) , som , baserat på dess nuvarande tillstånd s ∈ S M och ingångssymbolen i ∈ I M , läser från det semi-oändliga bandet, bestämmer: utgångssymbolen o ∈ I M som ska skrivas till bandet, nästa tillstånd för maskinen s' ∈ S M och rörelsen längs bandet d ∈ {-1,0,1} .
För en given maskin M kan en sekvens av tecken v : v i ∈ I M betraktas som ett virus om och endast om bearbetningen av sekvensen v vid tidpunkten t medför att vid en av de nästa tidpunkterna t sekvensen v′ (disjunkt från v ) finns på bandet, och denna sekvens v′ skrevs av M i punkten t′ mellan t och t″ :
∀ C M ∀ t ∀ j:SM ( t ) = SM0 ∧ PM (t) = j ∧ { C M (t, j) … C M (t, j + |v| - 1)} = v ⇒ ∃ v' ∃ j' ∃ t' ∃ t": t < t" < t' ∧ {j' … j' +|v'|} ∩ {j … j + |v|} = ∅ ∧ { C M (t', j') … C M (t', j' + |v'| - 1)} = v' ∧ PM ( t") ∈ { j' … j' + |v'| - 1 }var:
Denna definition gavs i samband med en viral uppsättning VS = (M, V) — ett par bestående av en Turing-maskin M och en uppsättning teckensekvenser V: v, v' ∈ V . Av denna definition följer att begreppet virus är oupplösligt kopplat till dess tolkning i en given kontext eller miljö.
Det visades av Fred Cohen [12] att "alla självreproducerande teckensekvenser: en enkelton VS, enligt vilken det finns ett oändligt antal VS , och icke- VS , för vilka det finns maskiner för vilka alla teckensekvenser är ett virus, och maskiner för vilka ingen av teckensekvenserna är ett virus, gör det möjligt att förstå när en ändlig teckensekvens är ett virus för vilken maskin som helst. Han bevisar också att frågan om huruvida ett givet par (M, X) : X i ∈ I M är ett virus i allmänhet är oavgjord (det vill säga det finns ingen algoritm som tillförlitligt kan bestämma alla virus) på samma sätt , som bevisar olösligheten av stoppproblemet [13] .
Andra forskare har bevisat att det finns typer av virus (virus som innehåller en kopia av ett virusfångande program) som inte kan detekteras exakt med någon algoritm.
Nu finns det många varianter av virus som skiljer sig åt i huvudmetoden för distribution och funktionalitet. Om virus från början spreds på disketter och andra medier , dominerar nu virus som sprids via lokala och globala ( Internet ) nätverk. Funktionaliteten hos virus, som de tar till sig från andra typer av program, växer också.
För närvarande finns det inget enda system för att klassificera och namnge virus (även om ett försök att skapa en standard gjordes vid CARO-mötet 1991). Det är vanligt att separera virus:
Via Internet, lokala nätverk och flyttbara media .
Virus sprids genom att kopiera deras kropp och se till att den efterföljande körs: genom att skriva in sig själva i den körbara koden för andra program, ersätta andra program, registrera sig i autorun genom registret och mer. Ett virus eller dess bärare kan inte bara vara program som innehåller maskinkod , utan också all information som innehåller automatiskt körbara kommandon - till exempel batchfiler och Microsoft Word- och Excel- dokument som innehåller makron . Dessutom, för att penetrera en dator, kan ett virus använda sårbarheter i populär programvara (till exempel Adobe Flash , Internet Explorer , Outlook ), för vilka distributörer bäddar in det i vanlig data (bilder, texter etc.) tillsammans med en exploatering som använder sårbarhet.
När ett virus väl har infiltrerat koden för ett program, en fil eller ett dokument, kommer det att förbli vilande tills omständigheterna tvingar datorn eller enheten att köra sin kod. För att ett virus ska infektera din dator måste du köra det infekterade programmet, vilket i sin tur kommer att leda till exekvering av viruskoden. Detta innebär att viruset kan förbli vilande på datorn utan några symtom på infektion. Men när viruset väl träder i kraft kan det infektera andra filer och datorer i samma nätverk. Beroende på virusprogrammerarens mål orsakar virus antingen mindre skada eller har en destruktiv effekt, som att radera data eller stjäla konfidentiell information.
Under MS-DOS- dagarna var stealth-virus vanliga , som avlyssnade avbrott för att komma åt operativsystemet . Viruset kan alltså dölja sina filer från katalogträdet eller ersätta originalkopian istället för den infekterade filen.
Med den utbredda användningen av antivirusskannrar , som kontrollerar eventuell kod för signaturer eller utför misstänkta åtgärder innan de körs , har denna teknik blivit otillräcklig. Att dölja ett virus från processlistan eller katalogträdet för att inte dra till sig onödig uppmärksamhet från användarna är en grundläggande teknik, men mer sofistikerade metoder krävs för att hantera antivirus. Kodkryptering och polymorfism används för att motverka signaturskanning . Dessa tekniker används ofta tillsammans, eftersom för att dekryptera den krypterade delen av viruset, är det nödvändigt att lämna dekrypteringsenheten okrypterad, vilket gör att den kan upptäckas av sin signatur. Därför, för att ändra dekryptören, används polymorfism - en modifiering av sekvensen av kommandon som inte ändrar de utförda åtgärderna. Detta är möjligt tack vare ett mycket varierat och flexibelt system av kommandon för Intel-processorer , där samma elementära åtgärd, till exempel att lägga till två nummer, kan utföras av flera sekvenser av kommandon.
Kodblandning används också , där individuella instruktioner är slumpmässigt ordnade och sammankopplade med ovillkorliga hopp . Spetsen inom viral teknologi är metamorfism, som ofta förväxlas med polymorfism. Dekrypteringen av ett polymorft virus är relativt enkel, dess funktion är att dekryptera huvuddelen av viruset efter injektion, det vill säga efter att dess kod har kontrollerats av ett antivirus och lanserats. Den innehåller inte själva den polymorfa motorn , som finns i den krypterade delen av viruset och genererar dekrypteringsprogrammet. Däremot kanske ett metamorft virus inte använder kryptering alls, eftersom det skriver om hela sin kod varje gång det replikerar [14] .
För tillfället finns det många antivirusprogram som används för att förhindra att virus kommer in i datorn. Det finns dock ingen garanti för att de kommer att klara av den senaste utvecklingen. Därför bör vissa försiktighetsåtgärder vidtas, särskilt:
Vissa antivirusleverantörer hävdar att virusskapandet nu har utvecklats från en ensam huliganaktivitet till en seriös verksamhet med nära band till skräppostbranschen och andra olagliga aktiviteter [15] .
Kallas även för miljoner och till och med miljarder skador från virus och maskar [16] . Sådana uttalanden och bedömningar bör behandlas med försiktighet: skadebeloppen enligt olika analytikers uppskattningar skiljer sig åt (ibland med tre eller fyra storleksordningar), och beräkningsmetoder anges inte.
Skaparen av Scores -viruset , som orsakade skada på Macintosh -användare 1988 , åtalades inte, eftersom hans handlingar inte faller under Computer Fraud and Abuse Act eller andra lagar i USA vid den tiden. Detta fall ledde till utvecklingen av en av de första lagarna relaterade till datavirus: Computer Virus Eradication Act (1988) [17] . På samma sätt slapp skaparen av det mest destruktiva viruset , ILOVEYOU , straff år 2000 på grund av frånvaron av relevanta lagar i Filippinerna [18] .
Skapandet och distributionen av skadlig programvara (inklusive virus) åtalas i vissa länder som en separat typ av brott: i Ryssland enligt den ryska federationens strafflag ( kapitel 28, artikel 273 ), i USA enligt Computer Fraud och Abuse Act , i Japan [19] . I många länder är dock skapandet av virus inte i sig ett brott, och skadorna de orsakar faller under mer allmänna databrottslagar [20] .
År 2007 visualiserade den ukrainske mediekonstnären Stepan Ryabchenko den virtuella essensen av datavirus, vilket gav dem en form och bild [21] [22] .
![]() | ||||
---|---|---|---|---|
|
Skadliga program | |
---|---|
Infektiös skadlig programvara | |
Dölja metoder | |
Skadlig programvara för vinst |
|
Genom operativsystem |
|
Skydd |
|
Motåtgärder |
|