Data-Driven Synthesis of Provably Sound Side Channel Analyses

02/12/2021
by   Jingbo Wang, et al.
0

We propose a data-driven method for synthesizing a static analyzer to detect side-channel information leaks in cryptographic software. Compared to the conventional way of manually crafting such a static analyzer, which can be labor intensive, error prone and suboptimal, our learning-based technique is not only automated but also provably sound. Our analyzer consists of a set of type-inference rules learned from the training data, i.e., example code snippets annotated with ground truth. Internally, we use syntax-guided synthesis (SyGuS) to generate new features and decision tree learning (DTL) to generate type-inference rules based on these features. We guarantee soundness by formally proving each learned rule via a technique called Datalog query containment checking. We have implemented our technique in the LLVM compiler and used it to detect power side channels in C programs. Our results show that, in addition to being automated and provably sound during synthesis, the learned analyzer also has the same empirical accuracy as two state-of-the-art, manually crafted analyzers while being 300X and 900X faster, respectively.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/19/2022

Example-based Synthesis of Static Analysis Rules

Static Analysis tools have rules for several code quality issues and the...
research
04/16/2019

Resource-Guided Program Synthesis

This article presents resource-guided synthesis, a technique for synthes...
research
07/13/2023

Reinforcement Learning for Syntax-Guided Synthesis

Program synthesis is the task of automatically generating code based on ...
research
02/25/2019

Mitigating Power Side Channels during Compilation

The code generation modules inside modern compilers such as GCC and LLVM...
research
03/19/2020

Automated Formal Synthesis of Lyapunov Neural Networks

We propose an automated and sound technique to synthesize provably corre...
research
08/25/2017

Learning to Blame: Localizing Novice Type Errors with Data-Driven Diagnosis

Localizing type errors is challenging in languages with global type infe...

Please sign up or login with your details

Forgot password? Click here to reset