Automatically Patching Vulnerabilities of Binary Programs via Code Transfer From Correct Versions

Abstract

The security of binary programs is significantly threatened by software vulnerabilities. When vulnerabilities are found, those applications are exposed to malicious attacks that exploit the known vulnerabilities. Thus, it is necessary to patch them when vulnerabilities are reported to the public as soon as possible. However, it still heavily relies on manual work to locate and correct the corresponding defective code in the binary programs. In order to raise productivity and ensure software security, it becomes imperative to automate the process. In this paper, we propose BINPATCH to automatically patch known vulnerabilities of binary programs. It first locates the defective function, which contains the vulnerability, via similar code comparison. Then, it reuses the corresponding code from the correct version of the defective function as the patch code and inserts it to the defective function via binary rewriting. BINPATCH is evaluated on eight real-world vulnerabilities, and the experimental results show that it is able to not only locate the defective code effectively but also patch the code correctly.

Type

Journal article

Publication
IEEE Access
Yikun HU
Yikun HU
Assistant Research Fellow

I am working in LoCCS at SJTU. My research interests include Binary Program Analysis and Software Engineering. We are looking for motivated students interested in Software Security or AI Security. Feel free to contact us please, if you have an interest in researching or interning in our lab.