Voor het kwaad geschapen; Paarden, wormen en virussen strijden om de harde schijf

In duizenden vormen en gradaties van kwaadaardigheid bedreigen virussen het welzijn van de computer. Maar de paniekverhalen richten waarschijnlijk meer onheil aan.

Virusbestrijders melden dat volgende week een nieuw computervirus toeslaat. Wie op donderdag 22 augustus door zijn computer begroet wordt met de mededeling 'HDEuthanasia by Demon Emperor: Hare Krsna, hare, hare...' zit serieus in de penarie. Het Hare-virus is op dat moment bezig de harde schijf te herformatteren.

Een waarschuwing om serieus te nemen. Maar geldt dat ook voor al die andere alarmerende geruchten over virussen? Het is de vraag wat meer schade veroorzaakt: echte virussen, of de paniekverhalen erover.

Eind februari 1992 kopten kranten en tijdschriften over de hele wereld dat op 6 maart, de verjaardag van Michelangelo, miljoenen computers door een virus om zeep zouden worden geholpen. Er gebeurde vrijwel niets. AT&T meldde dat van de 250.000 computers in het bedrijf er twee getroffen waren. Eind 1994 raakten duizenden mensen in de ban van het Good Times virus, dat tot vreselijke dingen in staat zou zijn. Dit keer gebeurde er helemaal niets.

Er zijn heel wat mensen en instanties die er alle belang bij hebben om de sluimerende paniek regelmatig op te stoken. Zo stelde ThunderBYTE onlangs in een persbericht het al genoemde Hare-virus voor als een nieuw, uiterst kwaadaardig Internet-virus. Een Internet-virus! Dat klinkt heel bedreigend, maar het betekent niets. Men bedoelde slechts dat je behalve van floppy's ook van het Internet besmette programma's kunt binnenhalen.

Wie herinnert zich nog de rampverhalen van een jaar of tien geleden over hele loonadministraties en archieven die verdwenen waren door elektrostatische ontladingen van vloerbedekking? Uiteraard verdwijnen er nog steeds gegevens bij bedrijven. Maar nu ligt de schuld van onverklaarbaar verdwenen data steevast bij 'een virus'. Ook als dat virus nooit wordt aangetroffen.

Daarmee is uiteraard niet gezegd dat virussen en ander ongedierte geen serieuze zaken zijn. Elke week leveren nijvere nerd-jes weer nieuwe varianten van hun duistere lievelingen af. Maar paniek helpt niet, terwijl met een beetje kennis van zaken veel ellende voorkomen kan worden.

Virussen en ander gebroed bevolken vooral de DOS/Windows-wereld. Virusschrijvers lijken gedreven door dezelfde drang als graffiti-artiesten. Ze halen voldoening uit het uitzetten van anonieme geurvlaggen. Om anoniem te kunnen werken en experimenteren, heb je een programmeeromgeving nodig zonder pottekijkers. UNIX, het besturingssysteem dat op de meeste grote computers gebruikt wordt, is minder geschikt, omdat die grotere systemen doorgaans goed beheerd en bewaakt worden, door professionele mensen. Op een simpele PC kun je ongehinderd je gang gaan. Is het monster eenmaal gebaard, dan moet het zich uiteraard zo wijd mogelijk verspreiden. Dus kiest een ambitieuze ziektekiemenkweker het meest gangbare platform, de IBM-achtige PC. Eén employé die zijn collega op een machine van de baas een gekregen spelletje demonstreert, kan zo een heel kantoornetwerk besmetten.

Het Trojaanse Paard

Waarschijnlijk de oudste vorm van computeroverlast is het Trojaanse Paard. Trojaanse paarden heten naar het houten paard vol soldaten dat Odysseus voor Troje liet neerzetten. De Trojanen haalden het als een godsgeschenk binnen de muren, waarna het lot van hun stad snel bezegeld was. Een Trojaans paard is een nuttig programma dat stiekem ook nog extra, onplezierige activiteiten ontplooit. Het gaat lang niet altijd om domweg pesten of schade aanrichten, zoals bij de meeste virussen het geval is. Zo werd in Japan een programma ontdekt dat stiekem een lijst aanlegde van de wachtwoorden van degenen die het gebruikten. Ook het bij Windows'95 bijgeleverde programma waarmee men zich on-line kan aanmelden voor een abonnement op het Microsoft-netwerk bleek een Trojaans paard: ongemerkt gaf het tegelijk met de aanmelding aan Microsoft allerlei gegevens door over welke programma's de aanmelder op zijn harde schijf had staan, gegevens die voor marketingdoeleinden van onschatbare waarde zijn.

