Myst - stock.adobe.com

Schwachstellen im Quellcode systematisch aufspüren

Static Application Security Testing (SAST) ist eine Testmethode, bei der der Quellcode analysiert wird, um Schwachstellen zu finden, die Anwendungen anfällig machen können.

SAST (Static Application Security Testing) findet schon zu einem sehr frühen Zeitpunkt im Software Development Lifecycle (SDLC) statt, weil man keine funktionierende Anwendung braucht und man keinen Code ausführen muss.

SAST hilft Entwicklern, Schwachstellen in den Anfangsphasen der Entwicklung zu identifizieren und Probleme schnell zu beheben, ohne Builds zu beschädigen oder Schwachstellen an die endgültige Version der Anwendung weiterzugeben.

SAST-Tools geben Entwicklern schon während der Programmierung Feedback in Echtzeit und helfen ihnen, Probleme zu beheben, bevor sie den Code an die nächste Phase im SDLC übergeben. Sicherheitsrelevante Probleme bleiben so im Fokus.

SAST-Tools bieten zudem eine grafische Darstellung der gefundenen Probleme, vom Auftreten bis zur Ursache. Das trägt dazu bei, sich im Code leichter zurechtzufinden. Einige Tools lokalisieren die Schwachstelle sehr genau und markieren den risikobehafteten Code.

Im Idealfall bieten SAST-Tools ausführliche Anleitungen wie man die Probleme am besten behebt und auch an welcher Stelle des Codes. Tiefgehende Sicherheitskenntnisse sind dazu von Entwicklerseite nicht notwendig.

Entwickler haben über SAST-Tools zudem die Möglichkeit, benutzerdefinierte Berichte zu erstellen. Diese lassen sich offline exportieren und über Dashboards nachverfolgen. Die organisierte Nachverfolgung aller gemeldeten Sicherheitsprobleme unterstützt Entwickler dabei, diese umgehend zu beheben.

Die Anwendung selbst weist dann nur noch minimale Probleme auf. Der gesamte Prozess dient dazu, den SDLC so sicher wie möglich zu machen.

Wichtig ist, SAST-Tools regelmäßig innerhalb der Anwendung auszuführen, zum Beispiel während täglicher/monatlicher Builds, bei jedem Einchecken von Code oder während der Code-Freigabe.

Warum SAST ein wichtiger Beitrag zur Sicherheit ist

Entwickler sind in aller Regel dem Sicherheitspersonal zahlenmäßig weit überlegen. Für Unternehmen ist es meistens schwierig, Ressourcen für Codeüberprüfungen freizuschaufeln, und sei es auch nur für einen Bruchteil der Anwendungen. Eine grundsätzliche Stärke von SAST-Tools ist ihre Fähigkeit, 100 Prozent der Codebasis zu analysieren.

Außerdem sind sie deutlich schneller als manuelle Überprüfungen. SAST-Tools scannen in wenigen Minuten Millionen von Codezeilen, und sie identifizieren automatisch kritische Schwachstellen – wie Buffer Overflows, SQL-Injection, Cross Site Scripting und andere – mit einem hohen Grad an Zuverlässigkeit. Wer statische Analysen in den SDLC integriert, erreicht oft eine dramatisch bessere Qualität beim entwickelten Code.

Welches sind die wichtigsten Schritte, um SAST effektiv einzusetzen?

Im Prinzip sind sechs einfache Schritte erforderlich, um SAST in Organisationen mit einer hohen Zahl von Anwendungen in unterschiedlichen Sprachen, Frameworks und Plattformen effizient durchzuführen.

Finalisieren des Tools. Wählen Sie ein statisches Analyse-Tool, mit dem Sie Codeüberprüfungen der Anwendungen durchführen können, die in den von Ihnen verwendeten Programmiersprachen geschrieben wurden. Das Tool sollte in der Lage sein, das der Software zugrunde liegende Framework zu verstehen.

