intel software guard extensions (sgx) · 2020-01-21 · epc epcm application environment privileged...

Post on 13-Jul-2020

27 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Intel Software Guard Extensions (SGX)

Prashant Pandey (ppandey@cs.stonybrook.edu)Applied Algorithms Lab, Stony Brook University

Story boardüProblem StatementüAttack Surface and OverviewüProgramming environmentü Enclave Life-CycleüDeveloping with SGXü SGX usage models

Are compute devices trustworthy?

Basic Issue: Why aren’t compute devices trustworthy ?

App Code

Privileged Code

App Code

OKX

X X

Protected Mode protects OS from app

Basic Issue: Why aren’t compute devices trustworthy ?

Malicious App

Privileged Code

App Code

OKX

X X

Bad Code

Attack

Apps not protected from privileged code attacks

Basic Issue: Why aren’t compute devices trustworthy ?

Malicious App

Privileged Code

App CodeX

X X

Bad Code

Apps not protected from privileged code attacks

Bad Code

Info

Attack surface

App App App

OS

VMM

Hardware

Attack Surface

Reduced attack surface with SGX

üApplication gains ability to defend its own secret

üMalware that subverts OS/VMM, BIOS, Drivers etc. cannot steal app secrets

ü Single application environment

App App App

OS

VMM

Hardware

Attack Surface

XX

SGX Programming Environment

OS

App Code

App Data

Enclave (.so)

Enclave Code

SECS

TCS (*n)

Enclave Data

User Process Enclave

Enclave:üHas its own code and dataüProvides ConfidentialityüProvides IntegrityüHas controlled entry pointsü Supports multiple threadsüHas full access to app

memory

Intel SGX Technologyü At its root, Intel SGX is a set of new CPU instructions that

can be used by applications to set aside private regions of code and data

ü Allows app developers to protect sensitive data by rogue software running at higher privilege levels

ü Enable apps to preserve the confidentiality and integrity of sensitive code and data

SGX high-level HW/SW picture

Enclave Enclave

SGX User Runtime

SGX User Runtime

SGX Module

Platform

ApplicationRuntime

OS Data StrHardware

HW Data Str

Page Tables

EPC EPCM

Application Environment

PrivilegedEnvironment

ExposedHardware

InstructionsEGETKEYEEXITEREPORTEENTERERESUME

InstructionsECREATE ETRACKEADD EWBEEXTEND ELDEINIT EPAEBLOCK EREMOVE

Life Cycle of EnclaveVirtual Address Space Physical Address Space

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

EPC

System Memory

Enclave

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS

EPC

System Memory

Enclave

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

EPC

System Memory

Enclave

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

EPC

System Memory

Enclave

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

Code/Data

EPC

System Memory

Enclave

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Enclave

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Enclave

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Code/DataEnclave

Code/Data

Code/Data

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Code/Data

Valid, ID

Enclave

Code/Data

Code/Data

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Valid, ID

Enclave

Code/Data

Code/Data

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Valid, ID

EEXTEND

Enclave

Code/Data

Code/Data

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Valid, ID

EEXTEND

Enclave

Code/Data

Code/Data

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Code/DataValid, ID

EEXTEND

Enclave

Code/Data

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Valid, ID

EEXTENDEINITEnclave

Code/Data

Code/Data

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Valid, ID

EEXTENDEINITEENTEREnclave

Code/Data

Code/Data

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

SECS Valid, ID

Code/Data

Code/Data

EPC

System Memory

Valid, ID

EADD

Code/Data

Valid, ID

EEXTENDEINITEENTEREEXIT

Enclave

Code/Data

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

EPC

System Memory

EADDEEXTENDEINITEENTEREEXITEREMOVE

Enclave

Life Cycle of EnclaveVirtual Address Space Physical Address Space

InvalidInvalidInvalid

EPCM

Invalid

ECREATE

AESM

EPC

System Memory

EADDEEXTENDEINITEENTEREEXITEREMOVE

Protection vs. Memory Snooping

ü Security perimeter is CPU package boundary

üData and code unencrypted inside CPU package

üData and code outside CPU package is encrypted and/or integrity checked

üExternal memory reads and bus snoops see only encrypted data

Developing with SGX

Intel SGX enabled CPU

Application

AppCode

Trusted

ProcessingComponent

GlueCodeSGXSDKSGXSDKGlueCode

ArchitecturalEnclave

ProcessingComponent

ArchitecturalEnclaveArchitecturalEnclave

Intel SGX Call Gates

OS

App Code

App Data

Enclave (.so)

User Process

Ocalls Ecalls

Intel SGX advantages

• Intel SGX, provides an ability to create a secure enclave [a secure memory area] within a potentially compromised OS

• You can create an enclave with the desired code, then lock it down, measure the code there and if everything is fine, ask the processor to start executing the code

• A nice surprise is that SGX infrastructure no longer depends upon the TPM to perform the measurement

SGX Technical Summary

ü Provides any application the ability to keep a secretü Provide capability using new processor instructionsü Application can support multiple enclaves

ü Provides integrity and confidentiality ü Resists hardware attacks ü Prevent software access, including privileged software

ü Applications run within OS environmentü Low learning curve for application developersü Open to all developers**

ü Resources managed by system software

SGX usage models

ü Running a LibOS inside an enclave ü [https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-baumann.pdf]

ü Running hadoop map-reduce jobs inside enclaveü [http://research.microsoft.com/apps/pubs/?id=210786]

ü Building an encrypted file system using SGX to protect against cold boot attacks and DMA attacksü [Not published yet]

ü Running privacy protected genomics workload inside enclaveü [Not published yet]

Referencesü http://software.intel.com/en-us/articles/innovative-instructions-and-

software-model-for-isolated-executionü http://software.intel.com/en-us/articles/innovative-technology-for-cpu-

based-attestation-and-sealingü http://software.intel.com/sites/default/files/article/413938/hasp-2013-

innovative-instructions-for-trusted-solutions.pdfü http://web.stanford.edu/class/ee380/Abstracts/150415-slides.pdfü AgoodreadtounderstandSGX:

http://theinvisiblethings.blogspot.com/2013/08/thoughts-on-intels-upcoming-software.html

top related