10 januari 2008
Coverity heeft een veiligheidsgarantie afgegeven voor elf open source projecten in hun scan-project voor open source software-projecten. Het project van Coverity wordt gesubsidieerd door de Amerikaanse overheid. In samenwerking met de Stanford University en Symantec voert Coverity testen uit in het zogenaamde Open Source Hardening Project. Doelstelling van het project is aan te tonen dat ook open source software een verantwoorde keuze is en dat het gebruik van deze software een 'business acceptable'-oplossing is, die volledig gelijk staat aan 'closed source'-software. De scan-site is vanaf 2006 in de lucht en is gebaseerd op Coverity's eigen commerciele Prevent-software. Het onderzoek werkt met verschillende veiligheidslagen (een 'ladder'); de keuze van de te scannen projecten wordt door de projectorganisatie zelf gemaakt. Alle softwarepakketten komen binnen op 'rung 0' (sport 0 van de ladder) en worden vervolgens regel voor regel gescand voor bugs. Nadat de bugs zijn getraceerd wordt het open source project in staat gesteld de bugs te herstellen, waarna een nieuwe scan wordt uitgevoerd. Coverity levert ook tools voor het analyseren van de code aan de ontwikkelaars. Het bedrijf stelt dat binnen het project dagelijks 50 miljoen regels worden gescand van meer dan 250 producten. Volgens het bedrijf zijn al 7000 bugs gevonden en verholpen. Als een product voldoende getest is op 'rung 1' te halen kunnen de ontwikkelaars zelf toegang krijgen tot de gegevens. Ze kunnen verder meepraten over de resultaten van de scans en krijgen extra analysetools van Coverity ter beschikking.
Elf software-producten krijgen nu een rung 2-score toegekend. Dit betekent dat deze software zo goed als bug-vrij is. Dat is althans de gist van de boodschap van David Maxwell van Coverity op de blog van het scanproject. De elf projecten zijn Amanda, NTP, OpenPAM, OpenVPN, Overdose, Perl, PHP, Postfix, Python, Samba en TCL. De rung 2-classificatie moet volgens Coverity als een soort kwaliteitscertificaat dienst gaan doen, waarmee kan worden getoond dat het gaat om zeer betrouwbare software. De promotie tot rung 2 betekent ook dat de ontwikkelaars tools voor statische analyse ter beschikking krijgen en dat de scans zelf worden uitgevoerd met een nieuwere versie van de Prevent-software. Grote namen als Firefox en Linux zelf zitten nog op rung 1. Dat is niet verwonderlijk: ze hebben respectievelijk 1,8 miljoen en 3,6 miljoen regels code. Perl, op rung 2 geplaatst, telt 'maar' een half miljoen regels code. Gemiddeld werd één fout gevonden op de duizend regels code, waar Firefox 0,162 scoort en de Linux kernel 1,27. Ook software als Apache, Gnome en FreeBSD behoort nog tot de 86 andere producten, die nog op rung 1 staan. Het project van Coverity begon als een initiatief van het Department of Homeland Security om de innovaties van het bedrijf te gebruiken om software veiliger te maken. 'We have a commercial code analysis product that we sell', zo zegt Maxwell. 'The product, Prevent, is the foundation of the Scan project. … We have an agile development process, so we have a new build about every six weeks. Maxwell stelde dat de 'gepromoveerde' softwareprojecten beloond worden. 'The version of Prevent in use for Rung 2 provides the projects with a new user interface, with significant usability improvements, and tracking and management functions. The analysis engine has been updated with 18 months worth of developer effort, and builds a more accurate Software DNA Map than ever before. As a result, it can identify additional defects, not previously found'. Andere softwareprojecten worden binnenkort naar een hogere 'rung' opgewaardeerd. 'Many of the open-source developers had not had access to something like our software before', zo vervolgt Maxwell. 'They've probably had dynamic analysis tools and unit testing … but probably not static analysis tools for their open-source projects'. 86 Projecten zitten nog op Rung 1, wat wil zeggen dat men nog bezig is met het repareren van de geconstateerde fouten. Tenslotte heeft Coverity een lijst van 173 projecten op Rung 0. Dat wil zeggen dat die al wel aangemeld zijn voor een scan, maar dat de betrokken ontwikkelaars zich nog niet bij Coverity gemeld hebben voor deelname aan het verbeterprogramma. Van deze projecten worden geen foutpercentages bekend gemaakt.