Niet-eens-zo-nieuwe chip is immuun voor virussen

Herbert Blankesteijn

De laatste processors van chipmaker AMD en toekomstige chips van Intel hebben een snufje dat veel virussen bij voorbaat de voet dwarszet. Dit snufje werkt alléén met Windows XP Service Pack 2. Dat is een pakket aanvullende software dat Microsoft weggeeft om Windows XP te wapenen tegen plagen als virussen, wormen en spyware. AMD noemt het Enhanced Virus Protection (EVP), Intel spreekt van Execute Disable (XD), en om het makkelijk te maken heeft Microsoft de aanduiding Data Execution Prevention (DEP) bedacht.

Waar gaat het om? De truc die in virussen vaak wordt toegepast en die door EVP/XD/DEP onschadelijk wordt gemaakt, is de buffer overflow. Buffers zijn plaatsen in het computergeheugen waar gegevens tijdelijk worden opgeslagen. Elk programma stikt ervan. De programmeur moet per geval opgeven hoe groot de buffer moet zijn; dat is nodig omdat anders het hele geheugen daarvoor gereserveerd moet worden. In plaats daarvan reserveert de computer de opgegeven maximale inhoud, zodat het geheugen voorbij deze grens voor andere doeleinden beschikbaar is.

Maar dan moet de programmeur overal in het programma zorgen dat deze grens voor de buffer niet wordt overschreden. Heel, heel vaak hebben de programmeurs van Microsoft (en ook van andere bedrijven die geen populair doelwit van virusschrijvers zijn) deze voorzorgsmaatregel niet genomen. Wanneer een hacker op een slimme manier de buffer vult en daarna doorgaat met vullen, kan het teveel aan data op een geheugenlokatie komen die voor een ander doel is bestemd. Andere delen van het programma kunnen dan onbruikbare gegevens krijgen, maar het is ook mogelijk dat de extra data door de computer worden beschouwd als een programma op zichzelf. Een virusschrijver kan ervoor zorgen dat het extra deel inderdaad een functionerend programma is met een kwaadaardige werking. In Juli 2000 werd een dergelijke fout ontdekt in Outlook: een slim geschreven onderwerpregel voor een mailtje kon door de pc als programma worden opgevat. Omdat een onderwerpregel altijd wordt weergegeven, was het niet eens nodig dat het mailtje werd gelezen om het virus te activeren. De fout is intussen door Microsoft hersteld.

EVP/XD/DEP maakt het de processor mogelijk onderscheid te maken tussen geheugengebieden die gereserveerd zijn voor programma's en gebieden waar alleen data staan. Dan is het betrekkelijk eenvoudig te voorkomen dat gegevens op een data-lokatie worden beschouwd en behandeld als programmacode. De buffer overflow als zodanig wordt zo niet voorkomen; de catastrofale gevolgen wel. Wel is het zo dat software en hardware op elkaar moeten zijn afgestemd. Niet alleen de processor moet met EVP/XD/DEP overweg kunnen; hetzelfde geldt voor het besturingssysteem. Service Pack 2 maakt Windows XP klaar voor EVP/XD/DEP.

Wie het afgelopen half jaar een computer met een Athlon 64, Sempron, of Opteron-processor van AMD heeft gekocht mag zich gelukkig prijzen. AMD levert sinds februari een voor EVP voorbereide chip. Het wachten was alleen op de ondersteuning van Microsoft. Die is er inmiddels voor het Engelse taalgebied, voor Nederlandse versies dus over een dikke week. Downloaden, installeren, en op je huidige computer heb je een belangrijk risico geëlimineerd. De eerste processors van Intel met XD komen pas eind september. Om daarvan te profiteren moet dus eerst een nieuwe pc of op zijn minst een nieuwe processor worden gekocht. (Uitzondering wat Intel betreft is de Itanium, een processor voor dure, gespecialiseerde bedrijfscomputers die al enige tijd op de markt is.)

Windows XP SP 2 is binnenkort te downloaden op http://windowsupdate.microsoft.com. Wie een cd prefereert kan deze eind volgende week gratis bestellen op www.microsoft.nl/beveiliging.