TY - JOUR
T1 - Security slicing for auditing common injection vulnerabilities
AU - Thomé, Julian
AU - Shar, Lwin Khin
AU - Bianculli, Domenico
AU - Briand, Lionel
N1 - Publisher Copyright:
© 2018 Elsevier Inc.
PY - 2018/3
Y1 - 2018/3
N2 - Cross-site scripting and injection vulnerabilities are among the most common and serious security issues for Web applications. Although existing static analysis approaches can detect potential vulnerabilities in source code, they generate many false warnings and source-sink traces with irrelevant information, making their adoption impractical for security auditing. One suitable approach to support security auditing is to compute a program slice for each sink, which contains all the information required for security auditing. However, such slices are likely to contain a large amount of information that is irrelevant to security, thus raising scalability issues for security audits. In this paper, we propose an approach to assist security auditors by defining and experimenting with pruning techniques to reduce original program slices to what we refer to as security slices, which contain sound and precise information. To evaluate the proposed approach, we compared our security slices to the slices generated by a state-of-the-art program slicing tool, based on a number of open-source benchmarks. On average, our security slices are 76% smaller than the original slices. More importantly, with security slicing, one needs to audit approximately 1% of the total code to fix all the vulnerabilities, thus suggesting significant reduction in auditing costs.
AB - Cross-site scripting and injection vulnerabilities are among the most common and serious security issues for Web applications. Although existing static analysis approaches can detect potential vulnerabilities in source code, they generate many false warnings and source-sink traces with irrelevant information, making their adoption impractical for security auditing. One suitable approach to support security auditing is to compute a program slice for each sink, which contains all the information required for security auditing. However, such slices are likely to contain a large amount of information that is irrelevant to security, thus raising scalability issues for security audits. In this paper, we propose an approach to assist security auditors by defining and experimenting with pruning techniques to reduce original program slices to what we refer to as security slices, which contain sound and precise information. To evaluate the proposed approach, we compared our security slices to the slices generated by a state-of-the-art program slicing tool, based on a number of open-source benchmarks. On average, our security slices are 76% smaller than the original slices. More importantly, with security slicing, one needs to audit approximately 1% of the total code to fix all the vulnerabilities, thus suggesting significant reduction in auditing costs.
KW - Automated code fixing
KW - Security auditing
KW - Static analysis
KW - Vulnerability
UR - http://www.scopus.com/inward/record.url?scp=85014466419&partnerID=8YFLogxK
U2 - 10.1016/j.jss.2017.02.040
DO - 10.1016/j.jss.2017.02.040
M3 - Article
AN - SCOPUS:85014466419
SN - 0164-1212
VL - 137
SP - 766
EP - 783
JO - Journal of Systems and Software
JF - Journal of Systems and Software
ER -