Sai Krishna Deepak Maram, CS 6410

Slides:



Advertisements
Similar presentations
More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Advertisements

Secure In-VM Monitoring Using Hardware Virtualization Monirul Sharif, Wenke Lee, Weidong Cui, and Andrea Lanzi Presented by Tyler Bletsch.
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
1 Implementing an Untrusted Operating System on Trusted Hardware David Lie Chandramohan A. Thekkath Mark Horowitz University of Toronto, Microsoft Research,
Information Security and Cloud Computing Naresh K. Sehgal, Sohum Sohoni, Ying Xiong, David Fritz, Wira Mulia, and John M. Acken 1 NKS.
 Alexandra Constantin  James Cook  Anindya De Computer Science, UC Berkeley.
Shielding Applications from an Untrusted Cloud Andrew Baumann, Marcus Peinado, and Galen Hunt. OSDI Fall 2014 Presenter: Kun Sun, Ph.D. Most slides.
Yuanzhong Xu, Weidong Cui, Marcus Peinado
Cs238 Lecture 3 Operating System Structures Dr. Alan R. Davis.
Towards Application Security On Untrusted OS
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3 Operating System Organization.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Jakub Szefer, Eric Keller, Ruby B. Lee Jennifer Rexford Princeton University CCS October, 2011 報告人:張逸文.
Protection and the Kernel: Mode, Space, and Context.
APPLICATION PERFORMANCE AND FLEXIBILITY ON EXOKERNEL SYSTEMS M. F. Kaashoek, D. R. Engler, G. R. Ganger H. M. Briceño, R. Hunt, D. Mazières, T. Pinckney,
CS533 Concepts of Operating Systems Jonathan Walpole.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
G53SEC 1 Reference Monitors Enforcement of Access Control.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 2 Computer-System Structures Slide 1 Chapter 2 Computer-System Structures.
Operating Systems Security
Protecting The Kernel Data through Virtualization Technology BY VENKATA SAI PUNDAMALLI id :
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
CSE 451: Operating Systems Winter 2015 Module 25 Virtual Machine Monitors Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
Virtual Machines Mr. Monil Adhikari. Agenda Introduction Classes of Virtual Machines System Virtual Machines Process Virtual Machines.
Introduction to Operating Systems Concepts
Virtualization.
Virtual Machine Monitors
CS 3214 Computer Systems Lecture 9 Godmar Back.
Trusted Computing and the Trusted Platform Module
Introduction to Operating Systems
Operating System Structure
Non Contiguous Memory Allocation
Protecting Memory What is there to protect in memory?
Memory Protection: Kernel and User Address Spaces
Mechanism: Address Translation
Chapter 1: Introduction
Trusted Computing and the Trusted Platform Module
Outline What does the OS protect? Authentication for operating systems
Swapping Segmented paging allows us to have non-contiguous allocations
Outline What does the OS protect? Authentication for operating systems
CIT 480: Securing Computer Systems
Chapter 8: Main Memory.
OS Virtualization.
Memory Protection: Kernel and User Address Spaces
Introduction to Operating Systems
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
TPM, TEE, SGX Technologies
Bastion secure processor architecture
Computer-System Architecture
Module 2: Computer-System Structures
CSE 451: Operating Systems Spring 2012 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Lecture Topics: 11/1 General Operating System Concepts Processes
Module 2: Computer-System Structures
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Operating Systems: A Modern Perspective, Chapter 3
SCONE: Secure Linux Containers Environments with Intel SGX
Shielding applications from an untrusted cloud with Haven
Chapter 2 Processes and Threads 2.1 Processes 2.2 Threads
CSE 153 Design of Operating Systems Winter 2019
Module 2: Computer-System Structures
Module 2: Computer-System Structures
Mechanism: Address Translation
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Virtual machine monitors & Secure operation
Memory Protection: Kernel and User Address Spaces
In Today’s Class.. General Kernel Responsibilities Kernel Organization
Stefano Tempesta Secure Machine Learning with SQL Server Always Encrypted with Secure Enclaves.
Presentation transcript:

Sai Krishna Deepak Maram, CS 6410 Trusted Hardware Sai Krishna Deepak Maram, CS 6410

Move to a Cloud-based model User apps User apps Software PaaS Cloud Provider manages the stack Software Hypervisor Hypervisor OS OS A traditional PaaS model. Applies to Saas, IaaS as well.

Move to a Cloud-based model User apps Privileged code Software Software Malicious cloud provider? Hypervisor Hypervisor OS OS

Can you trust the cloud? Huge Trusted Computing Base (TCB) Cloud Provider’s software Management stack Sysadmins User needs to trust the cloud provider’s software, cloud sysad, even other cloud users co-located => large trusted computing base (TCB)

