Input Validation with Symbolic Execution

04/03/2021
by   Anay Mehrotra, et al.
0

Symbolic execution has always been plagued by the inability to handle programs that require highly structured inputs. Most often, the symbolic execution engine gets overwhelmed by the sheer number of infeasible paths and fails to explore enough feasible paths to gain any respectable coverage. In this paper, we propose a system, InVaSion, that attempts to solve this problem for forking-based symbolic execution engines. We propose an input specification language (ISL) that is based on a finite-state automaton but includes guarded transitions, a set of registers and a set of commands to update the register states. We demonstrate that our language is expressive enough to handle complex input specifications, like the Tiff image format, while not requiring substantial human effort; even the Tiff image specification could be specified in our language with an automaton of about 35 states. InVaSion translates the given program and the input specification into a non-deterministic program and uses symbolic execution to instantiate the non-determinism. This allows our tool to work with any forking-based symbolic execution engine and with no requirement of any special theory solver. Over our set of benchmarks, on an average, InVaSion was able to increase branch coverage from 24.97 over baseline KLEE.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/23/2019

SynFuzz: Efficient Concolic Execution via Branch Condition Synthesis

Concolic execution is a powerful program analysis technique for explorin...
research
06/26/2018

Indexing Operators to Extend the Reach of Symbolic Execution

Traditional program analysis analyses a program language, that is, all p...
research
01/08/2018

Tamarin: Concolic Disequivalence for MIPS

Given two MIPS programs, when are they equivalent? At first glance, this...
research
09/23/2020

Symbolic Execution + Model Counting + Entropy Maximization = Automatic Search Synthesis

We present a method of automatically synthesizing steps to solve search ...
research
08/03/2023

Targeted Control-flow Transformations for Mitigating Path Explosion in Dynamic Symbolic Execution

Dynamic symbolic execution (DSE) suffers from path explosion problem whe...
research
04/11/2023

Countering the Path Explosion Problem in the Symbolic Execution of Hardware Designs

Symbolic execution is a powerful verification tool for hardware designs,...
research
08/16/2021

Systematic Generation of Conformance Tests for JavaScript

JavaScript implementations are tested for conformance to the ECMAScript ...

Please sign up or login with your details

Forgot password? Click here to reset