torsdag 25 september 2008

John om studie på statiska analysverktyg

Vadim Okun presenterade en stor studie på verktyg för statisk analys av källkod.

Upplägg
De hade jämfört verktygen Fortify, Flawfinder, Grammatechs CodeSonar m.fl. (hann inte skriva av hela listan). Därtill ett företag som fick utföra manuell kodgranskning.

Verktygen kördes på sex applikationer i Java och C: Lighttpd, OpenNMS, MvnForum, DSpace, Naim, Nagios

Allmänna resultat
I allmänhet kan man säga att verktygen var ...
  • Bra på XSS, SQL-injektion, kommandoinjektion, minnesfel
  • Hyfsade på autentisering
  • Dåliga på auktorisering och problem i affärslogiken
Totalt fick man över 47.000 varningar från alla verktygen vilket begränsade exaktheten i studien. Det fanns helt enkelt inte tid att gå igenom allt. Det fanns förstås falska positiver och negativer och man försökte reda ut det någorlunda. Verktygstillverkarna fick möjlighet att kritisera deras kategorisering av falska positiver.

Skillnader Java och C
Generellt genererades tre gånger så många hög- och medelriskvarningar i C som i Java.

I Javaprogrammen var hälften av varningarna XSS och ca 15 % SQL-injektion.

I C-programmet var ca 80 % bufferproblem inkl buffer overflow.

Ingen jämförelse ...
Precis som jag trodde så vågade man inte visa hur verktygen klarade sig jämfört med varann. Studien är inte publicerad än och är inte ens tänkt att ranka verktygen pga osäkerhet i data. Det är en mycket vanlig brasklapp i sådana här sammanhang. Vi får väl se hur folk tolkar den när detaljerna når branschen.

Inga kommentarer: