On the Difficulty of Software-Based Attestation of Embedded Devices Claude Castelluccia Aurélien Francillon Daniele Perito INRIA Rhône-Alpes

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

COMP375 Computer Architecture and Organization Senior Review.
Chapter 3 General-Purpose Processors: Software
CPU Review and Programming Models CT101 – Computing Systems.
Topics covered: CPU Architecture CSE 243: Introduction to Computer Architecture and Hardware/Software Interface.
1 SECURE-PARTIAL RECONFIGURATION OF FPGAs MSc.Fisnik KRAJA Computer Engineering Department, Faculty Of Information Technology, Polytechnic University of.
Low Cost Attack on Tamper Resistant Devices Ross Anderson, Markus Kuhn Songpol Manoonpong.
Software Certification and Attestation Rajat Moona Director General, C-DAC.
Software-based Code Attestation for Wireless Sensors.
COMP3221: Microprocessors and Embedded Systems Final Exam Lecturer: Hui Wu Session 1, 2005.
VIPER: Verifying the Integrity of PERipherals’ Firmware Yanlin Li, Jonathan M. McCune, and Adrian Perrig Carnegie Mellon University.
Memory Management Design & Implementation Segmentation Chapter 4.
Interfacing. This Week In DIG II  Basic communications terminology  Communications protocols  Microprocessor interfacing: I/O addressing  Port and.
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
Security Protection and Checking in Embedded System Integration Against Buffer Overflow Attacks Zili Shao, Chun Xue, Qingfeng Zhuge, Edwin H.-M. Sha International.
Basic Input/Output Operations
Pipeline Exceptions & ControlCSCE430/830 Pipeline: Exceptions & Control CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Courtesy of Yifeng.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
Unbounded Transactional Memory Paper by Ananian et al. of MIT CSAIL Presented by Daniel.
CMSC 414 Computer and Network Security Lecture 13 Jonathan Katz.
1 Pioneer: Dynamic Root of Trust for Measurement and Verifiable Executable Invocation Arvind Seshadri, Mark Luk, Elaine Shi, Adrian Perrig (CMU), Leendert.
Address Obfuscation: An Efficient Approach to Combat a Broad Range of Memory Error Exploits Sandeep Bhatkar, Daniel C. DuVarney, and R. Sekar Stony Brook.
Micro controllers A self-contained system in which a processor, support, memory, and input/output (I/O) are all contained in a single package.
Trusted Computing Technologies for Embedded Systems and Sensor Networks Adrian Perrig Carnegie Mellon University.
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.
Compressed Instruction Cache Prepared By: Nicholas Meloche, David Lautenschlager, and Prashanth Janardanan Team Lugnuts.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Interrupts. 2 Definition: An electrical signal sent to the CPU (at any time) to alert it to the occurrence of some event that needs its attention Purpose:
Computer Organization
hardware and operating systems basics.
Chapter 3 Memory Management: Virtual Memory
A survey of Buffer overflow exploitation on HTC touch mobile phone Advanced Defense Lab CSIE NCU Chih-Wen Ou.
System Calls 1.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
Kenichi Kourai (Kyushu Institute of Technology) Takuya Nagata (Kyushu Institute of Technology) A Secure Framework for Monitoring Operating Systems Using.
MICROPROCESSOR INPUT/OUTPUT
Operating Systems ECE344 Ashvin Goel ECE University of Toronto Overview of Hardware.
1 CS/COE0447 Computer Organization & Assembly Language Chapter 5 part 4 Exceptions.
R Enabling Trusted Software Integrity Darko Kirovski Microsoft Research Milenko Drinić Miodrag Potkonjak Computer Science Department University of California,
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
Chapter 2 Summary Classification of architectures Features that are relatively independent of instruction sets “Different” Processors –DSP and media processors.
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
1 A Secure Access Control Mechanism against Internet Crackers Kenichi Kourai* Shigeru Chiba** *University of Tokyo **University of Tsukuba.
Precomputation- based Prefetching By James Schatz and Bashar Gharaibeh.
A Generic Approach to Automatic Deobfuscation of Executable Code Paper by Babak Yadegari, Brian Johannesmeyer, Benjamin Whitely, Saumya Debray.
1 The Instruction Set Architecture September 27 th, 2007 By: Corbin Johnson CS 146.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Group 9. Exploiting Software The exploitation of software is one of the main ways that a users computer can be broken into. It involves exploiting the.
بسم الله الرحمن الرحيم MEMORY AND I/O.
PHY 201 (Blum)1 Stacks Based in part on material from Chapters 4 & 5 in Computer Architecture by Nicholas Carter.
Pioneer (and a few digressions) CMU CyLab Your Humble Presenter: Anthony Cozzie.
1 Xen and the Art of Binary Modification Lies, Damn Lies, and Page Frame Addresses Greg Cooksey and Nate Rosenblum, March 2007.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
Unpredictable Software-based Attestation Solution for Node Compromise Detection in Mobile WSN Xinyu Jin 1 Pasd Putthapipat 1 Deng Pan 1 Niki Pissinou 1.
Operating Systems A Biswas, Dept. of Information Technology.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ read/write and clock inputs Sequence of control signal combinations.
CS501 Advanced Computer Architecture
Computer Architecture
Modified Harvard Architectures
Chapter 9 – Real Memory Organization and Management
Overview Introduction General Register Organization Stack Organization
Continuous, Low Overhead, Run-Time Validation of Program Executions
CSCI1600: Embedded and Real Time Software
Operating Systems.
Chapter 2: Operating-System Structures
Computer Architecture
Chapter 2: Operating-System Structures
CSCI1600: Embedded and Real Time Software
Presentation transcript:

