Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.

Slides:



Advertisements
Similar presentations
Wei Lu 1, Kate Keahey 2, Tim Freeman 2, Frank Siebenlist 2 1 Indiana University, 2 Argonne National Lab
Advertisements

Operating System Security
CS533 Concepts of Operating Systems Class 14 Virtualization and Exokernels.
Secure In-VM Monitoring Using Hardware Virtualization Monirul Sharif, Wenke Lee, Weidong Cui, and Andrea Lanzi Presented by Tyler Bletsch.
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Analyzing and Improving Linux Kernel Memory Protection A Model Checking Approach ACSAC 2010 Siarhei Liakh, North Carolina State University Michael Grace,
Chapter 6 Security Kernels.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM B. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chambers,
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
E NSURING O PERATING S YSTEM K ERNEL I NTEGRITY WITH O SCK Owen Hofmann, Alan Dunn, Sangman Kim, Indrajit Roy*, Emmett Witchel UT Austin *HP Labs.
Using Programmer-Written Compiler Extensions to Catch Security Holes Authors: Ken Ashcraft and Dawson Engler Presented by : Hong Chen CS590F 2/7/2007.
InkTag: Secure Applications on an Untrusted Operating system
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Chapter 1 Introduction. Chapter Overview Overview of Operating Systems Secure Operating Systems Basic Concepts in Information Security Design of a Secure.
An Integrated Framework for Dependable Revivable Architectures Using Multi-core Processors Weiding Shi, Hsien-Hsin S. Lee, Laura Falk, and Mrinmoy Ghosh.
G Robert Grimm New York University Extensibility: SPIN and exokernels.
Extensibility, Safety and Performance in the SPIN Operating System Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Extensibility, Safety and Performance in the SPIN Operating System Dave Camarillo.
1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications.
Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.
Jiang Wang, Joint work with Angelos Stavrou and Anup Ghosh CSIS, George Mason University HyperCheck: a Hardware Assisted Integrity Monitor.
Efficient Software-Based Fault Isolation—sandboxing Presented by Carl Yao.
Virtualization Technology Prof D M Dhamdhere CSE Department IIT Bombay Moving towards Virtualization… Department of Computer Science and Engineering, IIT.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,
CSCE 548 Secure Software Development Risk-Based Security Testing.
Patterns for Secure Boot and Secure Storage in Computer Systems By: Hans L¨ohr, Ahmad-Reza Sadeghi, Marcel Winandy Horst G¨ortz Institute for IT Security,
Secure Virtual Architecture John Criswell, Arushi Aggarwal, Andrew Lenharth, Dinakar Dhurjati, and Vikram Adve University of Illinois at Urbana-Champaign.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Jakub Szefer, Eric Keller, Ruby B. Lee Jennifer Rexford Princeton University CCS October, 2011 報告人:張逸文.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
APPLICATION PERFORMANCE AND FLEXIBILITY ON EXOKERNEL SYSTEMS M. F. Kaashoek, D. R. Engler, G. R. Ganger H. M. Briceño, R. Hunt, D. Mazières, T. Pinckney,
Introduction Overview Static analysis Memory analysis Kernel integrity checking Implementation and evaluation Limitations and future work Conclusions.
Kenichi Kourai (Kyushu Institute of Technology) Takuya Nagata (Kyushu Institute of Technology) A Secure Framework for Monitoring Operating Systems Using.
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Native Client: A Sandbox for Portable, Untrusted x86 Native Code
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
(a) What is the output generated by this program? In fact the output is not uniquely defined, i.e., it is not always the same. So please give three examples.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM
Midterm Meeting Pete Bohman, Adam Kunk, Erik Shaw.
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Improving Xen Security through Disaggregation Derek MurrayGrzegorz MilosSteven Hand.
Operating Systems Security
Full and Para Virtualization
Protecting The Kernel Data through Virtualization Technology BY VENKATA SAI PUNDAMALLI id :
Version 02U-1 Computer Security: Art and Science1 Correctness by Construction: Developing a Commercial Secure System by Anthony Hall Roderick Chapman.
Efficient software-based fault isolation Robert Wahbe, Steven Lucco, Thomas Anderson & Susan Graham Presented by: Stelian Coros.
Enforcing Executing-Implies-Verified with the Integrity-Aware Processor Michael LeMay Carl A. Gunter University of Illinois at Urbana-Champaign Modified.
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
Efficient Software-Based Fault Isolation Authors: Robert Wahbe Steven Lucco Thomas E. Anderson Susan L. Graham Presenter: Gregory Netland.
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
CS533 Concepts of Operating Systems Jonathan Walpole.
MOPS: an Infrastructure for Examining Security Properties of Software Authors Hao Chen and David Wagner Appears in ACM Conference on Computer and Communications.
PREPARED BY: MS. ANGELA R.ICO & MS. AILEEN E. QUITNO (MSE-COE) COURSE TITLE: OPERATING SYSTEM PROF. GISELA MAY A. ALBANO PREPARED BY: MS. ANGELA R.ICO.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
Computer Security: Chapter 5 Operating Systems Security.
CSCE 548 Secure Software Development Risk-Based Security Testing
Presentation by Omar Abu-Azzah
Operating System Structure
OS Virtualization.
Hiding Malware Rootkits
The Design & Implementation of Hyperupcalls
Chapter 29: Program Security
Sai Krishna Deepak Maram, CS 6410
Shielding applications from an untrusted cloud with Haven
System Virtualization
2019 2학기 고급운영체제론 ZebRAM: Comprehensive and Compatible Software Protection Against Rowhammer Attacks 3 # 단국대학교 컴퓨터학과 # 남혜민 # 발표자.
Presentation transcript:

Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College of Arts and Sciences Department of Computer Science Presented by: Khulud Alsultan 7/18/2013

