Show simple item record

dc.contributor.advisorLi, Jingyue
dc.contributor.authorSørensen, Elias Brattli
dc.date.accessioned2021-09-15T16:15:13Z
dc.date.available2021-09-15T16:15:13Z
dc.date.issued2020
dc.identifierno.ntnu:inspera:57320302:17872701
dc.identifier.urihttps://hdl.handle.net/11250/2777851
dc.description.abstractOpenID Connect has blitt en bransjestandard for å håndtere autentisering og autorisering i Web-applikasjoner. Likevel er det vanskelig for utviklere å forstå protokollen og imple- mentere en klient-applikasjon på en sikker måte. Selv om de bruker en SDK som hjelper dem med detaljene, er utviklerne ansvarlige for å presist håndtere datavalidering. Sikkerhet- sanalyse og automatiske verktøy for å finne svakheter kan bli brukt til å sørge for at denne datavalideringen er gjort skikkelig. Tidligere løsninger på sikkerhetsanlyse og automatiske detekteringsverkøy for OpenID er for det meste bygget på komplekse, formelle modeller og helhetlige rammeverk for “pene- tration testing”, som dekker hele protokollen. Det er ofte krevende å forstå, utvikle og bruke disse løsningene. Målet med denne masteroppgaven er å introdusere en mer utvikler-orientert måte for å begrense mengden sikkerhetshull i klient-applikasjoner. Denne oppgaven presenterer (1) en pragmatisk modell av protokollflyten, formet som en direkte sjekkliste som er rettet mot det som angår utvikleren, og (2) viser at enkle statiske kodeanalyser som er basert på denne modellen, kan brukes til å finne svakheter relatert til disse sikkerhetsjekkene. Styrken til analyseteknikkene presenteres eksperimentelt på seks klienter med åpen kildekode. Fire av disse har svakheter. 20 svakheter knyttet til usikker validering av “ID-tokens” ble avdekket. Analysen for validering av ID-tokens fikk en precision på 61%, recall på 95% og en falsk-negativ-rate på 90%. Presisjonen kan økes ytterligere med noen ukers ingeniørarbeid. Mer pålitelige metrikker kan bli funnet i en stor-skala empirisk studie.
dc.description.abstractOpenID Connect has become a de facto standard for managing authentication and autho- rization in Web applications. It is however challenging for developers to understand the pro- tocol and securely implement a client application. Even using an SDK that helps them along the way, developers are responsible for doing data validation in a precise manner. The cor- rectness of this validation can be ensured using security analysis and vulnerability detection tools. Previous solutions on security analysis and tools for vulnerability detection of OpenID are mostly based on complex, formal models and comprehensive penetration testing frame- works that cover the whole protocol. These often require much work to understand, develop and use. The objective of this thesis is to introduce a more developer-oriented way to ensure fewer vulnerabilities in such client applications. This thesis proposes (1) a pragmatic model of the authorization code flow, as a straightforward checklist targeted specifically at the concerns of the developer, and (2) a demonstration that relatively simple static analysis techniques, based on this model, can be used to find vulnerabilities related to the needed security checks. The effectiveness of the analysis techniques is demonstrated experimentally on six open- source clients, of which four were found to have vulnerabilities. 20 vulnerabilities regarding incomplete or missing token validation were detected. The analyzer for token validation had a precision of 61%, recall of 100% and a true negative rate of 90%. Its precision may be improved further with a few weeks of engineering effort. More reliable metrics of its perfor- mance can be found by doing a large-scale empirical study.
dc.language
dc.publisherNTNU
dc.titleUsing Static Analysis To Detect Vulnerabilities in OpenID Connect Clients
dc.typeMaster thesis


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record