Pioneer (and a few digressions) CMU CyLab Your Humble Presenter: Anthony Cozzie.

Slides:



Advertisements
Similar presentations
Categories of I/O Devices
Advertisements

Memory Protection: Kernel and User Address Spaces  Background  Address binding  How memory protection is achieved.
Countering Trusting Trust with Diverse Double-Compiling (by David A Wheeler) Dan Frohlich.
1 CHAPTER 8 BUFFER OVERFLOW. 2 Introduction One of the more advanced attack techniques is the buffer overflow attack Buffer Overflows occurs when software.
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
Malicious Logic What is malicious logic Types of malicious logic Defenses Computer Security: Art and Science © Matt Bishop.
This presentation will probably involve audience discussion, which will create action items. Use PowerPoint to keep track of these action items during.
1 Lecture 6 Performance Measurement and Improvement.
RISC By Don Nichols. Contents Introduction History Problems with CISC RISC Philosophy Early RISC Modern RISC.
Instruction Representation II (1) Fall 2007 Lecture 10: Instruction Representation II.
Chapter 4 Processor Technology and Architecture. Chapter goals Describe CPU instruction and execution cycles Explain how primitive CPU instructions are.
Choice for the rest of the semester New Plan –assembler and machine language –Operating systems Process scheduling Memory management File system Optimization.
outline Purpose Design Implementation Market Conclusion presentation Outline.
1 Pioneer: Dynamic Root of Trust for Measurement and Verifiable Executable Invocation Arvind Seshadri, Mark Luk, Elaine Shi, Adrian Perrig (CMU), Leendert.
1 RISE: Randomization Techniques for Software Security Dawn Song CMU Joint work with Monica Chew (UC Berkeley)
Cisc Complex Instruction Set Computing By Christopher Wong 1.
Trusted Computing Technologies for Embedded Systems and Sensor Networks Adrian Perrig Carnegie Mellon University.
Success status, page 1 Collaborative learning for security and repair in application communities MIT & Determina AC PI meeting July 10, 2007 Milestones.
Malicious Code Brian E. Brzezicki. Malicious Code (from Chapter 13 and 11)
J.H.Saltzer, D.P.Reed, C.C.Clark End-to-End Arguments in System Design Reading Group 19/11/03 Torsten Ackemann.
Networked File System CS Introduction to Operating Systems.
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
Algorithms and Programming
1 4.2 MARIE This is the MARIE architecture shown graphically.
Architecture Support for OS CSCI 444/544 Operating Systems Fall 2008.
On the Difficulty of Software-Based Attestation of Embedded Devices Claude Castelluccia Aurélien Francillon Daniele Perito INRIA Rhône-Alpes
IT253: Computer Organization Lecture 10: Making a Processor: Control Signals Tonga Institute of Higher Education.
CS533 Concepts of Operating Systems Jonathan Walpole.
Understanding the TigerSHARC ALU pipeline Determining the speed of one stage of IIR filter – Part 3 Understanding the memory pipeline issues.
Topic 1Topic 2Topic 3Topic 4Topic
Super computers Parallel Processing By Lecturer: Aisha Dawood.
Understanding the TigerSHARC ALU pipeline Determining the speed of one stage of IIR filter – Part 2 Understanding the pipeline.
Ted Pedersen – CS 3011 – Chapter 10 1 A brief history of computer architectures CISC – complex instruction set computing –Intel x86, VAX –Evolved from.
RISC and CISC. What is CISC? CISC is an acronym for Complex Instruction Set Computer and are chips that are easy to program and which make efficient use.
Computer Systems - Processor. Objectives To investigate and understand the structure and role of the processor.
A paper by: Paul Kocher, Joshua Jaffe, and Benjamin Jun Presentation by: Michelle Dickson.
Processor Level Parallelism. Improving the Pipeline Pipelined processor – Ideal speedup = num stages – Branches / conflicts mean limited returns after.
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
CISC. What is it?  CISC - Complex Instruction Set Computer  CISC is a design philosophy that:  1) uses microcode instruction sets  2) uses larger.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
Cosc 4765 Antivirus Approaches. In a Perfect world The best solution to viruses and worms to prevent infected the system –Generally considered impossible.
Memory Protection: Kernel and User Address Spaces Andy Wang Operating Systems COP 4610 / CGS 5765.
Computer System Structures
Real-World Pipelines Idea Divide process into independent stages
Virtualization.
Virtual Machine Monitors
Kernel Design & Implementation
Non Contiguous Memory Allocation
Memory Protection: Kernel and User Address Spaces
Mechanism: Limited Direct Execution
Effective Data-Race Detection for the Kernel
CS2100 Computer Organisation
Drinking from the Firehose Decode in the Mill™ CPU Architecture
Memory Protection: Kernel and User Address Spaces
Continuous, Low Overhead, Run-Time Validation of Program Executions
CSCI1600: Embedded and Real Time Software
Memory Protection: Kernel and User Address Spaces
Memory Protection: Kernel and User Address Spaces
Lecture 14 Virtual Memory and the Alpha Memory Hierarchy
CS170 Computer Organization and Architecture I
CS105 Introduction to Computer Concepts Intro to programming
Morgan Kaufmann Publishers Memory Hierarchy: Virtual Memory
CSE451 Virtual Memory Paging Autumn 2002
Sai Krishna Deepak Maram, CS 6410
Lecture 4: Instruction Set Design/Pipelining
CSCI1600: Embedded and Real Time Software
Memory Protection: Kernel and User Address Spaces
CS2100 Computer Organisation
Presentation transcript:

