Vis enkel innførsel

dc.contributor.authorSchuckert, Felix
dc.contributor.authorKatt, Basel
dc.contributor.authorLangweg, Hanno
dc.date.accessioned2024-07-11T11:31:12Z
dc.date.available2024-07-11T11:31:12Z
dc.date.created2023-02-23T20:30:00Z
dc.date.issued2023
dc.identifier.citationComputers & Security. 2023, 128, 1-18.en_US
dc.identifier.issn0167-4048
dc.identifier.urihttps://hdl.handle.net/11250/3140206
dc.description.abstractInsecurity Refactoring is a change to the internal structure of software to inject a vulnerability without changing the observable behavior in a normal use case scenario. An implementation of Insecurity Refactoring is formally explained to inject vulnerabilities in source code projects by using static code analysis. It creates learning examples with source code patterns from known vulnerabilities. Insecurity Refactoring is achieved by creating an Adversary Controlled Input Dataflow tree based on a Code Property Graph. The tree is used to find possible injection paths. Transformation of the possible injection paths allows to inject vulnerabilities. Insertion of data flow patterns introduces different code patterns from related Common Vulnerabilities and Exposures (CVE) reports. The approach is evaluated on 307 open source projects. Additionally, insecurity-refactored projects are deployed in virtual machines to be used as learning examples. Different static code analysis tools, dynamic tools and manual inspections are used with modified projects to confirm the presence of vulnerabilities. The results show that in 8.1% of the open source projects it is possible to inject vulnerabilities. Different inspected code patterns from CVE reports can be inserted using corresponding data flow patterns. Furthermore the results reveal that the injected vulnerabilities are useful for a small sample size of attendees (n=16). Insecurity Refactoring is useful to automatically generate learning examples to improve software security training. It uses real projects as base whereas the injected vulnerabilities stem from real CVE reports. This makes the injected vulnerabilities unique and realistic.en_US
dc.language.isoengen_US
dc.publisherElsevieren_US
dc.rightsNavngivelse 4.0 Internasjonal*
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/deed.no*
dc.titleInsecurity Refactoring: Automated Injection of Vulnerabilities in Source Codeen_US
dc.title.alternativeInsecurity Refactoring: Automated Injection of Vulnerabilities in Source Codeen_US
dc.typeJournal articleen_US
dc.typePeer revieweden_US
dc.description.versionpublishedVersionen_US
dc.source.pagenumber1-18en_US
dc.source.volume128en_US
dc.source.journalComputers & Securityen_US
dc.identifier.doi10.1016/j.cose.2023.103121
dc.identifier.cristin2128736
cristin.ispublishedtrue
cristin.fulltextoriginal
cristin.qualitycode1


Tilhørende fil(er)

Thumbnail

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

Vis enkel innførsel

Navngivelse 4.0 Internasjonal
Med mindre annet er angitt, så er denne innførselen lisensiert som Navngivelse 4.0 Internasjonal