Architectural Support for Software-Based Protection Mihai Budiu Úlfar Erlingsson Martín Abadi ASID Workshop, Oct 21, 2006 Silicon Valley.

Slides:



Advertisements
Similar presentations
Spatial Computation Thesis committee: Seth Goldstein Peter Lee Todd Mowry Babak Falsafi Nevin Heintze Ph.D. Thesis defense, December 8, 2003 SCS Mihai.
Advertisements

You have been given a mission and a code. Use the code to complete the mission and you will save the world from obliteration…
Shared-Memory Model and Threads Intel Software College Introduction to Parallel Programming – Part 2.
Advanced Piloting Cruise Plot.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
Chapter 1 The Study of Body Function Image PowerPoint
1 Copyright © 2013 Elsevier Inc. All rights reserved. Appendix 01.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
1 Building a Fast, Virtualized Data Plane with Programmable Hardware Bilal Anwer Nick Feamster.
UNITED NATIONS Shipment Details Report – January 2006.
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
Summary of Convergence Tests for Series and Solved Problems
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Title Subtitle.
My Alphabet Book abcdefghijklm nopqrstuvwxyz.
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
FACTORING ax2 + bx + c Think “unfoil” Work down, Show all steps.
Addition Facts
Year 6 mental test 5 second questions
1 Processes and Threads Creation and Termination States Usage Implementations.
BT Wholesale October Creating your own telephone network WHOLESALE CALLS LINE ASSOCIATED.
Debugging operating systems with time-traveling virtual machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Chapter 4 Memory Management Basic memory management Swapping
ABC Technology Project
Hardware-assisted Virtualization
1 Overview Assignment 4: hints Memory management Assignment 3: solution.
Chapter 3 Memory Management
© 2010 VMware Inc. All rights reserved Application-level mobile virtualization Harvey Tuch, Staff Engineer, Mobile Virtualization Platform January 25 th.
CS 6143 COMPUTER ARCHITECTURE II SPRING 2014 ACM Principles and Practice of Parallel Programming, PPoPP, 2006 Panel Presentations Parallel Processing is.
VOORBLAD.
15. Oktober Oktober Oktober 2012.
1 Breadth First Search s s Undiscovered Discovered Finished Queue: s Top of queue 2 1 Shortest path from s.
“Start-to-End” Simulations Imaging of Single Molecules at the European XFEL Igor Zagorodnov S2E Meeting DESY 10. February 2014.
Factor P 16 8(8-5ab) 4(d² + 4) 3rs(2r – s) 15cd(1 + 2cd) 8(4a² + 3b²)
Squares and Square Root WALK. Solve each problem REVIEW:
1..
© 2012 National Heart Foundation of Australia. Slide 2.
Lets play bingo!!. Calculate: MEAN Calculate: MEDIAN
Understanding Generalist Practice, 5e, Kirst-Ashman/Hull
Chapter 5 Test Review Sections 5-1 through 5-4.
SIMOCODE-DP Software.
GG Consulting, LLC I-SUITE. Source: TEA SHARS Frequently asked questions 2.
Addition 1’s to 20.
25 seconds left…...
Januar MDMDFSSMDMDFSSS
Week 1.
We will resume in: 25 Minutes.
©Brooks/Cole, 2001 Chapter 12 Derived Types-- Enumerated, Structure and Union.
PSSA Preparation.
CpSc 3220 Designing a Database
Traktor- og motorlære Kapitel 1 1 Kopiering forbudt.
Compiler Construction
Sandboxing Untrusted Code: Software-Based Fault Isolation (SFI) Brad Karp UCL Computer Science CS GZ03 / M th December, 2008.
Defenses. Preventing hijacking attacks 1. Fix bugs: – Audit software Automated tools: Coverity, Prefast/Prefix. – Rewrite software in a type safe languange.
1 RAKSHA: A FLEXIBLE ARCHITECTURE FOR SOFTWARE SECURITY Computer Systems Laboratory Stanford University Hari Kannan, Michael Dalton, Christos Kozyrakis.
On-Chip Control Flow Integrity Check for Real Time Embedded Systems Fardin Abdi Taghi Abad, Joel Van Der Woude, Yi Lu, Stanley Bak, Marco Caccamo, Lui.
Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,
A Survey of Dynamic Techniques for Detecting Device Driver Errors Olatunji Ruwase LBA Reading Group 18 th May 2010.
Branch Regulation: Low-Overhead Protection from Code Reuse Attacks.
Title of Selected Paper: IMPRES: Integrated Monitoring for Processor Reliability and Security Authors: Roshan G. Ragel and Sri Parameswaran Presented by:
Exploiting Instruction Streams To Prevent Intrusion Milena Milenkovic.
A Framework For Trusted Instruction Execution Via Basic Block Signature Verification Milena Milenković, Aleksandar Milenković, and Emil Jovanov Electrical.
EnGarde: Mutually Trusted Inspection of SGX Enclaves
Suman Jana *Original slides from Vitaly Shmatikov
Inline Reference Monitors: SFI, CFI, XFI, WIT, NaCl
Presentation transcript:

