R Enabling Trusted Software Integrity Darko Kirovski Microsoft Research Milenko Drinić Miodrag Potkonjak Computer Science Department University of California,

Slides:



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

ROP is Still Dangerous: Breaking Modern Defenses Nicholas Carlini et. al University of California, Berkeley USENIX Security 2014 Presenter: Yue Li Part.
Using Instruction Block Signatures to Counter Code Injection Attacks Milena Milenković, Aleksandar Milenković, Emil Jovanov The University of Alabama in.
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
Implementing an Untrusted Operating System on Trusted Hardware.
Overview Motivations Basic static and dynamic optimization methods ADAPT Dynamo.
Chapter 6 Security Kernels.
CMSC 414 Computer and Network Security Lecture 22 Jonathan Katz.
Breno de MedeirosFlorida State University Fall 2005 Buffer overflow and stack smashing attacks Principles of application software security.
CMPT 300: Operating Systems I Dr. Mohamed Hefeeda
1 Lecture 2: Review of Computer Organization Operating System Spring 2007.
1 School of Computing Science Simon Fraser University CMPT 300: Operating Systems I Dr. Mohamed Hefeeda.
Security Protection and Checking in Embedded System Integration Against Buffer Overflow Attacks Zili Shao, Chun Xue, Qingfeng Zhuge, Edwin H.-M. Sha International.
6-1 I/O Methods I/O – Transfer of data between memory of the system and the I/O device Most devices operate asynchronously from the CPU Most methods involve.
Random Testing of Interrupt-Driven Software John Regehr University of Utah.
Securing Software Systems Gaurav S. Kc Programming Systems Lab 9 th April, 2003.
1 Achieving Trusted Systems by Providing Security and Reliability (Research Project #22) Project Members: Ravishankar K. Iyer, Zbigniew Kalbarczyk, Jun.
Computer System Overview
7/2/ _23 1 Pipelining ECE-445 Computer Organization Dr. Ron Hayne Electrical and Computer Engineering.
1 Pioneer: Dynamic Root of Trust for Measurement and Verifiable Executable Invocation Arvind Seshadri, Mark Luk, Elaine Shi, Adrian Perrig (CMU), Leendert.
1 RAKSHA: A FLEXIBLE ARCHITECTURE FOR SOFTWARE SECURITY Computer Systems Laboratory Stanford University Hari Kannan, Michael Dalton, Christos Kozyrakis.
Buffer Overflow Attacks. Memory plays a key part in many computer system functions. It’s a critical component to many internal operations. From mother.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Stamping out worms and other Internet pests Miguel Castro Microsoft Research.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
On the Difficulty of Software-Based Attestation of Embedded Devices Claude Castelluccia Aurélien Francillon Daniele Perito INRIA Rhône-Alpes
IVEC: Off-Chip Memory Integrity Protection for Both Security and Reliability Ruirui Huang, G. Edward Suh Cornell University.
Countering Kernel Rootkits with Lightweight Hook Protection Presented by: Hector M Lugo-Cordero, MS CAP 6135 March 24, 2011.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
COMPUTER SECURITY MIDTERM REVIEW CS161 University of California BerkeleyApril 4, 2012.
Kyushu University Koji Inoue ICECS'061 Supporting A Dynamic Program Signature: An Intrusion Detection Framework for Microprocessors Koji Inoue Department.
Super computers Parallel Processing By Lecturer: Aisha Dawood.
Title of Selected Paper: IMPRES: Integrated Monitoring for Processor Reliability and Security Authors: Roshan G. Ragel and Sri Parameswaran Presented by:
Stamping out worms and other Internet pests Miguel Castro Microsoft Research.
G53SEC 1 Reference Monitors Enforcement of Access Control.
Buffer Overflow Proofing of Code Binaries By Ramya Reguramalingam Graduate Student, Computer Science Advisor: Dr. Gopal Gupta.
Buffer Overflow Attack Proofing of Code Binary Gopal Gupta, Parag Doshi, R. Reghuramalingam, Doug Harris The University of Texas at Dallas.
Precomputation- based Prefetching By James Schatz and Bashar Gharaibeh.
Security Architecture and Design Chapter 4 Part 1 Pages 297 to 319.
DSP Architectures Additional Slides Professor S. Srinivasan Electrical Engineering Department I.I.T.-Madras, Chennai –
Lecture 1: Review of Computer Organization
Efficient software-based fault isolation Robert Wahbe, Steven Lucco, Thomas Anderson & Susan Graham Presented by: Stelian Coros.
Exploiting Instruction Streams To Prevent Intrusion Milena Milenkovic.
Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software Paper by: James Newsome and Dawn Song.
A Survey on Runtime Smashed Stack Detection 坂井研究室 M 豊島隆志.
Question What technology differentiates the different stages a computer had gone through from generation 1 to present?
Slides by Kent Seamons and Tim van der Horst Last Updated: Nov 11, 2011.
Specifying Multithreaded Java semantics for Program Verification Abhik Roychoudhury National University of Singapore (Joint work with Tulika Mitra)
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
Where Testing Fails …. Problem Areas Stack Overflow Race Conditions Deadlock Timing Reentrancy.
A Framework For Trusted Instruction Execution Via Basic Block Signature Verification Milena Milenković, Aleksandar Milenković, and Emil Jovanov Electrical.
1 The user’s view  A user is a person employing the computer to do useful work  Examples of useful work include spreadsheets word processing developing.
Embedded Real-Time Systems
Software Security Testing
Olatunji Ruwase* Shimin Chen+ Phillip B. Gibbons+ Todd C. Mowry*
Computer Architecture
Ik-Soon Kim December 18, 2010 Embedded Software Platform Team
Chapter 10 The Stack.
Continuous, Low Overhead, Run-Time Validation of Program Executions
Computer Science I CSC 135.
CS 465 Buffer Overflow Slides by Kent Seamons and Tim van der Horst
Security in Java Real or Decaf? cs205: engineering software
Stephen Hines, David Whalley and Gary Tyson Computer Science Dept.
AEGIS: Secure Processor for Certified Execution
Control Unit Introduction Types Comparison Control Memory
Lecture Topics: 11/1 General Operating System Concepts Processes
Computer Organization
Anatomy of the Buffer Overflow
Presentation transcript:

r Enabling Trusted Software Integrity Darko Kirovski Microsoft Research Milenko Drinić Miodrag Potkonjak Computer Science Department University of California, Los Angeles

Problem Description

Buffer Overrun  Goal –Explore improperly implemented I/O –Divert execution to attack code  Simplest variant – Stack smashing –“Smashing The Stack For Fun And Profit” by Aleph One Phrack 49,  Numerous variants explore different vulnerabilities –Tutorials on the Web with bug descriptions –setuid() – Chen, Wagner, Dean, 2002.

What Can Be Done?  StackGuard – Cowan et al., 1998 –Dummy value next to return address  Bounds checking for all pointers – Jones, Kelly, 1995 –Slow in pointer-intensive software  Static analysis – Wagner, 2000 –Verify all buffers – promising idea –Too many false alarms –Need to be resolved manually

Intrusion Prevention  Current approaches –Intrusion detection  PREVENT rather than DETECT is easier  Intrusion prevention system –Adversary must solve a computationally difficult task to run programs in high priority  Two types of binaries –Ordinary –Touched with a security wand  Run-time verification

Outline  How the system works?  Software installation  Example of constraint embedding  Run-time verification  How to break the system?  Effect on performance

Outline  How the system works?  Software installation  Example of constraint embedding  Run-time verification  How to break the system?  Effect on performance

Outline  How the system works?  Software installation  Example of constraint embedding  Run-time verification  How to break the system?  Effect on performance

Software Installation  Installer is on- chip or on an EPROM with verified contents  Single process  I/O – memory mapped  Interrupts disabled  Used registers, memory overwritten  ~ BOOT on PCs GOAL: embed constraints w/o revealing CPUID.

Outline  How the system works?  Software installation  Example of constraint embedding  Run-time verification  How to break the system?  Effect on performance

Example: Instruction Scheduling

How the Bitstream Reorders Ops?

–Examples Instruction rescheduling Register assignment Basic block reordering Conditional branch selection Filling unused opcode fields Toggling signs of operands Constraint Embedding Techniques  Entropy of program representation is high  Reduce entropy w/ constraints for 50+ bits with preserved performance  Exact entropy reduction unique for each CPUID  Constraint types –Requirements High entropy Functional transparency Transformation invariance Effective implementation Low performance overhead

Outline  How the system works?  Software installation  Example of constraint embedding  Run-time verification  How to break the system?  Effect on performance

Run-time Code Verification  ARM instruction set and simulated system  50 cycles  20K gates  HW support? Cache line

Outline  How the system works?  Software installation  Example of constraint embedding  Run-time verification  How to break the system?  Effect on performance

How to Break the System?  Cryptographically secure keyed MAC –Hard to extract CPUID from working-copies –Hard to create an I-block with CPUID constraints satisfied w/o the CPUID  Patch low entropy instruction blocks –I-block with low entropy? Example: I-block = one instruction and all other NOPS –Hardware must detect I-blocks with low entropy Count and limit domain cardinality Done during domain ordering  Patch I-blocks from working copies –Difficult? Hard to evaluate w/o a lot of software

Outline  How the system works?  Software installation  Example of constraint embedding  Run-time verification  How to break the system?  Effect on performance

Performance  Embedded bits of entropy  Performance effect –13-25% overhead –7-17% with a cache that logs TI-hashes  Simulated w/ ARMulator  ARM instruction set  MediaBench suite

Summary  Intrusion prevention  On-line software verification for authenticity  Keyed message authentication code –Stored as footer –Stored as constraints 50% decrease in code size overhead  Public and trusted execution mode  Relatively hi/lo performance overhead –No hardware acceleration –20% - sets back Moore’s Law 4.5 months