Een Worm is gelukkig een betrekkelijk zeldzaam diertje. Het is een programmaatje dat in principe niets anders doet dan zichzelf kopiëren van de ene computer naar de andere binnen een netwerk. Naarmate er meer kopieën ontstaan, die allemaal proberen zichzelf naar elders te kopiëren, wordt het op de verbindingslijnen tussen de delen van het netwerk steeds drukker. Uiteindelijk stort het netwerk door overbelasting in. Dat gebeurde met het Internet op 2 november 1988, binnen een paar uur nadat de oerversie op de Amerikaanse universiteit van Cornell op het net was losgelaten.

Echte virussen zijn geen zelfstandige programma's, maar parasieten. Ze hechten kopieën van zichzelf aan bona fide programma's of aan schijven en floppy's. Sommige planten zich alleen maar voort, andere blijken na verloop van tijd nog een andere functie, een payload, te hebben. Soms komt de aap uit de mouw na een bepaald aantal besmettingen. Soms, zoals bij het Hare-virus, op een bepaalde datum. Vooral (Amerikaanse) feestdagen zijn bij virusschrijvers populair.

Nuttige lading

Wat de payload - de 'nuttige lading' van een virus - is, valt niet te voorspellen. De fantasie van de maker en de noodzaak virussen onopvallend klein te houden vormen de enige beperkingen. Gelukkig lijkt het gros van de virusschrijvers meer te willen bewijzen dat ze een virus kunnen maken en verspreiden, dan dat ze uit zijn op een effect van hun creatie. Veel virussen laten het bij een boodschap op het scherm of bij andere ongevaarlijke maar irritante tekenen van hun aanwezigheid. Bij andere blijkt de payload door nonchalant programmeren verder niet te werken.

De rest, de echt gevaarlijke virussen, zijn ook al geen toonbeeld van creativiteit. Bijna altijd pogen ze programma's en gegevens te vernielen, door met de bestandsadministratie te knoeien, of die administratie geheel te wissen door de schijf te herformatteren. In een enkel geval worden gegevens vernield door er andere bestaande bestanden overheen te kopiëren. Alleen in het laatste geval zijn verdwenen gegevens echt onherroepelijk verloren. Als de schijfadministratie door herformatering aangetast of verdwenen is, zijn alle gegevens nog wel aanwezig, maar met normale middelen niet terugvindbaar. Wie een paar honderd gulden voor de schijfinhoud overheeft, kan naar een bedrijf dat gespecialiseerd is in het restaureren van in het ongerede geraakte schijven.

Om te begrijpen hoe een virus dat programma's infecteert in de praktijk werkt, moeten we programma's bezien met de ogen van de computer. Wat wij een programma noemen is niets meer dan een rij bytes die ergens op een schijf staat, en die wanneer we een programma starten in het werkgeheugen geladen wordt. Het uitvoeren daarvan is voor het apparaat een krankzinnige puzzelrit, het programma zelf een enorm doolhof van kamertjes, met in elk kamertje een briefje met daarop een instructie, een gegeven, of allebei. Instructies als 'zet het getal in dit kamertje op geheugenplaats X', 'tel het getal in dit kamertje op bij het getal op plaats X', of eenvoudigweg 'ga verder in kamer 3518'. Elk programma begint ermee dat de computer in het allereerste kamertje kijkt. Wat er verder gebeurt, hangt helemaal af van wat er op het briefje in dat kamertje staat.

Heel veel taken binnen een programma moeten door de computer steeds opnieuw worden uitgevoerd. Kijken of er een toets is aangeslagen op het toetsenbord, bijvoorbeeld, of nagaan of de muispositie veranderd is. Daarvoor moet de computer dus steeds opnieuw naar het kamertje worden gestuurd waarin zich de eerste instructie van die functie bevindt. Dat gebeurt met behulp van een speciale instructie: jump, geschreven als JMP. JMP levert de computer het adres waar hij de eerstvolgende uit te voeren instructie kan vinden. Programma's zitten barstensvol met JMP-instructies.

Als een virus een programma besmet, plakt het gewoonlijk zijn eigen code, zijn eigen kamertjes met opdrachten, op de schijf vast aan het eind van het te infecteren programma. Dan komt de grote truc: de eerste instructie van het echte programma wordt helemaal naar het eind van het geheel gekopieerd, en vervangen door een JMP-instructie naar het begin van de viruscode. Dat is alles.

