Zero-Footprint Guest Memory Introspection from Xen · o Built on top of Xen 3.1 • 2008 –VMsafe...
Transcript of Zero-Footprint Guest Memory Introspection from Xen · o Built on top of Xen 3.1 • 2008 –VMsafe...
www.bitdefender.com 8/8/2014• 1
Zero-Footprint Guest Memory
Introspection from Xen
Xen Project DEVELOPER SUMMIT
August 18th, 2014
Mihai DONȚU – Technical Project Manager, Bitdefender
Ravi SAHITA – Principal Engineer, Intel
Improving VM Introspection
Using Hardware Virtualization Extensions
www.bitdefender.com 8/8/2014• 2
Zero-Footprint Guest Memory
Introspection from Xen
Xen Project DEVELOPER SUMMIT
August 18th, 2014
Mihai DONȚU – Technical Project Manager, Bitdefender
Ravi SAHITA – Principal Engineer, Intel
Improving VM Introspection
Using Hardware Virtualization Extensions
www.bitdefender.com 8/8/2014• 3
Outline
• Security issues
• Memory introspection
oOperation
o Evolution
• XenAccess and mem-events enhancements
• Sample usages
• Hardware Acceleration for memory introspection
• Conclusions
www.bitdefender.com 8/8/2014• 4
Security issues we are facing today
• Advanced malware types
o Rootkits
o Kernel exploits
o Zero-days
• APTs, botnets, cyber-espionage
and so on heavily rely on those…
www.bitdefender.com 8/8/2014• 5
Security issues we are facing today 2
www.bitdefender.com 8/8/2014• 6
Security issues we are facing today 3
Malware today execute in the same context and with the same
privileges as anti-malware software lack of isolation problem
Common Malware Advanced Malware
Drivers
App1(Office)
OS Kernel
ISOLATION
Kernel Controlled
App2(Browser)
Security
Solution
Security
Filter Drivers
App1(Office)
OS Kernel
App2(Browser)
Security
Solution
Security
Filter
ISOLATION
Kernel Controlled
Isolation Bypassed & Malware Controlled
www.bitdefender.com 8/8/2014• 7
Conclusion: advanced attacks evade traditional security solutions
www.bitdefender.com 8/8/2014• 8
Envision the big picture
so… what’s the big difference?...
Xen Hypervisor
dom0
SVA
(domU0)
domU1Memory
Introspection
Engine
domU2 domUN
Protected area
www.bitdefender.com 8/8/2014• 9
Memory introspection
Envision the big picture
Xen Hypervisor
dom0
SVA
(domU0)
domU1Memory
Introspection
Engine
domU2
domUN
Protected area
Hypervisor Controlled, Hardware Enforced
STRONG ISOLATION
Introspection Engine Alternative 2
Introspection
Engine
Alternative 3
www.bitdefender.com 8/8/2014• 10
• Address a number of security issues from outside the
guest OS without relying on functionality that can be
rendered unreliable by advanced malware
• Analyze raw memory image of guest OS, services and
user mode applications, then identify
o kernel memory areas
o driver objects, driver code, IDT, etc.
o user memory areas
o process code, process stack, process heap, etc.
What is memory introspection?
Envision the big picture
www.bitdefender.com 8/8/2014• 11
• Use existent hardware virtualization extensions (Intel EPT / AMD RVI)
• Set hooks on guest OS memory
o mark 4K pages as non-execute or non-writable
o hooking & notification must be supported efficiently by HV & CPU
• Audit access of those areas by the code running in VM (OS or apps)
o write attempts (driver objects, fast I/O tables, page tables)
o execution attempts
• Allow or deny attempts – decision provided by security logic
How does it work?
Memory introspection
www.bitdefender.com 8/8/2014• 12
How does it work? 2
Memory introspection
EPT protected areasprovide detection for various OS level
changes (ex. new module load,
new process start, …)
EPT protected areasprovide detection for attempts &
protection against integrity violation
Guest VM Physical
Memory Space
OS
kernel
code
kernel
driver code
and data
kernel data
SSDT, IDT,
…
user
mode
code
user
mode
stacks &
heaps
www.bitdefender.com 8/8/2014• 13
• Building a reliable image of the guest OS state
o what objects are inside a guest VM?
o what operations are being performed inside a guest VM?
o object and event identification and correlation is done by the
introspection engine – to decide event and object maliciousness
• Using hooks we can detect numerous events, including
o a driver / kernel module is loaded or unloaded
o a new user process or thread is created
o user stack / heap is allocated
o memory is being paged in / out
How does it work? 3
Memory introspection
www.bitdefender.com 8/8/2014• 14
How does it work? 4
Memory introspection
Traditional in-guest
security solutionOut-of-guest memory
introspection
OS
Kern
el
Typ
ical A
nti
-Malw
are
Kern
el
Mo
du
leRead mem by Virtual Addr,
read files, registry, …
Enum processes, files, …
01010
10011 MZ…
Setup well-known
callbacks & notifications
New process
PID 0x1234
HKLM\...
XE
N H
yp
erv
iso
r
Me
mo
ry I
ntr
osp
ecti
on
En
gin
e
Read mem by Physical Addr
Read vCPU registers
01010
10011
Setup EPT hooks on mem
pages (by Physical Addr)
Write / Execute attempt on
PA 0x000A12345678
RAX = 0x1234
RIP = 0x7890
www.bitdefender.com 8/8/2014• 15
• bridging the semantic gap – obtain rich semantics from only
raw physical memory pages and virtual CPU registers
o how do we correlate 4K memory pages with semantically
rich and meaningful OS specific data structures?
o to be solved by security solution vendors
• forward lots of mem-event notifications with low overhead to
introspection engine
o to be solved by hypervisor and CPU vendors
Two big challenges
Memory introspection
www.bitdefender.com 8/8/2014• 16
Memory introspection evolution
• 2003 – Garfinkel & Rosenblum: “A Virtual Machine Introspection Based Architecture
for Intrusion Detection”
o the starting point for a considerable amount of academic research
• 2006 – Jiang & Wang: “’Out-of-the-box’ Monitoring of VM-based High-Interaction Honeypots”
• 2008 – Dinaburg et al.: “Ether: Malware Analysis via Hardware Virtualization Extensions”
o Built on top of Xen 3.1
• 2008 – VMsafe API announced by VMware, which provides access to a guest’s:
o CPU, memory, disk, I/O devices etc.
o supported memory introspection for vSphere / ESXi
• 2010 – VMware vShield Endpoint (as a replacement for VMsafe API)
o in-guest agent based
o file introspection only
• 2012 – VMware deprecates VMsafe
www.bitdefender.com 8/8/2014• 17
Memory introspection in Xen
• 2007 – XenAccess, XenProbes
• 2008 – Lares
• 2009 – first patches for the mem-events API
• 2010 – LibVMI – uses XenAccess and XenStore
o targets Xen, but support for other HV-s can be added
o insufficient flexibility in changing page permissions
o no support for mapping guest memory RW
o insufficient information about the guest CPUs
o high overhead when reading the vCPU register state
o a ‘complete’ initialization requires intimate knowledge about the guest OS
o code for handling specific guest OS-s (Windows, with Linux in the works)
www.bitdefender.com 8/8/2014• 18
XenAccess and mem-events
enhancements
• 2014 – Bitdefender published a set of patches (as RFC) to enhance
the mem-events API
o implements its own version of LibVMI
o simpler API
o nothing [guest] OS specific
o support for other HV-s can be added
o allows to map guest memory (via EPT)
o uses a very simple page cache to optimize (un)maps
o optimized access to specific resources
• Some patches went into mainline, others will follow shortly
www.bitdefender.com 8/8/2014• 19
XenAccess and mem-events
enhancements 2
mem-event notificationXen Hypervisor
SVA
(domU0)
Memory
Introspection
Engine
domU1
uint32_t flags;
uint32_t vcpu_id;
uint64_t gfn;
…
mem_event_regs_t regs;
www.bitdefender.com 8/8/2014• 20
Example use of the extended API
Xen Hypervisor
dom0
SVA
(domU0)
Memory
Introspection
Engine
Protected areas
Critical Kernel Module
Critical Kernel Module
App1 App2
…Code, stacks,
heaps, IAT, …Code, stacks,
heaps, IAT, …
Code, stacks,
heaps, IAT, …
Mem-events and
VMCALLs facilitated by XEN
www.bitdefender.com 8/8/2014• 21
Example use of the extended API 2
• Bitdefender’s own introspection engine can
o protect the kernel from known rootkit hooking techniques
o protect user processes (e.g. browsers, MS Office, Adobe Reader, …) from
o code injection
o function detouring
o code execution from stack / heap
o unpacked malicious code
o inject remediation tools into the guest on-the-fly (no help from ‘within’ needed)
• Runs in userspace in a user domain (SVA – Security Virtual Appliance)
• Introspection logic has very small overhead
o bulk of the overhead is given by sending / receiving events and calls between
protected guest VMs and SVA
22
Hardware Acceleration for Memory Introspection
Ravi SahitaIntel
23
Hardware Acceleration for Memory Introspection
Factors Limiting VM Memory Monitoring Performance
Addressing Lack of Memory Isolation
Addressing Performance gaps for execution and data access-control policies
Xen Extensions
24
Factors Limiting VM Memory Monitoring Performance
Round-trip time
–Monitoring execution and data accesses
–Dynamic data structures imply high frequency events
Filtering events
–Monitoring data accesses requires filtering non-interesting events due to 4K page sharing
Further, round-trip time is amplified with VMMs nesting
25
Multiple EPTs as Protection Domains
CPU0
Hypervisor
Intel® VT-xwith EPT
VM0
Extended Page Table(EPT) Domains
EPTWalker
Execution crossing EPT domains or data Accesses causing eventshost physical
address
Intel® Virtualization Technology for IA-32, Intel® 64 and Intel® Architecture (Intel® VT-x)
OS kernel Code/data(RX/RW)
Driver Code (RX)
Driver Code (RO)
OS kernelCode/data (RO/NP)
Data (RW)
Data (NP)
26
Addressing Lack of Isolation…
Xen
EPT DomainsEPT Domains
policy events
CPU
Hypervisor-derived isolation
27
Kernel module Kernel module
Security module
…Without Sacrificing Performance
Must allow for legal execution of components isolated in permission domains
Each execution transfer across domains leads to VM exits that the hypervisor must mediate
As components isolated via domains, numerous execution transfers are induced
High Frequency of such VM exits to the hypervisor causes overhead
Process
Hypervisor
Eliminate these induced VM exitson legal control transfers
Legal control transfers
28
VM Functions:Hypercalls Without VM Exits
VM Functions: Intel® VT-x extensions for services configured by the hypervisor
– Different VM Functions correspond to different services
Hypervisor configures VM Functions via new fields in VMCS
Guest software invokes VM Functions via new instruction (VMFUNC<leaf>)
– Value in EAX specifies which VM Function leaf is invoked
CPU provides services as configured with no VM exit
Intel® Virtualization Technology for IA-32, Intel® 64 and Intel® Architecture (Intel® VT-x)
29
VMFUNC-based Domain Switching
Paravirtualized software can request protection domain switch via VMFUNC (specifying domain index)
Hypervisor pre-configures domain index to EPTPs
Hypervisor pre-configures domain boundaries
View switching to speed up access control policies
CPU0
Hypervisor
Intel® VT-xwith EPT
VM0
Extended Page Table(EPT) domains
EPTWalker
VMFUNC (EPTP switch)
Host physical address
Aternate ExtendedPage Table(EPT) list
Intel® Virtualization Technology for IA-32, Intel® 64 and Intel® Architecture (Intel® VT-x)
30
Asynchronous Induced VMExits
In VM-introspection scenarios critical data is monitored in place
Legacy approaches are to VMExit and emulate access
Alternatively, VMExit and switch views to single step the guest (MTF)
High frequency of writes to monitored data cause high overhead
Requires custom logic in the VMM increasing complexity/state in the hypervisor
Kernel (Guest)
Hypervisor
EPT Domains
Ring-0 MonitoringAgent
MonitoredMemory
WRITE
2. EPT-VVMexit
3. VMResume to single step access
SingleStep Memory View
4. VMexit after access completed
Access Policy
1. View Policies
5. VMResume
EPT Domains Emulation
31
Accelerating Induced Events
Via Virtualization Exception (#VE)– Mutates EPT violations into a new IA
exception – delivered through guest IDT
VMM enables EPT violation conversion to #VE
Data access monitoring view policies setup in EPT domains
Data access causes #VE instead of VMexit
Guest monitoring agent can emulate in guest OR use VMFUNC to single step access
Hypervisor (VMX-root)
Kernel/VMX-non-root
EPT Domains
MonitoringService
MonitoredMemory
1. Handle #VE
3. Complete single step or emulate in guest
Single Step Memory View
2. Setup single step or emulate
WRITEAccess Policy
1. Policies
VMFUNC
VMFUNC
#VE
#VE info
VMFUNC
EPT Domains
32
VMFUNC Configuration
Hypervisor checks IA32_VMX_VMFUNC MSR for allowed VM-Function controls
Opts-in by setting “Enable VM functions” in the secondary processor-based VM-execution controls field
Activates “EPTP switching” by setting bit-0 in the VM Function Control
Configure alternate EPTP values in memory referenced via VMCS field
Guest software uses VMFUNC opcode with leaf selector EAX=0 and ECX containing the index of EPTP (view) selected
Errors reported to the hypervisor via VM Exits
“Enable VM functions” VM-execution control (bit 13)
EPTP-list address
0:Alternate-EPTP
1:Alternate-EPTP
511:Alternate-EPTP
“EPTP switching” (bit 0)
Secondary processor-based VM-execution controls
VMFunction Control (new)
In memory
VMCS
In VMCS(new)
IA32_VMX_VMFUNC MSR (index 491H)
33
Virtualization Exception (VE) Configuration
Enumerated by the VMM via capability MSR
Set VMCS “Enable VE” bit
Negotiate “VE Info” page with Hypervisor
#VE delivered through guest IDT
Suppress VE EPTE Bit 63
– Set on pages the VMM does not want to cause a #VE for
“Enable VE” VM-execution control (bit 18)
VE Information Address
Exit Reason
Suppress
Exit Qualification
Secondary processor-based VM-execution controls
In memory
Virtual Machine Control Structure (VMCS)
In VMCS
(new)
IA32_VMX_PROCBASED_CTLS2 (48Bh) Bit 50
Guest Linear Address
Guest Physical Address
EPTP Index
34
Xen Extensions
1. Efficiently creating and maintaining alternate EPT views/domains via extension of p2m
2. Hypercalls to edit EPT permissions without conflicting with Xen EPT management
3. Report guest-specific memory events via #VE in a Xen compatible manner (Suppress #VE EPTE bit)
4. Enabling CPU acceleration if VMFUNC and #VE CPU enumerated and opted-in
Xen Hypervisor
domUNdomU0
Security Engine
EPT DomainsEPT Domains
Security Engine
CPU#VE
EPT DomainsEPT Domains
#VE
35
VM Introspection Performance Improvements
Round-trip time
– VMFUNC to allow safe, fast Memory View (EPT) switches
– VMexits mutated to #VE for guest memory monitoring
Filtering events
– Reduced latency of #VE event handling reduces overhead of filtering events
Round-trip time amplification due to VMM nesting
– No VMexits to root VMM implies no amplification of VMexits due to EPT violations
Scalable Runtime Memory Introspection w/o VT overheads
www.bitdefender.com 8/8/2014• 36
• Today Xen can be the base for providing a much improved layer of
security – serves as a model for other HV vendors
o Truly agentless security (zero in guest footprint)
o IT Admins can deploy introspection based solutions seamlessly,
without changing a single line of config inside the guest VMs
• Hardware enforced isolation (against kernel exploits, zero days, …)
• Hardware extensions enable intra-VM isolation to enable protected
agent based introspection for high frequency access monitoring and
agent isolation
• Both models require straight-forward Xen infrastructure changes
(multi-EPT views, hardware acceleration capabilities)
Conclusions
www.bitdefender.com 8/8/2014• 37
Thank you!
enterprise.bitdefender.com
www.bitdefender.com 8/8/2014• 39