On the Difficulty of Software-Based Attestation of Embedded Devices Claude Castelluccia Aurélien Francillon Daniele Perito INRIA Rhône-Alpes Claudio Soriente University of California, Irvine paper review jordan jump

introduction presentation outline introduction paper summary critique

introduction about me BS CprE, 2005, ISU Rockwell Collins, Cedar Rapids, IA Software Engineer, Embedded focus

paper summary one slide synopsis If a remote node can only use software to prove that it is still running as it should, it is difficult to do so. The paper shows two general attack methods that make the node appear to be uncompromised when required to prove itself. It also shows attacks against specific techniques, and how modifications can prevent the attacks.

paper summary outline assumptions and previous work generic attacks – return-oriented rootkit – code compression difficulties with specific attestation proposals – SWATT – ICE-based

paper summary assumptions/previous work Software code attestation – Remotely verify a node has not been compromised – Verify via memory checksum + nonce Attack goals – Modify executable memory – Still pass attestation

paper summary assumptions/previous work General assumptions – Compromised device doesn’t interact with other malicious nodes – Unmodified hardware (not tamper-resistant) – Verifier aware of configuration Hardware: MicaZ – COTS wireless sensor – Atmel AVR – Harvard memory architecture (program, data, and external memories) Paper contents applicable to similar micro-controllers

paper summary generic attacks return-oriented programming (ROP) executes existing code (no code changes necessary) Arbitrary functionality (given large enough code size) Manipulates program stack so return executes desired code Segment starts near a return statement, segments strung together If existing code known, compilers make creation of ROP easy – Attack uses ROP rootkit

paper summary generic attacks ROP root-kit attack Start of attestation code modified to initiate cleanup sequence Cleanup modifies return address on stack Attestation occurs Returns to ROP that initiates re-infection code

paper summary generic attacks Compression attack – Previously, unused program space filled with pseudorandom values so attacker cannot use them. – Compress code to make space for attack code – Decompressed on-the-fly during attestation – Achieved average of 11.6% compression

paper summary issues time-based attestation SoftWare-based ATTestation (SWATT), Seshadri et. al. Introduces time-to-respond Attacker would slow down function if redirecting memory Relies on fastest redirection and checksum known – Paper introduces faster redirection Requires half program memory unused Redirect 0x11xx…xx accesses to 0x10xx…xx and store malicious code in 0x11xx…xx 2 cycles vs previously fastest 3 cycles. Still detectable.. relies on processor capabilities – Porting SWATT required rewrite of algorithm, changed timing

paper summary issues time-based attestation Preventing rootkit attack on SWATT – Data memory not verified, allows attack – Verify memory or clean memory after attestation – Verification difficult Architecture uses different address space, instructions Pseudorandom verification requires branch Unpredictible contents (registers, I/O, stack) – Clean memory and reboot Disrupts rootkit attack, not shadow attack

paper summary issues ICE-based attestation Indisputable Code Execution (ICE) – Self-checksumming function – Bijective function selects order of memory locations – 10x16bit registers (C) used to calculate result: PC = Program Counter, SR = Status Register Several protocols based on ICE Not all processors support PC access

paper summary issues ICE-based attestation ICE-based vulnerability – PC xor current address (move both) – 0xA0000 xor 0xC5678 = 0x65678 – 0x20000 xor 0x45678 = 0x65678 Root cause: weak mixing in checksum routine

critique #1 Paper briefly dismisses self-modify code attestation – Claim self-modifying code is too slow and complex/impossible to implement on flash-based device. – Similar technique successfully used for rootkit

critique #2 Compression attack implementation doesn’t include decompression routine in sizes? – Decompression routine: 1707 program memory, 2565 data memory – Compression from bytes to – Claim 2961 bytes free after 512 canonical huffman tree and 995 for checkpoints. Doesn’t account for decompression routine. – Should be 1254 free. Data memory is only 4k; decompression routine uses substantial portion (could use measurement storage) – Compression algorithm not included (only direct-access attack?)

critique #3 Attacks preventable/detectable using simple or known methods – Compression attack detectable by SWATT – SWATT shadowing attack solved by filling empty space – Root-kit evicted by re-booting during attestation

critique #4 Rootkit requires knowledge of program contents – Static analysis to tailor attack to software – Suitable only for directed attack ICE-attack needs to be carefully crafted if modified routine

! ⊕ ?