Wordt het besmette programma voortaan gestart, dan ziet de computer allereerst die JMP-instructie, springt gehoorzaam naar het begin van het virus, en begin dat uit te voeren. Is het werk van het virus eenmaal gedaan, dan volgt de tweede slimmigheid: vlak voor het einde van het virus staat een opdracht om de oorspronkelijke eerste instructie van het echte programma, die bij besmetting naar het eind gekopieerd was, weer op zijn plaats terug te zetten. Daarna eindigt het virus met een JMP-instructie naar het begin van het programma. Het effect is dat de computer het echte programma alsnog begint uit te voeren, alsof er niets aan de hand is. Eenmaal besmette programma's blijven ondanks die terugzetting toch besmet. Het terugkopiëren van de echte begininstructie gebeurt immers alleen met de kopie in het werkgeheugen, op de schijf verandert er niets meer.

Virussen die zich aan schijven en floppy's hechten, werken anders. Zij nestelen zich in de bootsector. Die bootsector, op een harde schijf het master boot record, is een stukje aan het begin van elke schijf, met wat instructies die de computer moeten helpen wakker te worden. Alle harde schijven en alle floppy's hebben zo'n sector, ook floppy's waarmee de computer niet gestart kan worden. Een bootsector-virus kopieert doorgaans de inhoud van de boot-sector naar een plekje helemaal aan het eind van de schijf, en nestelt zichzelf in de eigenlijke bootsector. JMP-instructies zorgen er weer voor dat alles er op het oog normaal blijft uitzien.

Het belangrijkste verschil tussen programmavirussen en bootsector-virussen is de manier waarop ze zich verspreiden. Programma-virussen ontwaken telkens als het programma waarin ze zitten wordt gestart, bootsector-virussen als de bootsector gelezen wordt. Dat laatste gebeurt alleen wanneer de computer aangezet wordt. Jammer genoeg hebben virusschrijvers al snel ontdekt dat je beide typen heel goed kunt combineren tot wat een multipartite virus heet. Veel nieuwe virussen, waaronder Hare, zijn zo: ze besmetten zowel programma's als schijven.

Macro-virussen

Ongeveer een jaar geleden stak nog een totaal nieuw type virus de kop op: macro-virussen. Macro's zijn door de gebruiker bepaalde reeksen opdrachten binnen een programma, bijvoorbeeld een tekstverwerker, die met een druk op de knop automatisch achter elkaar worden uitgevoerd. Het zijn dus programma's, die zich met een passende invulling heel goed als virus kunnen gedragen. Bij de tekstverwerker Word en het spreadsheet-programma Excel is het mogelijk om macro's onzichtbaar in tekstbestanden of rekenbladen te bewaren. Ook is het mogelijk om een macro te maken die automatisch wordt uitgevoerd zodra een tekst of rekenblad geopend wordt. Het meest gerapporteerde Word-virus, Concept, zet alleen maar een venstertje met een 1 erin op het scherm. Laroux, het eind juli ontdekte eerste Excel-virus is een worm: het doet niets anders dan zich verspreiden.