Outlines Introduction Detecting Kernel Rootkits Design Implementation Rootkits Evaluation Conclusion

Introduction Rootkits: software packages left on an exploited system to facilitate further malicious access. - It is difficult for modern tools to detect. Kernel Rootkits: use access to kernel memory to subvert the integrity of kernel code or data structures, giving control of critical resources to a malicious entity. Why dangerous to system security: modify OS state to avoid detection → gain unauthorized access to computer resources and to prevent detection.

Introduction Why are kernel rootkits difficult to detect ? OS have Complicated data structure with no explicit integrity constraints → providing a large and growing attack surface to rootkit authors. User- or kernel-level security tools should not trust a compromised OS kernel to correctly execute security checks.

Solution:OSck Osck: a system that discovers kernel rootkits by detecting malicious modifications to OS data. Integrates and extends existing techniques for detecting rootkits. Verifies safety properties for large portions of the kernel heap with minimal overhead. Detects when the state of kernel data structures violates the integrity properties specified to the hypervisor.

Solution: OSck High-performance integrity checks that execute concurrently with a running OS create data races Demonstrate a solution for ensuring kernel memory is in a consistent state. Introduce two new classes of kernel rootkits that are undetectable by current systems.

Detecting Kernel Rootkits -Kernel rootkits obscure signs of their presence Three techniques to hide the presence of rootkits: 1- Diverting control to code that hides presence of the rootkit. 2- Executing code or storing data outside of a traditional process or file context. 3- Modifying OS data structures to conceal the presence of the rootkit.

Detecting Kernel Rootkits 1- Protecting control flow: Rootkit may modify control flow to run its code in a context undetectable by users. Rootkit may modify OS control flow to hide resources visible to user level monitoring tools - Control transfers categories: *Static and persistent control transfers: OSck force transfers to remain immutable. *Dynamic control transfers: OSck checks certain type-safety Properties of the kernel heap.

