Uitbreken uit de gevangenis van Java

door Jannigje Gerritzen

In 1988 sloeg de Internet-worm toe. Student Robert Tappan Morris uit Cornell verloor controle over een programma dat gebruik maakte van alom bekende fouten in de netwerksoftware van UNIX. Het programma was een ingenieus virus, dat zichzelf verspreidde door bij naburige computers in te breken. Deze braken vervolgens weer bij al hun buren in. Op deze manier zou het programma alle kwetsbare computers op het Internet vinden. Het programma moest bij elke computer maar één keer inbreken, maar de beveiliging werkte niet. Binnen enkele uren waren veel computers van het Internet overbelast, doordat kopieën van de Internet-worm bij ze binnendrongen.

Dit voorbeeld illustreert dat het Internet niet optimaal beveiligd is. Nu nog steeds bevat het net gaten, waardoor hackers zich heen kunnen wurmen om systemen binnen te dringen. Bij elk nieuw stuk netwerksoftware komen er potentiële netwerkfouten bij. Zo ook bij Java van Sun, dat onder andere in de Netscape-browser ingebouwd is.
Wietse Venema is verbonden aan de faculteit Wiskunde & Informatica. Hij is gespecialiseerd in beveiligingskwesties. Venema: ‘Java is een Internet-applicatie die gebruikt kan worden om World-Wide-Web-pagina’s tot leven te brengen, met bijvoorbeeld bewegende beelden of spelletjes. Java haalt een programmaatje - een applet - op van een web-pagina en draait dit op de eigen computer. Het is natuurlijk alom bekend dat het ophalen van onbekende programma’s risico’s met zich meebrengt. Omdat het programma op de eigen machine draait kan het alles doen wat de gebruiker ook kan. Iedereen kan WWW-pagina’s aanbieden op het net en de identiteit van de aanbieder is moeilijk met honderd procent zekerheid vast te stellen. Dit biedt uitstekende mogelijkheden om kwaadaardige programma’s te verspreiden. Om dit te voorkomen hebben de makers van Java een soort softwaregevangenis om het programma heengebouwd. De overgehaalde applets draaien in deze gevangenis en kunnen niet zonder meer bij de bestanden van de gebruiker. De applets zijn aan de handen geboeid en geblinddoekt. Op deze manier wordt vertrouwelijke informatie, zoals bijvoorbeeld het password, beschermd tegen kwaadaardige programma’s.’

SATAN
Maar is die gevangenis wel zo veilig? Aan de Princeton University in de Verenigde Staten, een gerenommeerde universiteit op computergebied, gingen medewerkers op zoek naar gaten tussen de tralies van Java. Zij schreven een kwaadaardig applet, dat volgens hen verbindingen kon maken achter Firewalls, webvirussen kon verspreiden en SATAN, een programma dat gaten in de beveiliging van een systeem aanwijst, kon draaien om computers te kraken. Binnen enkele dagen hadden Sun en Netscape de gaten in hun programma’s gedicht. Een andere fout maakte het mogelijk dat een applet elk commando kon uitvoeren dat de gebruiker tot zijn beschikking had. Een slim geschreven applet kon zo naar believen documenten lezen, wijzigen en wissen. Op het World Wide Web is een collectie applets beschikbaar op http://www.math.gatech.edu/~mladue/HostileApplets.html. Deze applets vallen in de categorie ‘pesterijen’. Ze stoppen de browser door alle rekentijd van de processor op te eisen, zetten allerlei onzinnige windows op het scherm, of vallen de gebruiker lastig met geluiden.
Venema: ‘Deze laatste applets zijn natuurlijk vrij flauw. Bijvoorbeeld een Java-programmaatje dat heel druk niets doet en alle rekentijd opgebruikt die je aan andere dingen zou kunnen besteden. Daar zou je bij de gevangenis iets aan kunnen doen door de tijd eerlijk te verdelen tussen processen. Je hebt twee soorten kwaadaardige applets. Je hebt natuurlijk de pesterijen. Daarbij sluit je Netscape af en is het probleem opgelost. Als het een echte kwaadaardig applet is, in de zin dat hij uit de gevangenis weet te breken en bij de persoonlijke gegevens weet te komen, dan heb je een serieus probleem. Als je bijvoorbeeld je pc gebruikt voor giroverkeer, kan het applet dat óók via je computer doen. Behalve uit de gevangenis breken kan een applet ook een Trojaans Paard bevatten. Het applet kan zich anders voordoen dan hij is en de gebruiker om de tuin leiden. Het is op zich wel grappig dat vroeger de hackers probeerden in te breken in een computer of programma. Nu moeten ze juist uitbreken uit de gevangenis.’

Kwetsbaar
Venema vervolgt: ‘Op het moment dat er een fout in de beveiliging van een programma zoals Netscape ontdekt wordt, maakt de producent snel een nieuwe versie van het programma. Maar de oudere versies blijven kwetsbaar en gebruikers van die versies lopen nog steeds gevaar. Er is altijd een groep die het bericht over de nieuwe versie gemist heeft. Ook is het zo dat programma’s steeds omvangrijker worden en er verschijnen nieuwe versies met extra toepassingen. Computerprogramma’s zoals Netscape gaan ongeveer een jaar mee. Er geldt: hoe groter het programma, hoe meer gaten in de beveiliging het bevat. Bij nieuwe toepassingen komen er ook weer nieuwe mogelijkheden voor fouten bij. Het is dus voor de programmeurs een kwestie van gaten dichten èn dicht houden.’ Lopen we nu allemaal een enorm gevaar om door een Java-applet gehackt te worden? Venema lacht: ‘Om uit de gevangenis te kunnen breken moet je de gaten kennen. Mensen die dit soort gaten kunnen vinden zijn heel schaars en een gewild doelwit van hackers. Als een gat gevonden wordt lekt dat vaak heel snel uit en wordt het gedicht. Ik vermoed dat het risico om door een kwaadaardig applet aangevallen te worden niet zo heel groot is. Als je limonade met gif in de winkels verkoopt, word je snel opgespoord en opgepakt. Een kwaadaardig applet kan op soortgelijke manier opgespoord worden. Maar als je een bepaald persoon op het oog hebt kun je gericht aanvallen met een applet. Je schrijft iets wat die persoon zeker interessant zal vinden, zet het op een webpagina waar hij vaak komt en je hebt hem. Naderhand kun je het applet weer weghalen en niemand die je vindt.’

Safe seks
Gebruikers kunnen zich wel wapenen tegen kwaadaardige applets. Het is alleen net als met seks: de beste safe seks is helemaal geen seks. Venema: ‘Je kunt Java het beste uitzetten. In Netscape staat het standaard aan. Wat je ook kan doen is een extra pc alleen voor Netscape neerzetten, een machine die je opoffert dus. Op deze manier zitten sommige organisaties ook aan het net. Er is overigens ook nog Javascript. Dat is een uitbreiding op HTML die door Netscape zelf bedacht is. Ook hiermee kun je kleine programma’s schrijven. Maar Javascript is heel link, want het bevat in tegenstelling tot Java geen gevangenis. Programma’s kunnen dus zomaar overal bij. Ze kunnen bijvoorbeeld windows openen die zo klein zijn dat je ze niet ziet en die windows laten spioneren op je computer. Het zit standaard in Netscape en het staat standaard aan. Dat moet je dus zeker uitzetten.’