31
Reading Group, July 21 2009 Based on slides retrieved from http://arch.ece.gatech.edu/present/micro41.pdf SHARK: Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits Vikas R. Vasisht, Hsien-Hsin S. Lee School of Electrical and Computer Engineering Georgia Tech Computer Architecture Lab at

SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

  • Upload
    dory

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

Computer Architecture Lab at. SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits. Vikas R. Vasisht , Hsien-Hsin S. Lee School of Electrical and Computer Engineering Georgia Tech. Rootkits. Programs used to conceal malware presence - PowerPoint PPT Presentation

Citation preview

Page 1: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

Reading Group, July 21 2009Based on slides retrieved from http://arch.ece.gatech.edu/present/micro41.pdf

SHARK: Architectural Support for Autonomic Protection Against Stealth by

Rootkit Exploits

Vikas R. Vasisht, Hsien-Hsin S. LeeSchool of Electrical and Computer Engineering

Georgia Tech

Computer Architecture Lab at

Page 2: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

2

Rootkits• Programs used to conceal malware presence– E.g. hide keylogger or network activity

• Hard to detect– Anti-rootkit tool executes inside compromised system that

tries to hide the intrusion

Page 3: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

3

Simple Rootkit

API Function

User Program

Library

System Administrator (e.g., “ps”, “top”)

Choose Interrupt Handler from IDT

Choose Syscall from SSDT

Syscall Function

ReturnImport Address Table

Interrupt Descriptor Table System Service Descriptor Table

Use

r Spa

ceKe

rnel

Spa

ce

Malware removed from list of

running processes

Page 4: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

4

Existing Anti-Rootkit Tools• Signature-Based

Only works with known rootkits

• Behavior-Based– Calculate time and instructions spent on system queries

• Unusually high count indicates the O/S is manipulating response

Too many false positives

• Cross-level system view– Query system in high and low level

• E.g., compare ps response against scheduler lists

The compromised O/S can manipulate all levels

Page 5: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

5

Sophisticated (Anti-)Rootkits• Integrity-based detection– Compare snapshot of

memory against trusted baselineCan be fooled

• Shadow-Walker– Mark all pages as unavailable– On TLB-i (execute) page fault:

present malicious code– On TLB-d (snapshot) page

fault: return ‘correct’ page

App Page Table

TLB-i View

TLB-d View

AUDIT OK!

Page 6: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

6

Even More Sophisticated Rootkits

M2M1Mal O/S

App2App1Host O/SHardware

App2App1Host O/S

Virtual Machine MonitorHardware

• SubVirt– Install virtual machine

monitor– Downgrade host O/S to

guest O/S– Run Malicious O/S on the

side

• Blue Pill– Install tiny malicious

hypervisor on-the-fly

Page 7: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

7

Outline• Motivation– Rootkits

• SHARK– High-level View– Page Table Encryption, Update, Decryption– Address Space Protection– Stealth Checker

• Evaluation• Security Vulnerabilities• Conclusion

Page 8: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

8

Problem• Nearly impossible to detect all rootkits– Especially the virtualization-based ones: guest O/S is clean– All tools depend on the malicious O/S

• Proposed solution– Have the processor securely report every application that

enjoys hardware resources– Malicious apps running in different VMM will be exposed

Page 9: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

9

SHARK: Bird’s Eye View• Hardware should record running processes– Must force O/S to give real PID to CPU

• Trusted third party audits system– Compare H/W and O/S reports– Discrepancy raises alarm

• O/S cannot hide a malicious app

• Tamper-evident address space– O/S blocked from manipulating normal apps

• Malware hijacking an app will leave a trail

• Idea: Page Table Encryption

Page 10: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

10

Page Table Encryption: Key• App’s page table is encrypted using PID– Decrypted on-the-fly during hardware walk using same PID

• O/S assigned PIDs are vulnerable– Frequent reuse problematic for security

