Static Application Security Testing

Static Application Security Testing

Static Application Security Testing, kurz SAST, sucht Sicherheitslücken direkt im Programmtext einer Software, ohne dass das Programm dafür laufen muss. Spezielle Prüfwerkzeuge lesen den Code wie ein Korrektor und melden Stellen, die Angreifer ausnutzen könnten.

Jedes Programm besteht aus Text, den Menschen geschrieben haben: dem Quellcode. In diesem Text stecken oft Fehler, die Angreifern später Zugang zu Daten verschaffen. Static Application Security Testing ist ein Verfahren, das genau diesen Text auf solche Fehler durchsucht. Das Wort « static », also statisch, bedeutet dabei: Das Programm wird nicht gestartet, sondern nur gelesen. Ein Prüfwerkzeug geht den Code Zeile für Zeile durch und meldet verdächtige Stellen. Der Vergleich mit einer Rechtschreibprüfung passt gut, nur dass hier nicht nach Tippfehlern gesucht wird, sondern nach Sicherheitsproblemen.

Fehler finden, solange sie noch billig sind

Eine Sicherheitslücke kostet umso mehr, je später sie auffällt. Solange der Code noch beim Entwickler liegt, ist die Korrektur eine Sache von Minuten. Ist die Software schon bei Kunden installiert, braucht es Notfall-Updates, Kommunikation und manchmal Meldungen an Behörden. Genau deshalb setzen Firmen SAST so früh wie möglich ein.

Ein zweiter Grund ist die schiere Menge. Große Anwendungen haben Millionen Zeilen Code, dazu kommen ständig neue Änderungen. Kein Team kann das von Hand vollständig prüfen. Ein Werkzeug schafft die Durchsicht in Minuten und meldet immer dieselben Fehlermuster, ohne müde zu werden.

Dazu kommt der regulatorische Druck. Wer Software für Banken, Behörden oder Medizingeräte liefert, muss oft nachweisen, dass der Code systematisch geprüft wurde. Ein SAST-Bericht ist ein solcher Nachweis. Für Anbieter von Sicherheitswerkzeugen ist das ein wachsender Markt, weshalb der Begriff auch in Wirtschaftsnachrichten auftaucht.

Wie das Werkzeug den Code liest

Zuerst zerlegt das Werkzeug den Quellcode in seine Bestandteile und baut daraus eine Art Strukturbaum. Dieser Baum zeigt, welche Teile des Programms sich gegenseitig aufrufen und wo Daten hin- und herwandern. Auf dieser Struktur sucht das Werkzeug nach bekannten Fehlermustern, ähnlich wie eine Suchfunktion nach Wörtern sucht, nur eben nach Zusammenhängen.

Ein typisches Muster ist der Weg von einer Eingabe zu einem gefährlichen Befehl. Tippt ein Nutzer etwas in ein Suchfeld, und landet dieser Text ungefiltert in einer Datenbankabfrage, kann er die Abfrage manipulieren. Solche Ketten verfolgt das Werkzeug quer durch den Code. Es warnt, wenn zwischen Eingabe und Befehl keine Prüfung liegt.

Weil das Programm dabei nie läuft, kennt das Werkzeug den echten Betriebsfall nicht. Deshalb melden SAST-Werkzeuge viele Stellen, die in der Praxis harmlos sind. Diese Fehlalarme nennt man False Positives, also falsche Treffer. Umgekehrt findet SAST manche Lücken gar nicht, etwa falsche Passwörter im Serverbetrieb. Die Ergänzung dazu heißt DAST, Dynamic Application Security Testing: Dabei wird die laufende Anwendung von außen angegriffen. Moderne Werkzeuge nutzen zusätzlich Sprachmodelle, um Fundstellen zu bewerten und Korrekturvorschläge zu formulieren.

SAST im Alltag von Entwicklern und in den Nachrichten

In vielen Firmen läuft SAST automatisch, sobald jemand Code abgibt. Die Prüfung ist Teil der sogenannten Pipeline, also der Kette automatischer Schritte vom Code bis zur fertigen Anwendung. Findet das Werkzeug etwas Schwerwiegendes, wird die Änderung blockiert. Der Entwickler bekommt eine Liste mit Zeilennummern und einer Beschreibung des Problems.

Bekannte Werkzeuge dieser Art sind SonarQube, Checkmarx, Semgrep und GitHub CodeQL. Manche sind kostenlos nutzbar, andere kosten pro Entwickler mehrere hundert Euro im Jahr. In Firmenmeldungen liest man den Begriff meist im Zusammenhang mit Übernahmen: Große Anbieter kaufen kleinere Analysefirmen, um ihr Sicherheitsangebot zu vervollständigen.

Auch als Schüler kann man das ausprobieren. Wer ein eigenes Projekt auf einer Plattform wie GitHub ablegt, kann dort eine Codeprüfung einschalten. Ein häufiger Irrtum ist übrigens, ein sauberer SAST-Bericht bedeute sichere Software. Er bedeutet nur: Diese eine Art von Prüfung hat nichts gefunden.

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.