Vis enkel innførsel

dc.contributor.advisorMorrison, Donn
dc.contributor.authorAlbrigtsen, Felix
dc.contributor.authorEriksen, Kristoffer Longva
dc.contributor.authorJuelsen, Kristoffer
dc.date.accessioned2024-07-05T17:21:30Z
dc.date.available2024-07-05T17:21:30Z
dc.date.issued2024
dc.identifierno.ntnu:inspera:187443388:234867863
dc.identifier.urihttps://hdl.handle.net/11250/3138726
dc.description.abstractMålet med denne oppgaven er å utforske hvordan statisk kildekodeanalyse og fuzzing kan brukes til å avdekke sårbarheter i programmer skrevet i et lavnivåspråk. I denne oppgaven vil vi gjennomføre en penetrasjonstest av Netsurf, en selvstendig nettleser skrevet i programmeringsspråket C. Ettersom antallet trusler innen cybersikkerhet øker, og stadig flere skrivebordsapplikasjoner flyttes inn i nettleseren, er behovet for å sikre nettleseren større enn noen gang. Nettleseren er et essensielt verktøy for alle som bruker den til produktivitetsarbeid, kommunikasjon, underholdning, banktjenester og en rekke andre formål, som tydeliggjør behovet for å sikre den. Vi skal bruke verktøy og teknikker innen statisk kildekodeanalyse og fuzzing for å lete etter svakheter i NetSurf. Gjennom denne forskningen skal vi vurdere disse to metodene ved å sammenligne hvor godt de fungerer i forskjellige situasjoner. Før vi setter igang med den praktiske penetrasjonstestingen skal vi først forklare sentrale teoretiske konsepter og begreper rundt penetrasjonstesting, statisk kildekodeanalyse, fuzzing og sårbarheter i programvare. Vi vil bruke våre funn og erfaringer fra denne testingen til å sammenligne de forskjellige verktøyene og metodene vi har brukt. Disse resultatene kan brukes sammen med tidligere forskning som bakgrunn når vi svarer på forskningsspørsmålene og problemstillingen vår. Til slutt vil vi konkludere med at disse to metodene kan utfylle hverandre godt, og at kombinasjonen av de to kan være effektiv for å avdekke en rekke forskjellige programvarefeil og sårbarheter i et prosjekt som NetSurf.
dc.description.abstractThis thesis aims to explore the capabilities of source code analysis and fuzzing for uncovering vulnerabilities in programs written in a systems programming language. We will be conducting a penetration test on NetSurf, an independent web browser written in the C programming language. With a rapid increase in the number of cybersecurity threats, and more applications moving from the desktop into the web browser, the security of the browser is more important than ever. The browser is an essential tool for anyone who uses the web for productivity, communication, entertainment, finance, or a plethora of other tasks, emphasizing the need to keep it secure. We will utilize tools and techniques for source code analysis and fuzzing to search for vulnerabilities in NetSurf. Throughout our research, we will compare the capabilities of these two methods, and evaluate their performance and usability in different situations. Before going into the practical penetration test, we will first explain central concepts surrounding penetration testing, source code analysis, fuzzing, and software vulnerabilities in general. The findings and experiences from our testing will be used to evaluate and compare the different tools and techniques in question. We will use these results in combination with previous research as a background to find answers to our research questions and problem statement. In the end, we will conclude that source code analysis and fuzzing can complement each other, and the combination of both techniques can successfully uncover a wide range of bugs and vulnerabilities in a project like NetSurf.
dc.languageeng
dc.publisherNTNU
dc.titleUncovering Software Vulnerabilities Using Source Code Analysis and Fuzzing
dc.typeBachelor thesis


Tilhørende fil(er)

Thumbnail
Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel