Overslaan en naar de inhoud gaan

Pc-geheugen kan best een manager gebruiken

Pc-geheugen is tegenwoordig goedkoop; een gigabyte hoeft geen 100 euro meer te kosten. Maar toch zijn de meeste programma’s die op de pc draaien geschreven alsof de MB’s kostbaar zijn en springen ze dus zuinig om met de geheugenruimte. Té zuinig, leidt computerwetenschapper Emery Berger van de Universiteit van Massachusetts af uit het nog regelmatig crashen van software.
Maatschappij
Shutterstock
Shutterstock

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.

Lees dit PRO artikel gratis

Maak een gratis account aan en geniet van alle voordelen:

  • Toegang tot 3 PRO artikelen per maand
  • Inclusief CTO interviews, podcasts, digitale specials en whitepapers
  • Blijf up-to-date over de laatste ontwikkelingen in en rond tech

Bevestig jouw e-mailadres

We hebben de bevestigingsmail naar %email% gestuurd.

Geen bevestigingsmail ontvangen? Controleer je spam folder. Niet in de spam, klik dan hier om een account aan te maken.

Er is iets mis gegaan

Helaas konden we op dit moment geen account voor je aanmaken. Probeer het later nog eens.

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in

Maak een gratis account aan en geniet van alle voordelen:

Heb je al een account? Log in