reassembleable disassembly shuai wang, pei wang, dinghao wu presented by chuong ngo

29
Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Upload: morgan-shields

Post on 02-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Reassembleable Disassembly

Shuai Wang, Pei Wang, Dinghao Wu

Presented by Chuong Ngo

Page 2: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

What’s in Your Dependency?

Page 3: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

What’s in Your Dependency?

Page 4: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

What’s in Your Dependency?

Page 5: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Identifying Bugs, Flaws, and Exploits

Study the specifications/papers detailing the techniques and algorithms.

Penetration test the implementation.

Study the implementation.

Get lucky.

Page 6: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Identifying Bugs, Flaws, and Exploits

Study the specifications/papers detailing the techniques and algorithms.

Penetration test the implementation.

Study the implementation.

Get lucky.

Page 7: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Identifying Bugs, Flaws, and Exploits

Study the specifications/papers detailing the techniques and algorithms.

Penetration test the implementation.

Study the implementation.

Get lucky.

But what if you don’t have the source code?

Page 8: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Back to the Source

Page 9: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Review of Compilation Process

Stripped Binary

Page 10: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Disassemblers

IDA Pro-best commercial

EXE to assembly to C.

Not reassembleable.

MC-Semantics

Object to binary only

Reassembleable

Lower performance

Page 11: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Binary Rewriting Tools

Specific compiler or non-stripped binary.

Re-compiled binary bloat.

Large execution overhead.

Not reassembleable.

Page 12: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Code Relocatability is Key to Reassembility

Page 13: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Problem of Relocatability - Data or Reference?

Page 14: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Problem of Relocatability - Data or Reference?

Disassembler needs to symbolize references

Page 15: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Types of Symbol References

Page 16: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Methodology

Simple filter for c2X.4/8 byte aligned.d2d irrelevant.Find jump tables.

Page 17: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Enter Oroboros

Page 18: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Architecture of Uroboros

Page 19: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Architecture of Uroboros

Page 20: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Architecture of Uroboros

Page 21: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Oroboros Evaluation

Page 22: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Evaluation Corpora

Page 23: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Evaluation Corpora

224 total

A1: Coreutils (103)

A2: Real (7)

A3: SPEC2006 C

Page 24: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

32-bit Binary Accuracies

Page 25: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

64-bit Binary Accuracies

Page 26: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

32-bit Binary Execution Overhead

Page 27: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

32-bit Binary Processing Times

Page 28: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Summary

Reassembeable disassembly needed

Symbolization solves code relocatability

Uroboros comprised of Disassembly and Analysis module

Compiler independent

No C++ support

Page 29: Reassembleable Disassembly Shuai Wang, Pei Wang, Dinghao Wu Presented by Chuong Ngo

Questions

Why did the authors choose to report false positives and false negatives?

Was reporting on the first and last 10 programs, arranged alphabetically, a good idea?

What could explain the outliers in the reported processing times and execution overhead?