A Quantitative Flavour of Robust Reachability

12/10/2022
by   Sébastien Bardin, et al.
0

Many software analysis techniques attempt to determine whether bugs are reachable, but for security purpose this is only part of the story as it does not indicate whether the bugs found could be easily triggered by an attacker. The recently introduced notion of robust reachability aims at filling this gap by distinguishing the input controlled by the attacker from those that are not. Yet, this qualitative notion may be too strong in practice, leaving apart bugs which are mostly but not fully replicable. We aim here at proposing a quantitative version of robust reachability, more flexible and still amenable to automation. We propose quantitative robustness, a metric expressing how easily an attacker can trigger a bug while taking into account that he can only influence part of the program input, together with a dedicated quantitative symbolic execution technique (QRSE). Interestingly, QRSE relies on a variant of model counting (namely, functional E-MAJSAT) unseen so far in formal verification, but which has been studied in AI domains such as Bayesian network, knowledge representation and probabilistic planning. Yet, the existing solving methods from these fields turn out to be unsatisfactory for formal verification purpose, leading us to propose a novel parametric method. These results have been implemented and evaluated over two security-relevant case studies, allowing to demonstrate the feasibility and relevance of our ideas.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/09/2020

A Theoretical Framework for Symbolic Quick Error Detection

Symbolic quick error detection (SQED) is a formal pre-silicon verificati...
research
12/01/2018

When a Patch is Not Enough - HardFails: Software-Exploitable Hardware Bugs

In this paper, we take a deep dive into microarchitectural security from...
research
05/13/2020

FlowCFL: A Framework for Type-based Reachability Analysis in the Presence of Mutable Data

Reachability analysis is a fundamental program analysis with a wide vari...
research
04/04/2018

P4K: A Formal Semantics of P4 and Applications

Programmable packet processors and P4 as a programming language for such...
research
11/03/2017

Automated Detection, Exploitation, and Elimination of Double-Fetch Bugs using Modern CPU Features

Double-fetch bugs are a special type of race condition, where an unprivi...
research
03/22/2021

Formal Verification for Node-Based Visual Scripts Using Symbolic Model Checking

Visual script languages with a node-based interface have commonly been u...
research
09/24/2020

On the Relationship between Refactoring Actions and Bugs: A Differentiated Replication

Software refactoring aims at improving code quality while preserving the...

Please sign up or login with your details

Forgot password? Click here to reset