Pc-geheugen kan best een manager gebruiken
Programmeurs dimensioneren de aan deelprocessen (en dus ook wachtwoorden) toe te wijzen geheugenruimte daarbij ook zo voorspelbaar dat de kans dat hackers zwakke plekken in de software vinden groter is.
Berger heeft ter remedie een programma ontwikkeld dat het pc-geheugen en de applicaties daarin beschermt tegen crashes en tegen inbraken waarbij verkeerd gedimensioneerde buffers (die tot een ‘buffer overflow’ leiden) worden misbruikt. Hij heeft zijn programma, dat hij DieHard heeft gedoopt, ontwikkeld met subsidies van Microsoft (30.000 dollar), Intel (30.000 dollar) en vooral de National Science Foundation (300.000 dollar).
Efficiëntie
De zuinigheid van programmeurs is uit efficiëntieoverwegingen ontstaan in een tijdperk dat geheugen duur was en processorcapaciteit schaars. Maar de spaarzaamheid veroorzaakt veel van de huidige buffer-overflowproblemen. Verscheidene veiligheidlekken die door CERT worden gerapporteerd zijn simpelweg fouten in het geheugenbeheer, met name als er in C of C++ is geprogrammeerd. DieHard kan de problemen verhelpen door dat geheugenbeheer op de computer over te nemen van de lopende programmatuur.
Crashes zijn overigens aan meer fouten te wijten dan alleen overlopende buffers. Informatie die door een programma tijdelijk op een plek in het geheugen moet worden gezet, kan in conflict raken met andere informatie. Soms vechten data om dezelfde plek, soms is ruimte onnodig als ‘bezet’ aangemerkt en soms beïnvloeden ze elkaar. DieHard lost dat op door die data, zoals plaatjes, wachtwoorden en tal van andere soorten gegevens die software even wil ‘onthouden’ steeds op wisselende plekken in het fysieke geheugen weg te schrijven en zelf te onthouden waar dat gebeurt.
Schaduwdraaien
Desgewenst kan DieHard op de achtergrond ook nog ‘reserveversies’ van programma’s mee laten draaien die het werk naadloos overnemen zodra de eerste versie alsnog dreigt te crashen. DieHard neemt uiteraard wel extra geheugenruimte in beslag: 50 á 75 procent – als de ‘reserveapplicatie’-optie niet wordt gebruikt.
DieHard is niet helemaal een nieuw idee. Windows Vista, OpenBSD en Linux maken al gebruik van verschillende vormen van ‘adress space randomization’. Volgens Emery gaan die technieken lang niet zo ver als DieHard, omdat ze alleen grove stukken geheugenruimte herschikken.
Emery heeft DieHard ontwikkeld voor Linux en Windows. Op het Windows-platform wordt momenteel alleen Mozilla’s Firefox-browser beschermd door DieHard. Aan uitbreiding van de bescherming van Windows-applicaties wordt gewerkt, zegt Emery in zijn FAQ, maar ontwikkelaars die DieHard in hun software verwerken kunnen elke applicatie die ze bouwen de gewilde robuustheid meegeven.