TUM Logo

Improving Precision of Rule-based SAST Tools by assessing their results using a Graph Neural Network

Improving Precision of Rule-based SAST Tools by assessing their results using a Graph Neural Network

Supervisor(s): Hannah Wester, Daniel Kowatsch
Status: finished
Topic: Others
Author: Andreas Frings
Submission: 2023-04-17
Type of Thesis: Masterthesis
Thesis topic in co-operation with the Fraunhofer Institute for Applied and Integrated Security AISEC, Garching

Description

Abstract:

This thesis presents PIG, a program to improve the precision of the Static Application Security Testing (SAST) tool Woodpecker.

One weakness of SAST tools is the high number of false positives they report. PIG reevaluates the results produced by those tools.

It generates the Code Property Graph (CPG) of the analyzed code and converts the findings of Woodpecker to new finding-nodes.

These are appended to those nodes in the CPG, that represent the potentially vulnerable code. After that the modified graph is used

as an input for a Heterogeneous Graph Neural Network to classify the finding-nodes as true positives or false positives. The goal is

to train a Graph Neural Network (GNN) that can reliably classify the findings of Woodpecker.

As training data for the GNN the Juliet Test Suite was used because of its wide variety of vulnerabilities and clear labeling of vulnerable lines.

The setup and the graph generation was more time-consuming than anticipated. Therefore, only a simple GNN was implemented and the

optimization is left for future work.



Zusammenfassung:

Diese Arbeit präsentiert PIG, ein Programm zur Verbesserung der Präzision des Static Application Security Testing (SAST) Tools Woodpecker.

Eine Schwäche von SAST tools ist die große Anzahl an gemeldeten False Positives. PIG reevaluiert die erzeugten Reports dieses Tools. Es

generiert den Code Property Graph (CPG) des analysierten Codes und wandelt die Ergebnisse von Woodpecker in neue Finding-Knoten um.

Diese werden dann an die Knoten des CPGs angehängt, die den potentiell verwundbaren Code darstellen. Danach wird der modifizierte Graph

als Input für ein heterogenes neuronales Graphennetzwerk verwendet, um die Finding-Knoten als True Positives oder als False Positives zu

klassifizieren. Das Ziel ist es ein GNN zu trainineren, das die Findings von Woodpecker zuverlässig klassifizieren kann.

Als Trainingsdaten für das GNN wurde die Juliet Test Suite verwendet, da sie eine große Vielfalt an Schwachstellen und eine klare Kennzeichnung

der verwundbaren Zeilen enthält.

Das Setup und die Graphengenerierung waren zeitaufwändiger als erwartet. Deswegen wurde nur ein einfaches GNN implementiert und die

Optimierung wird für zukünftige Arbeiten zurückgestellt.