Evaluating Reliability of Static Analysis Results Using Machine Learning
but.committee | prof. Dr. Ing. Jan Černocký (předseda) doc. Ing. Lukáš Burget, Ph.D. (člen) doc. Mgr. Lukáš Holík, Ph.D. (člen) doc. RNDr. Pavel Smrž, Ph.D. (člen) doc. Ing. Vítězslav Beran, Ph.D. (člen) Ing. František Grézl, Ph.D. (člen) | cs |
but.defence | Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A. | cs |
but.jazyk | angličtina (English) | |
but.program | Informační technologie a umělá inteligence | cs |
but.result | práce byla úspěšně obhájena | cs |
dc.contributor.advisor | Vojnar, Tomáš | en |
dc.contributor.author | Beránek, Tomáš | en |
dc.contributor.referee | Fiedor, Jan | en |
dc.date.created | 2024 | cs |
dc.description.abstract | 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. | en |
dc.description.abstract | 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. | cs |
dc.description.mark | A | cs |
dc.identifier.citation | BERÁNEK, T. Evaluating Reliability of Static Analysis Results Using Machine Learning [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2024. | cs |
dc.identifier.other | 157228 | cs |
dc.identifier.uri | http://hdl.handle.net/11012/248580 | |
dc.language.iso | en | cs |
dc.publisher | Vysoké učení technické v Brně. Fakulta informačních technologií | cs |
dc.rights | Standardní licenční smlouva - přístup k plnému textu bez omezení | cs |
dc.subject | Statická analýza | en |
dc.subject | Meta Infer | en |
dc.subject | hluboké učení | en |
dc.subject | grafové neuronové sítě | en |
dc.subject | detekce falešných hlášení | en |
dc.subject | detekce zranitelností | en |
dc.subject | grafy vlastností kódu | en |
dc.subject | interní reprezentace LLVM | en |
dc.subject | Joern | en |
dc.subject | LLVM Slicer | en |
dc.subject | prořezávání programů | en |
dc.subject | konstrukce grafové reprezentace | en |
dc.subject | analýza zdrojového kódu | en |
dc.subject | dataset D2A | en |
dc.subject | grafový D2A | en |
dc.subject | rozšířené grafy vlastností kódu. | en |
dc.subject | Static analysis | cs |
dc.subject | Meta Infer | cs |
dc.subject | deep learning | cs |
dc.subject | graph neural networks | cs |
dc.subject | false alarm detection | cs |
dc.subject | vulnerability detection | cs |
dc.subject | code property graphs | cs |
dc.subject | LLVM internal representation | cs |
dc.subject | Joern | cs |
dc.subject | LLVM Slicer | cs |
dc.subject | program slicing | cs |
dc.subject | graph representation construction | cs |
dc.subject | source code analysis | cs |
dc.subject | D2A dataset | cs |
dc.subject | graph D2A dataset | cs |
dc.subject | extended code property graphs. | cs |
dc.title | Evaluating Reliability of Static Analysis Results Using Machine Learning | en |
dc.title.alternative | Určení spolehlivosti výsledků statické analýzy pomocí strojového učení | cs |
dc.type | Text | cs |
dc.type.driver | masterThesis | en |
dc.type.evskp | diplomová práce | cs |
dcterms.dateAccepted | 2024-06-17 | cs |
dcterms.modified | 2024-06-17-11:08:54 | cs |
eprints.affiliatedInstitution.faculty | Fakulta informačních technologií | cs |
sync.item.dbid | 157228 | en |
sync.item.dbtype | ZP | en |
sync.item.insts | 2025.03.26 15:38:07 | en |
sync.item.modts | 2025.01.15 11:52:13 | en |
thesis.discipline | Strojové učení | cs |
thesis.grantor | Vysoké učení technické v Brně. Fakulta informačních technologií. Ústav inteligentních systémů | cs |
thesis.level | Inženýrský | cs |
thesis.name | Ing. | cs |