Pioneer (and a few digressions) CMU CyLab Your Humble Presenter: Anthony Cozzie

Why Pioneer Secure Boot, Terra – Both bootstrap trust – Need small trusted piece Goal of Pioneer: get that single small piece of trusted code and build from there – In software

Some Old History - Genuinity Establishing the Genuinity of Remote Computer Systems, Usenix Security 2003 – Rick Kennell & Leah H. Jamieson [Purdue] Same goal as Pioneer: establish the identity of a remote system Computes a checksum over its code Presumably it is “difficult” to do this fast

Pseudorandom memory traversal Compute over various blocks Select next block based on current checksum Check TLB miss rate; add to checksum

Simulation Attack Turing: all computers are equal – Universal Turing Machine Claim to be a 8088, then simulate on a 3GHz Xeon Like Pioneer, relies on speed – Theory is that side effects are difficult to simulate – Binary rewriting difficult because of the extra work – Genuinity paper claims a 5X window of safety due to simulation overhead

Digression on a word

Round II Side effects are not sufficient to authenticate software, Usenix Security 2004 Umesh Shankar, Monica Chew, J. D. Tygar, UC Berkeley Introduced the dreaded memory copy attack – Have correct program somewhere else in memory – Fix-up memory accesses – Claims that the whole problem is basically impossible

Genuinity: KO’d ? Genuinity and Genuinity-like software is vulnerable to specific attacks (which we have implemented, simulated, and made public) Genuinity cannot easily be repaired and any software- only solution to software authentication faces numerous challenges, making success unlikely Proposed applications of Genuinity for Sun Network File System authentication and AOL Instant Messenger client authentication will not work Even in best-case special purpose applications (such as networked “game boxes” like the Playstation 2 or the Xbox) the Genuinity approach fails.

Memory Copy Attack

Memory Copy Attack Details Simply insert a check in the code and return 0 – Slowdown is 35% [can do better] Intel Performance counters aren’t even 100% accurate Small aside: the original example use of Genuinity was for NFS – But it only checks the kernel & CPU version Pray you stay on Doug Tygar’s good side

Round III: Ghost of Christmas Past Pioneer! Rather than rely on processor side effects, make the code use the CPU completely and use wall clock time – Fill pipeline 100% – Very fast implementation – A single hand-optimized assembly program Key: Error margin is much smaller

Time Optimality of Pioneer Not proven to be optimal No free ALUs Strongly ordered checksum Small, simple instructions No place for MMX/SSE uops vs. instructions In other words, Pioneer is all that is slow

Pioneer vs the Memory Copy Attack MCA is extremely powerful on x86 due to segment registers, offset modes – Can simply specify that an instruction uses a different segment, or add an immediate, etc Pioneer places the jump target on or directly after a 3 byte [4 byte in MCA] instruction – They claim cleaning this up requires 1-2 cycles – Which is multiplied by the number of times the loop is executed

Some Big Assumptions Remote platform’s CPU is known Remote platform cannot communicate with anything other than the dispatcher Remote platform is not SMT/SMP/multicore Strong assumptions – you can’t just run Pioneer over the Internet – but also a pretty difficult problem

Experimental Results Several false positives Difference between threshold and detection is 0.4 milliseconds!

Discussion: Does Pioneer Work Is Pioneer really time-optimal? Can you fix Pioneer to work with SMT? Is there a situation where Pioneer would work? Is Pioneer better than Genuinity? Is this problem simply impossible in the useful case? If you crossed the international date line on your birthday, would you still get presents?