Sound Symbolic Execution via Abstract Interpretation and its Application to Security

01/18/2023
by   Ignacio Tiraboschi, et al.
0

Symbolic execution is a program analysis technique commonly utilized to determine whether programs violate properties and, in case violations are found, to generate inputs that can trigger them. Used in the context of security properties such as noninterference, symbolic execution is precise when looking for counterexample pairs of traces when insecure information flows are found, however it is sound only up to a bound thus it does not allow to prove the correctness of programs with executions beyond the given bound. By contrast, abstract interpretation-based static analysis guarantees soundness but generally lacks the ability to provide counterexample pairs of traces. In this paper, we propose to weave both to obtain the best of two worlds. We demonstrate this with a series of static analyses, including a static analysis called RedSoundRSE aimed at verifying noninterference. RedSoundRSE provides both semantically sound results and the ability to derive counterexample pairs of traces up to a bound. It relies on a combination of symbolic execution and abstract domains inspired by the well known notion of reduced product. We formalize RedSoundRSE and prove its soundness as well as its relative precision up to a bound. We also provide a prototype implementation of RedSoundRSE and evaluate it on a sample of challenging examples.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/23/2016

Static Analysis of Communicating Processes using Symbolic Transducers

We present a general model allowing static analysis based on abstract in...
research
04/25/2019

Abstract Interpretation under Speculative Execution

Analyzing the behavior of a program running on a processor that supports...
research
09/13/2017

On the Generation of Initial Contexts for Effective Deadlock Detection

It has been recently proposed that testing based on symbolic execution c...
research
11/17/2022

Completeness in static analysis by abstract interpretation, a personal point of view

Static analysis by abstract interpretation is generally designed to be ”...
research
01/16/2023

Clustered Relational Thread-Modular Abstract Interpretation with Local Traces

We construct novel thread-modular analyses that track relational informa...
research
02/22/2018

What's the Over/Under? Probabilistic Bounds on Information Leakage

Quantitative information flow (QIF) is concerned with measuring how much...
research
07/18/2019

Responsibility Analysis by Abstract Interpretation

Given a behavior of interest in the program, statically determining the ...

Please sign up or login with your details

Forgot password? Click here to reset