What do we want? Simply put, we want the raw resources of the cloud provider. Without trusting all the middlemen

Shielded Execution using SGX Confidentiality: The execution state is unobservable to the rest of the system. Integrity: If the program completes, its output is the same as a correct execution on a reference platform SGX Enclave Privileged code Software Cloud Provider manages the stack Hypervisor OS At a high level, the abstraction we are looking for is that of “Shielded execution” - Irrespective of the environment, SGX provides a hardware-based guarantee of isolation. the props we want are...

Is shielded execution sufficient? To complete this piece of puzzle i.e., trusted hardware, we need one final piece. “An isolation mechanism must permit interaction with untrusted software or hardware, to communicate results or access system services, and it is at these points that a na¨ıve isolated program is vulnerable”

Remote attestation Goal: Allow cryptographic verification that specific software has been loaded within an enclave While an enclave is initialized, its contents is cryptographically hashed by the CPU forming the enclave’s measurement Generated using a key burnt on the SGX chip Root of trust: Intel Intel attestation service (IAS) for verification Enclave Initialization SGX Chip Private key Intel Private key Allows for providing the end-to-end guarantee , Intel controls it Public key IAS Measurement hash

How does SGX achieve this? Let’s look a bit into the SGX internals

Memory protection EPC (Enclave Page Cache) A separate region in physical memory All enclave pages reside here Hardware tracks meta info corresponding to each page Virtualized

Memory protection EPC (Enclave Page Cache): A separate region in physical memory Encrypted and integrity-protected before writing to the main memory Same page table as the underlying OS Access checks are performed to ensure any other application (not even other enclaves) can access an enclave’s data

Execution lifecycle (high-level) Loading stage: Performed by untrusted code Enclave is initialized by copying code/data into EPC Pages At the end of which, contents are hashed to compute enclave’s measurement hash Enclave mode: Special instructions to create an enclave, add pages to enclave and exit an enclave Similar to switching from user to kernel mode Secure mechanisms to handle interrupts (or) page faults to protect from OS exception handlers

Before SGX? Architectures before SGX: Dedicated crypto hardware (not general-purpose), trusted hypervisors, TPM

Trusted Platform Module (TPM) Attestation-based Can be used with commodity systems Weak security Much bigger TCB than SGX: Measurement hash covers all the OS modules and device drivers Very hard to keep an up-to-date list of the hashes Many more attacks....

How to port legacy applications into SGX? Related question: How different is it to develop new applications in SGX? Ask for any thoughts here?

Developing applications in SGX Untrusting OS: Makes it harder Any function call (or) syscall made outside the enclave are not guaranteed to return Even if data returns, enclave cannot trust the data returned

Haven Haven design goals: Application interacts only with LibOS Mutual distrust b/w guest and host Run legacy apps inside SGX without any modifications Application interacts only with LibOS Assumes libOS is carefully implemented Shield module interacts with the untrusted host OS Exokernel connection: All OS apps at the user level.

How Haven handles Iago attacks Iago attacks: “Malicious kernel attempts to subvert an isolated application by exploiting its assumption of correct OS behaviour, for example when using the results of system calls” LibOS: Implement entire OS as part of the Trusted Computing Base. Limits the interaction of enclave app with the actual OS, thus reducing the attack surface.

LibOS and Exokernels Both bring OS level functionalities to the user space, but for what reasons? Efficiency in Exokernel: “Move OS functionality to the user space to grant more flexibility” Security in Haven’s LibOS: “Move OS functionality into the enclave to reduce attack space” libOS and exokernel

Haven Performance 35% - 65% slowdown Depends on the exact use case The usual security vs efficiency tradeoff

Haven influencing SGX

Haven influencing SGX design Dynamic memory allocation SGX does not allow addition of enclave pages after the creation of enclave Exception Handling SGX does not allow handling of all exceptions Some other limitations Fixed in v2.0 Mismatch b/w what Haven wants and SGX provides

SGX: What’s new? Latest v2.3 Trusted randomness, other crypto operations File abstractions inside an enclave Baidu’s Rust SGX SDK Dockerized Runs a simulated version on machines without SGX chip as well

Is SGX secure? “Nothing is secure” Sophisticated side channel attacks Foreshadow - Usenix’18 Speculative execution “Nothing is secure”

Trusted hardware makes the attacker’s job costly

Discussion Haven Exokernel connection to Haven Impact of Haven and why it’s not more widely used? SGX Does trusted hardware solve the problem of security in the cloud? Can SGX still be useful in face of side channel attacks?

Thank you! References: Haven, Slides Intel SGX explained