• SHARK provides hardware PID (HPID)– 64-bit counter: won’t overflow, nonce

• Only care for memory-resident rootkits, reset will eliminate them

• During app creation– O/S request PID and provides an initialized page table– H/W encrypts page table and returns HPID++

Page 11: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

11

Page Table Encryption (cont)• Encrypt last level page table entries (counter mode)• Encrypt first & last level valid bits (counter mode)– Force same PID to be used during walk every time

• All updates through special H/W instruction– MODPT (modify page table)– Must provide correct PID

• Otherwise meaningless 1st level decryption

Page 12: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

12

VTranslation Array

Valid Bit Array Encryption

V1

Translation Array

0…11…000

11…0Page Directory1 Page Frame

1st 128-bit Valid Bit BlockCounter = HPID||HPID

2nd 128-bit Valid Bit BlockCounter = (HPID||HPID)+1

N 128-bit Valid Bit BlockCounter = (HPID||HPID)+N-1

Counter Base (128 bit) HPID||HPID

Pipelined Counter Mode

Encryption Engine

AES-128

Hardware Secret Key: Burnt-in, unexposable

Offset

Actual Frame stored in memory

Page 13: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

13

Page Table: Initial Encryption

VTranslation Array

…1001…

Last LevelPage Directory1 Page Frame

ADDRNULLNULLADDR

Counter (128 bit) HPID||HPID

Pipelined Counter Mode

Encryption Engine

AES-128

Hardware Secret Key: Burnt-in, unexposable

4 entries concatenated

128-bit

VTranslation Array

ADDR

Actual Frame stored in memory

Page 14: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

14

Page Table: Entry Update

If other valid entries, decrypt and reencrypt, otherwise just encrypt

Page 15: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

Counter (128 bit) (HPID||HPID)+k

V

Page Table Decryption – TLB update

15

V PDE

Counter Mode

DecryptionAES-128

Page DirectoryHW Key

…1001…

Normal Page Table Walk

V PDE

ADDR

Last Level

Counter (128 bit) HPID||HPID

Counter Mode

DecryptionAES-128

HW Key

V…0001…

PDE

ADDR4 entries

encrypted 128-bit

Counter (128 bit) HPID||HPID

Counter Mode

DecryptionAES-128

HW Key

4 entries decrypted

128-bit

TLB update

Page 16: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

Address Space Protection• O/S should not tamper with address space of apps– Protect applications from swap-hijacking– Expose malware during auditing

• Shouldn’t mark as unavailable and return convenient page

• H/W signs pages and checks signatures

16

Tamper-evident swappingCaution: No check during first page mapping

Mem Page

4KB

32B

Disk

Counter (128 bit) HPID||HPID

Counter Mode

EncryptionAES-128

HW Key

SHA-256 checksum

Mem Page

4KB

32B

Disk

SHA-256 checksum

Counter Mode

EncryptionAES-128

=?

Valid/Invalid update

Page 17: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

17

Stealth Checking• Firmware called on context switch– Record incoming PID of new process– Every 10 switches, timestamp, encrypt and call O/S to ship

Tamper-evident timestamped packet. Lost packets or O/S tampering trigger alarm.

OSContext Switch

HardwareHPID

PID1PID2PID3

Master PID List

Other SHARK H/W

P I D s …

Alarm

Page 18: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

18

Outline• Motivation– Rootkits

• SHARK– High-level View– Page Table Encryption, Update, Decryption– Address Space Protection– Stealth Checker

• Evaluation• Security Vulnerabilities• Conclusion

Page 19: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

19

Evaluation• Emulation using Bochs

– All installed rootkits detected

• Timing results using Simics– Close match to Core 2 processors– In-order simulation– First 2 billion instructions of SPEC apps

• Most page faults (and overhead) during initialization

Page 20: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

20Expected: More TLB entries, less overhead

Evaluation (cont)

Page 21: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

21

Outline• Motivation– Rootkits

