Spectre: A Dependable Introspecon Framework via Fengwei Zhang, Kevin Leach, Kun Sun, and Angelos Stavrou. In DSN'13.

Presented by Fengwei Zhang

Wayne State University CSC 6991 Topics in Computer Security 1 Agenda

• Introducon • Background • System Framework • Experimental Results • Conclusion

Wayne State University CSC 6991 Topics in Computer Security 2 Agenda

• Introducon • Background • System Framework • Experimental Results • Conclusion

Wayne State University CSC 6991 Topics in Computer Security 3 Introducon

• Malware detecon and analysis remain an open research problem • Tradionally, malware detecon is provided by ︎ installing an-malware tools (e.g., an-virus) within the OS • However, these detecon tools are vulnerable to ︎ malware running at the same level (e.g., ) • ’Out-of-box’ introspecon mechanism proposed ︎ for malware detecon and analysis (e.g., Virtual machine introspecon)

Wayne State University CSC 6991 Topics in Computer Security 4 Introducon

• Virtual Machine Intropsecon (VMI) systems run malware within a VM and use analysis tool to introspect the malware from outside • VMI systems have been widely adopted for malware detecon and ︎ analysis. They isolate the malware detecon soware from a vulnerable guest [4, 5, 6] • Limitaons of VMI systems: – Large Trusted Compung Base (TCB) (e.g., 4.2 has 208K lines of code) – Armored malware can detect the presence of a VM and alter its own execuon (e.g., an-VM techniques) – High performance overhead • We present Spectre, a dependable introspecon framework via system management mode

Wayne State University CSC 6991 Topics in Computer Security 5 Agenda

• Introducon • Background • System Framework • Experimental Results • Conclusion

Wayne State University CSC 6991 Topics in Computer Security 6 Background

System Management Mode (SMM) • A CPU mode on the Architecture. • Aer entering into SMM, it executes the System Management Interrupt (SMI) handler • SMI handler stores at a sealed storage called System Management RAM (SMRAM) • BIOS locks the SMRAM, and the SMRAM is inaccessible from any other CPU modes • SMM-based systems – Integrity checking: HyperGuard [7], HyperCheck [8], – HyperSentry [1] – SMM rootkits [3, 2] – Aacks against SMM [9]

Wayne State University CSC 6991 Topics in Computer Security 7 Background

Basic Input and Output System (BIOS) and • BIOS code is stored on-volale ROM, and it is responsible for hardware inializaon before OS starts. • Coreboot is an open source project aimed to replace the BIOS in current computer • Spectre uses a custom SMI handler in Coreboot

Wayne State University CSC 6991 Topics in Computer Security 8 Agenda

• Introducon • Background • System Framework • Experimental Results • Conclusion

Wayne State University CSC 6991 Topics in Computer Security 9 System Framework

Target Machine

SPECTRE system regularly introspects native memory on target machine Monitor Machine

Check kernel data Rebuild Check kernel code Enter Report alerts SMM semantic data Check program data ‘heartbeat’ attack occured? optional custom module ... select module

Wayne State University CSC 6991 Topics in Computer Security 10 System Framework

• Step 1: Periodic triggering of SMM

Target Machine

SPECTRE system regularly introspects native memory on target machine Monitor Machine

Enter SMM

Wayne State University CSC 6991 Topics in Computer Security 11 System Framework

• Step 1: Periodic triggering of SMM • Step 2: Rebuilding semanc informaon

Target Machine

SPECTRE system regularly introspects native memory on target machine Monitor Machine

Enter Rebuild SMM semantic data

Wayne State University CSC 6991 Topics in Computer Security 12 System Framework

• Step 1: Periodic triggering of SMM • Step 2: Rebuilding semanc informaon • Step 3: Running a detecon module

Target Machine

SPECTRE system regularly introspects native memory on target machine Monitor Machine

Check kernel data Enter Rebuild Check kernel code SMM semantic data Check program data optional custom module ... select module

Wayne State University CSC 6991 Topics in Computer Security 13 System Framework

• Step 1: Periodic triggering of SMM • Step 2: Rebuilding semanc informaon • Step 3: Running a detecon module • Step 4: Communicaon with monitor server Target Machine

SPECTRE system regularly introspects native memory on target machine Monitor Machine

Check kernel data Rebuild Check kernel code Enter Report alerts SMM semantic data Check program data ‘heartbeat’ attack occured? optional custom module ... select module

Wayne State University CSC 6991 Topics in Computer Security 14 Step 1: Periodic Triggering of SMM

• Two ways to trigger an SMI – Soware-based: write to an ACPI port specified by chipsets – Hardware-based: NIC card, keyboard, mouse, and hardware mer • Hardware-based method is more reliable than soware-based method, so we use a hardware mer at southbridge to periodically assert an SMI

Wayne State University CSC 6991 Topics in Computer Security 15 Step 2: Rebuilding Semanc Informaon

