Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection...
Transcript of Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection...
![Page 1: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/1.jpg)
Nighthawk: Transparent System Introspection from Ring -3
ESORICS 2019Lei Zhou( ) ∗, Jidong Xiao1, Kevin Leach5, Westley Weimer5,
𝐅𝐞𝐧𝐠𝐰𝐞𝐢 𝐙𝐡𝐚𝐧𝐠F ) ∗∗, Guojun WangI( Central South University, China)Wayne State University, USA1 Boise State University, USA5 University of Michigan, USA
F SUSTech, ChinaI Guangzhou University, China
* Work was done while visiting COMPASS lab at WSU; ** The corresponding author
![Page 2: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/2.jpg)
Outline
• Introduction and Background
• Architecture of Nighthawk
• Design and Implementation
• Evaluation: Effectiveness and Performance
• Conclusion
![Page 3: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/3.jpg)
Privilege Layers
Ring 3 User mode virus
Ring 0 Kernel mode rootkits
Ring -1 Hypervisor rootkits
Ring -2 SMM rootkits (SMM reload)
![Page 4: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/4.jpg)
Defense Mechanism
How to defend against the attacks in each layer?
![Page 5: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/5.jpg)
Defense Mechanism
Deploy a defense at the a more privileged layer !
How to defend against the attacks in each layer?
![Page 6: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/6.jpg)
Existing Malware Detection
n Virtualization based defensive approach (ring -1)Advantages ---- Full control of VM.Limitations ---- High performance overhead and more likely to be a new target of attack.
![Page 7: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/7.jpg)
Existing Malware Detection
n Virtualization based defensive approach (ring -1)Advantages ---- Full control of VM.Limitations ---- High performance overhead and more likely to be a new target of attack.
n Hardware based defensive approach (ring -2)Advantages ---- Small TCB and lower layer.Limitations ---- Additional monitoring device or disturbing the normal system execution.
![Page 8: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/8.jpg)
How to better defend against low-level attacks?
![Page 9: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/9.jpg)
“Ring -3” ?
How to better defend against low-level attacks?
![Page 10: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/10.jpg)
Higher Privilege System In Intel Architecture
Intel ME system:Strong Isolation but
integrate into motherboard
Intel ME system:Provide assistance protection for Host
DRAM
Main CPU ME CPU
HardwareSoftware
SPI Flash Memory
ME UMA
Intel Chipset
Intel AMT
Supervisor modeUser mode
Applications
Hypervisor kernel
SMRAM
Understanding DMA Malware (DIMVA 2012)
![Page 11: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/11.jpg)
Intel Management Engine
ü No Extra Hardware Needed
ü Full Privilege
ü Small TCB
ü Transparency and low performance overhead
![Page 12: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/12.jpg)
Intel Management Engine
ü No Extra Hardware Needed
ü Full Privilege
ü Small TCB
ü Transparency and low performance overhead
However, IME related resources are not public to
users
![Page 13: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/13.jpg)
Location
Microcontroller embedded in the PCH (older version in MCH)
![Page 14: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/14.jpg)
Outline
• Introduction and Background
• Architecture of Nighthawk
• Design and Implementation
• Evaluation: Effectiveness and Performance
• Conclusion
![Page 15: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/15.jpg)
High-level Architecture of the Nighthawk
If we are able to add introspection code into IME system, we can check arbitrary host physical memory.
Introspection &
Forensics
Introspection modules
CompromisedMemory
Remote MachineIME Target Host
Target Machine
Assist Analyzing
DMA-based Checking
![Page 16: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/16.jpg)
Details of Components in Nighthawk
![Page 17: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/17.jpg)
Outline
• Introduction and Background
• Architecture of Nighthawk
• Design and Implementation
• Evaluation: Effectiveness and Performance
• Conclusion
![Page 18: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/18.jpg)
Nighthawk Design & Implementation
§ Preparing the Target Machine
§ Target Host Reconnaissance
§ Measuring Integrity via Custom IME
§ Command from Remote Machine
![Page 19: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/19.jpg)
High-level Overview of the Implementation
![Page 20: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/20.jpg)
Nighthawk Design & Implementation
§ Preparing the Target Machine
§ Target Host Reconnaissance
§ Measuring Integrity via Custom IME
§ Command from Remote Machine
![Page 21: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/21.jpg)
Preparing Target Machine (1) — Code Injection
The Process for introspection code injection in ME
![Page 22: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/22.jpg)
How to Inject the Introspection Code
Through Reverse engineering of the ME system code, we find the ideal function entry in which to inject the code.
![Page 23: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/23.jpg)
Preparing Target Machine (2) — Stop Reusing Injection
Stop reusing the injection in ME: leveraging the Intel TXT to lock the related registers.
![Page 24: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/24.jpg)
Nighthawk Design & Implementation
§ Preparing the Target Machine
§ Target Host Reconnaissance
§ Measuring Integrity via Custom IME
§ Command from Remote Machine
![Page 25: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/25.jpg)
Target Host Reconnaissance (1) — General CaseThe information including:System call table : 0x1653100Kernel _text: 0x1000000 kvm_intel: 0xf8bc7000…
Once the host system initializes, we fetch those basic information.
![Page 26: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/26.jpg)
Target Host Reconnaissance (2) — Special Case
To mitigate some attacks like ATRA, we leverage SMM to get the runtime CPU information after checking SMRAM.
![Page 27: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/27.jpg)
Nighthawk Design & Implementation
§ Preparing the Target Machine
§ Target Host Reconnaissance
§ Measuring Integrity via Custom IME
§ Command from Remote Machine
![Page 28: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/28.jpg)
Measuring Integrity via Custom IME
Workflow of Introspection
![Page 29: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/29.jpg)
Nighthawk Design & Implementation
§ Preparing the Target Machine
§ Target Host Reconnaissance
§ Measuring Integrity via Custom IME
§ Command from Remote Machine
![Page 30: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/30.jpg)
Command from Remote Machine
![Page 31: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/31.jpg)
Outline
• Introduction and Background
• Architecture of Nighthawk
• Design and Implementation
• Evaluation: Effectiveness and Performance
• Conclusion
![Page 32: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/32.jpg)
Evaluation
The test environment platform:
ü Intel DQ35JO motherboard with 3.0GHz Intel E8400 CPU, ICH9D0 I/O Controller Hub and 2GB RAM.
ü Intel e1000e Gigabyte network card for the network communication.
ü We use an earlier BIOS version (JOQ3510J.86A.0933) for injecting code into ME.
ü We run Ubuntu with the Linux kernel version 2.6.x to 4.x, along with KVM- and Xen-based Hypervisor.
![Page 33: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/33.jpg)
Effectiveness--General Attacks
To simulate the attacking environment, we useexisting rootkits for OS kernel, SMM, etc., installed inthe target system.
We manually modify the memory content in kernel,Xen, KVM and SMM modules.
Through experiments, all attacksillustrated in this table have beendetected by Nighthawk
Target Object and Attacks
![Page 34: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/34.jpg)
Effectiveness -- Mitigating Special Attacks
We simulate a transient attack using a toorkit-modifiedrootkit that changes the pointer address of the system calltable.
Our results in the table show that Nighthawk can detecttransient attacks in real world.
Transient Attacks Detection
ATRA Detection
We detect ATRA by testing for Page Global Directory and CR3 changes
![Page 35: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/35.jpg)
Performance Evaluation
DMA Fetching Overhead
Integrity Checking Overhead
Transmission Overhead
![Page 36: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/36.jpg)
DMA Fetching Overhead
Fetching data from host memory to ME memory
Time consumed by fetching data (Pages). * represents the number of PTEs.α represents accessing times. Time consumed by DMA (User Cases ).
![Page 37: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/37.jpg)
Memory Degradation Due To Introspection
With the benchmark test, the results show that Nighthawk has a very small performance impact to host.
![Page 38: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/38.jpg)
Integrity Checking Overhead
§ Time cost depends on the hash algorithm we choose.-- For 4KB memory page, it takes 7.3ms for checking under SDBM hash.
§ Note that, for more complexity hash algorithm, e.g., sha1, it takes more time for checking.
§ Compared to the fetching time, the checking time is very lower.
![Page 39: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/39.jpg)
Comparison for Checking Overhead
With the SDBM hash verification test, we found the computing performance is much lower than it is in Host. For example, comparing a 6.3MB data, 25s is needed in ME, and 10 ms in Host.
We develop a CPU speed testing program, and the experimental result shows that the ME CPU executes approximately 15 million instructions each second (Meanwhile,
billions per second on regular CPUs).
Main factor: ME CPU core has a significantly lower computational capability.
![Page 40: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/40.jpg)
Transmission Overhead
l For a small message(<1KB), takes 228ms on average to pass the data.
l For a dumping data (i.e., > 64KB), we divide the data into multiple packets and transmit via multiple messages. e.g., 64KB data takes 4.9s.
![Page 41: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/41.jpg)
Performance Evaluation Summary
![Page 42: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/42.jpg)
Conclusion
Nighthawk—a transparent introspection framework — Leveraging Intel ME— High privilege: ring -3— Small TCB
Attack scenarios — Real-world attacks against OS kernels, type-I and type-II
hypervisors, and unlocked system management RAM
Introducing almost zero overhead
![Page 43: Nighthawk: Transparent System Introspection from Ring -3 · Nighthawk—a transparent introspection framework —Leveraging Intel ME —High privilege: ring -3 —Small TCB Attack](https://reader034.fdocuments.net/reader034/viewer/2022050506/5f97a49eaf904938bc18ea6d/html5/thumbnails/43.jpg)
Thank you! Questions?
https://fengweiz.github.com/