Evaluating Reliability of Static Analysis Results Using Machine Learning

but.committeeprof. 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.defenceStudent 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.jazykangličtina (English)
but.programInformační technologie a umělá inteligencecs
but.resultpráce byla úspěšně obhájenacs
dc.contributor.advisorVojnar, Tomášen
dc.contributor.authorBeránek, Tomášen
dc.contributor.refereeFiedor, Janen
dc.date.created2024cs
dc.description.abstractStatický 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.abstractThe 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.markAcs
dc.identifier.citationBERÁ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.other157228cs
dc.identifier.urihttp://hdl.handle.net/11012/248580
dc.language.isoencs
dc.publisherVysoké učení technické v Brně. Fakulta informačních technologiícs
dc.rightsStandardní licenční smlouva - přístup k plnému textu bez omezenícs
dc.subjectStatická analýzaen
dc.subjectMeta Inferen
dc.subjecthluboké učeníen
dc.subjectgrafové neuronové sítěen
dc.subjectdetekce falešných hlášeníen
dc.subjectdetekce zranitelnostíen
dc.subjectgrafy vlastností kóduen
dc.subjectinterní reprezentace LLVMen
dc.subjectJoernen
dc.subjectLLVM Sliceren
dc.subjectprořezávání programůen
dc.subjectkonstrukce grafové reprezentaceen
dc.subjectanalýza zdrojového kóduen
dc.subjectdataset D2Aen
dc.subjectgrafový D2Aen
dc.subjectrozšířené grafy vlastností kódu.en
dc.subjectStatic analysiscs
dc.subjectMeta Infercs
dc.subjectdeep learningcs
dc.subjectgraph neural networkscs
dc.subjectfalse alarm detectioncs
dc.subjectvulnerability detectioncs
dc.subjectcode property graphscs
dc.subjectLLVM internal representationcs
dc.subjectJoerncs
dc.subjectLLVM Slicercs
dc.subjectprogram slicingcs
dc.subjectgraph representation constructioncs
dc.subjectsource code analysiscs
dc.subjectD2A datasetcs
dc.subjectgraph D2A datasetcs
dc.subjectextended code property graphs.cs
dc.titleEvaluating Reliability of Static Analysis Results Using Machine Learningen
dc.title.alternativeUrčení spolehlivosti výsledků statické analýzy pomocí strojového učenícs
dc.typeTextcs
dc.type.drivermasterThesisen
dc.type.evskpdiplomová prácecs
dcterms.dateAccepted2024-06-17cs
dcterms.modified2024-06-17-11:08:54cs
eprints.affiliatedInstitution.facultyFakulta informačních technologiícs
sync.item.dbid157228en
sync.item.dbtypeZPen
sync.item.insts2025.03.26 15:38:07en
sync.item.modts2025.01.15 11:52:13en
thesis.disciplineStrojové učenícs
thesis.grantorVysoké učení technické v Brně. Fakulta informačních technologií. Ústav inteligentních systémůcs
thesis.levelInženýrskýcs
thesis.nameIng.cs
Files
Original bundle
Now showing 1 - 2 of 2
Loading...
Thumbnail Image
Name:
final-thesis.pdf
Size:
4.64 MB
Format:
Adobe Portable Document Format
Description:
file final-thesis.pdf
Loading...
Thumbnail Image
Name:
review_157228.html
Size:
14.84 KB
Format:
Hypertext Markup Language
Description:
file review_157228.html
Collections