Kattavuuspohjainen fuzz-testaus ja AFL++
Lakaniemi, Esa (2022)
Lakaniemi, Esa
2022
Tieto- ja sähkötekniikan kandidaattiohjelma - Bachelor's Programme in Computing and Electrical Engineering
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2022-03-07
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202203012265
https://urn.fi/URN:NBN:fi:tuni-202203012265
Tiivistelmä
Fuzz-testaus on erityisesti tietoturva-alalla käytetty testauksen menetelmä, jossa ohjelmia testataan satunnaisesti luoduilla virheellisillä syötteillä. Fuzzauksen tavoitteena on löytää testattavien ohjelmien sisältämiä virheitä. Tämän työn tarkoitus oli esitellä nykyaikainen fuzzaus ja mitä sillä voidaan saavuttaa suhteessa muihin testausmenetelmiin, millaisia tuloksia fuzzaamalla on saavutettu sekä millaisia fuzzauksen tulevaisuudennäkymät ovat. Näitä asioita tarkastellaan erityisesti AFL++-fuzzaustyökalun kannalta.
Työn alussa annetaan ohjelmistotestauksen määritelmä sekä selitetään työn kannalta oleellisia ohjelmistotestauksen käsitteitä. Ohjelmistotestauksen yleisten käsitteiden jälkeen esitellään fuzz-testauksen historiaa ja tekniikoita, erityisesti painottaen kattavuuspohjaisen fuzzauksen menetelmää. Näiden esittelyä seuraa AFL++-työkalun, sen käytön ja joidenkin sitä laajentavien työkalujen kuvaus. Lopuksi työ esittelee fuzzausprojekteja ja mitä fuzzauksella voidaan ja ei voida saavuttaa sekä fuzzauksen tulevaisuudennäkymiä.
Tämä työ antaa perustason kuvauksen nykyaikaisesta fuzzauksesta. Fuzzauksen todetaan olevan tehokas tapa virheiden löytämiseen ohjelmista. Nykyaikana erityisesti kattavuuspohjainen fuzzaus on tehokas ja suosittu fuzzauksen menetelmä, ja AFL++ on suosittu ja tunnettu kattavuuspohjaisen fuzzauksen työkalu. Fuzzauksen avulla voidaan löytää hankalasti ennakoitavia virheitä, joita ennalta suunnitelluilla testitapauksilla ei voida tehokkaasti löytää ja jotka voivat olla hyvinkin merkittäviä. Fuzzauksen avulla ei kuitenkaan voida varmistaa jonkin tietyn vian olevan korjattu tai jonkin tietyn vaatimuksen olevan täytetty. Tulevaisuudessa fuzz-testausta saatetaan esimerkiksi yhdistää ohjelmistokehityksen testiautomaatioon, ja se vaikuttaa jatkossakin pysyvän suosittuna menetelmänä virheiden löytämiseen. Kattavuuspohjaisen fuzzauksen lisäksi myös vanhempia fuzzauksen menetelmiä käytetään edelleen, ja fuzzaukselle löydetään myös uusia käyttötarkoituksia.
Työn alussa annetaan ohjelmistotestauksen määritelmä sekä selitetään työn kannalta oleellisia ohjelmistotestauksen käsitteitä. Ohjelmistotestauksen yleisten käsitteiden jälkeen esitellään fuzz-testauksen historiaa ja tekniikoita, erityisesti painottaen kattavuuspohjaisen fuzzauksen menetelmää. Näiden esittelyä seuraa AFL++-työkalun, sen käytön ja joidenkin sitä laajentavien työkalujen kuvaus. Lopuksi työ esittelee fuzzausprojekteja ja mitä fuzzauksella voidaan ja ei voida saavuttaa sekä fuzzauksen tulevaisuudennäkymiä.
Tämä työ antaa perustason kuvauksen nykyaikaisesta fuzzauksesta. Fuzzauksen todetaan olevan tehokas tapa virheiden löytämiseen ohjelmista. Nykyaikana erityisesti kattavuuspohjainen fuzzaus on tehokas ja suosittu fuzzauksen menetelmä, ja AFL++ on suosittu ja tunnettu kattavuuspohjaisen fuzzauksen työkalu. Fuzzauksen avulla voidaan löytää hankalasti ennakoitavia virheitä, joita ennalta suunnitelluilla testitapauksilla ei voida tehokkaasti löytää ja jotka voivat olla hyvinkin merkittäviä. Fuzzauksen avulla ei kuitenkaan voida varmistaa jonkin tietyn vian olevan korjattu tai jonkin tietyn vaatimuksen olevan täytetty. Tulevaisuudessa fuzz-testausta saatetaan esimerkiksi yhdistää ohjelmistokehityksen testiautomaatioon, ja se vaikuttaa jatkossakin pysyvän suosittuna menetelmänä virheiden löytämiseen. Kattavuuspohjaisen fuzzauksen lisäksi myös vanhempia fuzzauksen menetelmiä käytetään edelleen, ja fuzzaukselle löydetään myös uusia käyttötarkoituksia.
Kokoelmat
- Kandidaatintutkielmat [8997]