Přístupnostní navigace
E-application
Search Search Close
Master's Thesis
Author of thesis: Ing. Tomáš Beránek
Acad. year: 2023/2024
Supervisor: prof. Ing. Tomáš Vojnar, Ph.D.
Reviewer: Ing. Jan Fiedor, Ph.D.
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.
Static analysis, Meta Infer, deep learning, graph neural networks, false alarm detection, vulnerability detection, code property graphs, LLVM internal representation, Joern, LLVM Slicer, program slicing, graph representation construction, source code analysis, D2A dataset, graph D2A dataset, extended code property graphs.
Date of defence
17.06.2024
Result of the defence
Defended (thesis was successfully defended)
Grading
A
Process of 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.
Topics for thesis defence
Language of thesis
English
Faculty
Fakulta informačních technologií
Department
Department of Intelligent Systems
Study programme
Information Technology and Artificial Intelligence (MITAI)
Specialization
Machine Learning (NMAL)
Composition of 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)
Supervisor’s reportprof. Ing. Tomáš Vojnar, Ph.D.
Navrhuji hodnocení stupněm A s ohledem na obrovský objem odvedené kvalitní práce, za vysokou samostatnost a kreativitu projevenou studentem a v neposlední řadě také za dosažení výsledků, které mají dle mého názoru velmi dobrý publikační potenciál. Současně bych rád práci navrhnul na některé z možných ocenění za diplomovou práci.
Zadání práce považuji za výrazně nadprůměrně obtížné. Zadání kombinovalo aspekty jak z oblasti nízko-úrovňového programování, statické analýzy programů, tak i strojového učení. Student procházel dlouhou řadou kroků, u kterých nebylo jasné, jak je vhodně řešit a k jakým výsledkům povedou. Pro mě jako vedoucího to byla asi nejnapínavější práce, jakou jsem za mnoho let vedl. Jsem velmi rád, že nakonec vedla k úspěšnému zakončení.
Se zaměřením práce přišel sám student, následně se zjistilo, že o jeho práci má zájem Red Hat a jeho mateřská společnost IBM, konkrétně výzkumné centrum IBM Watson, které v dané oblasti provádí aktivní výzkum (a jedná se o špičku v oblasti AI). Komunikace s IBM bohužel ale nefungovala k naší spokojenosti, a nakonec se student rozhodl pracovat samostatně, jen s menší podporou ze strany Red Hat.
Práce byla dokončována v dostatečném předstihu na to, abych byl schopen řádně komentovat připravovanou technickou zprávu.
Práce byla prezentována na studentské soutěži Excel@FIT 2024, kde získala jedno z ocenění Odborným panelem. Obsah práce si navíc zaslouží dle mého názoru publikaci na kvalitní mezinárodní konferenci, minálně formou článku o nástroji či rozšířeného článku o nástroji. Na tom, že takovou publikaci sepíšeme, jsme se studentem již dohodli.
Student byl schopen samostatně vyhledávat, nastudovat a využít příslušné studijní zdroje, včetně výzkumných článků na jedné straně a dokumentace různých nástrojů na straně druhé.
Náročnost zadání se ukázala natolik vysoká, že se student po prvním roce systematické práce rozhodl dobrovolně prodloužit svou práci o další rok. Po celé dva roky se student své práci poctivě věnoval, chodil na pravidelné konzultace a pečlivě prezentoval své kroky, dílčí úspěchy i neúspěchy (bylo nutno projít různé slepé uličky).
Grade proposed by supervisor: A
Reviewer’s reportIng. Jan Fiedor, Ph.D.
Práce je excelentní ve všech ohledech, od detailního a precizního návrhu, přes jeho realizaci a evaluaci, až po výbornou typografickou a jazykovou úpravu technické zprávy.
Navrhuji zvážit ocenění práce.
Evaluation level: zadání splněno
Evaluation level: přesahuje obvyklé rozmezí
Práce má přes 160 normostran, do velké míry díky 50 normostran dlouhé sekci 4.1.4, jenž detailně popisuje proces adaptace hrubého (raw) ECPG grafu do formátu TFRecord podporovaného knihovnou TensorFlow. Tuto část lze pokládat za jednu z nejdůležitějších částí (a přínosů) práce a je více než opodstatněná.
Celkově nelze v práci najít snad jediný úsek textu, u kterého by šlo řící, že je zbytečný a mohl by být vynechán.
Práce má výbornou logickou strukturu, kapitoly na sebe přirozeně navazují a provázejí čtenáře od návrhu celé architektury, přes její implementaci, až k celkové evaluaci navrženého řešení. Nejrozsáhlejší části práce je kapitola 4, která tvoří asi polovinu rozsahu technické zprávy, a podrobně rozebírá návrh celé architektury. Tuto kapitolu pokládám za stežejní část práce, jelikož implementace při takto precizním návrhu je již přímočará.
Na struktuře technické zprávy hlavně oceňuji výborné provázání jednotlivých kapitol a částí textu v nich. Většina textu práce je doplněna odkazy na související části práce, což při komplexnosti návrhu a rozsahu práce velmi usnadňuje čtenáři rychle dohledat relevantní informace důležité pro pochopení daného textu.
Práce je psaná v anglickém jazyce a má výbornou typografickou úpravu. Po jazykové stránce obsahuje úplné minimum překlepů, což je při rozsahu technické zprávy impozantní.
Technická zpráva se opírá o více než 100 zdrojů, kde velkou část z nich tvoří odborné články a publikace. Student velmi pečlivě nastudoval aktuální (state of the art) řešení a využil je jako inspiraci pro vlastní navržené řešení. Všechny zdroje jsou řádně odcitovány.
Student vytvořil komplexní technické řešení, kde implementace je jen třešničkou na dortu precizního návrhu. Jako primární realizační výstup pokládám návrh celé architektury, kde dokumentací je rozsáhlá a informačně bohatá kapitola 4 technické zprávy.
Navržené řešení je plně funkční, bylo oveřeno na 3 rozsáhlých projektech (httpd, libtiff, nginx) a porovnáno s existujícími řešeními třetích stran i s LLM modelem ChatGPT4.
Navržené řešení dosahuje výsledků srovnatelných s řešeními firem jako je IBM, má tedy potenciál využití v praxi. Hlavní překážkou pro uplatnění v praxi jsou ale špatné výsledky při cross-analýze, tedy při aplikaci grafové neuronové sítě na jiný projekt, než pro který byla grafová neuronová síť natrénována. S tím ovšem mají problém i všechna ostatní existující řešení.
Jelikož všechna stávající řešení nejsou veřejně přístupná, je navržené řešení vhodnou open-source alternativou. Navíc díky detailnímu popisu architektury lze toto řešení jednoduše rozšiřovat a dalé s ním experimentovat. Lze ho tedy s výhodou využít pro řešení problému s cross-analýzou.
Evaluation level: obtížnější zadání
Práce se zabývá aplikací grafových neuronových sítí (GNN) na problém klasifikace chyb nahlášených nástrojem pro statickou analýzu Meta Infer. Cílem je určit pravděpodobnost s jakou je náhlášená chyba reálnou chybou (true positive) a umožnit tak lépe odfiltrovat falešné chyby (false positives) seřazením hlášení podle pravděpodobnosti, že jsou reálnou chybou.
Ke splnění cíle práce bylo potřeba nastudovat velké množství technologií a navrhnout komplexní architekturu propojující tyto technologie do funkčního řešení. Nestačilo navíc jen propojit jednotlivé technologie, významnou částí práce bylo navrhnout proces transformace zdrojových kódů analyzovaných nástrojem Meta Infer do podoby Extended Code Property grafů (ECPG) vhodných jako vstup pro grafové neuronové sítě.
Grade proposed by reviewer: A
Responsibility: Mgr. et Mgr. Hana Odstrčilová