Lek toont zwakte open source

30 mei 2008
Een recent geopenbaard lek in de implementatie van de OpenSSL-beveiliging door Debian-ontwikkelaars blijkt veel systemen onveilig te hebben gemaakt. Een inmiddels verspreide patch repareert het lek, maar nog niet de schade die het sinds mei 2006 heeft aangericht.

Een ongelukkige aanpassing van twee regels code in OpenSSL door ontwikkelaars van de Linux-variant Debian heeft de random nummergenerator die daarin is verwerkt veel minder willekeurig gemaakt dan de bedoeling is – er worden nog maar 32.768 (ofwel 215) verschillende encryptiesleutels mee aangemaakt. Die zijn daardoor voorspelbaar genoeg geworden voor een ‘brute force attack’ van een paar uur op een stevige computer. De hacker HD Moore kreeg dat al een dag nadat het probleem bekend werd voor elkaar.

Door de fout kunnen ook de sleutels voor andere beveiligingsmechanismen gecompromitteerd zijn, zoals OpenSSH, OpenVPN, DNSSEC en X.509 – veelal middelen die worden gebruikt om de communicatie van computers met het internet te beveiligen. De besturingssystemen die door de fout zijn getroffen, zijn Debian 4.0 en de gangbare Ubuntu-versies 7.04, 7.10 en 8.04.

De patch die Debian op 13 mei heeft uitgebracht, repareert het probleem in de nummergenerator wel, maar daarmee blijven nog steeds miljoenen sleutels en beveiligingscertificaten in omloop die met het Debian OpenSSL-pakket uit de verschillende Debian-distributies automatisch zijn aangemaakt. Die sleutels zijn ook terug te vinden op computers waarop niet Debian OpenSSL is geïnstalleerd. De sleutels – die op zichzelf niet als zwak te herkennen zijn omdat ze de gebruikelijke bitlengte hebben – moeten opnieuw worden gegenereerd, geïnstalleerd en gedistribueerd. Ook moeten beheerders bepaalde beveiligingscertificaten opnieuw aanmaken en valideren.

Gartner ziet het lek als meer dan een beveiligingsincident. De manier waarop de fout is ontstaan, toont een structureel probleem in de manier waarop verschillende groepen in de open-sourcewereld met elkaar communiceren, stelt analist John Pescatore. De Debian-ontwikkelaars hadden namelijk wel contact gezocht met de gebruikelijke programmeurs die zich met de OpenSSL-code bezighouden, omdat zij dachten een geheugenlek te hebben achterhaald. Toen daarop geen adequate reactie kwam, hebben ze zelf dat geheugenlek ‘gerepareerd’, met de inmiddels bekende gevolgen.

Pescatore betoogt dat procescommunicatie in open-sourceprojecten over de volle linie verbetering behoeft. “Leveranciers hebben al vaak open-sourcepakketten aangepast zonder zelfs maar contact op te nemen met de oorspronkelijke ontwikkelaars. Dat verhoogt zowel de kans op het introduceren van nieuwe fouten als de kans op problemen met reparaties voor andere gebreken die door de oorspronkelijke ontwikkelaars worden verricht.” Omdat zowel commerciële als open-sourcebedrijven vaak open-source­modules van derden opnemen in hun software, zijn de risico’s aanzienlijk, vindt Pescatore.

Open-sourceontwikkelaar Guido van Rossum, bekend als Python-ontwikkelaar en tegenwoordig werkzaam voor Google, relativeert enigszins. “Dit is inderdaad een PR-probleem van de eerste orde voor Debian en Ubuntu. Voor de open-sourcewereld als geheel zie ik het voornamelijk als een groeistuip: dit soort dingen gebeurt nu eenmaal, en naarmate een organisatie groter wordt, is het onvermijdelijk dat er soms een echt grote misser plaatsvindt – soms wordt de Chinese ambassade in Belgrado gebombardeerd, soms wordt er een chip met defecte floating-pointdeling verkocht, en soms sluipt er een ernstige fout in open-sourcesoftware.”

Een positief aspect vindt Van Rossum echter dat in de open-sourcewereld geen enkele distributie een monopolie heeft. “Andere distributies, bijvoorbeeld Red Hat, hebben dit probleem niet. Vergelijk dat met hoe dit zou hebben uitgepakt als het Microsoft was geweest.”


Open source wordt steeds beter
Het jongste Coverity Scan Report meldt structurele verbetering in de kwaliteit van 250 populaire open-sourceproducten. Het aantal defecten daarin blijft afnemen. In twee jaar tijd zijn 8547 fouten in de software verholpen. Sinds het begin van het project is het aantal fouten per duizend regels code daardoor met 16 procent afgenomen, blijkt uit de scan. De 250 projecten vertoonden in 2006 nog een foutdichtheid van 0,30, ruwweg één fout per 3333 regels code. In de jongste scan ligt dat getal op 0,25, of pakweg één fout per 4000 regels code.

Het aantal projecten dat het hoogste niveau heeft bereikt, door Coverity aangeduid met Rung 2, is sinds de introductie ervan in januari niet gestegen. Dat staat nog steeds op elf. Het gaat daarbij om Amanda, NTP, OpenPAM, Overdose, Perl, PHP, Postfix, Python, Samba,TCL, maar ook het nu in opspraak geraakte OpenVPN.

Coverity analyseert sinds twee jaar het aantal fouten in open-sourcesoftware in samenwerking met de Amerikaanse overheid, met het expliciete doel om de kwaliteit van die software te verbeteren. In totaal tellen de 250 projecten 55 miljoen regels code. Die worden door Coverity – deels of geheel – bij herhaling de maat genomen met zijn automatische inspectietools. In totaal zijn 10 miljard regels code geanalyseerd in 14.238 inspectieruns.
 
Lees het hele artikel
Je kunt dit artikel lezen nadat je bent ingelogd. Ben je nieuw bij AG Connect, registreer je dan gratis!

Registreren

  • Direct toegang tot AGConnect.nl
  • Dagelijks een AGConnect nieuwsbrief
  • 30 dagen onbeperkte toegang tot AGConnect.nl

Ben je abonnee, maar heb je nog geen account? Laat de klantenservice je terugbellen!