Hardware Assisted Control Flow Obfuscation for Embedded Processors Xiaoton Zhuang, Tao Zhang, Hsien-Hsin S. Lee, Santosh Pande HIDE: An Infrastructure.

Slides:



Advertisements
Similar presentations
Hardware Assisted Control Flow Obfuscation for Embedded Processors Xiaotong Zhuang Tao Zhang Hsien-Hsin (Sean) Lee Santosh Pande Georgia Institute of Technology.
Advertisements

Lecture 8: Memory Hierarchy Cache Performance Kai Bu
Kernel memory allocation
CSIE30300 Computer Architecture Unit 10: Virtual Memory Hsin-Chou Chi [Adapted from material by and
Virtual Memory Hardware Support
Chapter 1 Computer System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
CSC1016 Coursework Clarification Derek Mortimer March 2010.
CSCE 212 Chapter 7 Memory Hierarchy Instructor: Jason D. Bakos.
S.1 Review: The Memory Hierarchy Increasing distance from the processor in access time L1$ L2$ Main Memory Secondary Memory Processor (Relative) size of.
Recap. The Memory Hierarchy Increasing distance from the processor in access time L1$ L2$ Main Memory Secondary Memory Processor (Relative) size of the.
Multiprocessing Memory Management
Computer System Overview
Memory Management 2010.
LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks Feng Qin, Cheng Wang, Zhenmin Li, Ho-seop Kim, Yuanyuan.
Memory Organization.
Computer System Overview
Computer Organization and Architecture
Virtual Memory Deung young, Moon ELEC 5200/6200 Computer Architecture and Design Lectured by Dr. V. Agrawal Lectured by Dr. V.
Computer System Overview Chapter 1. Basic computer structure CPU Memory memory bus I/O bus diskNet interface.
Memory management. Instruction execution cycle Fetch instruction from main memory Decode instruction Fetch operands (if needed0 Execute instruction Store.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Chapter 3 Memory Management: Virtual Memory
Chapter 1 Computer System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Computer Systems Overview. Page 2 W. Stallings: Operating Systems: Internals and Design, ©2001 Operating System Exploits the hardware resources of one.
Topics covered: Memory subsystem CSE243: Introduction to Computer Architecture and Hardware/Software Interface.
A Novel Cache Architecture with Enhanced Performance and Security Zhenghong Wang and Ruby B. Lee.
A Low-Cost Memory Remapping Scheme for Address Bus Protection Lan Gao *, Jun Yang §, Marek Chrobak *, Youtao Zhang §, San Nguyen *, Hsien-Hsin S. Lee ¶
Computer System Overview Chapter 1. Operating System Exploits the hardware resources of one or more processors Provides a set of services to system users.
Chapter 1 Computer System Overview Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William.
Microprocessor-based systems Curse 7 Memory hierarchies.
CSE431 L22 TLBs.1Irwin, PSU, 2005 CSE 431 Computer Architecture Fall 2005 Lecture 22. Virtual Memory Hardware Support Mary Jane Irwin (
Copyright © 2013, SAS Institute Inc. All rights reserved. MEMORY CACHE – PERFORMANCE CONSIDERATIONS CLAIRE CATES DISTINGUISHED DEVELOPER
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
CE Operating Systems Lecture 14 Memory management.
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
Memory Management. Introduction To improve both the utilization of the CPU and the speed of its response to users, the computer must keep several processes.
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
Lecture#15. Cache Function The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that.
CSCI1600: Embedded and Real Time Software Lecture 33: Worst Case Execution Time Steven Reiss, Fall 2015.
Multilevel Caches Microprocessors are getting faster and including a small high speed cache on the same chip.
Memory Management. Why memory management? n Processes need to be loaded in memory to execute n Multiprogramming n The task of subdividing the user area.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  What Operating Systems Do  Computer-System Organization  Computer-System Architecture  Operating-System Structure.
Informationsteknologi Wednesday, October 3, 2007Computer Systems/Operating Systems - Class 121 Today’s class Memory management Virtual memory.
LECTURE 12 Virtual Memory. VIRTUAL MEMORY Just as a cache can provide fast, easy access to recently-used code and data, main memory acts as a “cache”
Chapter 7 Memory Management Eighth Edition William Stallings Operating Systems: Internals and Design Principles.
Chapter 11 System Performance Enhancement. Basic Operation of a Computer l Program is loaded into memory l Instruction is fetched from memory l Operands.
Hello world !!! ASCII representation of hello.c.
Memory management The main purpose of a computer system is to execute programs. These programs, together with the data they access, must be in main memory.
Architecture Support for Secure Computing Mikel Bezdek Chun Yee Yu CprE 585 Survey Project 12/10/04.
Computer Orgnization Rabie A. Ramadan Lecture 9. Cache Mapping Schemes.
Computer Systems Overview. Lecture 1/Page 2AE4B33OSS W. Stallings: Operating Systems: Internals and Design, ©2001 Operating System Exploits the hardware.
Memory Protection through Dynamic Access Control Kun Zhang, Tao Zhang and Santosh Pande College of Computing Georgia Institute of Technology.
CS161 – Design and Architecture of Computer
Virtual memory.
Memory Management.
Chapter 1 Computer System Overview
Memory management.
CS161 – Design and Architecture of Computer
Session 3 Memory Management
5.2 Eleven Advanced Optimizations of Cache Performance
CSCI1600: Embedded and Real Time Software
Secure Processing On-Chip
Lecture 08: Memory Hierarchy Cache Performance
Morgan Kaufmann Publishers Memory Hierarchy: Virtual Memory
Chapter 1 Computer System Overview
Computer Architecture
Virtual Memory Use main memory as a “cache” for secondary (disk) storage Managed jointly by CPU hardware and the operating system (OS) Programs share main.
Operating Systems: Internals and Design Principles, 6/E
CSCI1600: Embedded and Real Time Software
CSE 542: Operating Systems
Presentation transcript:

Hardware Assisted Control Flow Obfuscation for Embedded Processors Xiaoton Zhuang, Tao Zhang, Hsien-Hsin S. Lee, Santosh Pande HIDE: An Infrastructure for Efficiently Protecting Information Leakage on the Address Bus Xiaoton Zhuang, Tao Zhang, Santosh Pande

Overview Software Obfuscation Obfuscate - v - render obscure, unclear, or unintelligible - bewilder (someone) Information Leakage Layout leakage Recurrence leakage Hardware Obfuscation Techniques

Assumptions XOM model Everything outside the processor chip is assumed to be insecure Memory contents are encrypted

Software Obfuscation (and why it doesn’t work) Lacks of theoretical foundation It has been proven the perfect obfuscation does not exist May incur large overheads in code size Performance may be penalized due to carrying out extra computations History has proven it inefficient

How is Software Obfuscation Vulnerable to Attack ? Layout Leakage Spatial vicinity Recurrence Leakage Recurring addresses

Layout Leakage

Recurrence Leakage

So What? It’s just Control Flow. Control flow info is the essential part of algorithms Competing company ex. Can help identify reuse code Control obfuscation techniques are well known and can be reversed

Hardware Obfuscation Overview (paper 1) Encrypt the Address Bus (layout leakage) Relocate blocks every time they are written out to memory (recurrence leakage)

Address Bus Encryption Equates to a fixed mapping

Shuffle Buffer Designed to reorder all writes to memory Exclusive to external memory

Shuffle Buffer Indexed array through the block address table No address tag Smaller size / cheaper Blocks can be stored anywhere Blocks can be randomly replaced (circuit white noise) Assume program binary updatable then multi- run recurrence prevented

Block Address Table (BAT) & Cache Records the current location of blocks Use original block address to index into BAT to get new address Worst case scenario 10% overhead in virtual memory space Each access request from cache checks with BAT use BAT cache to speed things up

How Secure Is This? With a shuffle buffer of 128 blocks 0.8% chance of guessing one recurrence correctly For n-recurrences the chance of guessing all correctly is 1/(M^n) where M is the size of the shuffle buffer

Performance/Cost Summary Performance degradation can be below 1% Hardware costs consist of small on chip shuffle buffer and BAT cache

HIDE (Hardware-support for Leakage-Immune Dynamic Execution) Basic idea is to break the correlation between repeated memory addresses Achieved by permuting the address space at suitable intervals during execution

Hide Cache A cache same as a normal cache except that that blocks fetched after the previous permutation are all locked A locked block cannot be replaced until the memory space they belong to is permuted again

How The Hide Cache Works

Other Details When evicting a block choose the least recently used block among the unlocked blocks A separately stored bitmap is used to record whether a block is locked or not

Hardware Flowgraph

HIDE at Chunk Level Chunk - one or more pages that are protected and permuted together Designed to limit size of permutation Large memory permutations = performance cost At chunk level the permutation unit only permutes all the blocks within a chunk With the smallest chunk size (a page) 75% of transition from one address to the next are intra-chunk Chunks can be specified in the code or at runtime with instructions inserted into the header of the binary code

Page Info Cache Stores the Page Info Record to speed up access

How Secure Is this? With 64K chunk protection and layout optimizations, 87% of address sequence is protected, in which 95% of the accesses to code and static data are hidden Interfaces are provided for the compiler or the user to increase the security to achieve almost complete protection

Performance/Cost Summary The performance overhead in their experiments was at most 1.5% mainly due to permutations Most on chip components are small

References Xiaotong Zhuang, Tao Zhang, Hsien-Hsin Lee and Santosh Pande. Hardware Assisted Control Flow Obfuscation for Embedded Processors. CASES, Washington DC, Sept Hardware Assisted Control Flow Obfuscation for Embedded Processors. Zhuang, X., Zhang, T. and Pande, S. HIDE: An Infrastructure for Efficiently Protecting Information Leakage on the Address Bus. International Conference on Architectural Support for Programming Languages and Operating Systems, Boston, MA., Oct 2004.HIDE: An Infrastructure for Efficiently Protecting Information Leakage on the Address Bus.