Giter Club home page Giter Club logo

sgx-tutorial-space18's Introduction

Tutorial overview and objectives

This repository collects presentation material and source code for hands-on exercises part of a 3h tutorial taught at the 8th International Conference on Security, Privacy, and Applied Cryptography Engineering (SPACE18), held 2018 December 15, Kanpur, India.

Abstract

The inclusion of the Software Guard eXtensions (SGX) in recent Intel processors has been broadly acclaimed for bringing strong hardware-enforced trusted computing guarantees to mass consumer devices, and for protecting end user data in an untrusted cloud environment. While SGX assumes a very strong attacker model and indeed even safeguards enclave secrets against a compromised operating system, recent research has demonstrated that considerable private data (e.g., full text and images, complete cryptographic keys) may still be reconstructed by monitoring subtle side-effects of the enclaved execution.

We argue that a systematic understanding of such side-channel leakage sources is essential for writing intrinsically secure enclave applications, and will be instrumental to the success of this new trusted execution technology. This tutorial and write-up therefore aims to bring a better understanding of current state-of-the-art side-channel attacks and defenses on Intel SGX platforms. Participants will learn how to extract data from elementary example applications, thereby recognizing how to avoid common pitfalls and information leakage sources in enclave development.

Jo Van Bulck, Frank Piessens "Tutorial: Uncovering and mitigating side-channel leakage in Intel SGX enclaves", 8th International Conference on Security, Privacy, and Applied Cryptography Engineering (SPACE'18). December 2018.

Tutorial organization

This tutorial is aimed at a target audience of C programmers with an interest in security. The tutorial takes about three hours, with an equal split between lectures and practical exercises.

Note (SGX support). Since we do not assume that all participants have access to an SGX-capable Intel processor, plus linux-sgx toolchain, we made sure that all exercises have both an unprotected and enclaved version. For the SPACE2018 tutorial setting, we will provide SSH access to an SGX machine over the local network in order to test the enclaved version.

However, to keep pressure on the remote SSH SGX machine low, we strongly advise to first develop the unprotected attack scenario on your local x86 machine, before testing the enclaved version on the remote SGX machine via SSH. Once the unprotected version is working, it should be relatively straightforward to port the attack to an SGX setting.

Note (solutions). This git repository includes a solutions branch with working attack code for all of the exercises. If you want to solve the exercise challenges on your own, you should of course only verify your solutions after having implemented the attack yourself using the skeleton code provided in the default master branch.

Program SGX enclave version Description
001-pwd 001-sgx-pwd Basic timing side-channel attack.
002-inc-secret 002-sgx-inc-secret Basic page fault side-channel attack.
003-flush-and-reload 003-sgx-flush-and-reload Flush+Reload cache attack on unprotected memory.
004-str 004-sgx-str More subtle page fault side-channel attack.
005-rsa 005-sgx-rsa Page fault sequence side-channel attack.

License

You are welcome to re-use all of the material in this repository for your own teaching (given appropriate credit). All exercise code is free software, licensed under GPLv3. Presentation material (slides) are released on a CC-BY basis.

sgx-tutorial-space18's People

Contributors

jovanbulck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

sgx-tutorial-space18's Issues

page fault attacks require vdso=0

currently the signal handler approach only works on recent Linux kernels with native SGX support when booting with vdso=0 kernel parameter. This has to do with the new enclave calling method with VDSO -- should look into this..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.