Revealing Injection Vulnerabilities by Leveraging Existing Tests
Revealing Injection Vulnerabilities by Leveraging Existing Tests
复制标题
DOI:
10.1145/3377811.3380326
复制
发表时间:
2020-06
期刊:
影响因子:
--
通讯作者:
Katherine Hough;G. B. Welearegai;Christian Hammer;Jonathan Bell
中科院分区:
文献类型:
--
作者:
Katherine Hough;G. B. Welearegai;Christian Hammer;Jonathan Bell
Code injection attacks, like the one used in the high-profile 2017 Equifax breach, have become increasingly common, now ranking #1 on OWASP's list of critical web application vulnerabilities. Static analyses for detecting these vulnerabilities can overwhelm developers with false positive reports. Meanwhile, most dynamic analyses rely on detecting vulnerabilities as they occur in the field, which can introduce a high performance overhead in production code. This paper describes a new approach for detecting injection vulnerabilities in applications by harnessing the combined power of human developers' test suites and automated dynamic analysis. Our new approach, Rivulet, monitors the execution of developer-written functional tests in order to detect information flows that may be vulnerable to attack. Then, Rivulet uses a white-box test generation technique to repurpose those functional tests to check if any vulnerable flow could be exploited. When applied to the version of Apache Struts exploited in the 2017 Equifax attack, Rivulet quickly identifies the vulnerability, leveraging only the tests that existed in Struts at that time. We compared Rivulet to the state-of-the-art static vulnerability detector Julia on benchmarks, finding that Rivulet outperformed Julia in both false positives and false negatives. We also used Rivulet to detect new vulnerabilities.