Improving Crash Uniqueness Detection in Fuzzy Testing : Case JyvSectec
Pudas, Mikko (2017)
Pudas, Mikko
Jyväskylän ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201705036251
https://urn.fi/URN:NBN:fi:amk-201705036251
Tiivistelmä
Fuzzaus määriteltiin testattavan ohjelman kaatamiseksi viallista dataa käyttäen. Fuzzausta kuvailtiin tehokkaimpana testiautomaatiotyökaluna, jolla ohjelmiston turvallisuuskriittisiä ongelmia voitiin löytää. JyvSectec törmäsi yhdessä AFL-fuzzaustestaustapauksessa ongel-miin työkalun kaatumisten tunnistamisen suhteen. Fuzzattaessa AFL raportoi useita uniikkeja kaatumisia, mutta kun kaatumisia analysoitiin Bash scripteillä, GDBllä, SQLite3llä sekä manuaalisesti, oli uniikkeja kaatumisia vähän. Parametrit sekä niin sanottu GDBn backtrace olivat joko samoja tai lähes samoja, eli kaatumiset eivät olleetkaan uniikkeja toisin kuin AFL-työkalu tunnisti.
Tehtävänä sekä tavoitteena oli korvata Bash-skriptipohjainen kaatumisien analysointijärjetelmä Pythonilla koodatulla ohjelmistolla. Ennen Python ohjelmiston koodaamista C-kielinen sovellus koodattiin ongelman toistamiseksi ja sitä fuzzattin AFL-sovelluksella. Python-ohjelmisto koodattiin siivoamaan GDB-tulosteita duplikaattien tunnistamisen helpottamiseksi. Python-ohjelmistossa luotiin CSV-tietokanta, jota SQLite3-ohjelmisto käytti kaatumisien analysoinnissa. SQLite3-ohjelmistolla tehtävä kaatumisien analysointiosuus rajattiin opinnäytetyön ulkopuolelle.
Kehittämistutkimuksena interventiolla mitattiin tyytyväisyyttä ennen ja Python-ohjelmiston käytön jälkeen. Strukturoituja sekä puolistrukturoituja kysymyksiä sisältävät sähköpostikyselylomakkeet lähetettiin jokaiselle JyvSectecissä.
Tulokset olivat vaihtelevia, sillä tulosten mukaan tyytyväisyys kasvoi ja manuaalisen työn määrä väheni. Kuitenkin eri kaatumisien erottaminen oli yhä ongelma eikä samankaltaisten kaatumisien tai kaatumisien luokittelu parantunut interventiossa.
Tehtävänä sekä tavoitteena oli korvata Bash-skriptipohjainen kaatumisien analysointijärjetelmä Pythonilla koodatulla ohjelmistolla. Ennen Python ohjelmiston koodaamista C-kielinen sovellus koodattiin ongelman toistamiseksi ja sitä fuzzattin AFL-sovelluksella. Python-ohjelmisto koodattiin siivoamaan GDB-tulosteita duplikaattien tunnistamisen helpottamiseksi. Python-ohjelmistossa luotiin CSV-tietokanta, jota SQLite3-ohjelmisto käytti kaatumisien analysoinnissa. SQLite3-ohjelmistolla tehtävä kaatumisien analysointiosuus rajattiin opinnäytetyön ulkopuolelle.
Kehittämistutkimuksena interventiolla mitattiin tyytyväisyyttä ennen ja Python-ohjelmiston käytön jälkeen. Strukturoituja sekä puolistrukturoituja kysymyksiä sisältävät sähköpostikyselylomakkeet lähetettiin jokaiselle JyvSectecissä.
Tulokset olivat vaihtelevia, sillä tulosten mukaan tyytyväisyys kasvoi ja manuaalisen työn määrä väheni. Kuitenkin eri kaatumisien erottaminen oli yhä ongelma eikä samankaltaisten kaatumisien tai kaatumisien luokittelu parantunut interventiossa.