110
Dealing with next-generation malware Dipartimento di Informatica e Comunicazione Universit` a degli Studi di Milano Doctor of Philosophy in Computer Science Advisor: Prof. D. Bruschi PhD Candidate: Roberto Paleari

Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Dealing with next-generation malware

Dipartimento di Informatica e ComunicazioneUniversita degli Studi di Milano

Doctor of Philosophy in Computer Science

Advisor: Prof. D. BruschiPhD Candidate: Roberto Paleari

Page 2: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

The rise of malicious code

2002 2003 2004 2005 2006 2007 2008 2009

500,000

1,000,000

1,500,000

2,000,000

2,500,000

3,000,000

Nu

mb

ero

fn

ewsi

gn

atu

res

Period

Roberto Paleari Dealing with next-generation malware 2

Page 3: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

The rise of malicious code

Today malware is a verylucrative activity

Who lasts longer earns the most . . .

Roberto Paleari Dealing with next-generation malware 2

Page 4: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

The rise of malicious code

Who lasts longer earns the most . . .

Roberto Paleari Dealing with next-generation malware 2

Page 5: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Long lasting malware

Spread/replicate fast

Hide the presence on the system

Obfuscate the code (e.g., encryption,polymorphism, metamorphism)

Traditional signature-based approachesare not effective anymore!

Roberto Paleari Dealing with next-generation malware 3

Page 6: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Long lasting malware

Spread/replicate fast

Hide the presence on the system

Obfuscate the code (e.g., encryption,polymorphism, metamorphism)

Traditional signature-based approachesare not effective anymore!

Roberto Paleari Dealing with next-generation malware 3

Page 7: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Current trend for malware analysis and detection

Static analysis is either too onerous or impossible(malware is obfuscated & self-modifying)

Dynamic, behavior-based malware analysis

Run the suspicious programand monitor its execution

Does it behave maliciously?

Roberto Paleari Dealing with next-generation malware 4

Page 8: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Current trend for malware analysis and detection

Static analysis is either too onerous or impossible(malware is obfuscated & self-modifying)

Dynamic, behavior-based malware analysis

Run the suspicious programand monitor its execution

Does it behave maliciously?

Roberto Paleari Dealing with next-generation malware 4

Page 9: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Limitations of dynamic approaches

Incompleteness

The analysis involves a limited number ofprogram paths

may behave maliciously only in very

specific circumstances

Non-transparency

The analysis tool can be detected

If detects the analyzer, it behaves like

Roberto Paleari Dealing with next-generation malware 5

Page 10: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Limitations of dynamic approaches

Incompleteness

The analysis involves a limited number ofprogram paths

may behave maliciously only in very

specific circumstances

Non-transparency

The analysis tool can be detected

If detects the analyzer, it behaves like

Roberto Paleari Dealing with next-generation malware 5

Page 11: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Limitations of dynamic approaches

How to perform post-infection analysis?

If the host has already been compromised,

could tamper with the execution of the

analysis tool

High run-time overhead

End hosts have strict real-time constraints

If the analysis takes too much, the detector

assumes a suspicious program is

Roberto Paleari Dealing with next-generation malware 5

Page 12: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Limitations of dynamic approaches

How to perform post-infection analysis?

If the host has already been compromised,

could tamper with the execution of the

analysis tool

High run-time overhead

End hosts have strict real-time constraints

If the analysis takes too much, the detector

assumes a suspicious program is

Roberto Paleari Dealing with next-generation malware 5

Page 13: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Research goal

Next-generation malware is a new categoryof highly-sophisticated malicious threats

Limitations of anti-malware tools are exacerbatedwhen dealing with next-generation malware

Goal

To propose malware analysis & detection infrastructuresthat overcome the limitations of current technology

Roberto Paleari Dealing with next-generation malware 6

Page 14: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Contributions at a glance

1. Dynamic and Transparent Analysis of Commodity ProductionSystems(ASE 2010)

2. Conqueror: Tamper-proof Code Execution on Legacy Systems(DIMVA 2010)

3. Live and Trustworthy Forensic Analysis of CommodityProduction Systems(RAID 2010)

4. A Framework for Behavior-based Malware Analysis in the Cloud(ICISS 2009)

Roberto Paleari Dealing with next-generation malware 7

Page 15: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Transparent and efficient analysis

Operating system kernel

User mode

Kernel mode

Userprocess

Userprocess

Operating system kernel

User mode

Kernel mode

Userprocess

Userprocess

Non-root mode

Root mode

Framework

Analysistool

Install

Remove Exit

Inspect

Dynamic and Transparent Analysis of Commodity Production Systems(ASE 2010)

Page 16: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Problem definition

How to monitor the execution of a suspicious program?(worst-case scenario: kernel-level malware)

Kernel-based analysis Out-of-the-box analysis

Roberto Paleari Dealing with next-generation malware 9

Page 17: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Problem definition

How to monitor the execution of a suspicious program?(worst-case scenario: kernel-level malware)

Kernel-based analysis

Out-of-the-box analysis

Roberto Paleari Dealing with next-generation malware 9

Page 18: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Problem definition

How to monitor the execution of a suspicious program?(worst-case scenario: kernel-level malware)

Kernel-based analysis Out-of-the-box analysis

Roberto Paleari Dealing with next-generation malware 9

Page 19: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Kernel-based approaches

The analysis tool is implemented as a kernel module

To analyze kernel-level code, these approaches leverage anotherkernel-level module . . .

. . . it is like a dog chasing its tail!

Roberto Paleari Dealing with next-generation malware 10

Page 20: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Kernel-based approaches

The analysis tool is implemented as a kernel module

To analyze kernel-level code, these approaches leverage anotherkernel-level module . . .

. . . it is like a dog chasing its tail!

Roberto Paleari Dealing with next-generation malware 10

Page 21: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Out-of-the-box approaches

The analyzer leverages VM-introspection techniques

The target system must be already running inside a VM

is often able to detect VMs!

How to automatically generate procedures to detect CPU emulators(WOOT 2009)

Roberto Paleari Dealing with next-generation malware 11

Page 22: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Out-of-the-box approaches

The analyzer leverages VM-introspection techniques

The target system must be already running inside a VM

is often able to detect VMs!

How to automatically generate procedures to detect CPU emulators(WOOT 2009)

Roberto Paleari Dealing with next-generation malware 11

Page 23: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Our solution

Exploit hardware support for virtualization toachieve both efficiency and transparency

Roberto Paleari Dealing with next-generation malware 12

Page 24: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Overview of the framework

Operating system kernel

User mode

Kernel mode

Userprocess

Userprocess

Non-root mode

Root mode

Framework

Analysistool

Non-root mode

Root mode

Framework

AnalysistoolE

xit

Inspect

Roberto Paleari Dealing with next-generation malware 13

Page 25: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Overview of the framework

Operating system kernel

User mode

Kernel mode

Userprocess

Userprocess

Non-root mode

Root mode

Framework

Analysistool

Non-root mode

Root mode

Framework

Analysistool

Exit

Inspect

The framework is installed as the target system runs. It iscompletely separated and more privileged than the analyzed OS

Roberto Paleari Dealing with next-generation malware 13

Page 26: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Overview of the framework

Operating system kernel

User mode

Kernel mode

Userprocess

Userprocess

Non-root mode

Root mode

Framework

Analysistool

Non-root mode

Root mode

Framework

Analysistool

Exit

Inspect

The analyzed OS needs not to be modified at all(i.e., the approach can be applied to closed-source OSes)

Roberto Paleari Dealing with next-generation malware 13

Page 27: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Overview of the framework

Operating system kernel

User mode

Kernel mode

Userprocess

Userprocess

Non-root mode

Root mode

Framework

Analysistool

Non-root mode

Root mode

Framework

Analysistool

Exit

Inspect

The analysis tool runs in an isolated execution environment(a defect in the tool does not affect the stability of the OS)

Roberto Paleari Dealing with next-generation malware 13

Page 28: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Overview of the framework

Operating system kernel

User mode

Kernel mode

Userprocess

Userprocess

Non-root mode

Root mode

Framework

Analysistool

Non-root mode

Root mode

Framework

Analysistool

Exit

Inspect

At the end of the analysis, the infrastructurecan be removed on-the-fly

Roberto Paleari Dealing with next-generation malware 13

Page 29: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

An application: HyperDbg

A transparent kernel debugger built on top of our framework

Offers standard debugging features, at the kernel-level(e.g., breakpoints, watchpoints, single-stepping)

Roberto Paleari Dealing with next-generation malware 14

Page 30: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

An application: HyperDbg

A transparent kernel debugger built on top of our framework

Offers standard debugging features, at the kernel-level(e.g., breakpoints, watchpoints, single-stepping)

What are the key advantages of HyperDbg?

vs

Even kernel-level malware cannot affect its execution

Roberto Paleari Dealing with next-generation malware 14

Page 31: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

An application: HyperDbg

A transparent kernel debugger built on top of our framework

Offers standard debugging features, at the kernel-level(e.g., breakpoints, watchpoints, single-stepping)

What are the key advantages of HyperDbg?

vs

The target needs not to be running inside a VM

Roberto Paleari Dealing with next-generation malware 14

Page 32: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

An application: HyperDbg

A transparent kernel debugger built on top of our framework

Offers standard debugging features, at the kernel-level(e.g., breakpoints, watchpoints, single-stepping)

http://code.google.com/p/hyperdbg/

Roberto Paleari Dealing with next-generation malware 14

Page 33: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Software-based code attestation

Send function

Executable

c0

c1

c2c3

c4h0

c6

c7

c8

c9

c10

c11

c12

c13

c14c15c16

c5

h1

h2h3

Epilogue

Checksumloop

IDT

Checksum function

PrologueBASE

BASE + 0xFFF

BASE + SIZE

Conqueror: Tamper-proof Code Execution on Legacy Systems(DIMVA 2010)

Page 34: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Problem definition

How to guarantee that the execution of an anti-malwaretool has not been tampered?

1. Execute foo()

2. Send back the result

1. foo() has been executed?

2. Is the result of foo() authentic?

Can we prove (1) + (2) with a pure software-based solution?

Roberto Paleari Dealing with next-generation malware 16

Page 35: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Problem definition

How to guarantee that the execution of an anti-malwaretool has not been tampered?

1. Execute foo()

2. Send back the result

1. foo() has been executed?

2. Is the result of foo() authentic?

Can we prove (1) + (2) with a pure software-based solution?

Roberto Paleari Dealing with next-generation malware 16

Page 36: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Problem definition

How to guarantee that the execution of an anti-malwaretool has not been tampered?

1. Execute foo()

2. Send back the result

1. foo() has been executed?

2. Is the result of foo() authentic?

Can we prove (1) + (2) with a pure software-based solution?

Roberto Paleari Dealing with next-generation malware 16

Page 37: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Conqueror: Bullet-proof software-based code attestation

t0

Verifier Untrusted system

1. Checksum function

2. Decryption key

46

3.

Co

mp

ute

check

sum

5. Checksum

7. Output

Executable

Send function

Checksum function

TPEB

Executable

Send function

Checksum function

TPEB

Generated on demand,obfuscated and encrypted

Attests the content of the memory andthe execution environment

Hardware-dependent

If t ′ > t0 + ∆t or checksum is wrong,attestation fails

Roberto Paleari Dealing with next-generation malware 17

Page 38: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Conqueror: Bullet-proof software-based code attestation

t0

Verifier Untrusted system

1. Checksum function2. Decryption key

46

3.

Co

mp

ute

check

sum

5. Checksum

7. Output

Executable

Send function

Checksum function

TPEB

Executable

Send function

Checksum function

TPEB

Generated on demand,obfuscated and encrypted

Attests the content of the memory andthe execution environment

Hardware-dependent

If t ′ > t0 + ∆t or checksum is wrong,attestation fails

Roberto Paleari Dealing with next-generation malware 17

Page 39: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Conqueror: Bullet-proof software-based code attestation

Verifier Untrusted system

1. Checksum function2. Decryption key

46

3.

Co

mp

ute

check

sum

5. Checksum

7. Output

Executable

Send function

Checksum function

TPEB

Executable

Send function

Checksum function

TPEB

Generated on demand,obfuscated and encrypted

Attests the content of the memory andthe execution environment

Hardware-dependent

If t ′ > t0 + ∆t or checksum is wrong,attestation fails

Roberto Paleari Dealing with next-generation malware 17

Page 40: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Conqueror: Bullet-proof software-based code attestation

t ′

Verifier Untrusted system

1. Checksum function2. Decryption key

4

6

3.

Co

mp

ute

check

sum

5. Checksum

7. Output

Executable

Send function

Checksum function

TPEB

Executable

Send function

Checksum function

TPEB

Generated on demand,obfuscated and encrypted

Attests the content of the memory andthe execution environment

Hardware-dependent

If t ′ > t0 + ∆t or checksum is wrong,attestation fails

Roberto Paleari Dealing with next-generation malware 17

Page 41: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Conqueror: Bullet-proof software-based code attestation

Verifier Untrusted system

1. Checksum function2. Decryption key

46

3.

Co

mp

ute

check

sum

5. Checksum

7. OutputExecutable

Send function

Checksum function

TPEB

Executable

Send function

Checksum function

TPEB

Generated on demand,obfuscated and encrypted

Attests the content of the memory andthe execution environment

Hardware-dependent

If t ′ > t0 + ∆t or checksum is wrong,attestation fails

Roberto Paleari Dealing with next-generation malware 17

Page 42: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Memory and environment attestation

Send function

Executable

TPEB

Untrusted system

c0

c1

c2c3

c4h0

c6

c7

c8

c9

c10

c11

c12

c13

c14c15c16

c5

h1

h2h3

Epilogue

Checksumloop

IDT

Checksum function

PrologueBASE

BASE + 0xFFF

BASE + SIZE

Checksum computation over the region[BASE, BASE + SIZE)

Attest the execution environment

I Maximum privilegesI Interrupts disabledI No hypervisor

Roberto Paleari Dealing with next-generation malware 18

Page 43: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Evaluation: Checksum computation time

104

106

108

110

112

114

116

118

0 10 20 30 40 50 60

Tim

e (m

s)

# measurements

∆t

µhvm - 11 σhvm

Preliminary static analysis (disassembly)

No attackHypervisor-based attack

No checksum was forged in time to be considered valid

No authentic checksum was considered forged

Roberto Paleari Dealing with next-generation malware 19

Page 44: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Live and trustworthy analysis

Potentiallycompromised host

Trusted host

1. Load

2. Dynamic Root ofTrust bootstrap

3. Analysis

4. Result

Live and Trustworthy Forensic Analysis of Commodity Production Systems(RAID 2010)

Page 45: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Problem definition

How to perform live post-infection (or post-intrusion) analysis,with no service interruption ?

Roberto Paleari Dealing with next-generation malware 21

Page 46: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

HyperSleuth

A framework to perform live and trustworthy acquisitionof volatile data from commodity production systems

Roberto Paleari Dealing with next-generation malware 22

Page 47: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

HyperSleuth

A framework to perform live and trustworthy acquisitionof volatile data from commodity production systems

Potentiallycompromised host

1. Load

Trusted host

2. Dynamic Root ofTrust bootstrap

3. Analysis

4. Result

HyperSleuth is installed on an allegedlycompromised target as the system runs

Roberto Paleari Dealing with next-generation malware 22

Page 48: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

HyperSleuth

A framework to perform live and trustworthy acquisitionof volatile data from commodity production systems

Potentiallycompromised host

1. Load

Trusted host

2. Dynamic Root ofTrust bootstrap

3. Analysis

4. Result

The installation of HyperSleuth is attestedusing Conqueror

Roberto Paleari Dealing with next-generation malware 22

Page 49: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

HyperSleuth

A framework to perform live and trustworthy acquisitionof volatile data from commodity production systems

Potentiallycompromised host

1. Load

Trusted host

2. Dynamic Root ofTrust bootstrap

3. Analysis

4. Result

The analyzed OS needs not to be modified at all,applications continue to run with no service disruption

Roberto Paleari Dealing with next-generation malware 22

Page 50: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

HyperSleuth

A framework to perform live and trustworthy acquisitionof volatile data from commodity production systems

Potentiallycompromised host

1. Load

Trusted host

2. Dynamic Root ofTrust bootstrap

3. Analysis

4. Result

At the end of the analysis, the results can besent to the trusted host

Roberto Paleari Dealing with next-generation malware 22

Page 51: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

How?

1. A tiny hypervisor, based on the previous contribution

2. A secure loader (Conqueror) that installs the hypervisorI It verifies the hypervisor’s code, data and its environment

Proposed applications

Lazy physical memory dumper

Lie detector (not discussed in this talk)

System call tracer (not discussed in this talk)

Roberto Paleari Dealing with next-generation malware 23

Page 52: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

HyperSleuth: Lazy physical memory dumper

Lazily dumps the content of physical memory

The CPU is not monopolized

Processes running in the system are not interrupted

State of dumped physical memory ≡ state of physical memoryat the time the dump is requested

Dump-on-Write (DOW)(i.e., dump the page before it is modified by the guest)

Dump-on-Idle (DOI)(i.e., dump the page when the guest is idle)

Roberto Paleari Dealing with next-generation malware 24

Page 53: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

HyperSleuth: Lazy physical memory dumper

Lazily dumps the content of physical memory

The CPU is not monopolized

Processes running in the system are not interrupted

State of dumped physical memory ≡ state of physical memoryat the time the dump is requested

Dump-on-Write (DOW)(i.e., dump the page before it is modified by the guest)

Dump-on-Idle (DOI)(i.e., dump the page when the guest is idle)

Roberto Paleari Dealing with next-generation malware 24

Page 54: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Evaluation of the lazy physical memory dumper

Memory acquisition on aheavy-loaded DNS server

Roberto Paleari Dealing with next-generation malware 25

Page 55: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Evaluation of the lazy physical memory dumper

DRT bootstrap and installationof the VMM

Roberto Paleari Dealing with next-generation malware 25

Page 56: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Evaluation of the lazy physical memory dumper

When we started the dump, a lot offrequently accessed pages were dumped

Roberto Paleari Dealing with next-generation malware 25

Page 57: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Evaluation of the lazy physical memory dumper

Regular peaks were caused byperiodic dump of non-written pages

Roberto Paleari Dealing with next-generation malware 25

Page 58: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Malware analysis in the cloud

Lab (L) User (U)

. . .

VirtualAlloc()

GetForegroundWindow()

hwnd

GetWindowText(hwnd1)

"Firefox"

CreateWindow(...)

hwnd2

A Framework for Behavior-based Malware Analysis in the Cloud(ICISS 2009)

Page 59: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Incompleteness of dynamic behavior-based analysis

The execution environments used insecurity labs can perform fine-grained

analyses, but are synthetic(i.e., not realistic enough to trigger

malicious behaviors)

Roberto Paleari Dealing with next-generation malware 27

Page 60: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Incompleteness of dynamic behavior-based analysis

End-users’ machines lackcomputational power but provide

realistic environments(they are the intended target of the

attack)

Roberto Paleari Dealing with next-generation malware 27

Page 61: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Malware analysis in the cloud

Lab (L) User (U)

Execute and analyze in L,but force the program tobehave as in U

L can analyze the behaviorof the program in a realisticenvironment

U benefits from a morefine-grained analysis andone-way isolation

Roberto Paleari Dealing with next-generation malware 28

Page 62: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Malware analysis in the cloud

Lab (L) User (U)

. . .

VirtualAlloc()

Intercept all system calls

Execute system calls that arenot environmentdependent in L

Proxy environmentdependent system calls toU and proxy back the output

Roberto Paleari Dealing with next-generation malware 28

Page 63: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Malware analysis in the cloud

Lab (L) User (U)

. . .

VirtualAlloc()

GetForegroundWindow()

hwnd

GetWindowText(hwnd1)

Intercept all system calls

Execute system calls that arenot environmentdependent in L

Proxy environmentdependent system calls toU and proxy back the output

Roberto Paleari Dealing with next-generation malware 28

Page 64: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Malware analysis in the cloud

Lab (L) User (U)

. . .

VirtualAlloc()

GetForegroundWindow()

hwnd

GetWindowText(hwnd1)

"Firefox"

U satisfies the triggercondition of the maliciousbehavior

L observes the maliciousactivity

Roberto Paleari Dealing with next-generation malware 28

Page 65: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Malware analysis in the cloud

Lab (L) User (U)

. . .

VirtualAlloc()

GetForegroundWindow()

hwnd

GetWindowText(hwnd1)

"Firefox"

CreateWindow(...)

hwnd2

socket(...). . .

U satisfies the triggercondition of the maliciousbehavior

L observes the maliciousactivity

Roberto Paleari Dealing with next-generation malware 28

Page 66: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

A summary of the contributions

An infrastructure to perform transparent dynamicsystem-level analyses of deployed production systems

Roberto Paleari Dealing with next-generation malware 29

Page 67: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

A summary of the contributions

A software-based attestation scheme for tamper-proof codeexecution on untrusted legacy systems

Roberto Paleari Dealing with next-generation malware 29

Page 68: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

A summary of the contributions

A framework to perform live and trustworthy acquisition ofvolatile data from commodity production systems

Roberto Paleari Dealing with next-generation malware 29

Page 69: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

A summary of the contributions

A framework for improving the completeness ofbehavior-based analysis of suspicious programs

Roberto Paleari Dealing with next-generation malware 29

Page 70: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Other contributions

Malware detection & remediation

Automatic generation of remediation procedures for malware infections (USENIX 2010)How to automatically generate procedures to detect CPU emulators (WOOT 2010)How good are malware detectors at remediating infected systems? (DIMVA 2009)FluXOR: detecting and monitoring fast-flux service networks (DIMVA 2008)

Vulnerability analysis

Surgically returning to randomized lib(c) (ACSAC 2009)On race vulnerabilities in web applications (DIMVA 2009)A hybrid analysis framework for detecting web application vulnerabilities (SESS 2009)A smart fuzzer for x86 executables (SESS 2008)

Software testing

Testing system virtual machines (ISSTA 2010)Differential testing of x86 disassemblers (ISSTA 2010)Testing CPU emulators (ISSTA 2009)

Roberto Paleari Dealing with next-generation malware 30

Page 71: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Dealing with next-generation malware

Thank you!Any questions?

Roberto Paleari

Page 72: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Backup slides

Page 73: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Signature-based detection

Application code

+ +

+ +

+ +

Roberto Paleari Dealing with next-generation malware 33

Page 74: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Signature-based detection

Application code

+ +

+ +

+ +

A signature is a sequence of bytes thatidentifies a malicious sample

Roberto Paleari Dealing with next-generation malware 33

Page 75: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Signature-based detection

Application code

+ +

+ +

+ +

Anti-malware tools are shipped with adatabase of known signatures

Roberto Paleari Dealing with next-generation malware 33

Page 76: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Signature-based detection

+ +

+ +

+ +

When a signature is found, the application isconsidered to be infected

Roberto Paleari Dealing with next-generation malware 33

Page 77: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Transparent and efficient analysis

Dynamic and Transparent Analysis of Commodity Production Systems(ASE 2010)

Page 78: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Hardware-assisted virtualization in a nutshell

AppApp App

Kernel

R3

R0

AppApp App

Kernel

Hypervisor

R3

R0

Ro

ot

mo

de

Roberto Paleari Dealing with next-generation malware 35

Page 79: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Hardware-assisted virtualization in a nutshell

AppApp App

Kernel

R3

R0

AppApp App

Kernel

Hypervisor

R3

R0

Ro

ot

mo

de

Roberto Paleari Dealing with next-generation malware 35

Page 80: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Hardware-assisted virtualization in a nutshell

AppApp App

Kernel

R3

R0

AppApp App

Kernel

Hypervisor

R3

R0

Ro

ot

mo

de

The OS needs not to be modified

Minimal overhead

The hardware guarantees transparency & isolation

Available on commodity x86 CPUs

Roberto Paleari Dealing with next-generation malware 35

Page 81: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Hardware-assisted virtualization in a nutshell

AppApp App

Kernel

R3

R0

AppApp App

Kernel

Hypervisor

R3

R0

Ro

ot

mo

de

Hypervisor Kernel/App

Enter Exit Enter

Exit events interrupt the guest and transferthe control of the execution to the hypervisor

Roberto Paleari Dealing with next-generation malware 35

Page 82: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Hardware-assisted virtualization in a nutshell

AppApp App

Kernel

R3

R0

AppApp App

Kernel

Hypervisor

R3

R0

Ro

ot

mo

de

Hypervisor Kernel/App

Enter Exit Enter

The events that trigger an exit to root modecan be configured dynamically

Roberto Paleari Dealing with next-generation malware 35

Page 83: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Which events can be intercepted?

Events cause exits to root mode

All the events exit conditionally

Conditions are expressed as boolean conditions(process name = “notepad.exe′′ ∧ syscall name = “NtReadFile′′)

Native events vs high-level events

Traced directly throughthe hardware

Very low-level operations(e.g., CPU exception)

Traced throughlow-/high-level events

High-level operations(e.g., Return from function)

Roberto Paleari Dealing with next-generation malware 36

Page 84: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Which events can be intercepted?

Events cause exits to root mode

All the events exit conditionally

Conditions are expressed as boolean conditions(process name = “notepad.exe′′ ∧ syscall name = “NtReadFile′′)

Native events vs high-level events

Traced directly throughthe hardware

Very low-level operations(e.g., CPU exception)

Traced throughlow-/high-level events

High-level operations(e.g., Return from function)

Roberto Paleari Dealing with next-generation malware 36

Page 85: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

A summary of the events

Event Exit cause Native exit

ProcessSwitch Change of page table address√

Exception Exception√

Interrupt Interrupt√

BreakpointHit Debug or page fault except.WatchpointHit Page fault except.FunctionEntry Break on function entry pointFunctionExit Break on return addressSyscallEntry Break on syscall entry pointSyscallExit Break on return addressIOOperationPort Port read/write

IOOperationMmap Watchpoint on device memory

Roberto Paleari Dealing with next-generation malware 37

Page 86: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Software-based code attestation

Conqueror: Tamper-proof Code Execution on Legacy Systems(DIMVA 2010)

Page 87: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Gadgets: Plain checksum computation

Most frequently used gadget

Simply updates the checksum

mov ADDR, %eax

mov (%eax), %eax

xor $0xa23bd430, %eax

add %eax, CHKSUM+4

Roberto Paleari Dealing with next-generation malware 39

Page 88: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Gadgets: System mode attestation

Prevent the computation of the checksum from user mode

Update the checksum through privileged instructions

If executed in user mode, these instructions raise an exception

mov ADDR, %eax

mov (%eax), %eax

xor $0x1231d22, %eax

mov %eax, %dr3

mov %dr3, %ebx

add %ebx, CHKSUM

Roberto Paleari Dealing with next-generation malware 39

Page 89: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Gadgets: IDT attestation

IDT is part of the TPEB

Normal checksum computation attests the content of the IDT

Need a gadget to attest the address of the IDT

mov ADDR, %eax

mov (%eax), %eax

add %eax, CHKSUM+8

sidt IDTR

mov IDTR+2, %eax

xor $0x6127f1, %eax

add %eax, CHKSUM+8

Roberto Paleari Dealing with next-generation malware 39

Page 90: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Gadgets: Instruction and data pointers attestation

Based on self-modifying code

Prevent memory copy attacks (e.g., TLB desynchronization)

Attest that the VA ↔ PHY holds for read, write and fetchoperations

mov ADDR, %eax

mov (%eax), %eax

lea l smc, %ebx

roll $0x2, 0x1(%ebx)

l smc:

xor $0xdeadbeef, %eax

add %eax, CHKSUM+4

Roberto Paleari Dealing with next-generation malware 39

Page 91: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Gadgets: Hypervisor detection

Rich ongoing debate on this topic . . .

Timing attacks are effective with an external time source(i.e., the verifier)

Execute instructions that unconditionally trap to the hypervisor

mov ADDR, %eax

mov (%eax), %ebx

vmlaunch

xor $0x7b2a63ef, %ebx

sub %ebx, CHKSUM+8

Roberto Paleari Dealing with next-generation malware 39

Page 92: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Estimating the maximum checksum computation time

Execution time of checksum functions can be precomputedusing a trusted system

Use Chebyshev’s inequality to estimate an upper bound oncomputation

Pr(µ− σ ≤ X ≤ µ+ σ) ≥ 1− 1λ2

Computation time(including RTT)

Upper bound is ∆t = µ+ λσ

We choose λ = 11, to obtain a confidence > 99%

For a given checksum function, we estimate ∆t by challengingthe trusted system multiple times

Roberto Paleari Dealing with next-generation malware 40

Page 93: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Live and trustworthy analysis

Live and Trustworthy Forensic Analysis of Commodity Production Systems(RAID 2010)

Page 94: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Lazy physical memory dumperThe algorithm

switch (VMM exit reason)

case CR3 write:

Sync PT and SPT

for (v = 0; v < sizeof(SPT); v++)

if (SPT[v].Writable && !DUMPED[SPT[v].PhysicalAddress])

SPT[v].Writable = 0;

case Page fault: // ’v’ is the faulty address

if (PT/SPT access)

Sync PT and SPT and protect SPTEs if necessary

else if (write access && PT[v].Writable)

if (!DUMPED[PT[v].PhysicalAddress])

DUMP(PT[v].PhysicalAddress);

SPT[v].Writable = DUMPED[PT[v].PhysicalAddress] = 1;

else

Pass the exception to the OS

case Hlt:

for (p = 0; p < sizeof(DUMPED); p++)

if (!DUMPED[p])

DUMP(p); DUMPED[p] = 1;

break;

The VMM intercepts updates of the page table address, page-faultexceptions, and CPU idle loops

Roberto Paleari Dealing with next-generation malware 42

Page 95: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Lazy physical memory dumperThe algorithm

switch (VMM exit reason)

case CR3 write:

Sync PT and SPT

for (v = 0; v < sizeof(SPT); v++)

if (SPT[v].Writable && !DUMPED[SPT[v].PhysicalAddress])

SPT[v].Writable = 0;

case Page fault: // ’v’ is the faulty address

if (PT/SPT access)

Sync PT and SPT and protect SPTEs if necessary

else if (write access && PT[v].Writable)

if (!DUMPED[PT[v].PhysicalAddress])

DUMP(PT[v].PhysicalAddress);

SPT[v].Writable = DUMPED[PT[v].PhysicalAddress] = 1;

else

Pass the exception to the OS

case Hlt:

for (p = 0; p < sizeof(DUMPED); p++)

if (!DUMPED[p])

DUMP(p); DUMPED[p] = 1;

break;

During a context switch (CR3 update) the algorithm grantsread-only permissions to physical not yet dumped pages

Roberto Paleari Dealing with next-generation malware 42

Page 96: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Lazy physical memory dumperThe algorithm

switch (VMM exit reason)

case CR3 write:

Sync PT and SPT

for (v = 0; v < sizeof(SPT); v++)

if (SPT[v].Writable && !DUMPED[SPT[v].PhysicalAddress])

SPT[v].Writable = 0;

case Page fault: // ’v’ is the faulty address

if (PT/SPT access)

Sync PT and SPT and protect SPTEs if necessary

else if (write access && PT[v].Writable)

if (!DUMPED[PT[v].PhysicalAddress])

DUMP(PT[v].PhysicalAddress);

SPT[v].Writable = DUMPED[PT[v].PhysicalAddress] = 1;

else

Pass the exception to the OS

case Hlt:

for (p = 0; p < sizeof(DUMPED); p++)

if (!DUMPED[p])

DUMP(p); DUMPED[p] = 1;

break;

Our write protection is reinforced after every update of thepage tables

Roberto Paleari Dealing with next-generation malware 42

Page 97: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Lazy physical memory dumperThe algorithm

switch (VMM exit reason)

case CR3 write:

Sync PT and SPT

for (v = 0; v < sizeof(SPT); v++)

if (SPT[v].Writable && !DUMPED[SPT[v].PhysicalAddress])

SPT[v].Writable = 0;

case Page fault: // ’v’ is the faulty address

if (PT/SPT access)

Sync PT and SPT and protect SPTEs if necessary

else if (write access && PT[v].Writable)

if (!DUMPED[PT[v].PhysicalAddress])

DUMP(PT[v].PhysicalAddress);

SPT[v].Writable = DUMPED[PT[v].PhysicalAddress] = 1;

else

Pass the exception to the OS

case Hlt:

for (p = 0; p < sizeof(DUMPED); p++)

if (!DUMPED[p])

DUMP(p); DUMPED[p] = 1;

break;

Write accesses to pages not yet dumped trigger page faultexceptions, and pages are dumped before being modified (DOW)

Roberto Paleari Dealing with next-generation malware 42

Page 98: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Lazy physical memory dumperThe algorithm

switch (VMM exit reason)

case CR3 write:

Sync PT and SPT

for (v = 0; v < sizeof(SPT); v++)

if (SPT[v].Writable && !DUMPED[SPT[v].PhysicalAddress])

SPT[v].Writable = 0;

case Page fault: // ’v’ is the faulty address

if (PT/SPT access)

Sync PT and SPT and protect SPTEs if necessary

else if (write access && PT[v].Writable)

if (!DUMPED[PT[v].PhysicalAddress])

DUMP(PT[v].PhysicalAddress);

SPT[v].Writable = DUMPED[PT[v].PhysicalAddress] = 1;

else

Pass the exception to the OS

case Hlt:

for (p = 0; p < sizeof(DUMPED); p++)

if (!DUMPED[p])

DUMP(p); DUMPED[p] = 1;

break;

To guarantee termination, pending pages are dumpedon CPU idle loops

Roberto Paleari Dealing with next-generation malware 42

Page 99: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Lie detector

Kernel-level malware insidious and dangerousI Operate at a very high privilege levelI Able to hide any resource an attacker wants to protect

(e.g., processes, network communications, files)

Different techniques to force the OS to lie about its state

How can we disguise such liars?I Retrieve Sguest , the state perceived by the (guest) systemI Retrieve SVMM , the state perceived by the VMM (OS-aware

inspection)I Sguest = SVMM?

Roberto Paleari Dealing with next-generation malware 43

Page 100: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Lie detectorEvaluation

Sample Characteristics Detected?

FU DKOM XFUTo DKOM XHaxDoor DKOM, SSDT hooking, API hooking XHE4Hook SSDT hooking XNtIllusion DLL injection XNucleRoot API hooking XSinowal MBR infection, Run-time patching XSmiscer DKOM, Run-time patching XTDL3 DKOM, Run-time patching X

Roberto Paleari Dealing with next-generation malware 44

Page 101: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Lie detectorEvaluation

Sample Characteristics Detected?

FU DKOM XFUTo DKOM XHaxDoor DKOM, SSDT hooking, API hooking XHE4Hook SSDT hooking XNtIllusion DLL injection XNucleRoot API hooking XSinowal MBR infection, Run-time patching XSmiscer DKOM, Run-time patching XTDL3 DKOM, Run-time patching X

FUTo leverages DKOM to hide malicious resources. We scanWindows’ internal structures that must be left intact to preserve

system functionalities

Roberto Paleari Dealing with next-generation malware 44

Page 102: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Lie detectorEvaluation

Sample Characteristics Detected?

FU DKOM XFUTo DKOM XHaxDoor DKOM, SSDT hooking, API hooking XHE4Hook SSDT hooking XNtIllusion DLL injection XNucleRoot API hooking XSinowal MBR infection, Run-time patching XSmiscer DKOM, Run-time patching XTDL3 DKOM, Run-time patching X

HaxDoor hooks system calls and filters their result. We observedhidden registry keys were missing from the untrusted view.

Roberto Paleari Dealing with next-generation malware 44

Page 103: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Malware analysis in the cloud

A Framework for Behavior-based Malware Analysis in the Cloud(ICISS 2009)

Page 104: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

A glimpse at the implementation

OS Kernel

Syscall hooking

Syscall (de) serialization

Syscall hooking

Syscall (de)serialization

Lo

cal

sysc

all

OS Kernel

Syscall execution

Syscall (de)serialization

Syscall execution

Syscall (de)serialization

Remote syscall

Output arguments

Prototype implementation for Microsoft Windows XP and Linux

Roberto Paleari Dealing with next-generation malware 46

Page 105: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

A glimpse at the implementation

OS Kernel

Syscall hooking

Syscall (de) serialization

Syscall hooking

Syscall (de)serialization

Lo

cal

sysc

all

OS Kernel

Syscall execution

Syscall (de)serialization

Syscall execution

Syscall (de)serialization

Remote syscall

Output arguments

Intercept all system calls (through user-space hooking)and analyze the resources they manipulate

Roberto Paleari Dealing with next-generation malware 46

Page 106: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

A glimpse at the implementation

OS Kernel

Syscall hooking

Syscall (de) serialization

Syscall hooking

Syscall (de)serialization

Lo

cal

sysc

all

OS Kernel

Syscall execution

Syscall (de)serialization

Syscall execution

Syscall (de)serialization

Remote syscall

Output arguments

Serialize environment dependent system calls and argumentsand transmit them over the network

Roberto Paleari Dealing with next-generation malware 46

Page 107: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

A glimpse at the implementation

OS Kernel

Syscall hooking

Syscall (de) serialization

Syscall hooking

Syscall (de)serialization

Lo

cal

sysc

all

OS Kernel

Syscall execution

Syscall (de)serialization

Syscall execution

Syscall (de)serialization

Remote syscall

Output arguments

End-user’s system is protected using one-way isolation

Roberto Paleari Dealing with next-generation malware 46

Page 108: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

A glimpse at the implementation

OS Kernel

Syscall hooking

Syscall (de) serialization

Syscall hooking

Syscall (de)serialization

Lo

cal

sysc

all

OS Kernel

Syscall execution

Syscall (de)serialization

Syscall execution

Syscall (de)serialization

Remote syscall

Output arguments

Labs can devote all their computation power for the analysis andcan exploit hardware features, in combination with

recent advances in research

Roberto Paleari Dealing with next-generation malware 46

Page 109: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Evaluation: Correctness and performance overhead

Correct execution of benign programs

Successfully executed multiple real-world benign programs

No interference with the correct execution of programs

Transparently accessed all resources residing on a remote host

Program Action Local Remote

ClamAV Scan (remote) files with (remote) signatures 166,539 1,238Eudora Access and query (remote) address book 1,418,162 11,411Gzip Compress (remote) files 19,715 93MS IE Open a (remote) HTML document 1,263,385 10,260MS Paint Browse, open, and edit (remote) pictures 1,177,818 9,708Netcat Transfer (remote) files to another host 16,007 93Notepad Browse, open, and edit (remote) text files 929,191 7,598RegEdit Browse, view, and edit (remote) registry keys 1,573,995 13,697Task Mgr. List (remote) running processes 33,339 241WinRAR Decompress (remote) files 71,195 572

Roberto Paleari Dealing with next-generation malware 47

Page 110: Dealing with next-generation malwareroberto.greyhats.it/pubs/thesis-phd-lecture.pdf · O ers standard debugging features, at the kernel-level (e.g., breakpoints, watchpoints, single-stepping)

Evaluation: Relative code coverage increase with malware

0

10

20

30

40

50

60

Rel

ativ

e in

crea

se o

f c

ode

cove

rage

(%

)

Malware

Environment 1Environment 2Environment 3Environment 4Average

Roberto Paleari Dealing with next-generation malware 48