Waarom Anti Virus technologie niet werkt

Dit is een vertaling van mijn oorspronkelijk artikel uit 2007, het origineel (Engelstalig) vind je hier.

Het klinkt bijna als heiligschennis om dit te zeggen omdat de meeste mensen geloven dat anti-virussoftware de belangrijkste en zelfs enige oplossing voor het probleem is (ik zie zelfs steeds vaker de vraag naar AV software op Linux opduiken terwijl er bijna geen Linux virussen bestaan).

Elke stukje data dat over het internet reist wordt steeds opnieuw gescand.  Een simpel E-Mailtje wordt meestal gescand op de PC van de verzender, daarna op de mailserver van de verzender, op de mailserver van de ontvanger en nog maar eens op de PC van de ontvanger.  Maar ondanks deze ogenschijnlijk agressieve aanpak blijven virussen PC's infecteren en schade veroorzaken.  Wat kan er dan mis zijn?

Om hierop te antwoorden moeten we het probleem grondig bekijken en ook de geschiedenis die erachter schuilgaat.

Het probleem

Ergens begin jaren 90 begon ik een computer te gebruiken, mijn eerste systeem werd door McAfee AV beschermd.  In die dagen kwam een typische virus-besmetting door besmette floppies te gebruiken (je nam je disk van school mee naar huis en 'bingo').  Belangrijk punt is dat infecties zich heel langzaam verspreidden en dagen, weken tot maanden nodig hadden om een behoorlijk aantal systemen te besmetten.

Af en toe moest je dan je AV handtekeningen updaten om de laatste virussen te stoppen.  Het belangrijkste punt is dat besmettingen eerder uitzonderlijk waren en een fysiek pad naar een ander systeem nodig hadden (de besmette floppy).  CD-ROMS waren het eerste nieuwe medium en werden vaker uitgewisseld, maar het principe bleef onveranderd.

Maar op een gure winterdag ontstonden de internet-infecties die we vandaag kennen.  Waar de floppy-virussen weken tot maanden nodig hadden om te verspreiden bracht internet de zogenaamde Zero-day aanvallen met zich mee waar infecties in een paar uren honderduizenden tot miljoenen systemen konden overnemen.

De reden voor die bliksemsnelle infecties kan gezocht worden in iets dat het kwetsbaarheidsvenster (of window of vulnerability) wordt genoememd.  Dit venster is de tijd tussen de start van een infectie to de tijd dat de AV handtekeningen beschikbaar en geinstalleerd zijn.

Vandaag is deze tijdspanne typisch een dag tot meerdere dagen lang en in tussentijd ben je volledig kwetsbaar tot de update geinstalleerd kan worden.  Wordt je echter geinfecteerd voor het uitkomen van de update dan zorgen sommige aanvallen ervoor dat je AV software uitgeschakeld of omzeild wordt waardoor je de infectie ook na de update niet kan vaststellen of uitschakelen.

Om dingen nog erger te maken gebruiken veel virussen uit het nieuwe millenium vaak een zogenaamd multi-vector aanvalspatroon.  Dit betekent dat ze in plaats van 1 enkel pad naar je computer (zoals een besmette E-mail) ook nog via een aantal andere wegen proberen om op je computer te geraken.  Virussen zoals het ondertussen legendarische  Nimda virus besmetten computers via E-mails, open Netwerk shares, Internet Explorer gaten, IIS en zelfs achterdeurtjes die door andere virussen werden opengezet.  Als slechts 1 van die paden op je computer niet beschermd was  dan wordt je PC overgenomen.  Nimda had slechts 22 minuten nodig om een massa infectie op het internet te veroorzaken, ook op PC's die beschermd werden door AV software.

