Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

CPU Structure and Function
COMP375 Computer Architecture and Organization Senior Review.
Tuning of Loop Cache Architectures to Programs in Embedded System Design Susan Cotterell and Frank Vahid Department of Computer Science and Engineering.
THE SPARC ARCHITECTURE Presented By M. SHAHADAT HOSSAIN NAIEEM TOURZO KHAN SARDER FERDOUS SADIQUE
Computer Organization and Architecture
CSCI 4717/5717 Computer Architecture
Using Instruction Block Signatures to Counter Code Injection Attacks Milena Milenković, Aleksandar Milenković, Emil Jovanov The University of Alabama in.
Data Dependencies Describes the normal situation that the data that instructions use depend upon the data created by other instructions, or data is stored.
Thread Criticality Predictors for Dynamic Performance, Power, and Resource Management in Chip Multiprocessors Abhishek Bhattacharjee Margaret Martonosi.
POLITECNICO DI MILANO Parallelism in wonderland: are you ready to see how deep the rabbit hole goes? ILP: VLIW Architectures Marco D. Santambrogio:
TIE Extensions for Cryptographic Acceleration Charles-Henri Gros Alan Keefer Ankur Singla.
Dynamic Branch PredictionCS510 Computer ArchitecturesLecture Lecture 10 Dynamic Branch Prediction, Superscalar, VLIW, and Software Pipelining.
Bio Michel Hanna M.S. in E.E., Cairo University, Egypt B.S. in E.E., Cairo University at Fayoum, Egypt Currently is a Ph.D. Student in Computer Engineering.
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
Sim-alpha: A Validated, Execution-Driven Alpha Simulator Rajagopalan Desikan, Doug Burger, Stephen Keckler, Todd Austin.
Digital Signatures and Hash Functions. Digital Signatures.
Software Certification and Attestation Rajat Moona Director General, C-DAC.
From Sequences of Dependent Instructions to Functions An Approach for Improving Performance without ILP or Speculation Ben Rudzyn.
Chapter 12 Pipelining Strategies Performance Hazards.
Computer System Overview
1 Design For Debug Using DAFCA system Gadi Glikberg 15/6/06.
Computer System Overview
Buffer Overflow Attacks. Memory plays a key part in many computer system functions. It’s a critical component to many internal operations. From mother.
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.
Efficient Software-Based Fault Isolation—sandboxing Presented by Carl Yao.
Acknowledgements: William Stallings.William Stallings All rights Reserved Session 4 Public Key Cryptography (Part 2) Network Security Essentials Application.
Calculating Discrete Logarithms John Hawley Nicolette Nicolosi Ryan Rivard.
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.
Chapter 7 Memory Management Seventh Edition William Stallings Operating Systems: Internals and Design Principles.
Kenichi Kourai (Kyushu Institute of Technology) Takuya Nagata (Kyushu Institute of Technology) A Secure Framework for Monitoring Operating Systems Using.
1 Architectural Support for Copy and Tamper Resistant Software David Lie, Chandu Thekkath, Mark Mitchell, Patrick Lincoln, Dan Boneh, John Mitchell and.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 1 Computer System Overview.
Hardware Assisted Control Flow Obfuscation for Embedded Processors Xiaoton Zhuang, Tao Zhang, Hsien-Hsin S. Lee, Santosh Pande HIDE: An Infrastructure.
Reconfigurable Computing Using Content Addressable Memory (CAM) for Improved Performance and Resource Usage Group Members: Anderson Raid Marie Beltrao.
11.1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 11 Message Integrity and Message Authentication.
Title of Selected Paper: IMPRES: Integrated Monitoring for Processor Reliability and Security Authors: Roshan G. Ragel and Sri Parameswaran Presented by:
Transactional Coherence and Consistency Presenters: Muhammad Mohsin Butt. (g ) Coe-502 paper presentation 2.
Operating Systems Security
Introduction Program File Authorization Security Theorem Active Code Authorization Authorization Logic Implementation considerations Conclusion.
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
CS 351/ IT 351 Modeling and Simulation Technologies HPC Architectures Dr. Jim Holten.
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.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
بسم الله الرحمن الرحيم MEMORY AND I/O.
Chapter One Introduction to Pipelined Processors
IT 221: Introduction to Information Security Principles Lecture 5: Message Authentications, Hash Functions and Hash/Mac Algorithms For Educational Purposes.
COMP091 – Operating Systems 1 Memory Management. Memory Management Terms Physical address –Actual address as seen by memory unit Logical address –Address.
A Framework For Trusted Instruction Execution Via Basic Block Signature Verification Milena Milenković, Aleksandar Milenković, and Emil Jovanov Electrical.
Computer Systems Overview. Lecture 1/Page 2AE4B33OSS W. Stallings: Operating Systems: Internals and Design, ©2001 Operating System Exploits the hardware.
1 Computer System Overview Chapter 1. 2 Operating System Exploits the hardware resources of one or more processors Provides a set of services to system.
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Hardware Support for Embedded Operating System Security
Bruhadeshwar Meltdown Bruhadeshwar
Microarchitectural for monitoring application specific instructions
Continuous, Low Overhead, Run-Time Validation of Program Executions
Module IV Memory Organization.
AEGIS: Secure Processor for Certified Execution
Chapter 1 Introduction.
TPM, UEFI, Trusted Boot, Secure Boot
Hashing Hash are the auxiliary values that are used in cryptography.
Introduction to Cryptography
Hash Function Requirements
Presentation transcript:

Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar

