Symbolické automaty v analýze programů s řetězci

but.committeeprof. Ing. Martin Drahanský, Ph.D. (předseda) doc. Ing. Ondřej Ryšavý, Ph.D. (místopředseda) doc. Ing. Vladimír Janoušek, Ph.D. (člen) Ing. Petr Matoušek, Ph.D., M.A. (člen) Mgr. Ing. Pavel Očenášek, Ph.D. (člen) Ing. Libor Polčák, 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ázku 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 B. Otázky u obhajoby: Jaké jsou časy běhů jednotlivých experimentů? Zkoušel jste i jiný již existující jazyk? Co by obnášelo nasazení do reálného IDS? Jak byly vybírány testovací sady?cs
but.jazykangličtina (English)
but.programInformační technologiecs
but.resultpráce byla úspěšně obhájenacs
dc.contributor.advisorVojnar, Tomášen
dc.contributor.authorKotoun, Michalen
dc.contributor.refereeRogalewicz, Adamen
dc.date.accessioned2020-08-29T01:59:51Z
dc.date.available2020-08-29T01:59:51Z
dc.date.created2020cs
dc.description.abstractMnoho aplikací přijímá, odesílá a zpracovává data v textové podobě. Správné a bezpečné zpracování těchto dat je typicky zajištěno tzv. ošetřením řetězců (string sanitization). Pomocí metod formální verifikace je možné analyzovat takovéto operace s řetězci a prověřit, zda jsou správně navržené či implementované.  Naším cílem je vytvořit obecný nástroj pro analýzu systémů jejichž konfigurace lze kódovat pomocí slov z vhodné abecedy, a také jeho specializaci pro analýzu programů pracujících s řetězci. Nejprve jsou popsaný konečné automaty a převodníky a poté různé třídy a podtřídy symbolických převodníků, zejména pak jejich omezení. Na základě těchto informací je pak pro použití v analýze programů navržen nový typ symbolických převodníků. Dále je popsán regulární model checking, speciálně pak jeho variantu založenou na abstrakci automatů, tzv. ARMC, u kterého je známo že dokáže velmi úspěšně překonat problém stavové exploze u automatů a umožňuje nám tzv. dosáhnout pevného bodu v analýze. Poté je navržena vlastní analýza programů psaných v imperativním paradigmatu, a to zejména programů manipulujících s řetězci, založená na principech ARMC. Následuje popis vlastní implementace nástroje s důrazem na jeho praktické vlastnosti. Rovněž jsou popsaný důležité části knihovny AutomataDotNet, na které nástroj staví. Práci je uzavřena diskuzí experimentů s nástrojem provedených na příkladech z knihovny LibStranger. en
dc.description.abstractMany software applications receive, send and process data in a text form. Correct and safe processing of these data is usually ensured by so-called string sanitization. With the help of methods of formal verification, we can analyse these string operations and check whether they are correctly designed and implemented. The goal of this work is to create a tool for analysis of systems whose configurations can be encoded as words over a suitable alphabet, as well as its specialization for analysing string manipulating programs. First, we describe finite automata and transducers in general and characterize various classes and sub-classes of symbolic transducers, especially their limitations. Based on this study, a new class of symbolic transducers is proposed for use in the program analysis. Later, we introduce regular model checking, especially its variant based on abstraction over automata, the so called ARMC, which was proved to be able to quite successfully fight the state explosion problem in the size of the automata and allows us to reach a fix-point. We then design an analysis of programs written in imperative languages, especially those that manipulate strings, using the principles of ARMC. Finally, the implementation of the tool is presented, highlighting its practical aspects and discussing relevant parts of AutomataDotNet library it is based on. The work completes debating the experimental evaluation of the tool using test inputs from LibStranger project.cs
dc.description.markBcs
dc.identifier.citationKOTOUN, M. Symbolické automaty v analýze programů s řetězci [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2020.cs
dc.identifier.other129842cs
dc.identifier.urihttp://hdl.handle.net/11012/194969
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.subjectformální verifikaceen
dc.subjectanalýza řetězcůen
dc.subjectregulární model checkingen
dc.subjectabstraktní regulární model checkingen
dc.subjectCEGARen
dc.subjectLibStrangeren
dc.subjectkonečné automatyen
dc.subjectkonečné převodníkyen
dc.subjectsymbolické konečné automatyen
dc.subjectsymbolické konečné převodníkyen
dc.subjectaplikace konečných převodníkůen
dc.subjectAutomataDotNeten
dc.subjectASMAen
dc.subjectformal verificationcs
dc.subjectstring analysiscs
dc.subjectregular model checkingcs
dc.subjectabstract regular model checkingcs
dc.subjectCEGARcs
dc.subjectLibStrangercs
dc.subjectfinite automatacs
dc.subjectfinite transducerscs
dc.subjectsymbolic finite automatacs
dc.subjectsymbolic finite transducerscs
dc.subjectfinite transducer applicationcs
dc.subjectAutomataDotNetcs
dc.subjectASMAcs
dc.titleSymbolické automaty v analýze programů s řetězcien
dc.title.alternativeSymbolic Automata for Analysing String Manipulating Programscs
dc.typeTextcs
dc.type.drivermasterThesisen
dc.type.evskpdiplomová prácecs
dcterms.dateAccepted2020-08-25cs
dcterms.modified2020-08-27-21:21:47cs
eprints.affiliatedInstitution.facultyFakulta informačních technologiícs
sync.item.dbid129842en
sync.item.dbtypeZPen
sync.item.insts2021.11.22 23:10:00en
sync.item.modts2021.11.22 21:55:24en
thesis.disciplineBezpečnost informačních technologií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 - 4 of 4
Loading...
Thumbnail Image
Name:
final-thesis.pdf
Size:
2.77 MB
Format:
Adobe Portable Document Format
Description:
final-thesis.pdf
Loading...
Thumbnail Image
Name:
Posudek-Vedouci prace-22529_v.pdf
Size:
87.4 KB
Format:
Adobe Portable Document Format
Description:
Posudek-Vedouci prace-22529_v.pdf
Loading...
Thumbnail Image
Name:
Posudek-Oponent prace-22529_o.pdf
Size:
93.27 KB
Format:
Adobe Portable Document Format
Description:
Posudek-Oponent prace-22529_o.pdf
Loading...
Thumbnail Image
Name:
review_129842.html
Size:
1.45 KB
Format:
Hypertext Markup Language
Description:
review_129842.html
Collections