Architectural Support for Software-Based Protection Mihai Budiu Úlfar Erlingsson Martín Abadi ASID Workshop, Oct 21, 2006 Silicon Valley

Summary CFIXFI Enforce control flow to prevent software attacks [CCS 05] [ICFEM 05] Protect modules within a single address space [OSDI 06] 2 This work: add hardware support

Outline Control-Flow Integrity XFI: Protecting Modules Conclusions 3

CFI Motivation 4 Control flow Anatomy of many software attacks

CFI Idea 5 ExecutableControl-Flow Graph += Self-checking program

CFI Security Benefits Enforces CFG against attacker that controls whole data memory Defends against a large class of attacks – Buffer overflows – Stack smashing – Jump-to-libc – Pointer subterfuge Validated experimentally 6 Code Data Stack

Embedding a CFG Edge 7 jmpc r1, cfilabel 60 …. cfilabel jmp r dest:..... ? Traditional indirect jumpNew ISA: checked jump and label

Semantics 8 jmpc r1, Lcfilabel L cfi_register = L; jmp r1 if (cfi_register == L) cfi_register = 0 before any instruction except cfilabel if (cfi_register != 0) cfi_exception()

Evaluation 9 Binary Squeeze++ binary rewriter instrumentation algorithm Sim-alpha simulator Alpha CC Spec2k Sources Instrumented binary Performance data Linux

CFI Execution Overhead

Outline Control-Flow Integrity XFI: Protecting Modules Conclusions 11

XFI Motivation 12 OS KernelDriver Ring 0 (high privilege) Single address space Kernel heap Shared data structure

XFI Address Spaces 13 Host systemXFI Module Data R/O Data R/W Data Stacks Code Entry points Fastpath region AB Slowpath region Host heap

Memory Bounds Checks 14 Host systemXFI Module Data R/O Data R/W Data Code AB Host heap *(int*)x = 2; if (x < A + 0) goto SlowpathCheck; if (B – sizeof(int) < x) goto SlowpathCheck; retfromSlowCheck: *(int*)x = 2; 2 x

ISA Support for XFI 15 mrguard $r, L, H If ($r < $a + L) XFI_exception() if ($b – H < $r) XFI_exception() [$r – L, $r + H) [$a, $b) AB $r LH

Evaluation 16 Assembly Sim-alpha simulator Alpha CC Mediabench Sources Instrumented binary Performance data Linux Hand instrument Kernel Link Object files

Bounds Checks Overhead 17

Advantages of ISA Support Compared with software solutions: Reduce executable size Reduce pressure on fetch structures (I-cache, trace cache, br. predictors) Decrease register pressure (no intermediate results) Do not pollute condition flags Do not pollute the data cache to fetch code label [CFI only] 18

Conclusions ISA support is very simple ISA support does not stretch critical hw resources ISA support can reduce the cost of CFI and XFI enforcement 19

Backup Slides 20

21 MSR Silicon Valley

22 Our Neighbors Google NASA AMES Microsoft SVC

23 Were Going Into Architecture

Were Hiring Computer Architects 24 Exciting research opportunities A chance to influence industry A lot of creative freedom A great interdisciplinary team A brand new research group A great location research.microsoft.com/aboutmsr/labs/siliconvalley

CFI & XFI Toolchain 25 Compiler Executable Debugging information Program Binary rewriter Safe executable Unsafe code Execution Safe code Verifier Instrumentation algorithm Trusted computing base

CFI Software Implementation 26 jmpc r1, cfilabel if (*r1 != 50) then goto error; goto r1+4; …..data 50 ….

CFI Binary Size Increase 27