Zou Robert Skrenta de gevolgen hebben kunnen overzien van het ‘Elk Cloner’-virus dat hij in 1982 als grap programmeerde in een spelletje? Dit jaar is het 25 jaar geleden dat de toen 15-jarige Skrenta het virus verspreidde. Daarmee werd de weg vrijgemaakt voor de huidige virusprogrammeurs die inmiddels vele malen sluwer, slimmer en kwaadaardiger zijn.
Het virus dat Skrenta programmeerde hechtte zichzelf aan het Apple DOS 3.3 besturingssysteem en werd verspreid via floppy disks. Bij de vijftigste keer dat het spelletje werd opgestart kwam er een gedicht in beeld (zie kader). Toch was dit niet het allereerste virus dat werd gemaakt. Het verschil is dat de eerdere virussen nooit werden verspreid buiten de testomgeving waarvoor zij waren bedoeld. Het eerste pc-virus werd een paar jaar later, in 1986, gemaakt door de Pakistaanse gebroeders Basit en Amjad Farooq Alvi. Zij koppelden hun ‘Brain’-virus aan hun software om te voorkomen dat het illegaal gebruikt werd.
Code War
De oorsprong van het moderne computervirus ligt in 1949 toen computerpionier John von Neumann een essay schreef over ‘Theory and Organization of Complicated Automata’ waarin hij stelde dat een computerprogramma zich kan voortplanten. Onderzoekers van Bell Labs zetten de theorie in de jaren vijftig om in een spel dat de naam ‘Core Wars’ kreeg. In dit spel lieten twee programmeurs software-‘organismen’ vrij en keken toe hoe deze streden om controle over de computer. Het concept van zichzelf vermenigvuldigende programmatuur werd verder de wereld in geholpen door twee sciencefictionboeken in de jaren zeventig. John Brunner schreef Shockwave Rider en Thomas Ryan was de auteur van Adolescence of P-1, waarin beiden voorspelden dat er ooit een wereld zou zijn waarin software zichzelf van de ene naar de andere computer kon verplaatsen, zonder opgemerkt te worden.
Pas in 1986 kreeg dergelijke software de naam ‘virus’. Fred Cohen, student aan de University of Southern California, beschreef de wiskundige definitie van een computervirus als ‘een programma dat andere programma’s kan infecteren door ze zo te veranderen dat er een, mogelijk licht gewijzigde, versie van zichzelf ontstaat’. Zijn begeleider, Len Adleman, wees Cohen op de gelijkenis met een biologisch virus en de term die we nu gebruiken, was geboren.
In de jaren tachtig werd er weinig geschreven over computervirussen. Media deden het af als een obscuur theoretisch probleem. Dit veranderde in 1988, toen student Robert Morris de beruchte ‘Internet Worm’ de wereld instuurde. Saillant detail is dat de vader van Morris zelf de hand had in de originele Core Wars-spellen.
Wormen
Het verschil tussen een worm en een virus is de wijze van verspreiding. Een virus heeft altijd een gastheer nodig, zoals een vlo een hond of kat nodig heeft. Een worm kan zich zelfstandig over het netwerk verspreiden. De term ‘worm’ is afkomstig uit het sciencefictionverhaal van John Brunner, The Shockwave Rider. De eerste wormen werden gemaakt om een beter gebruik van het netwerk mogelijk te maken, maar zij wisten nooit hun doel te bereiken. Begin jaren tachtig begonnen John Shock en Jon Hepps van Xerox’ Palo Alto Research Center te experimenteren met wormprogramma’s. Ze ontwikkelden vijf wormen die allemaal waren gemaakt om handige taken in het netwerk uit te voeren. Al snel bleek dat de programma’s zeer bruikbaar waren, maar dat ze gevaar konden opleveren wanneer ze niet juist werden gebruikt. Dit werd duidelijk nadat er op een nacht iets was misgegaan met een van de wormen en alle computers in het onderzoekscentrum crashten. Wanneer de machines werden herstart, liet de worm ze direct weer crashen. Er moest een ‘vaccin’ worden geschreven om te voorkomen dat de worm de systemen bleef uitschakelen.
De kick
Overal ter wereld schrijven mensen nog elke dag virussen en wormen. Iemand schrijft de code, test deze om er zeker van te zijn dat het programma zichzelf op de juiste wijze verspreidt en stuurt het virus vervolgens de wereld in. Hij of zij moet ook nagedacht hebben over de aanvalsfase van het virus, of dat nu een suf berichtje is of de vernietiging van een harde schijf. Waarom doen mensen dat? Er zijn op zijn minst drie redenen.
De eerste reden is dezelfde die vandalen en brandstichters drijft. Voor sommige mensen is het een kick om iets te vernielen of in de fik te steken. Wanneer dit soort mensen kan programmeren, kunnen ze hun destructieve energie steken in het maken van virussen.
De tweede reden heeft te maken met het gevoel dat mensen krijgen wanneer ze iets ineen zien storten. Veel mensen hebben een fascinatie voor verkeersongelukken of explosies. Velen kennen wel iemand uit hun jeugd die wist hoe hij buskruit moest maken en die vervolgens grotere bommen fabriceerde totdat hij daar genoeg van kreeg of zichzelf opblies. Het maken van een virus dat zichzelf snel verspreidt is net zoiets. Het creëert een bom in een computer en hoe meer computers er geïnfecteerd worden hoe ‘leuker’ de explosie is.
De laatste reden heeft te maken met opscheppen. Als je een bepaald type programmeur bent en je ziet een veiligheidslek in software, dan zou je in de verleiding kunnen komen om dat lek te misbruiken voordat iemand anders het doet. Een uitdaging, net als de beklimming van de Mount Everest. De berg is er, dus mensen worden er naartoe getrokken en willen hem beklimmen om dan vervolgens de eerste Nederlander, vrouw of homo te zijn die op de top stond. Deze behoefte ligt ten grondslag aan veel van de virussen die we tegenwoordig kennen. Programmeurs willen de leveranciers niet vertellen over de veiligheidslekken die ze vinden, maar laten het liever zien.
Schade beperken
Dat is de reden dat antivirussoftwareleveranciers goede zaken doen. De laatste jaren zijn er veel computerhackers gearresteerd, maar dat lijkt niet echt effect te hebben op het aantal virussen en Trojaanse paarden (zie kader) dat de wereld in wordt gestuurd. Eugene Kaspersky, directeur van het gelijknamige virus research lab, schat de waarde van de markt voor standaard antivirussoftware op zo’n 3,8 miljard dollar. Met zoveel verschillende aanbieders (zie kader) op de markt, zou het eenvoudig moeten zijn om aanvallen buiten de netwerkdeur te houden. Niets is minder waar, aldus Kaspersky. “Een antivirusoplossing moet in staat zijn om het netwerk te beschermen tegen álle soorten kwaadwillende programma’s.” Vaak wordt een oplossing gekozen die zich richt op een bepaalde dreiging uit cyberspace. Ook de leveranciers komen problemen tegen. “Het aantal en de verscheidenheid van kwaadaardige programmatuur stijgt jaar na jaar”, zegt Kaspersky. “Het resultaat is dat veel antivirussoftwareleveranciers simpelweg niet in staat zijn om dat bij te houden en het gevecht verliezen.” Daarnaast is het noodzakelijk om zo snel mogelijk na detectie een update te verspreiden om het aantal geïnfecteerde computers tot een minimum te beperken. Deze snelheid hebben veel leveranciers niet.
De strijd tussen de virusprogrammeurs en antivirussoftwareleveranciers zal naar verwachting nog jaren duren, waarbij de laatsten vrijwel altijd achter de feiten aan zullen blijven lopen.
Definities
Computervirus – Een computervirus is een programma dat zichzelf kan kopiëren en zich in bestanden kan nestelen waar het vervolgens schade kan aanrichten. Deze schade kan variëren van het innemen van kostbare schijfruimte en computertijd tot het wissen en verspreiden van (gevoelige) gegevens. Kenmerkend voor een virus is dat het een gastheer nodig heeft om zich te kunnen verspreiden.
Computerworm – Wormen worden vaak verward met virussen, maar zijn het niet. Een computerworm is een zelfstandig programma dat zich direct over een netwerk verspreid. Hiervoor heeft het, in tegenstelling tot een virus, geen gastheer nodig.
Trojaans Paard – Een Trojaans Paard is een programma dat zich vaak vermomt als nuttige software. Het lijkt onschadelijk, totdat het wordt uitgevoerd. Hiermee wordt de pc opengezet voor andere (kwaadwillende) gebruikers. Een Trojaans Paard kan zichzelf niet kopiëren of verspreiden.
Hoax – Hoax is Engels voor ‘nep’. Vaak worden mails rondgestuurd met waarschuwingen voor virussen en de oproep om het mailtje aan zoveel mogelijk mensen door te sturen. Daarmee hebben zij hetzelfde resultaat als een echt virus.
Logic Bomb – Bij de logic bomb wordt een stuk code in een softwaresysteem gebouwd die een functie uitvoert wanneer er aan specifieke voorwaarden wordt voldaan. Dit wordt niet altijd gebruikt voor kwaadaardige doeleinden. Zo kan een programmeur code inbouwen die (gevoelige) bestanden verwijderd wanneer ze het bedrijfsnetwerk verlaten. Virussen en wormen bevatten vaak logic bombs, daarbij is er meestal sprake van een ingebouwde vertraging van de uitvoering van het virus of de verspreiding van de worm.
Spoof – Bij spoofing kan een persoon of programma zich anders voordoen voor het ontfutselen van data. Zo kunnen hackers e-mails versturen die afkomstig lijken van een bank of creditcardmaatschappij waarin wordt gevraagd om inloggegevens. Nietsvermoedende gebruikers kunnen zo hun persoonlijke gegevens in handen geven van de verkeerde personen.
Spyware – Deze omschrijving wordt gebruikt voor computerprogramma’s die informatie verzamelen over een computergebruiker en deze info doorsturen naar een externe partij. Het doel daarvan is om geld te verdienen.
Eerste virus
Het eerste virus dat zich verspreidde, heette Elk Cloner en werd in 1982 geschreven door de toen 15-jarige Rich Skrenta voor Apple II-systemen. Bij iedere vijftigste start van het systeem kwam het volgende gedichtje in beeld:
Elk Cloner: The program with a personality
It will get on all your disks
It will infiltrate your chips
Yes it’s Cloner!
It will stick to you like glue
It will modify RAM too
Send in the Cloner!
Kleinste virus
Het ‘define’-virus is het kleinste virus dat ooit werd geschreven. Het is slechts 30 bytes lang.