terug naar begrippenlijst                 wittereusnet

Computervirussen

.
Wat is een virus

Een computervirus heeft de eigenschap dat het zichzelf kan overbrengen op andere programma's. De aangetaste programmatuur heeft op zijn beurt nu ook weer dezelfde eigenschappen als het oorspronkelijke virus. Het is duidelijk dat binnen de korste keren de meeste programma's drager zullen zijn van de kwalijke programmacode waar je niet snel meer van af raakt. Meestal wordt een computervirus zodanig geconstrueerd dat het niet onmiddellijk overgaat tot het beschadigen van computergegevens. Hiermee wordt de kans op voortijdige ontdekking opzettelijk verkleind. Net als bij biologische virussen dient het computervirus aan bepaalde voortplantingseisen te voldoen wil het niet uitsterven. Voordat het zijn gastheer vernietigt moet het virus tenminste een andere gastheer hebben besmet. Het dient daarbij niet al te kieskeurig te zijn bij het uitkiezen van een geschikt doel: een virus dat alleen maar werkt op de originele IBM machines zal zichzelf niet voldoende kunnen verspreiden om uiteindelijk te overleven.

Hoe werkt een virus

We onderscheiden drie fasen in de levensloop van een virus: de introductiefase, de besmettingsfase en de activeringsfase. Voor iedere fase geldt een eigen beveiligingsstrategie.

De introductiefase is de belangrijkste maar ook eenvoudigste fase in het leven van het virus: het virus wordt door een of andere oorzaak in het systeem geintroduceerd. Praktisch ieder kanaal bruikbaar voor uitwisseling van gegevens kan er voor worden misbruikt. De ongenode gast kan zich verspreiden via diskettes, email, netwerken of modems.  Het feit dat tegenwoordig veel mensen permanent on-line zijn  heeft het risico voor de verspreiding vergroot.

De besmettingsfase is de fase die het grootste deel uitmaakt van de levensloop van het virus. Om te overleven en zichzelf te verspreiden dient een virus andere programmatuur te besmetten. Om de kansen op succesvolle verspreiding zo gunstig mogelijk te laten zijn zal het virus in deze fase zichzelf zo min mogelijk bloot geven, en op alle manieren proberen ontdekking zo lang mogelijk uit te stellen. Het besmetten van een ander programma is niet eens zo moeilijk: het virus "plakt" zichzelf aan het einde van het programma.  Hier aangekomen krijgt de computer de opdracht van het virus om de eerste instructies van het programma  te vervangen door een zogenaamde sprong-instructie die er voor zorgt dat de programma-uitvoering aanvangt bij de viruscode i.p.v. bij het eigenlijke programma. Wordt het besmette programma nu opgestart dan wordt de controle direct doorgespeeld naar de viruscode. Het virus voert nu zijn kwalijke taak uit (zichzelf in het geheugen installeren, een ander programma besmetten), "repareert" vervolgens de eerste instructies van het programma die het immers had overschreven met de sprong-instructie, en geeft vervolgens de controle weer aan de originele programmacode over. Indien dit alles op de juiste wijze gebeurd, zal, nee KAN het gastprogramma er helemaal niets van merken dat het is misbruikt om een virus een lift te geven.

De Activeringsfase. Meestal wordt een virus uitgerust met een routine die na verloop van tijd wordt geactiveerd. Wat er nu gaat gebeuren is afhankelijk van de creativiteit van de virusmaker: werkelijk alles is mogelijk. De "speciale effecten" lopen uiteen van het afdrukken van een al dan niet politieke boodschap op het scherm, het vernielen van gegevens, het op de ten gehore brengen van een muziekje, het simuleren van type-fouten op de printer, tot zelfs het beschadigen van hardware. Het tijdstip waarop de activeringsfase aanbreekt varieert: na een bepaald aantal besmettingen, op of na een bepaalde datum of na een bepaald aantal toetsaanslagen. Sommige virussen hebben een heel repertoire aan effecten die in schijnbaar willekeurige volgorde worden uitgevoerd.

Er zijn ook virussen die niets anders doen dan zichzelf voortplanten en ze brengen dan ook geen schade voort. Hoewel... ? Het blijkt dat veel computervirussen programmeerfouten vertonen die af en toe de computer laten vastlopen. Een computervirus is nu eenmaal een moeilijk te testen, ingewikkeld stukje programmacode. Compatibiliteit is ook niet de grootste zorg van de virusbouwer. Er zijn programma's die sowieso niet meer goed functioneren nadat ze besmet zijn geraakt. Ook in het zeldzame gaval dat een virus geen activeringsfase kent dient het dus te worden bestreden.

Schade door virussen

De meeste mensen denken bij virussen aan programma's die de gegevens van de schijf wissen door bijvoorbeeld de schijf te formatteren. De schade door dit soort activiteiten valt in de praktijk meestal mee. De gebruiker dient meestal alleen de back-up terug te zetten waarna het virus met bestrijdingsprogrammatuur kan worden bestreden. Het verlies aan gegevens blijft dan minimaal.

De schade is veel groter wanneer men te maken heeft met een virus dat niets anders doet dan zo nu en dan twee bytes op de schijf om wisselen. Indien men geen anti-virus product heeft kan het maanden duren voordat het begint op te vallen dat er toch wel erg veel 'type-fouten' in de rekenbladen en documenten voorkomen. Wanneer men uiteindelijk de conclusie doet dat men te maken heeft met een computervirus zit men met een groot probleem. Omdat het virus al maanden actief is bevatten alle back-ups die sinds die tijd gemaakt zijn natuurlijk de fouten die vanaf die tijd in de gegevensbestanden voorkomen. De meest recente back-up die nog volledig schoon is is inmiddels enkele maanden oud en het is nog maar de vraag of men die oude back-up nog wel in het bezit heeft. Daarnaast verliest men wel erg veel gegevens wanneer men een back-up van enkele maanden oud terugzet. Er is dan echter weinig keus...

