APR4Vul: an empirical study of automatic program repair techniques on real-world Java vulnerabilities

Author:

Bui Quang-CuongORCID,Paramitha RanindyaORCID,Vu Duc-LyORCID,Massacci FabioORCID,Scandariato RiccardoORCID

Abstract

AbstractSecurity vulnerability fixes could be a promising research avenue for Automated Program Repair (APR) techniques. In recent years, APR tools have been thoroughly developed for fixing generic bugs. However, the area is still relatively unexplored when it comes to fixing security bugs or vulnerabilities. In this paper, we evaluate nine state-of-the-art APR tools and one vulnerability-specific repair tool. In particular, we investigate their ability to generate patches for 79 real-world Java vulnerabilities in the Vul4J dataset, as well as the level of trustworthiness of these patches. We evaluate the tools with respect to their ability to generate security patches that are (i) testable, (ii) having the positive effect of closing the vulnerability, and (iii) not having side effects from a functional point of view. Our results show that the evaluated APR tools were able to generate testable patches for around 20% of the considered vulnerabilities. On average, nearly 73% of the testable patches indeed eliminate the vulnerabilities, but only 44% of them could actually fix security bugs while maintaining the functionalities. To understand the root cause of this phenomenon, we conduct a detailed comparative study of the general bug fix patterns in Defect4J and the vulnerability fix patterns in ExtraVul (which we extend from Vul4J). Our investigation shows that, although security patches are short in terms of lines of code, they contain unique characteristics in their fix patterns compared to general bugs. For example, many security fixes require adding method calls. These method calls contain specific input validation-related keywords, such as encode, normalize, and trim. In this regard, our study suggests that additional repair patterns should be implemented for existing APR tools to fix more types of security vulnerabilities.

Funder

H2020 LEIT Information and Communication Technologies

HORIZON EUROPE Civil security for society

Publisher

Springer Science and Business Media LLC

Subject

Software

Reference87 articles.

1. APR4Vul: An empirical study of automatic program repair techniques on real-world java vulnerabilities. https://github.com/tuhh-softsec/APR4Vul. (The artifact of our evaluation study)

2. The nist software assurance reference dataset project. https://samate.nist.gov/SARD/. Accessed 25 Jan 2022

3. Owasp top 10 - 2021. https://owasp.org/Top10/. Accessed 06 Mar 2022

4. Abadi A, Ettinger R, Feldman YA, Shomrat M (2011) Automatically fixing security vulnerabilities in java code. In: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion, pp. 3–4. https://doi.org/10.1145/2048147.2048149

5. Agresti A, Franklin C, Klingenberg B (2016) Statistics: the art and science of learning from data. Pearson Education. https://books.google.it/books?id=Vql5CwAAQBAJ

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3