Countering Kernel Rootkits with Lightweight Hook Protection

Download Report

Transcript Countering Kernel Rootkits with Lightweight Hook Protection

Countering Kernel Rootkits with
Lightweight Hook Protection
Presented by:
Hector M Lugo-Cordero, MS
CAP 6135
March 24, 2011
Acknowledgements
• Title: Countering Kernel Rootkits with Lightweight Hook
Protection
• Authors:
– North Carolina State University
• Zhi Wang
• Xuxian Jiang
• Peng Ning
– Microsoft Research
• Weidong Cui
• Published at: CCS '09 Proceedings of the 16th ACM
conference on Computer and communications security,
Chicago, Illinois, USA, 2009
• Sponsored by:
– NSF 0852131, 0855297, 0855036, and 0910767
2
Outline
•
•
•
•
•
Rootkits
HookSafe
Design and Implementation
Performance
Closing Remarks
3
Outline
•
•
•
•
•
Rootkits
HookSafe
Design and Implementation
Performance
Closing Remarks
4
Kernel Space
•
•
•
•
Where the core of the OS resides
May be accessed through system calls
Has full access to the system
Like running in real mode assembly
language, but at a higher level (i.e. easier
programming)
5
Kernel Rootkits
• Hide presence and activities
– Hijack control by modifying kernel space
• Types:
– Kernel Object Hooking (most of the rootkits)
– Dynamic Kernel Object Manipulation
• Tamper OS to launch attacks
–
–
–
–
System backdoor
Stealing private information
Escalating privileges of malicious process
Disabling defense mechanisms
6
Example of Rootkit (TDL4)
•
•
•
•
•
•
•
•
•
From the Rootkit.Win32.TDSS family
Installs in Master Boot Record
Runs before the Operating System
Blocks programs from running
Delivers advertisements
Google redirects
Keeps a copy of payload in MBR so it can be reinstalled
Best way to get rid of it is by replacing the MBR
Previous versions (infecting drivers) could be removed
with TDSSKiller from Kasperry group
7
Outline
•
•
•
•
•
Rootkits
HookSafe
Design and Implementation
Performance
Closing Remarks
8
Traditional Defense Approaches
• Analyzing rootkits behaviors
– Examples: Panorama, HookFinder, K-Tracer
• Search common symptoms on infected
computers
– Examples: Copilot, SBCFI, VMwatcher
• Preserve kernel code integrity
– Examples: SecVisor, Patagonix, NICKLE
– Can be bypassed by return-oriented rootkits
• Hijack function pointers or return addresses
• Utilize kernel code snippets
9
HookSafe
• Challenge: Protection granularity gap
– Hook protection requires byte granularity
– Hardware only provides page level protection
• Kernel hooks (function pointers), after initialized
have frequent read access, less write access
(less than 1%)
• Move hooks to page-aligned memory and
protect with traditional page protection
– Any write access can be monitored
• Small overhead effect
10
Hooks per Page Histogram
[1]
11
What are Pages?
• Fundamental to use non-continuous
memory blocks
• Creates a mapping between a physical
address and a virtual ones
• Provides virtual RAM
12
Paging Process
[2]
13
Paging Mapping
[2]
14
Outline
•
•
•
•
•
Rootkits
HookSafe
Design and Implementation
Performance
Closing Remarks
15
Assumptions
• A hypervisor will be used to monitor virtual
machines
– From Wikipedia: “In computing, a hypervisor, also
called virtual machine monitor (VMM), is one of
many virtualization techniques which allow multiple
operating systems, termed guests, to run concurrently
on a host computer, a feature called hardware
virtualization.”
• A bootstrap like tboot exists to establish a static
root of trust of the system
– A hypervisor can be securely loaded
– Protect the kernel at boot time
• Runtime integrity of hypervisor is maintained
16
HookSafe Architecture
17
[1]
Offline Hook Profiler
• Set of functions that read/write the hook
– Hook Access Points (HAPs)
• Set of values assign to a hook
• Enables transparent hook indirection
18
Offline Hook Profiler Design
• Static Analysis
– Performed on kernel’s source code
– Automatically collect hook profiles using 3rd party
program techniques (e.g. points-to analysis)
• Dynamic Analysis
– Does not need the source code (good for Windows)
– Run target system on an emulator and monitor
memory access to derive hook profiles
• Tradeoff
– Coverage (static) vs Precision (dynamic)
• HookSafe choses precision over coverage
19
Offline Hook Profiler Implementation
• Run in emulation and hooks are recorded
with set of read/write (HAPs) and values
[1]
20
Online Hook Protector
• Its input is the Hook Access Profiles
• Creates a shadow copy of all protected
hooks
• Instruments HAP instructions so that the
access is redirected to the shadow copy
• Shadow copies are moved into a
centralized location to be protected from
unauthorized modifications (i.e. page level
protection)
21
Online Hook Protector Design
• Initialization
– Temporary kernel module to create shadow copy of hooks and
load the code for indirection layer
– Patch the HAPs for redirection to copy
• Run-Time Read/Write Indirection
– Read: reads from copy and returns to HAPs
– Write: control is passed to hypervisor for validation check. New
value seen in the offline profiling phase.
• Run-Time Tracking of Dynamically Allocated Hooks
– Embedded in Dynamic Kernel Object (i.e. heap)
– Size is fixed because it can only be know at runtime
• Hardware abstraction intercept register access
22
Online Hook Protector Implementation
• 5 bytes jmp instruction
• 1 byte opcode (0xE9)
• 32-bit integer offset operand
[1]
• Variable length instructions in x86
• jmps are padded with NOP (0x90)
• old instructions are re-written and moved
23
Outline
•
•
•
•
•
Rootkits
HookSafe
Design and Implementation
Performance
Closing Remarks
24
Detecting Rootkits
• At read periodically the hook indirection
checks for consistency between the
original hook, and the shadow copy
• Any discrepancy is caused by a
compromised original hook
• At write if action is legitimate both original
and copy of the hook is written
25
Evaluation
[1]
26
Evaluation Example
[1]
27
Outline
•
•
•
•
•
Rootkits
HookSafe
Design and Implementation
Performance
Closing Remarks
28
Strengths (Remarks)
• Rootkit protection without the need of
going to the source code
• Low overhead of 6% of runtime
• Works with variable instruction length
architecture (e.g. x86)
• Byte equivalent protection using page
protection of the hypervisor
29
Weakness
• Doesn’t record what caused the rootkit infection.
It can detect, but not defend against future
attempts
• When discrepancy is found it automatically
assumes the original hook was compromised.
This was not the case with mood-nt
• Legitimate values need to be inside of hook
profile
• Memory usage for creating shadow copies
30
Suggestions
• Test HookSafe on Windows
• Add mechanisms to restore MBR or VBR
in case of multiple OS present
• Instead of checking discrepancy between
hooks and their copy, check against a
hash value to find out which is
compromised
• Incorporate static analysis or broader
dynamic analysis (e.g. adaptive analysis)
31
References
1. Z. Wang, X. Jiang, W. Cui, and P. Ning,
“Countering kernel rootkits with lightweight
hook protection”, Proceedings of the 16th ACM
conference on Computer and communications
security, Chicago, Illinois, USA, 2009, pp. 545
– 554
2. http://www.wikipedia.org
3. http://www.bleepingcomputer.com
4. http://support.kaspersky.com/viruses/solutions
?qid=208280684
32
QUESTIONS
33