PenetrationstestTill Oberbeckmann5 min Lesezeit

Statische Code-Analyse: Frühphasig Sicherheitslücken identifizieren und beheben

Mit einer statischen Code-Analyse lässt sich Quellcode bereits vor dem Kompilieren auf viele Schwachstellen untersuchen. Wie funktioniert das?

Inhaltsverzeichnis

Keine Software ist frei von Fehlern. In der praktischen Anwendung werden im Bugs, Bedienfehler und Sicherheitsfehler auftreten, die die Entwickler nicht bedacht haben. Aber mit einer statischen Code-Analyse lässt sich Quellcode bereits vor dem Kompilieren auf viele Schwachstellen untersuchen. Wie das funktioniert, welche Analysetools Sie brauchen und warum Sie trotzdem nicht auf manuelle Analyse verzichten können, erklären wir in diesem Artikel.

Was ist eine statische Code-Analyse?

Bei der statischen Code-Analyse werden Schwachstellen innerhalb des Quellcodes mit verschiedenen Techniken identifiziert. Dies geschieht im Rahmen des Code-Reviews während der Implementierung, also bevor der Code zu einem lauffähigen Programm kompiliert wurde. Die statische Code-Analyse ist ein wichtiges Werkzeug innerhalb eines Security Development Lifecycle. Zu diesem frühen Zeitpunkt ist die Fehlerbehebung per statischer Code-Analyse relativ günstig, weil Anpassungen problemloser gemacht werden können als im laufenden Betrieb.

Techniken in der statischen Code-Analyse

Bei der statischen Code-Analyse kommen verschiedene Techniken zum Einsatz. In der Praxis vereinen Tools all diese Techniken in einer Oberfläche und sind so in der Lage, einen Quellcode automatisch auf eine Vielzahl von Sicherheitslücken gleichzeitig zu überprüfen.

  • Die Datenflussanalyse simuliert eine laufende Software, um darüber relevante Daten zu sammeln.
  • Bei der Taint-Analyse werden benutzergesteuerte Variablen zu Funktionen zurückverfolgt, die Sicherheitslücken darstellen könnten. So könnte ein Angreifer als Nutzer bestimmte Daten über die Variable übergeben und sich so Zugang zu anderen Bereichen der Anwendung verschaffen.
  • Die lexikalische Analyse transformiert die Syntax des Codes in Informationstokens. Dadurch wird die Syntax für das Tool verständlich. Diese Informationstokens werden dann mit Entwicklungsstandards abgeglichen und manipuliert, um so Schwachstellen in zu identifizieren.

Tools für die statische Code-Analyse

Für die statische Code-Analyse stehen für jede Programmiersprache Tools zur Verfügung, die die verschiedenen Techniken der Code-Analyse in einer Oberfläche vereinen. Theoretisch wäre eine vollautomatische statische Code-Analyse denkbar. Sie würde nicht nur die Arbeit des Sicherheitsanalysten ersetzen, sondern auch ein sehr hohes Maß an Sicherheit bieten. In der Praxis sind Tools aber noch nicht in der Lage, jede Art von Sicherheitslücke zu identifizieren, die in Software heute vorkommen. Sie ersetzen nicht die manuelle Arbeit eines Analysten, helfen ihm aber, systematisch den Code zu überprüfen und effizienter Schwachstellen zu finden.

Java-Quellcode mit Spotbugs und Find Security Bugs analysieren

Mit Spotbugs untersuchen Sie den Quellcode von Anwendungen, die in Java geschrieben wurden. Das kostenlos erhältliche Tool untersucht nach der Installation den Code auf über 400 verschiedene bekannte Bugs und Sicherheitslücken.Spotbugs
Basierend auf Spot Bugs wurde Find Security Bugs entwickelt, um auch Java-Web-Applikationen auf Bugs untersuchen zu können. Find Security Bugs ist kostenlos zum Download erhältlich und findet aktuell 138 verschiedene Sicherheitslücken. Zudem ist das Tool als Plug-in für alle gängigen Entwicklungsumgebungen verfügen.

Mit FlawFinder C/C++-Quellcode auf Sicherheitslücken überprüfen

Der FlawFinder ist das Tool zur statischen Analyse von Code in C und C++. Sie untersucht den Code auf mögliche Sicherheitsrisiken und gibt diese an den Nutzer aus. Dabei sortiert FlawFinder die Sicherheitsrisiken nach dem Risikolevel. FlawFinder ist in Python geschrieben und kann nach der Installation per pip installiert werden. Mit einem einzigen Befehl durchsucht das Tool dann den Ordner mit dem Quellcode.

Syntax von PHP-Anwendungen mit dem PHP Code Sniffer überprüfen

PHP Code Sniffer ist ein kostenloses Open-Source-Skript, mit dem Sie den Code ihrer PHP-Applikation mit dem PEAR-Standard abgleichen und Fehler automatisch korrigieren können. Installation und Anwendung sind simpel. PHP Code Sniffer ist mit den meisten Editoren kompatibel und kann als Add-on hinzugefügt werden.

Statische Code-Analyse: ein unverzichtbares Mittel für mehr Sicherheit und höhere Software-Qualität

Die statische Code-Analyse bietet Entwicklern die Chance, bereits vor der lauffähigen Version einer Software relevante Sicherheitsprobleme zu identifizieren und proaktiv zu beheben. Für jede Programmiersprache gibt es Tools, die den Code automatisch auf verschiedene Schwachstellen untersuchen. Die Code-Analyse ist allerdings kein Allheilmittel. Sie finden nicht alle Sicherheitslücken, sodass die manuelle Arbeit eines Sicherheitsanalysten notwendig bleibt.

Kontakt

Neugierig? Überzeugt? Interessiert?

Vereinbaren Sie ein unverbindliches Erstgespräch mit einem unserer Vertriebsmitarbeiter. Nutzen Sie den folgenden Link, um einen Termin auszuwählen: