Techopedia erklärt die Quellcodeanalyse
Die Quellcodeanalyse ist im Grunde ein automatisiertes Code-Debugging. Ziel ist es, Fehler und Fehler zu finden, die für einen Programmierer möglicherweise nicht offensichtlich sind. Es soll Fehler wie mögliche Pufferüberläufe oder unordentliche Verwendung von Zeigern und Missbrauch von Speicherbereinigungsfunktionen finden, die alle von einem Hacker ausgenutzt werden können.
Codeanalysatoren arbeiten mit Regeln, die angeben, wonach gesucht werden soll. Mit zu wenig Präzision kann ein Analysator zu viele Fehlalarme ausspucken und den Benutzer mit nutzlosen Warnungen überfluten, während zu viel Präzision zu lange dauern kann.
Es gibt zwei Arten von Analysatoren:
- Interprozedural – Erkennt Muster von einer Funktion zur nächsten, und diese Muster werden korreliert, sodass der Analysator ein Modell erstellen und Ausführungspfade simulieren kann.
- Intraprocedural – Konzentriert sich auf den Mustervergleich und hängt davon ab, nach welchen Arten von Mustern der Benutzer sucht.
Interprozedurale Analysatoren sind moderner und komplexer. Gute Beispiele hierfür sind Coverity, Fortify und Microsofts eigene zentralisierte Toolbox.