• SMM only sees the raw memory, and does not know the semancs of the memory (e.g. OS data structures) • Similar to the semanc gap problem in VMI systems • We manually bridge the semanc gap in our prototype, automacally bridging (e.g., Virtuoso [6], VMST [4])

PsActiveProcessHead Executive Process Heap List Segment

Static VA of KPCR Segment S0 prev Heap H0 +78h Metadata... 0xffdff000 Heap H1 KPCR KdVersionBlock FirstEntry +34h next Heap H2 LastEntry PEB Heap H3 Entry E1 Executive Process Executive Process Executive Process Heap H4 e.g., “lsass.exe” e.g., “explorer.exe” e.g., “System” ... Data... Heap Hn Other Entry E2 prev prev prev Executive next next next Data... Processes Heap H0 Metadata Entry E3

... Segment S0 Entry ... Heap List Segment S1 Segment S Data... Other heap 2 ...... Handle Table 3 Handle Table 2 Handle Table 1 Entry En tables Segment Sn

Process Environment Block Heap

Wayne State University CSC 6991 Topics in Computer Security 16 Semanc Gap Problem in VMI

• SoK: Introspecons on Trust and the Semanc Gap. Bhushan Jain, Mirza Basim Baig, Dongli Zhang, Donald E. Porter, and Radu Sion. In S&P'14.

• SMM-based Systems, TrustZone-based Systems, SGX, other hardware isolated execuon environments (HIEEs)

Wayne State University CSC 6991 Topics in Computer Security 17 Step 3: Running a Detecon Module

• We demonstrate the capability of our framework with three memory-based aacks: – Detecng heap spray aacks – Detecng heap overflow aacks – Detecng rootkits • Other checking modules can be extended into Spectre with corresponding detecon algorithm

Wayne State University CSC 6991 Topics in Computer Security 18 Step 4: Communicaon with Monitor Machine

• The SMI handler alerts the monitor machine over a serial or Ethernet cable • We port the NIC driver into SMI handler because we do want to trust any code in the OS • ‘Heartbeat’ message can be used to detect denial of service aack • Exit from SMM and resume OS states

Wayne State University CSC 6991 Topics in Computer Security 19 Agenda

• Introducon • Background • System Framework • Experimental Results • Conclusion

Wayne State University CSC 6991 Topics in Computer Security 20 Prototype Specificaon

• Hardware ︎ – Motherboard: ASUS-M2V MX SE – CPU: 2.2GHz AMD Sempron LE-1250 – RAM: 2GB Kingston DDR2 – NICs: Integrated NIC and e1000 Gigabit with PCI • Soware ︎ – BIOS: Coreboot+SeaBIOS – OSes: (Cent OS 5.5) and Windows XP SP3

Wayne State University CSC 6991 Topics in Computer Security 21 Memory Aacks Detecon

• Run various memory aacks, and measure the detecon me in the SMM • Detecon me = Time at SMM exit - Time at SMM enter

Wayne State University CSC 6991 Topics in Computer Security 22 System Overhead

• Spectre is OS-agnosc, and can detect memory aacks on both Windows and Linux plaorms. • Benchmark: PassMark on Windows and UnixBench on Linux • First, we run different detecon modules, and record their benchmark scores

– Without detecon module – Heap spray detecon module – Heap Overflow detecon module – Rootkits detecon module • Second, we change the SMI triggering rate, and it ranges from 1/16 s to 5s

Wayne State University CSC 6991 Topics in Computer Security 23 System Overhead

• X-coordinate: Sampling interval ︎ • Y-coordinate: Percent overhead

Windows Linux

Without detection module 20% Without detection module Heap spray module Heap spray detection module 20% Heap overflow module 15% detection module Rootkit module 10% 10% Percent overhead Percent overhead 5%

0% 0% 5s 2s 1s 1 s 1 s 5s 2s 1s 1 1 2 16 2 s 16 s Sampling interval / s Sampling interval / s

Wayne State University CSC 6991 Topics in Computer Security 24 Comparison with VMI Systems

• Smaller code base–Spectre only trust the BIOS, but VMI systems need to trust • More transparent–armored malware with an-VM techniques cannot detect it • Beer Performance

Wayne State University CSC 6991 Topics in Computer Security 25 Agenda

• Introducon • Background • System Framework • Experimental Results • Conclusion

Wayne State University CSC 6991 Topics in Computer Security 26 Conclusion

• We introduce a hardware-assisted framework ︎ that can examine code across all layers of a running system • Spectre is OS-agnosc and fully transparent to higher level soware • We have implemented a prototype of our framework in both Linux and Windows, and demonstrates that our system can detect various memory aacks including heap spray, heap overflow and rootkits.

Wayne State University CSC 6991 Topics in Computer Security 27 References

Wayne State University CSC 6991 Topics in Computer Security 28