Geautomatiseerd auditvoorbeeld: flawfinder

flawfinder is een algemene scanner voor het vinden en rapporteren van potentiële lekken in C- en C++-broncode.

flawfinder uitvoeren

flawfinder uitvoeren is gewoon een kwestie van het commando op te geven met de map- of bestandsnamen om te onderzoeken. Als een mapnaam wordt opgegeven, dan zal het alle geldige broncodebestanden die het vindt in de map behandelen.

Naast een lijst van bestanden of mappen, kunnen er ook verschillende opties worden meegegeven om het gedrag van de hulpmiddelen te sturen.

Elke optie wordt uitgelegd in de manpagina, maar de volgende opties zijn bijzonder nuttig en zullen worden gebruikt in ons voorbeeld:

Om als uitvoer een HTML-bestand te krijgen die de resultaten van ons programma bevat en enkel rekening houdend met de "hoge risico" functies zouden we het volgende uitvoeren:

flawfinder --html --context --minlevel=4 test.c > output.html

De Resultaten

flawfinder uitvoeren tegen onze voorbeeldcode geeft volgende uitvoer:


Examining test.c

Number of hits = 4
Number of Lines Analyzed = 48 in 0.53 seconds (1392 lines/second)


De uitvoer begrijpen

Zoals de uitvoer van RATS is dit rapport zeer gemakkelijk te lezen. Het toont duidelijk de functies die gedetecteerd zijn als potentieel gevaarlijk met een beschrijving van het probleem.

Contextinformatie laten zien is ook zeer nuttig omdat het onmiddellijk de aandacht kan trekken op de belangrijke gebieden of andere rapporten afwijzen omdat ze ongeldig zijn.

De analyse van onze voorbeeldcode is tamelijk intelligent, in de zin dat het niet waarschuwt bij elk gebruik van de lastige strcpy-functie - enkel bij diegene die het gevaarlijk acht.

Op deze manier is het geslaagd om alle mogelijke lekken te tonen zonder valse positieven.


Terug naar het auditproject | Terug naar de auditvoorbeeldenpagina