Fuzz testování REST API

but.committeeprof. Ing. Martin Drahanský, Ph.D. (předseda) doc. Ing. Jan Kořenek, Ph.D. (místopředseda) Ing. Matěj Grégr, Ph.D. (člen) doc. Mgr. Lukáš Holík, Ph.D. (člen) Mgr. Kamil Malinka, 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: Proč v případě neúspěšného tetovacího případu nejprve zvýšíte hodnotu "confidence" o 5 a následně ještě vynásobíte číslem 2, zatímco v případě úspěšného testovacího případu naopak pouze vydělíte 2 (viz listing 5.5 na straně 42)? Co znamená zkratka REST? K čemu byl použit nástroj Schemathesis?cs
but.jazykangličtina (English)
but.programInformační technologiecs
but.resultpráce byla úspěšně obhájenacs
dc.contributor.advisorMalík, Viktoren
dc.contributor.authorSegedy, Patriken
dc.contributor.refereeRogalewicz, Adamen
dc.date.accessioned2020-07-20T19:58:01Z
dc.date.available2020-07-20T19:58:01Z
dc.date.created2020cs
dc.description.abstractTáto práca sa zaoberá fuzz testovaním REST API. Po prezentovaní prehľadu techník používaných pri fuzz testovaní a posúdení aktuálnych nástrojov a výskumu zameraného na REST API fuzz testovanie, sme pristúpili k návrhu a implementácii nášho REST API fuzzeru. Základom nášho riešenia je odvodzovanie závislostí z OpenAPI formátu popisu REST API, umožňujúce stavové testovanie aplikácie. Náš fuzzer minimalizuje počet po sebe nasledujúcich 404 odpovedí od aplikácie a testuje aplikáciu viac do hĺbky. Problém prehľadávania dostupných stavov aplikácie je riešený pomocou usporiadania závislostí tak, aby sa maximalizovala pravdepodobnosť získania potrebných vstupných dát pre povinné parametre, v kombinácii s rozhodovaním, ktoré povinné parametre môžu využívať aj náhodne generované hodnoty. Implementácia je rozšírením Schemathesis projektu, ktorý generuje vstupy za pomoci Hypothesis knižnice. Implementovaný fuzzer je použitý na testovanie Red Hat Insights aplikácie, kde našiel 32 chýb, z čoho jednu chybu je možné reprodukovať len za pomoci stavového testovania.en
dc.description.abstractThis thesis is dealing with fuzz testing of REST API. After presenting state-of-the-art of fuzzing and assessing the current research regarding REST API fuzz testing, we design and implement our REST API fuzzer. The proposed fuzzer infers dependencies of API calls defined in an OpenAPI specification and makes the fuzzing stateful. One of the features is minimization of the number of successive 404 responses while maintaining exploration of a deeper state space of a tested application. To solve the exploration vs. exploitation problem, we used the ordering of dependencies maximizing the probability of obtaining a needed input values and determining of fuzzability of a required parameters. The implementation is an enhancement of the Schemathesis project that is using the Hypothesis library to randomly generate inputs. Our fuzzer is evaluated against the Red Hat Insights application, finding 32 bugs. Amid them, one bug is reproducible only by a stateful set of steps.cs
dc.description.markBcs
dc.identifier.citationSEGEDY, P. Fuzz testování REST API [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2020.cs
dc.identifier.other129329cs
dc.identifier.urihttp://hdl.handle.net/11012/192509
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.subjectfuzz testovanieen
dc.subjectfuzzingen
dc.subjectfuzzeren
dc.subjectREST APIen
dc.subjecttestovanieen
dc.subjectgenerovanie testoven
dc.subjectzískavanie závislostíen
dc.subjectstavové testovanieen
dc.subjectHypothesisen
dc.subjectJSON Schemaen
dc.subjectOpenAPIen
dc.subjectSwaggeren
dc.subjectSchemathesisen
dc.subjectfuzz testingcs
dc.subjectfuzzingcs
dc.subjectfuzzercs
dc.subjectREST APIcs
dc.subjecttestingcs
dc.subjecttest generationcs
dc.subject  inferring dependenciescs
dc.subject  stateful testingcs
dc.subjectproperty based testingcs
dc.subjectHypothesiscs
dc.subjectJSON Schemacs
dc.subjectOpenAPIcs
dc.subjectSwaggercs
dc.subjectSchemathesiscs
dc.titleFuzz testování REST APIen
dc.title.alternativeFuzz Testing of REST APIcs
dc.typeTextcs
dc.type.drivermasterThesisen
dc.type.evskpdiplomová prácecs
dcterms.dateAccepted2020-07-14cs
dcterms.modified2020-07-17-14:40:14cs
eprints.affiliatedInstitution.facultyFakulta informačních technologiícs
sync.item.dbid129329en
sync.item.dbtypeZPen
sync.item.insts2021.11.22 22:23:47en
sync.item.modts2021.11.22 21:46:18en
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:
1.09 MB
Format:
Adobe Portable Document Format
Description:
final-thesis.pdf
Loading...
Thumbnail Image
Name:
Posudek-Vedouci prace-23094_v.pdf
Size:
124.68 KB
Format:
Adobe Portable Document Format
Description:
Posudek-Vedouci prace-23094_v.pdf
Loading...
Thumbnail Image
Name:
Posudek-Oponent prace-23094_o.pdf
Size:
127.55 KB
Format:
Adobe Portable Document Format
Description:
Posudek-Oponent prace-23094_o.pdf
Loading...
Thumbnail Image
Name:
review_129329.html
Size:
1.42 KB
Format:
Hypertext Markup Language
Description:
review_129329.html
Collections