Detecting Kernel Rootkits 2- Protecting non-control data: Rootkit may conceal system resources from the user by modifying non-control data in the kernel heap. OSck focuses on exporting a convenient interface for writing integrity checks. OSck extracts data structure definitions from kernel source generates an API for writing integrity checks as if they are code that would execute within a kernel thread, handling translation of kernel addresses

Design OSck architecture: Most of OSck’s verification runs in a thread at the same privilege level as the guest OS, isolated by process and VM boundaries.

Design 1- Determining which code to trust:  OSck must manage the regions of memory that are considered to be valid kernel code.  Modules dynamically loaded into the kernel must also become a part of the memory regions that OSck considers to be valid code.  Currently, OSck relies on a whitelist and cryptographic hash of trusted modules.

Design 2- Verifying heap safety: OSck verifies the entire heap in a linear scan of kernel memory: Several advantages: 1- A linear scan is efficient: in the common case, checking pointer targets is a read-only operation 2- Facilitates incremental verification.

Design 2- Verifying heap safety: Type information from an untrusted kernel Two mapping of kernel address to data types: 1- The effective mapping: is the mapping implicitly created by the actions of kernel code 2- The bound mapping: is the map that OSck creates

Design 2- Verifying heap safety: Type-safety example:

Design 3- Handling concurrency: Goal of Osck: minimize the performance impact of monitoring kernel state. Assumptions that allow OSck to verify the state of the kernel with no synchronization in the common case: 1- assume that false negatives due to unsynchronized accesses are transient and rare. Two steps that OSck performs in the event of an integrity violation: 1- Immediately re-verify the state of the kernel. 2- Enforce quiescence.

Implementation - Implement OSck as part of the KVM hypervisor. KVM virtualizes a guest kernel within a host Linux kernel. - A user-level launcher binary allocates a region of memory to serve as the guest’s physical memory, loads the guest kernel, and then calls into the host kernel to run the virtualized guest. - The majority of kernel data structures are addressed in a large portion of the virtual address space that linearly maps physical memory.

Implementation 1- Restricting guest privilege: OSck protects the static and persistent control transfers on system call entry 2- Slabs for efficient safety: data structures in the Linux kernel are allocated via slab allocation, which provides caches, or specialized per-type allocators. Kernel caches allocate memory from groups of pages called slabs containing a single type of object

Implementation 2- slabs for efficient safety The slab descriptor specifies the cache that contains the given slab alignment information for objects within the slab, and a list of free objects.

Implementation 3- Automatic type-safety checks: For each data type, OSck generates a C function that takes a pointer to kernel memory as input. For each pointer within the data type, OSck outputs a call to our pointer-based type safety verifier. For each nested data type, OSck outputs a call to the function responsible for verifying that data type.

Implementation 4- Manual integrity checks: OSck exports an interface for writing verification code that is convenient for those who understand kernel internals best: kernel developers.

Evaluation -Measure the performance and detection capability of OSck Rootkits that used in evaluation:

Evaluation 1- Rootkit detection Rootkits detected by OSckKernel integrity checks implemented by OSck

Evaluation 2- performance of OSck integrity checks Execution times for a single iterations of OSck’s complete integrity checks for each single core benchmark.

Evaluation 3-Benchmarks Benchmark execution time (slowdown of OSck checks over guest execution in parentheses).

Evaluation 4- OSck and concurrency Percent of OSck’s runqueue integrity checks that fail for different numbers of user processes that do nothing but yield the processor.

Conclusion OSck is a virtual machine based system that detects rootkits by determining violations to OS invariants. OSck introduces new mechanisms for bulk verification of types, and consistent data structure views to provide practical and efficient detection. OSck can efficiently detect many kinds of rootkits including two new classes that cannot be handled by any previous rootkit detection system.

References Hofmann, Owen S., et al. "Ensuring operating system kernel integrity with OSck." ACM SIGPLAN Notices. Vol. 46. No. 3. ACM, 2011.