Dynamic Program Security Aaron Roth Ali Sinop Gunhee Kim Hyeontaek Lim.

Slides:



Advertisements
Similar presentations
Flexible Hardware Acceleration for Instruction-Grain Program Monitoring Joint work with Michael Kozuch 1, Theodoros Strigkos 2, Babak Falsafi 3, Phillip.
Advertisements

Overcoming an UNTRUSTED COMPUTING BASE: Detecting and Removing Malicious Hardware Automatically Matthew Hicks Murph Finnicum Samuel T. King University.
IMPACT Second Generation EPIC Architecture Wen-mei Hwu IMPACT Second Generation EPIC Architecture Wen-mei Hwu Department of Electrical and Computer Engineering.
Compiler Optimized Dynamic Taint Analysis James Kasten Alex Crowell.
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir.
Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software Paper by: James Newsome and Dawn Song.
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 3: Input/output and co-processors dr.ir. A.C. Verschueren.
Practical and Efficient Information Flow Tracking Using Speculative Hardware Haibo Chen, Xi Wu, Liwei Yuan, Binyu Zang Fudan Univ. Pen-chung Yew Univ.
Chrysalis Analysis: Incorporating Synchronization Arcs in Dataflow-Analysis-Based Parallel Monitoring Michelle Goodstein*, Shimin Chen †, Phillip B. Gibbons.
LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks - F. Qin, C. Wang, Z. Li, H. Kim, Y. Zhou, Y. Wu (UIUC,
Using Programmer-Written Compiler Extensions to Catch Security Holes Authors: Ken Ashcraft and Dawson Engler Presented by : Hong Chen CS590F 2/7/2007.
RAKSHA A Flexible Information Flow Architecture for Software Security Michael Dalton Hari Kannan Christos Kozyrakis Computer Systems Laboratory Stanford.
TaintCheck and LockSet LBA Reading Group Presentation by Shimin Chen.
Efficient and Flexible Architectural Support for Dynamic Monitoring YUANYUAN ZHOU, PIN ZHOU, FENG QIN, WEI LIU, & JOSEP TORRELLAS UIUC.
Securing software by enforcing data-flow integrity Manuel Costa Joint work with: Miguel Castro, Tim Harris Microsoft Research Cambridge University of Cambridge.
ReferencesReferences DiscussionDiscussion Vulnerability Example: SQL injection Auditing Tool for Eclipse LAPSE: a Security Auditing Tool for Eclipse IntroductionIntroductionResultsResults.
LIFT: A Low-Overhead Practical Information Flow Tracking System for Detecting Security Attacks Feng Qin, Cheng Wang, Zhenmin Li, Ho-seop Kim, Yuanyuan.
1 Achieving Trusted Systems by Providing Security and Reliability (Research Project #22) Project Members: Ravishankar K. Iyer, Zbigniew Kalbarczyk, Jun.
Active Messages: a Mechanism for Integrated Communication and Computation von Eicken et. al. Brian Kazian CS258 Spring 2008.
Dynamic Tainting for Deployed Java Programs Du Li Advisor: Witawas Srisa-an University of Nebraska-Lincoln 1.
PathExpander: Architectural Support for Increasing the Path Coverage of Dynamic Bug Detection S. Lu, P. Zhou, W. Liu, Y. Zhou, J. Torrellas University.
RAKSHA A Flexible Information Flow Architecture for Software Security Michael Dalton Hari Kannan Christos Kozyrakis Computer Systems Laboratory Stanford.
1 RAKSHA: A FLEXIBLE ARCHITECTURE FOR SOFTWARE SECURITY Computer Systems Laboratory Stanford University Hari Kannan, Michael Dalton, Christos Kozyrakis.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Panorama: Capturing System-wide Information Flow for Malware Detection and Analysis Authors: Heng Yin, Dawn Song, Manuel Egele, Christoper Kruegel, and.
Vulnerability-Specific Execution Filtering (VSEF) for Exploit Prevention on Commodity Software Authors: James Newsome, James Newsome, David Brumley, David.
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
Benjamin Davis Hao Chen University of California, Davis.
15-740/ Oct. 17, 2012 Stefan Muller.  Problem: Software is buggy!  More specific problem: Want to make sure software doesn’t have bad property.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
A Survey of Dynamic Techniques for Detecting Device Driver Errors Olatunji Ruwase LBA Reading Group 18 th May 2010.
Parallelizing Security Checks on Commodity Hardware E.B. Nightingale, D. Peek, P.M. Chen and J. Flinn U Michigan.
Page Overlays An Enhanced Virtual Memory Framework to Enable Fine-grained Memory Management Vivek Seshadri Gennady Pekhimenko, Olatunji Ruwase, Onur Mutlu,
Presentation of Failure- Oblivious Computing vs. Rx OS Seminar, winter 2005 by Lauge Wullf and Jacob Munk-Stander January 4 th, 2006.
CSC-682 Cryptography & Computer Security Sound and Precise Analysis of Web Applications for Injection Vulnerabilities Pompi Rotaru Based on an article.
R Enabling Trusted Software Integrity Darko Kirovski Microsoft Research Milenko Drinić Miodrag Potkonjak Computer Science Department University of California,
Parallelizing Security Checks on Commodity Hardware Ed Nightingale Dan Peek, Peter Chen Jason Flinn Microsoft Research University of Michigan.
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.
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.
On-Demand Dynamic Software Analysis Joseph L. Greathouse Ph.D. Candidate Advanced Computer Architecture Laboratory University of Michigan December 12,
Accelerating Dynamic Software Analyses Joseph L. Greathouse Ph.D. Candidate Advanced Computer Architecture Laboratory University of Michigan December 1,
Highly Scalable Distributed Dataflow Analysis Joseph L. Greathouse Advanced Computer Architecture Laboratory University of Michigan Chelsea LeBlancTodd.
Protecting C Programs from Attacks via Invalid Pointer Dereferences Suan Hsi Yong, Susan Horwitz University of Wisconsin – Madison.
M. Tiwari, B. Agrawal, S. Mysore, J. Valamehr, T. Sherwood, CS & ECE of UCSB Reading Group Presentation by Theo.
Detecting Atomicity Violations via Access Interleaving Invariants
Computer Architecture Lab at Evangelos Vlachos, Michelle L. Goodstein, Michael A. Kozuch, Shimin Chen, Phillip B. Gibbons, Babak Falsafi and Todd C. Mowry.
Sampling Dynamic Dataflow Analyses Joseph L. Greathouse Advanced Computer Architecture Laboratory University of Michigan University of British Columbia.
Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software Paper by: James Newsome and Dawn Song.
The Potential of Sampling for Dynamic Analysis Joseph L. GreathouseTodd Austin Advanced Computer Architecture Laboratory University of Michigan PLAS, San.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
G. Venkataramani, I. Doudalis, Y. Solihin, M. Prvulovic HPCA ’08 Reading Group Presentation 02/14/2008.
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.
ECE/CS 552: Pipeline Hazards © Prof. Mikko Lipasti Lecture notes based in part on slides created by Mark Hill, David Wood, Guri Sohi, John Shen and Jim.
Lecture 4 Page 1 CS 111 Online Modularity and Memory Clearly, programs must have access to memory We need abstractions that give them the required access.
A Framework For Trusted Instruction Execution Via Basic Block Signature Verification Milena Milenković, Aleksandar Milenković, and Emil Jovanov Electrical.
Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir. A.C. Verschueren Eindhoven University of Technology Section of Digital.
Reference Monitors/Information Flow Tracking
Olatunji Ruwase* Shimin Chen+ Phillip B. Gibbons+ Todd C. Mowry*
Taint tracking Suman Jana.
Modularity and Memory Clearly, programs must have access to memory
1Intel Research Pittsburgh 2CMU 3EPFL 4UT Austin
All You Ever Wanted to Know About Dynamic Taint Analysis & Forward Symbolic Execution (but might have been afraid to ask) Edward J. Schwartz, Thanassis.
Parallelizing Dynamic Information Flow Tracking
Fault Tolerant Systems in a Space Environment
Presentation transcript:

Dynamic Program Security Aaron Roth Ali Sinop Gunhee Kim Hyeontaek Lim

Security Attacks Software that deals with input is potentially vulnerable to attacks: Low-level Attacks: –Buffer Overflows: Writing data without bounds checking can corrupt adjacent memory locations. Can overwrite return pointer and hijack control flow…

Security Attacks Semantic Attacks: –Everything looks ok at the low-level, but… SELECT Userlist.Username FROM Userlist WHERE Userlist.Username = ‘Username’ AND Userlist.Password = ‘Password’ SELECT Userlist.Username FROM Userlist WHERE Userlist.Username = ‘Username’ AND Userlist.Password = ‘Password’ OR ‘1’=‘1’

Solution? Tracking untrusted information –Assign a ‘taint bit’ to every word of memory. Set to 1 if it came from an untrusted source, or if it was derived from an untrusted register. –Throw a security exception if something dangerous is done with a tainted word: Instruction Execution Pointer Dereferencing … DONE!

Problems? A Naïve software implementation of this is slow… (up to 37x slowdown) –Remember PIN? A hardware-only implementation risks lots of false negatives/false positives –Doesn’t know about program semantics, or when data has been verified to be safe Solution?

Raksha: A Flexible Information Flow Architecture for Software Security Michael Dalton, Hari Kannan and Christos Kozyrakis Computer Systems Laboratory, Stanford University ISCA 2007

Prior Work Software-based methods: + Flexible –Either require access to source code [Xu et al’06] or, –Binary instrumentations lead to slowdowns from 3x to 37x [Qin et al’06, Newsome & Song’05] –Not safe with multi-threading [Qin et al’06] Hardware-based methods: + Fast –Hardcoded security policies –Can’t prevent high-level attacks [Dalton et al’06]

Basic Approach Taint propagation mechanism as mentioned earlier (dynamic information flow): –Extend all storage by 4-bit tag bits at 32-bit word level. –One bit for each policy –Each instruction is given one or more classes: –Floating Point –Move –Integer Arithmetic –Comparisons –Logical –TPR: Tag Propagation Registers for each active security policy (=4) –Designates how to compute the result tag from source tag(s) –for each instruction class –Certain instructions can untaint data: Example: –Buffer overwrite: Bounds checking by comparison [Chen et al’05]

Basic Approach (2) –Checking for security violations: –TCR: Tag Check Registers for each active security policy (=4) –Specifies which operands should be checked for tag exception. –Also handles corner cases (false positives): –Should XOR r1, r1, r1 make r1 untainted?

Even more Raksha Trusted processor mode –Access to security policy TPR and TCR registers User-defined security handler –Raised when an unsafe operation is executed on a tainted operand –Should distinguish false-positives –Efficient because no kernel/user mode switch

Results ProgramLanguageAttackDetected Vulnerability gzipCDirectory traversal Open file with tainted absolute path ScryPHPCross-site scriptingTainted HTML output includes ProFTPDCSQL injectionUnescaped tainted SQL query polymorphCBuffer overflowTainted code pointer dereference (return address) ProgramRaksha Slowdown bzip21.33x crafty1.00x gap1.12x

Flexible Hardware Acceleration for Instruction-Grain Lifeguards Shimin Chen 1, Michael Kozuch 1, Theodoros Strigkos 2, Babak Falsafi 3, Phillip B. Gibbons 1, Todd C. Mowry 1,2, Vijaya Ramachandran 4, Olatunji Ruwase 2, Michael Ryan 1, Evangelos Vlachos 2 1 Intel Research Pittsburgh 2 CMU 3 EPFL 4 UT Austin ISCA 2008

Flexible Hardware Acceleration for Instruction-Grain Lifeguards Dynamic Monitoring Tool (during application execution) Ex. Memory access, Data Flow

Flexible Hardware Acceleration for Instruction-Grain Lifeguards Dynamic Monitoring Tool (during application execution) Ex. DBI: 10~100 times Slowdown Ex. Memory access, Data Flow

Flexible Hardware Acceleration for Instruction-Grain Lifeguards Ex. DBI: 10~100 times Slowdown Applications/bugs, attacks are always changed Ex. Memory access, Data Flow Dynamic Monitoring Tool (during application execution)

Summary Fast and Flexible Lifeguard Specific Lifeguard General Purpose: Wide Range of Lifeguards Dynamic binary instrumentation (DBI) X slowdowns General-Purpose HW improving DBI 3-8X slowdowns Lifeguard-specific hardware This paper Performance Good Poor [Bruening’04] [Luk et al’05] [Nethercote’04] [Crandall & Chong’04], [Dalton et al’07], [Shetty et al’06], [Shi et al’06], [Suh et al’04], [Venkataramani’07], [Venkataramani’08], [Zhou et al’07] [Chen et al’06] [Corliss’03] [Source]

Approach Identify three main sources of lifeguard overhead –Propagation-style metadata updates –Metadata checks –Matadata mapping Propose three hardware acceleration techniques –Inheritance tracking (IT) –Idempotent filters (IF) –Metadata-TLBs (M-TLB) Log-based architecture (LBA)

Results AddrCheck TaintCheck TaintCheck w/ detailed tracking LockSet MemCheck BASE MTLB MTLB+IF BASE MTLB MTLB+IT MTLB+IT+IF BASE MTLB MTLB+IT BASE MTLB MTLB+IT BASE MTLB MTLB+IF average slowdowns [Source]

Discussion Dynamic checking seems to be good… Let’s check dynamic checking!

Who Checks? Software only –Adaptable to new types of checking –Very slow Mostly hardware –Low overheads –Specialized & needs more complex hardware HW checks, but SW analyzes ([Dalton et al’07]) SW checks, but HW accelerates ([Chen et al’08]) Other hybrid methods?

What Does It Check? Hand-written invariants –Time consuming to write –Error-prone –Can be another source of bug & security problems! Automatically finding invariants?

When Does It Check? Immediately checking –Blocks main execution when handling security exception ([Dalton et al’07]) –Stops any error propagation if found –Makes unnecessary latency for false-positives Not immediately checking –Records execution log & check it ([Chen et al’06,’08]) –Can hide latency & utilize idle/multiple cores –May be too late to stop error propagation Some hybrid methods?

Conclusion Dynamic checking –Promising solution to detect security attacks –Abundant research opportunities