Automatic detection and repair of hardcoded credentials in Java as an IDE plugin
Master thesis
Permanent lenke
https://hdl.handle.net/11250/2777880Utgivelsesdato
2020Metadata
Vis full innførselSamlinger
Beskrivelse
Full text not available
Sammendrag
Til tross for 15 år med arbeid innenfor automatisk programreparasjon, finnes det i dag ingen verktøy som er i stand til å reparere halvparten av de vanligste sårbarhetene, slik de er beskrevet i OWASP Top 10. Spesielt bekymringsfult er den tilsynelatende komplette mangelen på dekning av sårbarheter relatert til ødelagt autentisering, til tross for å være den nest mest utbredte sårbarheten ifølge OWASP. For å løse dette problemet har vi i denne oppgaven utviklet et verktøy som automatisk oppdager og reparerer CWE-259 hardkodede passord, et spesielt farlig og utbredt sikkerhetsproblem relatert til ødelagt autentisering.Vi har også opprettet en samling av testprogram som inneholder mer enn 1 400 testtilfeller på til sammen nesten 3 millioner kodelinjer for å teste dette verktøyet på riktig måte og gjøre det mulig for fremtidige verktøy å bli riktig testet. Verktøyet vårt har en nøyaktighet på 91%, uten falske positive, kun rundt 4% falske negative, og produserer alltid riktige reparasjoner. Current work on automatic program repair has yet to yield tools and approaches for repairing even half of the most common security vulnerabilities, such as described in OWASP Top 10. Particularly worrying is the seemingly complete lack of coverage of vulnerabilities related to broken authentication, despite it being the second most prevalent vulnerability according to OWASP. In order to address this problem, we have in this thesis developed a tool that automatically detects and repairs CWE-259 Hardcoded Passwords, a particularly dangerous and prevalent vulnerability related to broken authentication. We have also created a test suite containing more than 1 400 test cases totaling almost 3 million lines of code to properly test this tool and allow for subsequent tools to be properly benchmarked. We find that our tool has an accuracy of 91%, with no False Positives, only about 4% False Negatives, and always produces correct repairs.