Når man analyserer kode for å finne svakheter, uten å kjøre programmet, foretar man det som kalles for statisk analyse.
Det er da flere ting man som regel ønsker å sjekke:
- Typer – f.eks. forsøk på å lagre tekst i en variabel for tall. Dette blir først og fremst nødvendig hvis brukte verktøy (f.eks. IDE og kompilator) ikke undersøker selv.
- Stil. Dette er simpelthen kodestil, altså kodeformatering. Dvs. tomrom, navning, kommentarskriving, o.s.v. Noen undersøker også programstruktur og kan si ifra hvis det mangler noe. Denne type sjekking bør man helst ha med fra starten av i et prosjekt, før man begynner å skrive masse kode og tillegge seg (u)vaner.
- Lus – dvs. «bugs» på engelsk. Her sjekkes det for uønsket og ikke tiltenkt funksjonalitet, fordi dette kan åpne for sikkerhetshull.
For sistnevnte vil man som regel oppleve å få falske positiver og falske negativer, selv om analyseprogrammene er lagd av veldig proffe folk. Og man avdekker først og fremst kun generelle kodefeil som åpner for sikkerhetshull uansett hvilke omstendigheter som er gjeldende.
Å oppdage kodefeil som gir situasjonsbestemte sikkerhetshull er vanskeligere.
TBC