Sicherheitslücken mit SAST-Tools früh erkennen
Wegen immer kürzerer Releasezyklen können Sicherheitsteams mit manuellen Codereviews nicht mehr Schritt halten. Open-Source-SAST-Tools versprechen Abhilfe.
- Timo Schäpe
Die Releasezyklen verkürzen sich kontinuierlich: Wo früher quartalsweise deployt wurde, sind heute tägliche oder stündliche Releases keine Seltenheit mehr – während gleichzeitig die Anforderungen an die Sicherheit wachsen. Wie soll man Code auf Sicherheitslücken prüfen, der sich schneller ändert, als man ihn lesen kann? Eine Lösung liegt in der Automatisierung von Securitytests direkt im Entwicklungsprozess. Hier setzen Tools für Static Application Security Testing (SAST) an. Anders als Dynamic Application Security Testing (DAST), das laufende Anwendungen von außen angreift und testet, analysiert SAST den Quellcode direkt und ist ein White-Box-Test.
Der Vorteil ist, dass Sicherheitslücken bereits während der Entwicklung erkannt werden und keine laufende Instanz der Anwendung nötig ist. SAST-Tests können nicht nur in einer CI/CD-Pipeline laufen, sondern sind auch auf Entwicklungsmaschinen oder in der IDE durchführbar. Die Integration von SAST in CI/CD-Pipelines ermöglicht es, jeden Pull Request und Commit automatisch auf Sicherheitsprobleme zu überprüfen. Entwickler erhalten schnelles Feedback – idealerweise noch in ihrer IDE, spätestens aber während des Build-Prozesses. Das kontinuierliche Überprüfen verhindert, dass unsicherer Code in den Main-Branch gelangt.
- Weil die Anforderungen an die IT-Sicherheit gewachsen sind und Code sich durch verkürzte Releasezyklen immer schneller ändert, ist es sinnvoll, Securitytests zu automatisieren.
- SAST-Tools (Static Application Security Testing) analysieren Code während des Entwicklungsprozesses und fangen Sicherheitslücken früh ab.
- Semgrep und Opengrep sind Open Source und wenden eine moderne Herangehensweise an, die sich von der herkömmlichen SAST-Methodik abhebt: Anstelle von Datenflussanalysen nutzen sie Pattern Matching, das ein semantisches Verständnis des Codes ermöglicht.
SAST-Tools durchsuchen Code systematisch nach bekannten Schwachstellenmustern. Ein typisches Beispiel ist SQL Injection: Sind Benutzereingaben ungefiltert in SQL-Querys eingebaut, öffnet das Angreifern Tür und Tor zur Datenbank. Ein SAST-Tool erkennt solche Muster im Code. Ein Beispiel in Python zeigt das erste Listing.
Das war die Leseprobe unseres heise-Plus-Artikels "Sicherheitslücken mit SAST-Tools früh erkennen". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.