An Instrumenting Compiler for Enforcing Confidentiality in Low-Level Code

11/30/2017
by   Ajay Brahmakshatriya, et al.
0

We present an instrumenting compiler for enforcing data confidentiality in low-level applications (e.g. those written in C) in the presence of an active adversary. In our approach, the programmer marks secret data by writing lightweight annotations on top-level definitions in the source code. The compiler then uses a static flow analysis coupled with efficient runtime instrumentation, a custom memory layout, and custom control-flow integrity checks to prevent data leaks even in the presence of low-level attacks. We have implemented our scheme as part of the LLVM compiler. We evaluate it on the SPEC micro-benchmarks for performance, and on larger, real-world applications (including OpenLDAP, which is around 300KLoC) for programmer overhead required to restructure the application when protecting the sensitive data such as passwords. We find that performance overheads introduced by our instrumentation are moderate (average 12 is only about 160 LoC.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/10/2019

Compiling a Calculus for Relaxed Memory: Practical constraint-based low-level concurrency

Crary and Sullivan's Relaxed Memory Calculus (RMC) proposed a new declar...
research
04/30/2021

Isolation Without Taxation: Near Zero Cost Transitions for SFI

Almost all SFI systems use heavyweight transitions that incur significan...
research
04/27/2020

LIO*: Low Level Information Flow Control in F*

We present Labeled Input Output in F* (LIO*), a verified framework that ...
research
06/08/2021

LLAMA: The Low-Level Abstraction For Memory Access

The performance gap between CPU and memory widens continuously. Choosing...
research
09/12/2023

C4CAM: A Compiler for CAM-based In-memory Accelerators

Machine learning and data analytics applications increasingly suffer fro...
research
09/11/2019

Floorplan: Spatial Layout in Memory Management Systems

In modern runtime systems, memory layout calculations are hand-coded in ...
research
05/03/2018

The Effectiveness of Low-Level Structure-based Approach Toward Source Code Plagiarism Level Taxonomy

Low-level approach is a novel way to detect source code plagiarism. Such...

Please sign up or login with your details

Forgot password? Click here to reset