De meeste door virussen toegebrachte schade bestaat uit indirecte schade, de kosten, de tijd en de ergernis die gemoeid zijn met het verwijderen van een virus.

Enkele begrippen:

*Bootsector virussen

De PC zelf kent geen gebruikersinterface of bestandenhuishouding. Dit alles wordt geregeld door het besturingssysteem - doorgaans Windows - en dat staat op de schijf. Indien de PC wordt aangezet zal het apparaat dan ook proberen een besturingssysteem te laden, want zonder dat kan het niets. De PC kent op dat moment nog geen bestandstoegang - dat is immers een onderdeel van het besturingssysteem dat nog moet worden geladen - en om dit `kip en ei probleem' op te lossen staat het eerste deel van het besturingssysteem niet in de vorm van een bestand op de schijf maar op de eerste 512 bytes hiervan: de bootsector.

De bootsector van een schijfje bevat dus een stukje programmatuur. Indien de rest van het besturingssysteem op het schijfje staat zal het bootsectorprogrammaatje dit opstarten, maar als dat niet het geval is - zoals op de meeste diskettes - toont het programmaatje de boodschap dat er geen systeem is gevonden: `Non system disk...'.

Gezien het feit dat de bootsector net als een programma kan worden `uitgevoerd', is het dus ook mogelijk de bootsector van een virus te voorzien. Men spreekt dan van een bootsector-virus. Iedere disk - dus ook een datadisk - bevat een bootsector en kan dus drager zijn van zo'n virus.

De bootsector wordt geactiveerd door te proberen de disk als opstartdisk te gebruiken. Natuurlijk zal geen zinnig mens proberen op te starten vanaf een willekeurige diskette, maar hoe vaak komt het niet voor dat men de PC herstart en vergeet de diskette uit station A: te verwijderen? De resulterende foutboodschap wordt niet zoals veel mensen denken door de PC zelf afgedrukt, maar door de bootsector van die diskette! Wat er gebeurt wanneer er zich een virus in de bootsector bevond laat zich raden... Ook datadiskettes vormen dus een latent gevaar dat pas tot uiting kan komen wanneer de diskette per ongeluk in de PC blijft tijdens het opstarten.

Dat het hierbij niet gaat om een te verwaarlozen risico, maar dat de verspreidingsmethode van bootsector-virussen erg succesvol is, blijkt wel uit het feit dat een op de vier virussen een bootsector-virus is! Een van de dingen die zeker bijdragen tot dit dubieuze succes is dat er tijdens de besmettingsfase van deze virussen nog geen besturingssysteem is geladen, laat staan een anti-virus programma. Om dit soort besmettingen tegen te gaan kan slechts een hardwarematig anti-virus product uitkomst bieden. Voorzichtigheid bij het gebruik van dataschijfjes blijft dus geboden!

*Polymorphe virussen

Voor veel mensen is een virusscanner de enige vorm van preventie. Een virusscanner is gebaseerd op het feit dat virussen herkenbaar zijn aan de specifieke volgorde van de programmainstructies die hierin voorkomen. Deze specifieke instructievolgorde noemt men ook wel de handtekening van het virus. Virusscanners hoeven om een virus te detecteren simpelweg te kijken of deze handtekening voorkomt in het te controleren programma.

Polymorphe virussen zijn ontworpen om deze vorm van virusdetectie te saboteren. Deze virussen wijzigen de volgorde van hun instructies na iedere besmetting. Het virus kan miljoenen gedaanten aannemen en een vaste tekenreeks is niet meer vast te stellen. Vaak kan een dergelijk virus toch nog worden gevonden door een speciale bewerking (een algoritme) op het te controleren programma los te laten. Doorgaans duurt het erg lang voordat de virusbestrijders een dergelijk algoritme hebben ontwikkeld zodat de doelstellingen van de virusbouwer toch worden gerealiseerd.

*Stealth virussen

De meeste virussen blijven na het opstarten resident in het geheugen van de PC. Deze virussen "kijken" mee wat er allemaal op de PC gebeurt. Stealth virussen hebben de vervelende eigenschap dat ze als een soort filter werken zodra een bestand wordt ingelezen: ze zorgen dat het bestand eruit ziet zoals het was voordat het besmet raakte. Virusscanners kunnen dan het virus niet meer detecteren. Zelfs wanneer men een schoon programma byte voor byte vergelijkt met een besmet exemplaar zal men geen enkel verschil kunnen vinden.

Gelukkig is er een methode die gebruikt kan worden om te voorkomen dat het virus als filter werkt: namelijk het opstarten vanaf een schone diskette. Het virus wordt dan niet opgestart en kan dan ook geen filter installeren.

VIRUSBESTRIJDING EN PREVENTIE

Algemene maatregelen en viruspreventie

De keuze van  je besturingssysteem en programma's is mede bepalend voor de virusgevoeligheid van je computer, hoe gezonder het systeem en software, hoe groter de weerstand. Windows is met afstand het meest virusgevoelige systeem, en de onveiligheid van Explorer/OutlookExpress is berucht. De MAC is al wat robuster, en Linux is vooralsnog vrijwel ongevoelig gebleken.
 

Verschijnselen die duiden op een virus:

Dit is een bewerking van een  stuk van Frans Veldman, al wat ouder (1993), maar nog steeds actueel.

terug naar begrippenlijst                 wittereusnet                 top van de pagina