Security slicing for auditing common injection vulnerabilities

被引:17
作者
Thome, Julian [1 ]
Shar, Lwin Khin [1 ]
Bianculli, Domenico [1 ]
Briand, Lionel [1 ]
机构
[1] Univ Luxembourg, SnT Ctr Secur Reliabil & Trust, Luxembourg, Luxembourg
关键词
Security auditing; Static analysis; Vulnerability; Automated code fixing; PROGRAM DEPENDENCE GRAPH; INFORMATION-FLOW; STATIC ANALYSIS; WEB;
D O I
10.1016/j.jss.2017.02.040
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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. (C) 2018 Elsevier Inc. All rights reserved.
引用
收藏
页码:766 / 783
页数:18
相关论文
共 67 条
[1]  
Almorsy M, 2012, IEEE INT CONF AUTOM, P100, DOI 10.1145/2351676.2351691
[2]  
[Anonymous], 2013, OWASP Top 10
[3]  
Antunes Nuno, 2013, 2013 IEEE International Conference on Services Computing (SCC), P280, DOI 10.1109/SCC.2013.28
[4]   Assessing and Comparing Vulnerability Detection Tools for Web Services: Benchmarking Approach and Examples [J].
Antunes, Nuno ;
Vieira, Marco .
IEEE TRANSACTIONS ON SERVICES COMPUTING, 2015, 8 (02) :269-283
[5]  
Apache, 2015, STRINGESCAPEUTILS
[6]  
Appelt D., 2014, P 2014 INT S SOFTW T, P259, DOI DOI 10.1145/2610384.2610403
[7]  
Arzt S, 2014, ACM SIGPLAN NOTICES, V49, P259, DOI [10.1145/2594291.2594299, 10.1145/2666356.2594299]
[8]  
Backes M., 2014, A022014 SAARL U
[9]   INFORMATION-FLOW AND DATA-FLOW ANALYSIS OF WHILE-PROGRAMS [J].
BERGERETTI, JF ;
CARRE, BA .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1985, 7 (01) :37-61
[10]  
Clause J., 2007, P 2007 INT S SOFTW T, P196, DOI DOI 10.1145/1273463.1273490