• SHARK– High-level View– Page Table Encryption, Update, Decryption– Address Space Protection– Stealth Checker

• Evaluation• Security Vulnerabilities• Conclusion

Page 22: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

22

Security Hole #1• 1st page map cannot be checked– Possible exploit by cleaner-app?

Mali-cious App’s Page Table

Name: xcalc

Audit app launched:Pagefault

Write Access

Note: cleaner-app will leave a PID trace in the stealth checker

All pages marked as

invalid, app works

through TLBs

Present malicious signature & restore

mapping, but freeze auditing

Page 23: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

23

Security Hole #2• All page tables but the last (completely) and first

(valid bits only) are plaintext– O/S can manipulate internal mappings

VALID

VALID

VALID

VALID

View during executionView during auditing

Level 1 Level 2 Level 3 Data Pages

Page 24: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

24

Security Hole #3• Security 101– Encryption: to keep something secret, private– Signing: to make something unmodifiable, tamper-evident

and bind message pieces together

• BAD idea to use one for the other– Creates illusion of protection

• Why encrypt the page table?– O/S already knows it, so why keep it a secret?– Signing is necessary, encryption is useless– Paper based on assumption that any tampering will result

in meaningless page table

Page 25: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

25

Security Hole #3: Exploit

CounterH/W Key

128-bit plaintext

AES 128

⊕128-bit

Ciphertext

CounterH/W Key

128-bit plaintext

AES 128

⊕ 128-bit Ciphertext

Counter Mode Encryption Counter Mode Decryption

D(E(A)) = E(A) Cloud⊕ = A ⊕ Cloud

⊕ Cloud = A

O/S can overwrite E(A) with: (E(A), A, B known to O/S)E(A) A B = ⊕ ⊕ A Cloud ⊕ ⊕ A B = B Cloud = E(B)⊕ ⊕H/W will normally decrypt to B

E(A) = A Cloud⊕

Page 26: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

26

Security Hole #3 (cont)• What they intended to say– The entry for virtual address V, for process PID, at level lvl,

is physical P (next level pointer or data location)

• How it should have been written– P, σΚ(P, V, PID, lvl) (σ = signature)– Bind each page table entry with where it should be located

• What was actually written– Some entries are secret; I won’t tell you

• Though you can ask me• …And you already know

Page 27: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

27

Security Hole #4• The virtual memory system is used as a fence– (theoretically) tamper-evident page table

• O/S can simply bypass the VMM– Issue writes to physical address directly– O/S can purge malicious pages prior to auditing

• Similar to cleaner-app, but without any trace

Page 28: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

28

Security Vulnerability #1• Stealth checker employs upgradeable firmware• Rootkit that is stored in disk can upgrade firmware– System reboot will not clean system– (Beyond the scope of this paper)

• Compromised O/S may compromise firmware– Enjoy the CPU spying on you– Impossible to detect

Page 29: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

29

Security Vulnerability #2• BAD idea to reuse counter of counter-mode

encryption

VTranslation Array

…1001…

Last LevelPage Directory1 Page Frame

ADDRNULLNULLADDR

Counter (128 bit) HPID||HPID

Pipelined Counter Mode

Encryption Engine

AES-128

Hardware Secret Key: Burnt-in, unexposable

4 entries concatenated

128-bit

VTranslation Array

ADDR

Actual Frame stored in memory

Same for every last-level

encryption

Page 30: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

30

Conclusion• Rootkits are a growing concern• Hardware monitoring is a good idea for protection– Malware cannot cheat hardware that easily– Good idea for rootkits also: BIOS rootkit in the works

• Paper’s implementation does more harm than good– Broken Algorithm: signing of each page table level is needed

• But O/S can bypass virtual memory manager• Cleaner-app is also a problem

• LBA should target O/S protection

Page 31: SHARK : Architectural Support for Autonomic Protection Against Stealth by Rootkit Exploits

31

Questions?

SYSTEM PROTECTED