De enige perfecte bescherming tegen virussen, wormen en Trojaanse paarden is geen computer kopen. Maar ook fervente gebruikers kunnen zich behoorlijk weren. De krachtigste wapens zijn, zoals zo vaak, zelfdiscipline en zorgvuldigheid. Zorg voor goede backups van uw gegevens (en programma's, maar daarvan heeft u uiteraard de oorspronkelijke diskettes), zodat eventuele schade zo goed, snel en goedkoop mogelijk hersteld kan worden.

Belangrijk is verder een onbesmette startdiskette. De originele die bij uw computer geleverd werd is prima. Maak die diskette meteen write protected door het schuifje open te zetten. Voorkom ook besmetting van de diskettes van nieuwe software door ze write protected te maken, voordat u ze voor het eerst in de computer stopt.

Met uitzondering van Word-documenten en Excel-rekenbladen kunnen gegevensbestanden die u op diskettes van anderen binnenkrijgt nooit kwaad, evenmin als het bekijken van de inhoud ervan of het raadplegen van de directorystructuur.

Zelfuitpakkende bestanden

Voor CD-ROM's en het Internet geldt mutatis mutandis hetzelfde: gegevensbestanden kunnen geen kwaad, maar programma's wel. Met ZIP, ARJ of op nog andere manieren ingepakte programma's kunt u ook gerust binnenlaten. In een ZIP-bestand kunnen wel besmette programma's voorkomen, maar zolang u die niet eerst uitpakt en daarna start is uw computer veilig. Een uitzondering vormen zelfuitpakkende bestanden, met de extensie EXE. Dat zijn programma's, en dus kunnen ze besmet zijn en verder besmetten.

Er zijn speciale programma's die uw computer tegen infecties proberen te beschermen, nieuwe software voor gebruik kunnen keuren, en soms besmette programma's weer kunnen schoonmaken. Zo'n programma koopt u eenmalig, maar belangrijker zijn de regelmatige updates, die zorgen dat het geheel min of meer up-to-date blijft met de verrichtingen van de virusschrijvers. Virusdetectives zoeken naar vingerafdrukken: reeksen bytes aan begin en eind van programma's, en in de bootsector, die kenmerkend zijn voor bekende virussen. Het is een gevecht tegen de bierkaai, want het eerste opsporingsprogramma was nog niet op de markt of de eerste polymorfe virussen verschenen. Polymorfe virussen versleutelen zichzelf, en doen dat bij elke besmetting op een net even andere manier. Op die manier ziet zo'n virus er elke keer anders uit, en is er geen vingerafdruk.

Gaat de computer aan virusziekten ten onder? Vast niet, daarvoor is het belang van elektronische gegevensverwerking veel te groot geworden. Het kweken van virussen lijkt nog altijd vooral een hobby van vervelende jochies met te veel jeugdpuistjes en vrije tijd te zijn. Zolang dat zo blijft, zullen er geen echt enorme problemen ontstaan. Maar wat als de politiek het virus als wapen ontdekt? De eerste beschuldiging in die zin is al geuit. In februari meldde de Daily Yomiuri, een in Japan verschijnende krant, dat de Chinese regering Amerika ervan beschuldigde opzettelijk virussen in China te verspreiden, als vergelding voor de Chinese productie van illegale software.

Symptomen van infectie

Rare geluiden en vreemde teksten of andere effecten op het scherm - er is een virus, Quake, dat af en toe even het beeld laat schudden - zijn duidelijke tekenen van infectie. Maar ook de volgende verschijnselen kunnen op de aanwezigheid van ongedierte wijzen:

Bij het opstarten meldt DOS minder intern geheugen dan er normaal is (minder dan 640KB zegt niet alles, minder dan de vorige keer is wel een aanwijzing).

Controle van het geheugen met CHKDSK, MEM, MAPMEM en dergelijke levert andere resultaten op dan normaal (wat de cijfers betekenen doet er niet toe, dat ze veranderd zijn wel).

Het starten van een programma duurt langer dan normaal.

Het indicatielampje van een diskettestation gaat branden op momenten dat daar geen reden voor is.

Programma's beginnen te haperen of weigeren plotseling dienst.

Er verdwijnen bestanden.

Er verschijnen onbekende bestanden.

Nederlandse waar

Ze zijn zeldzaam, maar ze bestaan: virussen van eigen bodem.

APPELSCHA is een ongevaarlijk polymorf virus, herkenbaar aan de tekst 'Appelscha :-)' in de code, dat zich hecht aan .COM- en .EXE-bestanden. Het is een geheugen resident programma: Als een geïnfecteerd programma wordt gestart, dan verstopt het virus zich ergens in het werkgeheugen, en blijft vandaaruit elk volgend programma dat gestart wordt besmetten, tot de computer weer uitgaat. Verder doet het niets. GRAPJE doet kwaad omdat het klungelig geprogrammeerd is. Het hecht zich aan .COM-bestanden, maar dat gaat vaak fout. Zo'n verkeerd geïnfecteerd programma is definitief onbruikbaar, en doet de computer vastlopen. Bij een goed geïnfecteerd programma verschijnt na het starten eerst 'Grapje!' op het scherm.

RAUSER.250 is een heel schadelijk geheugenresident virus dat elk .COM-programma dat gestart wordt, van de schijf wist. Zo'n programma loopt wel, maar is daarna verdwenen. Het virus parasiteert op .EXE-bestanden die gestart worden, door middel van een companion-bestand: het maakt een nieuw .COM-programma met vóór de punt dezelfde naam als het gestarte programma. Dat .COM-programma laadt eerst het virus in het geheugen en start vervolgens het oorspronkelijke .EXE-programma. Omdat .COM-alfabetisch komt voor .EXE, activeert een gebruiker die zijn programma's start door slechts de naam te typen altijd ongemerkt eerst het virus. Af en toe zet Rauser.250 de tekst 'Maaike I love you!' op het scherm.

(Bron: AVP Viral Database)