Practical Integer Overflow Prevention

10/10/2017
by   Paul Muntean, et al.
0

Integer overflows in commodity software are a main source for software bugs, which can result in exploitable memory corruption vulnerabilities and may eventually contribute to powerful software based exploits, i.e., code reuse attacks (CRAs). In this paper, we present IntGuard , a tool that can repair integer overflows with high-quality source code repairs. Specifically, given the source code of a program, IntGuard first discovers the location of an integer overflow error by using static source code analysis and satisfiability modulo theories (SMT) solving. IntGuard then generates integer multi-precision code repairs based on modular manipulation of SMT constraints as well as an extensible set of customizable code repair patterns. We have implemented and evaluated IntGuard with 2052 C programs (approx. 1 Mil. LOC) available in the currently largest open- source test suite for C/C++ programs and with a benchmark containing large and complex programs. The evaluation results show that IntGuard can precisely (i.e., no false positives are accidentally repaired), with low computational and runtime overhead repair programs with very small binary and source code blow-up. In a controlled experiment, we show that IntGuard is more time-effective and achieves a higher repair success rate than manually generated code repairs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/12/2018

IntRepair: Informed Fixing of Integer Overflows

Integer overflows have threatened software applications for decades. Thu...
research
02/24/2022

Automatically Mitigating Vulnerabilities in x86 Binary Programs via Partially Recompilable Decompilation

When vulnerabilities are discovered after software is deployed, source c...
research
09/20/2019

Automated Verification of Integer Overflow

Integer overflow accounts for one of the major source of bugs in softwar...
research
02/05/2018

Interactive Robot Transition Repair With SMT

Complex robot behaviors are often structured as state machines, where st...
research
07/05/2023

The FormAI Dataset: Generative AI in Software Security Through the Lens of Formal Verification

This paper presents the FormAI dataset, a large collection of 112, 000 A...
research
06/09/2022

ESBMC-Jimple: Verifying Kotlin Programs via Jimple Intermediate Representation

In this work, we describe and evaluate the first model checker for verif...
research
09/25/2019

SIP Shaker: Software Integrity Protection Composition

Man-At-The-End (MATE) attackers are almighty adversaries against whom th...

Please sign up or login with your details

Forgot password? Click here to reset