Definition Static Application Security Testing | SAST Was ist SAST?

Von Dipl.-Ing. (FH) Stefan Luber 3 min Lesedauer

Static Application Security Testing (SAST) untersucht den Quellcode von Anwendungen automatisiert auf Sicherheitslücken und -schwachstellen. Die Tests sind bereits in einem frühen Stadium des Softwareentwicklungsprozesses durchführbar und benötigen kein Kompilieren oder Ausführen des Quellcodes. Es existieren zahlreiche Tools für unterschiedliche Programmiersprachen und Entwicklungsplattformen, die Tests nach definierten Regeln durchführen.

Static Application Security Testing (SAST) ist die automatisierte Prüfung des Quellcodes auf Sicherheitslücken und -schwachstellen mittels statischer Anwendungssicherheitstests.(Bild:  gemeinfrei /  Pixabay)
Static Application Security Testing (SAST) ist die automatisierte Prüfung des Quellcodes auf Sicherheitslücken und -schwachstellen mittels statischer Anwendungssicherheitstests.
(Bild: gemeinfrei / Pixabay)

SAST ist das Akronym für Static Application Security Testing. Die deutsche Übersetzung lautet statische Anwendungssicherheitstests. Manchmal wird SAST auch als White Box Testing oder statische Code-Analyse beziehungsweise statische Programmanalyse bezeichnet. Static Application Security Testing untersucht den Quellcode einer Anwendung automatisiert auf Sicherheitslücken und Sicherheitsschwachstellen. Statische Anwendungssicherheitstests sind ein wichtiger Bestandteil der Anwendungssicherheit. Sie werden häufig zusammen mit weiteren Testverfahren wie DAST (Dynamic Application Security Testing) und IAST (Interactive Application Security Testing) zur Bereitstellung sicherer Anwendungen angewandt. Für das Static Application Security Testing kommen spezielle SAST-Tools zum Einsatz, die mit der jeweiligen Programmiersprache oder -plattform kompatibel sein müssen. Die Tools testen den Code automatisiert nach zuvor definierten Regeln. Problematischer Code wird identifiziert. In der Regel liefern die Tools detaillierte Reports zu den Testergebnissen und geben Hinweise und Empfehlungen, wie sich gefundene Schwachstellen beheben lassen.

Prinzipielle Funktionsweise des Static Application Security Testing

Da es sich beim Static Application Security Testing um ein White-Box-Verfahren handelt, muss der Code für die Tests sichtbar und offengelegt sein. Die Tests werden direkt auf dem Programmcode ausgeführt. Der Code wird nicht kompiliert oder ausgeführt. Für das Testen ist es nicht notwendig, dass der Programmcode schon ausführbar ist. Daher kann SAST bereits in einem frühen Softwareentwicklungsstadium zum Einsatz kommen. Die für die Tests verwendeten Tools prüfen den Code nach zuvor definierten Regeln. Diese Regeln lassen sich benutzerdefiniert selbst aufstellen. Häufig nutzen die Tools aber Aufstellungen von Codierungsrichtlinien und typischen Sicherheitslücken oder problematischen Codebestandteilen, wie sie beispielsweise vom Open Web Application Security Project (OWASP), vom Computer Emergency Response Team (CERT), von der CWE-Community (Common Weakness Enumeration), der US-amerikanischen National Vulnerability Database oder von der Motor Industry Software Reliability Association (MISRA) und anderen Institutionen und Projekten bereitgestellt werden. Teilweise laufen mehrere SAST-Tools über den gleichen Programmcode. Die Tools scannen den Code mit ihren jeweiligen Regelsätzen und finden problematische Codebestandteile, die beispielsweise das Einschleusen von Malware oder ein unbemerktes Interagieren mit anderen Anwendungen oder Services ermöglichen. Als Ergebnis liefern die Tools Reports mit erkannten Problemen und geben Hinweise und Empfehlungen zur Behebung gefundener Schwachstellen.

Abgrenzung von SAST zu Dynamic und Interactive Application Security Testing

Bei den Anwendungssicherheitstests lassen sich verschiedene Verfahren unterscheiden. Neben dem Static Application Security Testing gibt es noch Verfahren wie das Dynamic Application Security Testing (DAST) oder das Interactive Application Security Testing (IAST). Während SAST direkt den Programmcode analysiert, untersucht DAST das Verhalten einer ausgeführten Anwendung. Dynamic Application Security Testing hat keinen Zugriff auf den Programmcode und betrachtet die Anwendung als eine Black Box. Das Verfahren wird daher auch als Black-Box-Test bezeichnet. DAST sucht von außen nach Sicherheitslücken und Schwachstellen, indem externe Verhaltensweisen oder Angriffe simuliert werden. Da die Anwendungen in ihrer Laufzeitumgebung geprüft werden, ist DAST erst in einer späteren Phase des Entwicklungsprozesses anwendbar. Zu testende Anwendungen müssen zumindest in Teilen bereits lauffähig sein. Die eingesetzten DAST-Tools sind von der für die zu prüfende Anwendung genutzten Programmiersprache unabhängig.

Interactive Application Security Testing (IAST) ist eine Art Mischform aus SAST und DAST. Die Anwendungen werden in ihrer Laufzeitumgebung getestet, gleichzeitig haben IAST-Tools zugriff auf den Programmcode. Die Testing-Tools simulieren externe Verhaltensweisen wie Angriffe oder Userinteraktionen und beobachten das Verhalten der Anwendung in Echtzeit. Ein von außen beim Testen erkanntes Problem lässt sich durch den Zugriff der zuvor implementierten Sensoren auf den Programmcode direkt mit bestimmten Codezeilen und Programmierblöcken Verbindung bringen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Stärken und Schwächen von SAST

Zu den Stärken des Static Application Security Testing zählen:

  • schon in einer frühen Phase des Softwareentwicklungsprozesses einsetzbar
  • ermöglicht ein frühzeitiges, kostengünstiges Beheben von Sicherheitslücken
  • die Tests lassen sich automatisiert ausführen und berücksichtigen unterschiedliche Programmierrichtlinien und -standards
  • Prüfregeln lassen sich auch selbst definieren
  • für die Tests muss die Anwendung noch nicht lauffähig sein
  • SAST liefert Hinweise und Empfehlungen zur Behebung der Schwachstellen
  • die komplette Codebasis wird geprüft

Als Schwächen von SAST gelten:

  • umfangreiche Prüfungen produzieren eine Fülle von Output, der von den Prüfern oder Entwicklern gesichtet werden muss
  • die Tests liefern unter Umständen falsch positive Ergebnisse
  • SAST-Tools müssen mit den verwendeten Programmiersprachen kompatibel sein
  • SAST ersetzt keine nachlaufenden Sicherheitstests beispielsweise per DAST oder IAST

(ID:49671254)