Vis enkel innførsel

dc.contributor.advisorKatt, Basel
dc.contributor.authorBjørnseth, Geir Arne Mo
dc.date.accessioned2021-09-23T19:16:04Z
dc.date.available2021-09-23T19:16:04Z
dc.date.issued2021
dc.identifierno.ntnu:inspera:77286691:21359363
dc.identifier.urihttps://hdl.handle.net/11250/2781219
dc.description.abstractI løpet av de siste årene har vi sett et økt fokus på utvikling av sikker programvare med rammeverk og verktøy som Microsoft Security Development Life Cycle og OWASP Software Maturity Model, men fortsatt ser vi kjente og godt dokumenterte sårbarheter som injections, cross site scripting og buffer overflows i lister over de mest vanlige sårbarhetene. Det å skrive sikker kildekode kan derfor være en utfordring og studier rundt sårbarheter i kildekode kan derfor være til hjelp for å forstå og forbedre programvare sikkerhet. Mange slike studier setter søkelys på det kvantitative aspektet rundt programvaresikkerhet, som for eksempel levetiden til sårbarheter, effekten av kodegjennomgang på sårbarheter, eller målinger som størrelsen på kodeendringer i sårbar kode. Slike studier kan gi innsikt i generelle trender rundt programvaresårbarheter eller innsikt inn i hvordan sårbarheter kan måles i kildekode. På den andre siden gir slike studier liten forståelse for hvordan sårbarheter oppstår og utvikler seg, og dette spørsmålet er teamet for dette prosjektet. For å svare på spørsmålet om hvordan sårbarheter oppstår og utvikler seg i kildekode vill gi gjøre en studie av sårbarhetshistorikken i det åpne kildekode prosjektet Libarchive. Med en undersøkende og kvalitativ tilnærming analyserer vi artefakter rundt sårbarhetene i kildekoden, som kodeoppdateringer, sårbarhetsrapporter og diskusjoner. Ut ifra denne analysen vill vi identifisere mønstre og fenomener rundt sårbarhetene. I tillegg vil vi også gjøre en analyse av det SosioTekniske systemet rundt sårbarhetshåndtering i prosjektet. Basert på disse analysene presenter vi en sårbarhetsmodell som beskrive fenomenene rund kodesårbarheter og hvordan det Sosio-Tekniske systemet spiller inn i disse fenomenene. Vi presenterer også en taksonomi for minnerelaterte sårbarheter, med type feil, steder for feil og rettelser av feil for denne typen sårbarheter. Denen taksonomien bygger på en tidliger buffer overflow taksonomi av Schuckert et al. [1]. Sammen gir modellen og taksonomien økt forståelse for hvordan sårbarheter oppstår og utvikler seg i kildekode og kan benyttes som verktøy for å forbedre utviklingsprosessen og sikkerheten i kildekode.
dc.description.abstractResent years has seen an increased focus on creating secure software with tools and frameworks like Microsoft Security Development Life Cycle and OWASP Software Maturity Model, but still we see well known and well documented vulnerabilities like injections, cross site scripting and buffer overflow in lists over most common vulnerabilities. Writing secure software can therefore be a challenging task, and research into security vulnerabilities can help to understand and improve software security. Many of these studies focus on the quantitative aspect of the subject, like vulnerability lifespan, effect of code review coverage on vulnerabilities, and metrics like commit sizes in vulnerable code. Such studies can be helpful in gaining insight into general trends of vulnerability evolution or insight into measures and coring systems to identify vulnerable code. On the other hand, they give little insight into what causes the vulnerabilities to emerge and evolve and is the question we will try to answer in this thesis. To answer the question about how vulnerabilities emerge and evolve, we study the vulnerability history in the Libarchive Open-Source Software (OSS) package. With an exploratory qualitative approach, we analyse artefacts like code updates, vulnerability reports and discussions related to the vulnerabilities in the OSS package and identify patterns and phenomena behind the vulnerabilities. We also perform an analysis into the Socio-Technical System (STS) surrounding the vulnerability handling in the OSS package. Based on our analysis we present a Vulnerability Evolution model describing the phenomena behind the vulnerabilities and the influence of the STS into these phenomena. We also present memory safety taxonomy describing the types of errors, sinks, and fixes behind the vulnerabilities. This taxonomy builds on a previous buffer overflow vulnerability taxonomy by Schuckert et al. [1]. Together the model and the taxonomy serve as tools to understand how vulnerabilities emerge and evolve and can be used to improve development process to produce secure code.
dc.languageeng
dc.publisherNTNU
dc.titleStudying vulnerability history in an open-source software package
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail

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

Vis enkel innførsel