Internet wormen zijn misschien wel de norm vandaag, maar computers worden ook nog besmet door de traditionele kanalen.  Dit bleek nog maar eens uit de massale infectie die Sony's malware (op sommige van hun audio CD's om kopieren tegen te gaan) heeft verooraakt. Ik heb daar hier uitgebreid over geschreven.   Het verspreidingspatroon hiervan was opnieuw erg traag (meer dan een jaar).  Het Sony-virus was echter interessant om een andere reden, het legde namelijk nog een ander groot probleem bloot met AV software want wat bleek nu, AV fabricanten waren traag en zelfs onwillig om te reageren omdat dit virus geinstallerd werd als kopieerbeveiliging.  Dit roept de vragen op naar de agenda van zulke bedrijven.  Is deze het beschermen van je PC of gaat het enkel om geld verdienen, ook al offer je daarvoor de veiligheid van je klanten op door sommige infecties door te laten (van andere firma's, overheden, ...)?

Het onderliggende probleem

De meeste virussen en wormen vandaag gebruiken fouten en gaten in het onderliggende systeem (voornamelijk MS Windows) om een computer over te nemen of ze overtuigen gebruikers om hun zelf uit te voeren (E-mail virussen) door zich voor te doen als iets anders.  Ze kunnen dit enkel met deze mate van success doen als de onderliggende architectuur niet veilig ontworpen is.

Dit is ook zo voor virussen die de mens achter de machine aanvallen door je ertoe aan te zetten een besmet attachment te openen omdat het onderliggende systeem niet zou mogen toelaten dat ze, eens uitgevoerd, dit niveau van controle over het systeem verkrijgen.

Om de zaken nog erger te maken falen de meeste programma's en systemen open in plaats van gesloten.  Dat wil zeggen dat je bij een fout niet altijd een bepaalde functionaliteit verliest maar wel de bescherming erboven. 

Anti-Virus software opereert boven een systeem en probeert virussen te onderscheppen voor ze controle overnemen over dat systeem.  Maar om dit te doen heeft het zelf erg veel privileges nodig om te kunnen werken (zoals handtekeningen van het internet downloaden, maar ook toegang tot harde schijven, CD-ROMS en dergelijke.  Dit maakt dat dit type van software ook zelf een doelwit van een aanval kan worden, met als opbrengst totale controle over het systeem.

Een echte oplossing

Om het anti-virus probleem effectief aan te pakken moeten we 1 stap voor geraken op de 'bad guys'.  Dit betekent in de eerste plaats dat systemen ontworpen moeten worden met veiligheid als een integraal deel ervan en deze veiligheidssystemen moeten gesloten falen in plaats van open (denk maar aan een electronisch slot).

Daarnaast moet bescherming in de laagste niveaus van onze systemen ingebakken worden en moet dit blijven werken als er problemen in dat laag niveau worden gevonden.  Beveiligingssystemen moeten het principe van least privilege afdwingen.  Sommigen van deze opvattingen vind je vandaag al terug in nieuwere Linux distributies maar vaak gaan ze nog niet ver genoeg.

Interessante projecten zijn onder meer: SELinux, AppArmor and PaX.

Er is ook een heel erg interessant stuk research gedaan naar fout-tollerante systemen door Andrew S. Tanenbaumvan de vrije univeristeit Amsterdam, het resultaat daarvan is het  Minix OS,  een Unix achtig OS met een echte micro-kernel.

Misschien valt het je op dat ik MS Windows niet vermeldt, vooral om dat op dat vlak weinig tot geen vooruitgang wordt geboekt.  Op het eerste zicht ging Vista het iets beter doen maar de wijzigingen gaan niet ver genoeg en de meeste voordelen werden door een slechte implementatie toch verloren.  Daarnaast is er Vista's logge omvang en complexiteit met nog een DRM laag die anderen tegen jou beschremd in plaats van omgekeerd nog een extra risico geworden.

Practische tips die je vandaag kan gebruiken

De belangrijkste stap die je kan nemen als je MS Windows gebruikt is om hiermee te stoppen en over te stappen op een alternatief zoals GNU/Linux of FreeBSD.

GNU/Linux distributies zoals Ubuntu zijn erg veilig en toch gebruiksvriendelijk.  Ik begrijp echter dat niet iedereen dat nu al kan of wil doen.

GNU/Linux is over het algemeen veiliger dan Windows om verschillende redenen.  Het werd ontworpen als een multi-user systeem voor netwerkgebruik waar deze functies slechts naderhand op Windows zijn gebouwd.

Daarnaast komt GNU/Linux (en andere Free Software systemen) van een gemeenschap in plaats van een enkele commerciele entiteit en die gemeenschap heeft een andere agenda dan commerciele firmas.

Als je niet kan of wil oversteken naar een veiliger alternatief zijn er toch nog een aantal zaken die je kan doen om je Windows systeem een pak veiliger te maken:

  • Gebruik nooit Outlook voor E-Mail maar kies voor Thunderbird of Eudora.  Outlook heeft teveel features die extensies verbergen of scripts uitvoeren zonder je toestemming.
  • Gebruik nooit Internet Explorer om te surfen maar kies voor FireFoxof Opera.  Dezelfde fouten als die Outlook onveilig maken werden ook in Internet Explorere herhaald.
  • Maak aparte gebruikers aan voor het beheer en gewoon gebruik van je PC
  • Installeer regelmatig updates, niet alleen voor windows maar voor alle programmas die je gebruikt
  • Koop een hardware router/firewall (zoals die van Linksys).  Configureer die correct of laat iemand dat voor je doen.
  • Open geen attachments van mensen die je niet kent, draai geen programma's die je hebt gedownload van websites die je niet 200% vertrouwd.
  • Hou in je achterhoofd altijd dat het Internet geen veilige omgeving is en dat gegevens zoals het From veld in Emails of buddy namen in MSN/ICQ/Gtalk vervalst kunnen worden met weinig moeite.  Systemen zoals PGP kunnen je helpen maar dan moet dit op beide kanten van de communicatie gebruikt worden.
  • Maak BACKUPS zodat je geen gegevens kwijtgeraakt als er toch iets gebeurd.

Geschreven door  Guy Van Sanden en origineel verschenen op http://nocturn.vsbnet.be
Licentie: Creative Commons Attribution-NonCommercial-ShareAlike