2  Security compromised by execution of "trusted" software - unintended program behavior, info leakage.  Embedded software content development around 140% per year (faster than Moore's Law). Thus most security attacks are software based.  Most software attacks exploit the weakness of trusted code or application. (Buffer overflow). Introduction

3  Security considered at various stages of embedded systems - system architecture, hardware and software.  Hardware assisted run - time monitoring system to detect unintended program execution - static program analysis to allow permissible run - time behavior  Program properties captured - inter/intra procedural control flow, instruction integrity checker.  Methodology to design application - specific hardware monitors.  Why Hardware assisted monitoring?...Eliminates many software and physical attacks, minimal overhead...

4 Secure program checking categories  1) Static checking, 2) Software based program monitoring, 3) Hardware unit for secure execution. 1)Static checking - scan tools used to eliminate weakness in software in design phase....Rule based and limited by known cases of weaknesses... 2)Software based program monitoring - authors provide formal specification for execution trace, violations checked by comparing execution trace. Monitoring software embedded in system....Monitoring by software so this is again vulnerable, overhead...

5 3)Hardware monitor unit - may have encryption and decryption algorithms to verify source of input data. Can also have trace of application to prevent unintended behavior  New approach - Merge static checking of program behavior with run - time monitoring using hardware.

6 Block Diagram of Hardware-assisted Monitor

7  5 stage pipelined processor, monitor inputs - IR and PC address.  Monitor outputs - stall (if monitor cannot keep pace with processor execution), invalid (if security breached, unmaskable interrupt to trigger security mechanisms).  Monitor checks for program properties - inter/intra procedural control flow, instruction integrity checker. These basic properties are violated in unintended execution, chosen because concise, scalable, little overhead in monitoring.  Two modes for flagging invalid behavior in inter/intra procedural check - 1) Detection mode - processor is allowed to continue while the monitor is running and is stalled only if an instruction completes before the previous control instruction has been verified. 2) Prevention mode - no new instruction is allowed to commit after a control instruction until the latter has been checked

8 Inter procedural control flow - to check between different procedures in a program (coarse grained) ‏  Implemented as FSM with N+1 states.  N states for states in N functions in a program.  +1 state for invalid transition check.  If control goes between any of the N states via valid call/returns then control valid, else for invalid call/return, invalid state (+1th state).  Validity of call/return checked via program trace.

9 Intra procedural control flow - logical succession of inter procedural check, to check inside a procedure (fine grained) ‏  Implemented as Block Information Table.  Function divided into blocks - each block has row in Information Table.  For blocki, rowi. index = block index, offset = starting address of blocki w.r.t. function, s0, s1 = where the control should go from blocki (only 2 block exits).  Validity of s0, s1 checked from trace.

10 Instruction Integrity check - (finer grained) ‏  Intra procedural check is not fool proof as a block can still be altered without any immediate effect to control flow.  Integrity check complements intra procedural control flow.  Integrity of dynamic instruction stream checked using Hash functions - "Given a message x and its cryptographic hash H(x), it is computationally infeasible to find a message y such that y != x but H(y) = H(x)".

11  Hash calculation is intensive so values for each block's instruction, Hash computed before hand and saved using a dedicated processor for Intra procedural stage.  Hash values matched between Intra procedural stage (already saved), Integrity check stage.  Hash values calculated for Integrity check stage using Hash engine. Latency of hash computation does not permit stalling the processor for each instruction. Processor and Hash unit run in parallel and processor stalled if only if hash unit buffer is full.  Hash output = 16 to 20 bytes, so for time saving, a fixed number Hash output bits are only matched.

12 Hash Block  SHA-1 hash function block.  A, B,...,E are words, F is non linear function, <<< n denotes left bit rotation by n, Wt and Kt are constants.

13 Hardware Architecture of Monitor

14  The Inter/intra procedural checks and integrity checks are logically independent, but they share hardware and need to communicate with each other.  The execution trace is extracted and loaded onto monitor before executing application. User options can be set to control configuration of execution trace to be loaded.

15 Design Impacts  Area overhead increases with the monitor system. Largest area overhead from Inter procedural control flow block. However, efficient S.o.C. implementations of monitor can reduce this.  If on chip memory used to store monitor's execution trace, performance degradation is less as compared to when off chip memory is used.

16 CPI for off chip memory execution trace - even in this case, the impact is fairly small (average of 1.77% for detection mode and 4.94% for prevention mode).

17 Conclusion  Scalable, make monitor configurable for better performance.  Performance and area overheads are not too costly so design is viable.  Using more efficient encryption algorithms instead of Hash.  Has the potential to counter any threat.

18 Thank you. Questions?