Navigation und Service

Machine Learning in the Context of Static Application Security Testing - ML-SAST

Überblick über den aktuellen Stand in Forschung und Technik

Im Projekt Machine Learning in the Context of Static Application Security Testing (ML-SAST) untersucht das BSI, wie Verfahren des maschinellen Lernens genutzt werden können, um Methoden der statischen Codeanalyse zu verbessern.

In der Softwareentwicklung stellt die statische Programmcodeanalyse neben der dynamischen Programmcodeanalyse eine wichtige Technik dar, um zum Beispiel redundanten Code, Verletzungen von Programmierrichtlinien oder Fehler in Treiberdateien aufzudecken. Sie ermöglicht ein automatisiertes Auffinden von potentiellen Schwachstellen im Programmcode durch statische Analyseverfahren. Ein aktuelles Anliegen ist es, bereits während der Programmierung Sicherheitslücken für verdeckte Angriffsmöglichkeiten, wie Pufferüberläufe, aufzudecken und somit einen Security-by-Design-Ansatz zu verwirklichen.

Das durch die die neusta mobile solutions GmbH durchgeführte Projekt gliedert sich hierbei in zwei Teile. Im ersten Teil wird der aktuelle Stand der Forschung in den Bereichen des Machine Learning, der statischen Codeanalyse und deren Kombination untersucht. Flankierend wurden Experteninterviews geführt, um die Nachteile der aktuellen Ansätze zu erfassen, und geeignete Use-Cases zu definieren. Schließlich werden vorhandene ML-SAST-Ansätze anhand der Use-Cases und einer neu entwickelten Metrik miteinander verglichen und ein Vorschlag für die Entwicklung eines neuartigen ML-SAST-Ansatzes vorgestellt.

Der zweite Teil der Studie befasst sich mit dem im Projekt entwickelten Prototypen. Im Unterschied zu bisherigen ML-basierten Tools zur Quellcodeanalyse arbeitet dieses statt mit Quelltext mit dem Kontrollflussgraphen (CFG) des Codes und beruht auf einem Clustering-Verfahren, anhand dessen der Code in vulnerable und sichere Codesegmente unterschieden wird. Die Software beinhaltet weiterhin eine neuartige Toolchain um den Kontrollflussgraphen aus dem Quelltext zu generieren und den generierten Graphen per Embedding in ein für Machine Learning nutzbares Format zu überführen. Im Studiendokument wird zuerst der Aufbau und die neuartigen im Prototyp verwendeten Methoden beschrieben, und anschließend dieser anhand der im ersten Teil vorgestellten Testmethoden evaluiert.

Download:

Machine Learning in the Context of Static Application Security Testing - ML-SAST - final study