BesFS: Mechanized Proof of an Iago-Safe Filesystem for Enclaves

07/02/2018
by   Shweta Shinde, et al.
0

New trusted computing primitives such as Intel SGX have shown the feasibility of running user-level applications in enclaves on a commodity trusted processor without trusting a large OS. However, the OS can compromise the integrity of the applications via the system call interface by tampering the return values. This class of attacks (commonly referred to as Iago attacks) have been shown to be powerful enough to execute arbitrary logic in enclave programs. To this end, we present BesFS -- a formal and provably Iago-safe API specification for the filesystem subset of the POSIX interface. We prove 118 lemmas and 2 key theorems in 3676 lines of CoQ proof scripts, which directly proves safety properties of BesFS implementation. BesFS API is expressive enough to support 17 real applications we test, and this principled approach eliminates several bugs. BesFS integrates into existing SGX-enabled applications with minimal impact to TCB (less than 750 LOC), and it can serve as concrete test oracle for other hand-coded Iago-safety checks.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/27/2018

A Formal Model of the Safety-Critical Java Level 2 Paradigm

Safety-Critical Java (SCJ) introduces a new programming paradigm for app...
research
10/13/2021

SmashEx: Smashing SGX Enclaves Using Exceptions

Exceptions are a commodity hardware functionality which is central to mu...
research
08/26/2021

A Typed Programmatic Interface to Contracts on the Blockchain

Smart contract applications on the blockchain can only reach their full ...
research
08/23/2018

SOTER: Programming Safe Robotics System using Runtime Assurance

Autonomous robots increasingly depend on third-party off-the-shelf compo...
research
04/14/2022

A Formally Certified End-to-End Implementation of Shor's Factorization Algorithm

Quantum computing technology may soon deliver revolutionary improvements...
research
11/14/2022

Securing Access to Untrusted Services From TEEs with GateKeeper

Applications running in Trusted Execution Environments (TEEs) commonly u...
research
12/12/2018

CAMLroot: revisiting the OCaml FFI

The OCaml language comes with a facility for interfacing with C code -- ...

Please sign up or login with your details

Forgot password? Click here to reset