Senx: Sound Patch Generation for Security Vulnerabilities

11/29/2017
by   Zhen Huang, et al.
0

Many techniques have been proposed for automatic patch generation and the overwhelming majority of them rely on the quality of test suites to prove the correctness of the patches that they generate. However, the quality of test suites is usually undesirable and hence the quality of the patches is ill-suited for security vulnerabilities. To address this, we propose an approach that generates patches by following the proved working strategy utilized by human developers in fixing security vulnerabilities, which relies on a sound analysis of the nature of a vulnerability rather than the quality of test suites for the correctness of the patches. In this paper, we present the design of our approach to fixing buffer overflow and integer overflow vulnerabilities. It is enabled by the combination of two novel techniques: loop analysis and symbolic expression translation. They mimic the analysis performed by human developers to develop patches for buffer overflows and integer overflows. To ensure the safety of our patches, the two techniques are built on top of sound dataflow analysis, coupled with concolic execution. We have implemented a prototype called Senx using this approach. Our evaluation on Senx shows that the two techniques are effective and applicable to a myriad of different programs. Our evaluation shows that the patches generated by Senx successfully fix 33 of 42 real-world buffer overflows and integer overflows from a variety of 11 applications including various tools or libraries for manipulating graphics/media files, a programming language interpreter, a relational database engine, a collection of programming tools for creating and managing binary programs, and a collection of basic file, shell, and text manipulation tools.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/04/2023

Detecting Security Patches via Behavioral Data in Code Repositories

The absolute majority of software today is developed collaboratively usi...
research
12/11/2018

Code-less Patching for Heap Vulnerabilities Using Targeted Calling Context Encoding

Exploitation of heap vulnerabilities has been on the rise, leading to ma...
research
04/21/2021

HDR-Fuzz: Detecting Buffer Overruns using AddressSanitizer Instrumentation and Fuzzing

Buffer-overruns are a prevalent vulnerability in software libraries and ...
research
09/15/2022

On the acceptance by code reviewers of candidate security patches suggested by Automated Program Repair tools

Background: Testing and validation of the semantic correctness of patche...
research
10/09/2022

A unit-based symbolic execution method for detecting memory corruption vulnerabilities in executable codes

Memory corruption is a serious class of software vulnerabilities, which ...
research
10/18/2021

A ground-truth dataset of real security patches

Training machine learning approaches for vulnerability identification an...
research
01/17/2023

SECOMlint: A linter for Security Commit Messages

Transparent and efficient vulnerability and patch disclosure are still a...

Please sign up or login with your details

Forgot password? Click here to reset