Detecting past and present intrusions through vulnerability- specific predicates Ashlesha Joshi, Sam King, George Dunlap, and Peter Chen.

Slides:



Advertisements
Similar presentations
Remus: High Availability via Asynchronous Virtual Machine Replication
Advertisements

Debugging operating systems with time-traveling virtual machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Integrity & Malware Dan Fleck CS469 Security Engineering Some of the slides are modified with permission from Quan Jia. Coming up: Integrity – Who Cares?
A Randomized Dynamic Program Analysis for Detecting Real Deadlocks Koushik Sen CS 265.
Secure In-VM Monitoring Using Hardware Virtualization Monirul Sharif, Wenke Lee, Weidong Cui, and Andrea Lanzi Presented by Tyler Bletsch.
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
SHelp: Automatic Self-healing for Multiple Application Instances in a Virtual Machine Environment Gang Chen, Hai Jin, Deqing Zou, Weizhong Qiang, Gang.
Using Programmer-Written Compiler Extensions to Catch Security Holes Authors: Ken Ashcraft and Dawson Engler Presented by : Hong Chen CS590F 2/7/2007.
Dilma M. da Silva IBM TJ Watson Research Center, NY What is going on in Operating Systems Research: The OSDI & SOSP Perspective.
Virtual Machine Security Design of Secure Operating Systems Summer 2012 Presented By: Musaad Alzahrani.
Memory Management (II)
G Robert Grimm New York University Disco.
The ghost of intrusions past Ashlesha Joshi Peter M. Chen University of Michigan 7 December 2004.
Achieving Trusted Systems by Providing Security and Reliability Ravishankar K. Iyer, Zbigniew Kalbarczyk, Jun Xu, Shuo Chen, Nithin Nakka and Karthik Pattabiraman.
Detecting past and present intrusions through vulnerability- specific predicates Ashlesha Joshi, Sam King, George Dunlap, and Peter Chen University of.
Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.
An Out-of-the-Box Approach to High Assurance Computer System Monitoring and Integrity Protection Cyber Defense Conference, Rome, NY, May 12-14, 2008 Assistant.
MemTracker Efficient and Programmable Support for Memory Access Monitoring and Debugging Guru Venkataramani, Brandyn Roemer, Yan Solihin, Milos Prvulovic.
SubVirt: Implementing malware with virtual machines Yi-Min Wang Chad Verbowski Helen J. Wang Jacob R. Lorch Microsoft Research Samuel T. King Peter M.
Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
1 RAKSHA: A FLEXIBLE ARCHITECTURE FOR SOFTWARE SECURITY Computer Systems Laboratory Stanford University Hari Kannan, Michael Dalton, Christos Kozyrakis.
Jiang Wang, Joint work with Angelos Stavrou and Anup Ghosh CSIS, George Mason University HyperCheck: a Hardware Assisted Integrity Monitor.
CSE598C Virtual Machines and Their Applications Operating System Support for Virtual Machines Coauthored by Samuel T. King, George W. Dunlap and Peter.
Virtualization Technology Prof D M Dhamdhere CSE Department IIT Bombay Moving towards Virtualization… Department of Computer Science and Engineering, IIT.
SubVirt: Implementing malware with virtual machines
Security Exploiting Overflows. Introduction r See the following link for more info: operating-systems-and-applications-in-
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Jonathan Walpole (based on a slide set from Vidhya Sivasankaran)
CS533 Concepts of Operating Systems Jonathan Walpole.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
Operating System Support for Virtual Machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Buffer Overflows Lesson 14. Example of poor programming/errors Buffer Overflows result of poor programming practice use of functions such as gets and.
Cosc 4010 Sandboxing. Last lecture Last time, we covered chroot, which is a method to "sandbox" a problem. –Not full proof by any means. Many simple mistakes.
Virtual Machine Security Systems Presented by Long Song 08/01/2013 Xin Zhao, Kevin Borders, Atul Prakash.
Threads and Concurrency. A First Look at Some Key Concepts kernel The software component that controls the hardware directly, and implements the core.
Stealthy Malware Detection Through VMM-based “Out-of-the-Box” Semantic View Reconstruction CCS’07, Alexandria, VA, Oct 29 – Nov 2, 2007 Xuxian Jiang, Xinyuan.
The Best of Both Worlds with On-Demand Virtualization Thawan Kooburat and Michael M. Swift On-Demand Virtualization allows systems to benefit from virtualization.
Operating Systems ECE344 Ashvin Goel ECE University of Toronto OS-Related Hardware.
Computer Science Detecting Memory Access Errors via Illegal Write Monitoring Ongoing Research by Emre Can Sezer.
Our work on virtualization Chen Haogang, Wang Xiaolin {hchen, Institute of Network and Information Systems School of Electrical Engineering.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Vigilante: End-to-End Containment of Internet Worms Authors : M. Costa, J. Crowcroft, M. Castro, A. Rowstron, L. Zhou, L. Zhang, and P. Barham In Proceedings.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Vidhya Sivasankaran.
Accelerating Dynamic Software Analyses Joseph L. Greathouse Ph.D. Candidate Advanced Computer Architecture Laboratory University of Michigan December 1,
Buffer Overflow Attack Proofing of Code Binary Gopal Gupta, Parag Doshi, R. Reghuramalingam, Doug Harris The University of Texas at Dallas.
Presented By, Bhargavi Konduru.  Nowadays, most electronic appliances have computing capabilities that run on embedded operating system (OS) kernels,
Highly Scalable Distributed Dataflow Analysis Joseph L. Greathouse Advanced Computer Architecture Laboratory University of Michigan Chelsea LeBlancTodd.
Seminar of “Virtual Machines” Course Mohammad Mahdizadeh SM. University of Science and Technology Mazandaran-Babol January 2010.
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
Operating Systems Security
SubVirt: Implementing malware with virtual machines Authors: Samuel T. King, Peter M. Chen University of Michigan Yi-Min Wang, Chad Verbowski, Helen J.
Lecture 26 Virtual Machine Monitors. Virtual Machines Goal: run an guest OS over an host OS Who has done this? Why might it be useful? Examples: Vmware,
Protecting The Kernel Data through Virtualization Technology BY VENKATA SAI PUNDAMALLI id :
Sampling Dynamic Dataflow Analyses Joseph L. Greathouse Advanced Computer Architecture Laboratory University of Michigan University of British Columbia.
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Presented by: Pierre LaBorde, Jordan Deveroux, Imran Ali, Yazen Ghannam, Tzu-Wei.
Flashback : A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging Sudarshan M. Srinivasan, Srikanth Kandula, Christopher.
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
Memory Protection through Dynamic Access Control Kun Zhang, Tao Zhang and Santosh Pande College of Computing Georgia Institute of Technology.
Vigilante: End-to-End Containment of Internet Worms Manuel Costa, Jon Crowcroft, Miguel Castro, Antony Rowstron, Lidong Zhou, Lintao Zhang and Paul Barham.
Introduction to Virtualization
Lecture 24 Virtual Machine Monitors
Backtracking Intrusions
Introduction to Operating Systems
By Dunlap, King, Cinar, Basrai, Chen
Operating System Support for Virtual Machines
Sampling Dynamic Dataflow Analyses
Presentation transcript:

Detecting past and present intrusions through vulnerability- specific predicates Ashlesha Joshi, Sam King, George Dunlap, and Peter Chen

Index Authors Motivation & Introduction Goals Challenges & Solutions Evaluation Related work Conclusion 2

Author group EECS Department University of Michigan Peter M. Chen is the leader of the group, and the other 3 authors are his students. The group is investigating how to add security services through virtual machines. Paper: Operating System Support for Virtual Machines USENIX

Authors Ashlesha Joshi Ph.D in Computer Science, University of Michigan 4

Samuel T. King 2006 Ph.D University of Michigan Now in University of Illinois at Urbanna-Champain Research areas: Operating System, Security and VM. important papers: 1.Virtualization and Security: Back to the Future IEEE S&P SubVirt: Implementing malware with virtual machines IEEE S&P Capo: a software-hardware interface for practical deterministic multiprocessor replay ASPLOS '09 5

George Washington Dunlap Ph.D University of Michigan Research areas: Operating System, VM. important papers: 1.Execution replay of multiprocessor virtual machines VEE’08 2.Debugging operating systems with time- traveling virtual machines ATEC '05 6

Peter M. Chen 1992, Ph.D. in Computer Science from the University of California at Berkeley, Research areas: Operating Systems, Databases, Distributed Systems. important papers: 1.Tolerating latency in replicated state machines through client speculation NSDI’09 2.Execution replay of multiprocessor virtual machines VEE,08 3.Rethink the sync OSDI’06 4.Backtracking intrusions SOSP’03 7

8 Motivation Software contains bugs, including flaws that may be exploited by an attacker Some time passes before vendor becomes aware of bug Software vendors try to release patches quickly time patch released patch applied vulnerability introduced Vulnerability discovered

9 Motivation Was this vulnerability triggered on my machine in the past? Can I somehow protect my system before I install the patch? time patch released patch applied vulnerability introduced time patch released patch applied vulnerability introduced Vulnerability discovered

10 Predicates Patch writer knows exactly what conditions during program execution indicate triggering of vulnerability Use this knowledge to write vulnerability- specific predicates that check these conditions –No false positives or false negatives

11 An example 1 char *str = some_string; 2 int length = strlen (str); 3 char buf [BUFSIZE]; 4 strcpy(buf,str); // D’oh! Predicate: (length >= BUFSIZE)

12 Approach vulnerability introduced “past”“present” time patch released patch applied Using replay, detect if vulnerability was triggered in past Monitor ongoing execution to detect and respond to attempts to trigger vulnerability

13 Goals The system must… 1.Not perturb the target software 2.Work for both OS and application-level vulnerabilities 3.Allow predicates to be installed dynamically 4.Allow predicates to be written easily 5.Have low overhead

14 Challenge #1: Where do predicates execute? On a normal computer, software runs either as a user-level application or in the operating system kernel. Neither of these locations is suitable for executing predicates because predicates should run outside the target system to avoid perturbing its state.

15 control IntroVirt structure hardware host OS guest OS application predicate engine state predicates intrusions detected VMM application

16 Challenge #2: Semantic gap Problem: VMM exposes guest state at the wrong level of abstraction –It gives us registers, memory locations, disk blocks, … –We want program variables, files, … 1 uid = getuid(); 2 // forget to check group membership 3 perform privileged action Predicate –Perform missing authentication, e.g., read /etc/group

17 Bridging the semantic gap How could the programmer write this predicate? –Determine memory location where uid is stored; if page not resident, read from disk; read value of uid; traverse guest OS file system structures to see if /etc/group in file cache, if so, read from memory; if not, traverse FS structures to see which disk blocks contain it, then read blocks from disk; … –i.e., emulate guest functionality Our solution: call guest code –Leverages existing guest code that does what we want –Here, we cause the guest itself to read the file and check group membership

18 Challenge #3: Avoiding perturbations to target state Calling guest functions perturbs target Solution: use checkpoint and restore –Take a checkpoint before changing guest state –Restore to checkpoint after predicate execution Also protects from (buggy) predicates that modify guest state incorrectly

19 the state checked by the predicate can change after the predicate executes but before the state is used by the vulnerable code. Challenge #4: Preemptions between the predicate and the bug

20 Predicate refresh Detect and respond to race –“Predicate refresh” –Observation: in uniprocessors, a scheduling event must occur before any other process can run –Re-execute predicate on scheduling events to detect relevant changes in state

Evaluation The system has 5 goals. Goal 1,2,3 are met by design. Goal 4:Allow predicates to be written easily and goal 5:low overhead, are the main evaluation objectives. 21

Example Predicates CAN : This bug involves a missing bounds check in the Linux kernel’s do_brk function The function neglects to check for integer overflow and to check if the process is trying to expand its heap above the address TASK SIZE. The patch consists of the following code, inserted before line 1044 of mmap.c 22

23 Predicate for CAN Actual Patch: if((addr + len) > TASK_SIZE || (addr + len) < addr) return –EINVAL; Predicate: registerBreak(“mmap.c:1044:begin”, brkEventHandler); void brkEventHandler() { unsigned long addr = readVar(“addr”); unsigned long len = readVar(“len”); if((addr+len) > TASK_SIZE || (addr+len) < addr) { cout << “brk bug triggered” << endl; } }

CAN Vulnerability: static int get_client_master_key(SSL *s) {... s->session->key_arg_length=i; // line 419 s->state=SSL2_ST_GET_CLIENT_MASTER_KEY_B;...} Patch: if(i > SSL_MAX_KEY_ARG_LENGTH) { SSLerr(SSL_F_GET_CLIENT_MASTER_KEY, SSL_R_KEY_ARG_TOO_LONG); return -1; } 24

Predicate: void sslEventHandler() { unsigned long i = readVar("i"); if(i > SSL_MAX_KEY_ARG_LENGTH) // "kill process" response strategy introvirt.killCurrentProcess(); } 25

26 Experience Wrote predicates for 20 real vulnerabilities (Linux kernel, bind, emacs, gv, imapd, OpenSSL, php, smbd, squid, wu-ftpd, xpdf) –Easy to write once vulnerability is understood –Length and complexity comparable to patch –Most are simple, e.g., just read a few variables Overhead for most predicates is less than 10% –Many predicates are on infrequently executed code paths –Frequently executed predicates are simple and fast –Checkpoint/restore adds 5ms

Predicates they have written 27

28 Related work VM introspection [Rosenblum97] VM introspection for intrusion detection [Garfinkel03] Shield [Wang04] Vigilante [Costa05]

29 Conclusions Vulnerability-specific predicates detect triggering of software vulnerabilities IntroVirt predicate engine –Simple to write general-purpose predicates –No perturbations in state Alert users about past attacks Detect and respond to attacks in the present