Scan-Infrastruktur und Einsatz des Tools. Hierzu zählen die Handhabung der Lizenzbestimmungen, die Zugriffskontrolle und -autorisierung und die Beschaffung der für den Einsatz des Tools erforderlichen Ressourcen (zum Beispiel Server und Datenbanken).

Anpassen des Tools. Passen Sie das Tool an die Bedürfnisse Ihres Unternehmens an. Sie können es beispielsweise so konfigurieren, dass False Positives reduziert oder zusätzliche Schwachstellen gefunden werden, indem Sie neue Regeln schreiben oder bestehende updaten. Integrieren Sie das Tool in die Build-Umgebung, erstellen Sie Dashboards zur Nachverfolgung der Scanergebnisse und benutzerdefinierte Berichte.

Boris Cipot, Synopsys

„Im Idealfall bieten SAST-Tools ausführliche Anleitungen, wie man die Probleme am besten behebt und auch an welcher Stelle des Codes.“

Boris Cipot, Synopsys

Priorisieren und Einbinden von Anwendungen. Sobald das Tool startklar ist, binden Sie die gewünschten Anwendungen ein. Wenn die Zahl der Anwendungen besonders hoch ist, geben Sie risikoreichen Anwendungen Priorität und scannen Sie diese zuerst. Schließlich sollten alle Anwendungen eingebunden und regelmäßig gescannt werden. Die Anwendungsscans sollten Sie mit den Release-Zyklen, den täglichen oder monatlichen Builds oder Code-Check-Ins synchronisieren.

Analyse der Scanergebnisse. In diesem Schritt testen Sie die Ergebnisse des Scans, um False Positives (Falsch Positiv) auszuschließen. Wenn die Probleme identifiziert sind, sollte man sie zeitnah nachverfolgen und Ressourcen zuweisen, um sie ordnungsgemäß und rechtzeitig zu beheben.

Verwaltung und Schulung. Eine gute Verwaltung und Schulungsmaßnahmen stellen sicher, dass Ihre Entwicklungsteams die Scan-Tools richtig einsetzen. Die Sicherheits-Touchpoints der Software sollten im SDLC abgebildet und SAST in den Entwicklungs- und Bereitstellungsprozess der Anwendungen integriert werden.

Welche Tools kommen für SAST in Frage?

Spezielle Tools finden kritische Fehler und Sicherheitslücken im Code, während er geschrieben wird und bietet vollständige Pfadabdeckung. So ist sichergestellt, dass jede Codezeile und jeder potenzielle Ausführungspfad getestet werden. Bei einem fundierten Verständnis des Quellcodes und der zugrunde liegenden Frameworks ist eine äußerst genaue Analyse möglich. Entwickler müssen sich dann nicht mehr durch unzählige Falschmeldungen kämpfen.

Solche Tools lassen sich für Tausende von Entwicklern und Projekten skalieren und sind in der Lage mehr als 100 Millionen Codezeilen zu analysieren. Um den Entwicklungsprozess insgesamt zu unterstützen, sollte sich das gewählte Tool mit anderen wichtigen Tools und Systemen schnell integrieren lassen, zum Beispiel mit Lösungen zum Quellcodemanagement (SCM), Tools zur Nachverfolgung von Fehlerquellen, CI-Build-Tools und Lösungen zum Anwendungslebenszyklus-Management (ALM) sowie IDEs (integrierte Entwicklungsumgebungen).

Wie unterscheiden sich SAST und DAST?

Aufgrund der steigenden Anzahl von Sicherheitsverletzungen schenken Organisationen der Anwendungssicherheit inzwischen mehr Aufmerksamkeit. Sie wollen Schwachstellen finden und Risiken frühzeitig minimieren. Es gibt zwei Methoden Sicherheit zu testen: SAST und das Dynamic Application Security Testing (DAST). Beide Testmethoden identifizieren Sicherheitsschwachstellen, allerdings auf unterschiedliche Art und Weise.

Über den Autor:
Boris Cipot ist Senior Sales Engineer bei der Synopsys Software Integrity Group.

Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.

Erfahren Sie mehr über Softwareentwicklung

ComputerWeekly.de
Close