Original title:
Evaluating Reliability of Static Analysis Results Using Machine Learning
Translated title:
Určení spolehlivosti výsledků statické analýzy pomocí strojového učení
Authors:
Beránek, Tomáš ; Fiedor, Jan (referee) ; Vojnar, Tomáš (advisor) Document type: Master’s theses
Year:
2024
Language:
eng Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[eng][cze]
Statický analyzátor Meta Infer je nástrojem pro hledání různých typů chyb ve zdrojovém kódu. Jeho výsledky však obsahují více než 95 % falešných hlášení. Tato teze navrhuje řešení, které řadí hlášení od Meta Inferu pomocí grafových neuronových sítí (GNN) podle pravděpodobnosti, že se jedná o skutečnou chybu, a redukuje tak problém s falešnými hlášeními. Systém se skládá z trénovací části, která převádí datovou sadu D2A – sadu roztříděných hlášení z Meta Inferu – na rozšířené grafy vlastností kódu (ECPG) a z modelů GNN natrénovaných na ECPG grafech. Výsledky experimentů ukazují, že vytvořené modely GNN mohou konkurovat a v některých případech dokonce překonat existující řešení vyvíjené silnými průmyslovými týmy. Tato existující řešení mají navíc uzavřený zdrojový kód, a tak řešení vytvořené v této tezi poskytuje slibnou alternativu s otevřeným zdrojovým kódem.
The Meta Infer static analyzer is a tool for detecting various types of errors in source code. However, its results contain more than 95 % of false alarms. This thesis proposes a solution that ranks Infer’s reports using Graph Neural Networks (GNNs) based on the likelihood of being a real error, thus mitigating the issue with false alarms. The system consists of a training pipeline, which converts the D2A dataset – a set of labeled reports from Meta Infer – into Extended Code Property Graphs (ECPGs) and GNN models trained on these ECPGs. Experimental results indicate that the developed GNN models can match, and in some cases even surpass, existing models developed by strong industrial teams. Moreover, these existing solutions are closed source, making the solution developed in this thesis a promising open-source alternative.
Keywords:
analýza zdrojového kódu; dataset D2A; detekce falešných hlášení; detekce zranitelností; grafové neuronové sítě; grafový D2A; grafy vlastností kódu; hluboké učení; interní reprezentace LLVM; Joern; konstrukce grafové reprezentace; LLVM Slicer; Meta Infer; prořezávání programů; rozšířené grafy vlastností kódu.; Statická analýza; code property graphs; D2A dataset; deep learning; extended code property graphs.; false alarm detection; graph D2A dataset; graph neural networks; graph representation construction; Joern; LLVM internal representation; LLVM Slicer; Meta Infer; program slicing; source code analysis; Static analysis; vulnerability detection
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: https://hdl.handle.net/11012/248580