DBI for Computer Security: Uses and Comparative Juan Antonio Artal , - - PowerPoint PPT Presentation

dbi for computer security uses and comparative
SMART_READER_LITE
LIVE PREVIEW

DBI for Computer Security: Uses and Comparative Juan Antonio Artal , - - PowerPoint PPT Presentation

DBI for Computer Security: Uses and Comparative Juan Antonio Artal , Ricardo J. Rodr guez , Jos e Merseguer All wrongs reversed jaartal@gmail.com , rjrodriguez@fi.upm.es, jmerse@unizar.es @RicardoJRdez


slide-1
SLIDE 1

DBI for Computer Security: Uses and Comparative

Juan Antonio Artal‡, Ricardo J. Rodr´ ıguez†, Jos´ e Merseguer‡

All wrongs reversed

jaartal@gmail.com, rjrodriguez@fi.upm.es, jmerse@unizar.es @RicardoJRdez ※ www.ricardojrodriguez.es

†Universidad Polit´

ecnica de Madrid

‡ Universidad de Zaragoza

Madrid, Spain Zaragoza, Spain

June 21th, 2013 3rd Edition of Hack in Paris Sequoia Lodge Hotel, Disneyland Paris

slide-2
SLIDE 2

$whoami

$whoami

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 2 / 44

slide-3
SLIDE 3

$whoami

$whoami

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 2 / 44

slide-4
SLIDE 4

$whoami

$whoami

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 2 / 44

slide-5
SLIDE 5

$whoami

$whoami

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 2 / 44

slide-6
SLIDE 6

$whoami

$whoami

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 2 / 44

slide-7
SLIDE 7

$whoami

$whoami

CLS member since early beginnings (2000) Ph.D.student at University of Zaragoza Working currently for Technical University of Madrid

Performance analysis of complex systems Secure software engineering Fault-Tolerant systems (design and analysis) Malware analysis (techniques and relative stuff) Safety analysis in component-based systems

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 2 / 44

slide-8
SLIDE 8

$whoami

$whoami

CLS member since early beginnings (2000) Ph.D.student at University of Zaragoza Working currently for Technical University of Madrid

Performance analysis of complex systems Secure software engineering Fault-Tolerant systems (design and analysis) Malware analysis (techniques and relative stuff) Safety analysis in component-based systems

My Ph.D. viva is next Monday! Cross fingers!! ¨ ⌣

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 2 / 44

slide-9
SLIDE 9

Development Code License

Development Code License

GPL v3

(http://gplv3.fsf.org/)

Intel Open Source License

(http://opensource.org/licenses/ intel-open-source-license.html)

Specified in each source file

Source available at

http://webdiis.unizar.es/~ricardo/files/ HIP2013.tar.gz (VS2008 project + this slides)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 3 / 44

slide-10
SLIDE 10

Development Code License

Development Code License

GPL v3

(http://gplv3.fsf.org/)

Intel Open Source License

(http://opensource.org/licenses/ intel-open-source-license.html)

Specified in each source file

Source available at

http://webdiis.unizar.es/~ricardo/files/ HIP2013.tar.gz (VS2008 project + this slides) no add-ons. . . trust me ¨ ⌣

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 3 / 44

slide-11
SLIDE 11

Agenda

Outline

1

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)? How does DBI work? Uses of DBI in Computer Security

2

DBI Frameworks DBI Framework: What is? Types of DBI frameworks Analysis and Comparative

3

Applying DBI to Computer Security. . . Developing DBAs with Pin: Pintools DBI vulnerability search Taint analysis Reverse Engineering

4

Conclusions and Acknowledgments

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 4 / 44

slide-12
SLIDE 12

An Introduction to DBI

Outline

1

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)? How does DBI work? Uses of DBI in Computer Security

2

DBI Frameworks DBI Framework: What is? Types of DBI frameworks Analysis and Comparative

3

Applying DBI to Computer Security. . . Developing DBAs with Pin: Pintools DBI vulnerability search Taint analysis Reverse Engineering

4

Conclusions and Acknowledgments

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 5 / 44

slide-13
SLIDE 13

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (I)

DBI: Dynamic Binary Instrumentation

Main Words

Instrumentation ?? Dynamic ?? Binary ??

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 6 / 44

slide-14
SLIDE 14

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (I)

DBI: Dynamic Binary Instrumentation

Main Words

Instrumentation ?? Dynamic ?? Binary ??

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 6 / 44

slide-15
SLIDE 15

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (II)

Instrumentation?

Instrumentation

“Being able to observe, monitor and modify the behaviour of a computer program” (Gal Diskin) Arbitrary addition of code in executables to collect some information

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 7 / 44

slide-16
SLIDE 16

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (II)

Instrumentation?

Instrumentation

“Being able to observe, monitor and modify the behaviour of a computer program” (Gal Diskin) Arbitrary addition of code in executables to collect some information Analyse and control everything around an executable code

Collect some information Arbitrary code insertion

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 7 / 44

slide-17
SLIDE 17

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (III) Instrumentation ?? Dynamic ?? Binary ??

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 8 / 44

slide-18
SLIDE 18

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (III) Instrumentation What is happening. . . Dynamic ?? Binary ??

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 8 / 44

slide-19
SLIDE 19

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (III) Instrumentation What is happening. . . Dynamic ?? Binary ??

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 8 / 44

slide-20
SLIDE 20

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (IV)

Dynamic?

Code analysis

Static

BEFORE execution All possible execution paths are explored → not extremely good for performance

Dynamic

DURING the execution Just one execution path (it may depend on the input data!)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 9 / 44

slide-21
SLIDE 21

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (V) Instrumentation What is happening. . . Dynamic ?? Binary ??

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 10 / 44

slide-22
SLIDE 22

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (V) Instrumentation What is happening. . . Dynamic DURING the execution. . . Binary ??

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 10 / 44

slide-23
SLIDE 23

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (V) Instrumentation What is happening. . . Dynamic DURING the execution. . . Binary ??

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 10 / 44

slide-24
SLIDE 24

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (IV)

Binary?

Dynamic analysis

Source code available

Source code Compiler

No source code (common case ¨ ⌣)

Binary

Static (i.e., creating a new binary – with extras) Dynamic

Environment

Emulation Virtual

Debugging

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 11 / 44

slide-25
SLIDE 25

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (VI) Instrumentation What is happening. . . Dynamic DURING the execution. . . Binary ??

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 12 / 44

slide-26
SLIDE 26

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (VI) Instrumentation What is happening. . . Dynamic DURING the execution. . . Binary

  • f a binary (executable). . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 12 / 44

slide-27
SLIDE 27

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (VII)

DBI advantages

Binary instrumentation: advantages

Programming language (totally) independent Machine-mode vision We can instrument proprietary software

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 13 / 44

slide-28
SLIDE 28

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (VII)

DBI advantages

Binary instrumentation: advantages

Programming language (totally) independent Machine-mode vision We can instrument proprietary software

Dynamic Instrumentation: advantages

No need to recompile/relink each time Allow to find on-the-fly code Dynamically generated code Allow to instrument a process in execution already (attach)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 13 / 44

slide-29
SLIDE 29

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)?

DBI: What is? (IIX)

DBI disadvantages

Main disadvantages

Overhead (by the instrumentation during execution) ⇓ performance (analyst hopelessness!)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 14 / 44

slide-30
SLIDE 30

An Introduction to DBI How does DBI work?

How does DBI work? (I)

Recall: arbitrary code addition during the execution of a binary

Running code

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 15 / 44

slide-31
SLIDE 31

An Introduction to DBI How does DBI work?

How does DBI work? (I)

Recall: arbitrary code addition during the execution of a binary What do I insert? → instrumentation function

Running code Arbitrary code

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 15 / 44

slide-32
SLIDE 32

An Introduction to DBI How does DBI work?

How does DBI work? (I)

Recall: arbitrary code addition during the execution of a binary What do I insert? → instrumentation function Where? → addition places

Running code Arbitrary code

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 15 / 44

slide-33
SLIDE 33

An Introduction to DBI How does DBI work?

How does DBI work? (II)

Placing DBI in the context of dynamic analysis

Definition (informal)

Executable transformation Total control over execution No need of architectural support

Binary Hardware Debugger Debugging Hardware Binary Virtualization Hardware Binary DBI Binary Emulation Hardware Emulador

Virtualization

Total control?

Emulation

Executable transformation

Debugging

Architectural support (a must. . . )

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 16 / 44

slide-34
SLIDE 34

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-35
SLIDE 35

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-36
SLIDE 36

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-37
SLIDE 37

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection Instruction profiling

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-38
SLIDE 38

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection Instruction profiling Data dependency profiling

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-39
SLIDE 39

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection Instruction profiling Data dependency profiling Threads profiling

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-40
SLIDE 40

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection Instruction profiling Data dependency profiling Threads profiling Race conditions detection

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-41
SLIDE 41

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection Instruction profiling Data dependency profiling Threads profiling Race conditions detection Computer Architecture:

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-42
SLIDE 42

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection Instruction profiling Data dependency profiling Threads profiling Race conditions detection Computer Architecture:

Trace generators (memory)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-43
SLIDE 43

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection Instruction profiling Data dependency profiling Threads profiling Race conditions detection Computer Architecture:

Trace generators (memory) Branch (and cache) predictors

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-44
SLIDE 44

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection Instruction profiling Data dependency profiling Threads profiling Race conditions detection Computer Architecture:

Trace generators (memory) Branch (and cache) predictors Memory failures recovery

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-45
SLIDE 45

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection Instruction profiling Data dependency profiling Threads profiling Race conditions detection Computer Architecture:

Trace generators (memory) Branch (and cache) predictors Memory failures recovery Simulation of speculation strategies

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-46
SLIDE 46

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (I)

Non security-related uses

Code coverage and metrics Call-graphs generation Memory leaks detection Instruction profiling Data dependency profiling Threads profiling Race conditions detection Computer Architecture:

Trace generators (memory) Branch (and cache) predictors Memory failures recovery Simulation of speculation strategies

. . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 17 / 44

slide-47
SLIDE 47

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (II)

Secuirty-related uses

Data control flow analysis

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 18 / 44

slide-48
SLIDE 48

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (II)

Secuirty-related uses

Data control flow analysis Vulnerability detection

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 18 / 44

slide-49
SLIDE 49

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (II)

Secuirty-related uses

Data control flow analysis Vulnerability detection Test cases / fuzzing generation

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 18 / 44

slide-50
SLIDE 50

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (II)

Secuirty-related uses

Data control flow analysis Vulnerability detection Test cases / fuzzing generation Advance monitoring (NSA way)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 18 / 44

slide-51
SLIDE 51

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (II)

Secuirty-related uses

Data control flow analysis Vulnerability detection Test cases / fuzzing generation Advance monitoring (NSA way) Reverse Engineering

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 18 / 44

slide-52
SLIDE 52

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (II)

Secuirty-related uses

Data control flow analysis Vulnerability detection Test cases / fuzzing generation Advance monitoring (NSA way) Reverse Engineering Privacy monitoring

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 18 / 44

slide-53
SLIDE 53

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (II)

Secuirty-related uses

Data control flow analysis Vulnerability detection Test cases / fuzzing generation Advance monitoring (NSA way) Reverse Engineering Privacy monitoring Sandboxing

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 18 / 44

slide-54
SLIDE 54

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (II)

Secuirty-related uses

Data control flow analysis Vulnerability detection Test cases / fuzzing generation Advance monitoring (NSA way) Reverse Engineering Privacy monitoring Sandboxing . . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 18 / 44

slide-55
SLIDE 55

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (III)

Some security tools that use DBI. . .

Vulnerability search

SAGE (Microsoft) Sogetis Fuzzgrind

Avalanche Determine Pincov Taintdroid VERA TraceSurfer . . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 19 / 44

slide-56
SLIDE 56

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (IV)

Its popularity is in crescendo (1)

Covert Debugging: Circumventing Software Armoring, D. Quist & Valsmith, BH USA 2007/DefCon 15 Generic Unpacking of Self-modifying, Aggressive, Packed Binary Programs (P. Bania, CoRR abs/0905.4581 2009) Tarte Tatin Tools: a set of plugins for malware analysis with Pin, (D. Reynaud, DeepSec 2009) Dynamic Binary Instrumentation for Deobfuscation and Unpacking (J-Y. Marion & D. Reynaud, DeepSec 2009) Dumping Shellcode with Pin (S. Porst, Zynamics 2010) Binary Instrumentation for Security Professionals (G. Diskin, BH USA 2011) Shellcode Analysis using Dynamic Binary Instrumentation (D. Radu &

  • B. Dang, CARO 2011)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 20 / 44

slide-57
SLIDE 57

An Introduction to DBI Uses of DBI in Computer Security

Uses of DBI in Computer Security (V)

Its popularity is in crescendo (2)

Hacking using Dynamic Binary Instrumentation (G. Diskin, HITB 2012 AMS) Improving Unpacking Process using DBI techniques (R.J. Rodr´ ıguez, RootedCON 2012) Improving Software Security with Dynamic Binary Instrumentation (R. Johnson, InfoSec Southwest 2012) Vulnerability Analysis and Practical Data Flow Analysis & Visualization (J.W. Oh, CanSecWest 2012) Light and Dark side of Code Instrumentation (D. Evdokimov, CONFidence 2012) Dynamic Binary Instrumentation Frameworks: I know you’re there spying on me (F. Falcon & N. Riva, RECon 2012)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 21 / 44

slide-58
SLIDE 58

DBI Frameworks

Outline

1

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)? How does DBI work? Uses of DBI in Computer Security

2

DBI Frameworks DBI Framework: What is? Types of DBI frameworks Analysis and Comparative

3

Applying DBI to Computer Security. . . Developing DBAs with Pin: Pintools DBI vulnerability search Taint analysis Reverse Engineering

4

Conclusions and Acknowledgments

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 22 / 44

slide-59
SLIDE 59

DBI Frameworks DBI Framework: What is?

DBI Framework: What is? (I)

Provide a bunch of APIs for tool development DBA: Dynamic Binary Analysis tool DBAs types:

Light-weight Heavy-weight (the use intermediate code)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 23 / 44

slide-60
SLIDE 60

DBI Frameworks DBI Framework: What is?

DBI Framework: What is? (I)

Provide a bunch of APIs for tool development DBA: Dynamic Binary Analysis tool DBAs types:

Light-weight Heavy-weight (the use intermediate code)

Main components

Core: just-in-time (JIT) compiler

Controls execution of a binary

Library (this is your own developed tool)

Where? What?

$ < DBI fw core > < myLibrary > < binaryToInstrument >

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 23 / 44

slide-61
SLIDE 61

DBI Frameworks DBI Framework: What is?

DBI Framework: What is? (II)

Use modes (most common)

JIT

Modification of a (small) set of instructions before executing them More robust Good way for repetitive behaviour binaries (e.g., loops)

Probe

Memory patching Less overhead (it executes native code) Not supported by all DBI fws.

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 24 / 44

slide-62
SLIDE 62

DBI Frameworks DBI Framework: What is?

DBI Framework: What is? (II)

Use modes (most common)

JIT

Modification of a (small) set of instructions before executing them More robust Good way for repetitive behaviour binaries (e.g., loops)

Probe

Memory patching Less overhead (it executes native code) Not supported by all DBI fws.

Granularity

Instruction Basic Superblock Trace Routine Image Block ++ – –

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 24 / 44

slide-63
SLIDE 63

DBI Frameworks DBI Framework: What is?

DBI Framework: What is? (II)

Use modes (most common)

JIT

Modification of a (small) set of instructions before executing them More robust Good way for repetitive behaviour binaries (e.g., loops)

Probe

Memory patching Less overhead (it executes native code) Not supported by all DBI fws.

Granularity

Instruction Basic Superblock Trace Routine Image Block ++ – –

→ Some not supported in some DBI fws.. . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 24 / 44

slide-64
SLIDE 64

DBI Frameworks Types of DBI frameworks

Types of DBI frameworks (I)

DB fws in the wild

Pin DynInst Valgrind Dtrace HDtrans DynamoRIO Systemap

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 25 / 44

slide-65
SLIDE 65

DBI Frameworks Types of DBI frameworks

Types of DBI frameworks (I)

DB fws in the wild

Pin DynInst Valgrind Dtrace HDtrans DynamoRIO Systemap

  • Mmm. . . what is the much better?

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 25 / 44

slide-66
SLIDE 66

DBI Frameworks Types of DBI frameworks

Types of DBI frameworks (I)

DB fws in the wild

Pin DynInst Valgrind Dtrace HDtrans DynamoRIO Systemap

  • Mmm. . . what is the much better?

Selection criteria

Software being maintained License gives access to the source code Free API provided O.S. and common infrastructure

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 25 / 44

slide-67
SLIDE 67

DBI Frameworks Types of DBI frameworks

Types of DBI frameworks (II)

Differences y similarities

Characteristics

Ph.D. thesis, Univ. Cambridge Source code available (GNU GPL v2) Heavy-weight DBAs (using VEX IR as intermediate code) http://www.valgrind.org

Instruction Basic block Superblock Trace Routine IMage

Framework Version Supported Arch. O.S. Granularity Valgrind

3.8.1 (18/09/2012) Arm, PowerPC, s390, x86, x64 Android, OSX, Linux I S J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 26 / 44

slide-68
SLIDE 68

DBI Frameworks Types of DBI frameworks

Types of DBI frameworks (II)

Differences y similarities

Characteristics

Intel Source code available (but proprietary license) It allows to attach a process in execution http://www.pintool.org/

Instruction Basic block Superblock Trace Routine IMage

Framework Version Supported Arch. O.S. Granularity Valgrind

3.8.1 (18/09/2012) Arm, PowerPC, s390, x86, x64 Android, OSX, Linux I S

Pin

2.12 (10/10/2012) Arm, IA-64, x86, x64 Windows, Linux I B T R M J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 26 / 44

slide-69
SLIDE 69

DBI Frameworks Types of DBI frameworks

Types of DBI frameworks (II)

Differences y similarities

Characteristics

MIT, HP, Google Source code available (BSD-2) Really good docs http://www.dynamorio.org/

Instruction Basic block Superblock Trace Routine IMage

Framework Version Supported Arch. O.S. Granularity Valgrind

3.8.1 (18/09/2012) Arm, PowerPC, s390, x86, x64 Android, OSX, Linux I S

Pin

2.12 (10/10/2012) Arm, IA-64, x86, x64 Windows, Linux I B T R M

DynamoRIO

3.2.0-3 (01/03/2012) x86, x64 Windows, Linux I B T J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 26 / 44

slide-70
SLIDE 70

DBI Frameworks Types of DBI frameworks

Types of DBI frameworks (II)

Differences y similarities

Similarities

Injected code in C/C++ No need of having the source code of binary to be instrumented GNU/Linux x86

Instruction Basic block Superblock Trace Routine IMage

Framework Version Supported Arch. O.S. Granularity Valgrind

3.8.1 (18/09/2012) Arm, PowerPC, s390, x86, x64 Android, OSX, Linux I S

Pin

2.12 (10/10/2012) Arm, IA-64, x86, x64 Windows, Linux I B T R M

DynamoRIO

3.2.0-3 (01/03/2012) x86, x64 Windows, Linux I B T J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 26 / 44

slide-71
SLIDE 71

DBI Frameworks Analysis and Comparative

DBI frameworks comparative (I)

DBA tool for comparative

Counting executed instructions Two granularities: instruction and basic block

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 27 / 44

slide-72
SLIDE 72

DBI Frameworks Analysis and Comparative

DBI frameworks comparative (I)

DBA tool for comparative

Counting executed instructions Two granularities: instruction and basic block

Comparative Aim

Evaluate the performance of selected DBI fws. Slowdown: tinstrumented tno instrumented

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 27 / 44

slide-73
SLIDE 73

DBI Frameworks Analysis and Comparative

DBI frameworks comparative (I)

DBA tool for comparative

Counting executed instructions Two granularities: instruction and basic block

Comparative Aim

Evaluate the performance of selected DBI fws. Slowdown: tinstrumented tno instrumented

Diving into the APIs

Pin: ↑ Documentation, ↑↑ Examples, ↑ Tutorials DynamoRIO: ↑↑ Documentation, ↑ Examples, ↑ Tutorials Valgrind: ↓ Documentation, ↓ Examples, ↓ Tutorials

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 27 / 44

slide-74
SLIDE 74

DBI Frameworks Analysis and Comparative

DBI frameworks comparative (II)

Experimental settings

Hardware

Intel Core2 Duo 2GHz 667MHz, 2GiB DDR2, HDD 120GB

Software

Fedora Core 14 32bits, gcc 4.5.1, GNU Fortran 4.5.1, r3

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 28 / 44

slide-75
SLIDE 75

DBI Frameworks Analysis and Comparative

DBI frameworks comparative (II)

Experimental settings

Hardware

Intel Core2 Duo 2GHz 667MHz, 2GiB DDR2, HDD 120GB

Software

Fedora Core 14 32bits, gcc 4.5.1, GNU Fortran 4.5.1, r3

Benchmark

Own benchmark created for the comparative Considered benchmarks (e.g., SPEC) discarded Different categories:

Integer computation Float computation I/O Use of memory

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 28 / 44

slide-76
SLIDE 76

DBI Frameworks Analysis and Comparative

DBI frameworks comparative (III): Results (1)

Average of memory consumption

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 29 / 44

slide-77
SLIDE 77

DBI Frameworks Analysis and Comparative

DBI frameworks comparative (III): Results (2)

Slowdown by instrumentations

PIN − O0 Valgrind − O0 DRIO − O0 PIN − O3 Valgrind − O3 DRIO − O3 2 4 6 8 10 12 14 16 18 20 Slowdown Instructions Basic blocks

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 30 / 44

slide-78
SLIDE 78

DBI Frameworks Analysis and Comparative

DBI frameworks comparative (III): Results (3)

Conclusions

Running optimised code or (int/float) computation → DynamoRIO X Slower solution → Valgrind Memory consumption

↓ Pin X ↑ DynamoRIO

Some funny things discovered during the research. . .

  • No. of instructions differs among the DBI fws. → each one starts in a

different point Bug detected when 80-bit numbers rounding in 32 and 64 bits archs. (Valgrind)

Already reported :( (https://bugs.kde.org/show_bug.cgi? id=19791)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 31 / 44

slide-79
SLIDE 79

DBI Frameworks Analysis and Comparative

DBI frameworks comparative (III): Results (4)

Technical Report

Estudio comparativo de frameworks de Instrumentaci´

  • n Din´

amica de Ejecutables (J.A. Artal)

Fro Spanish guys. . . (we should write some paper soon on this) http://webdiis.unizar.es/~ricardo/files/PFC.Estudio.Frameworks. DBI/Memoria_PFC_EstudioDBI.pdf

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 32 / 44

slide-80
SLIDE 80

Applying DBI to Computer Security. . .

Outline

1

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)? How does DBI work? Uses of DBI in Computer Security

2

DBI Frameworks DBI Framework: What is? Types of DBI frameworks Analysis and Comparative

3

Applying DBI to Computer Security. . . Developing DBAs with Pin: Pintools DBI vulnerability search Taint analysis Reverse Engineering

4

Conclusions and Acknowledgments

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 33 / 44

slide-81
SLIDE 81

Applying DBI to Computer Security. . . Developing DBAs with Pin: Pintools

Developing DBAs with Pin: Pintools (I)

VM + code cache + API instrumentation DBA → Pintool VM: JIT + emulator + dispatcher

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 34 / 44

slide-82
SLIDE 82

Applying DBI to Computer Security. . . Developing DBAs with Pin: Pintools

Developing DBAs with Pin: Pintools (I)

VM + code cache + API instrumentation DBA → Pintool VM: JIT + emulator + dispatcher

1 JIT compiles and instruments

the binary code

2 Launched by the dispatcher 3 Stored in code cache

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 34 / 44

slide-83
SLIDE 83

Applying DBI to Computer Security. . . Developing DBAs with Pin: Pintools

Developing DBAs with Pin: Pintools (I)

VM + code cache + API instrumentation DBA → Pintool VM: JIT + emulator + dispatcher

1 JIT compiles and instruments

the binary code

2 Launched by the dispatcher 3 Stored in code cache

Works on the O.S.: user-space

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 34 / 44

slide-84
SLIDE 84

Applying DBI to Computer Security. . . Developing DBAs with Pin: Pintools

Developing DBAs with Pin: Pintools (II)

An example: inscount.cpp

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 35 / 44

slide-85
SLIDE 85

Applying DBI to Computer Security. . . DBI vulnerability search

DBI vulnerability search (I): Double Free

Demo: DoubleFreeDBA.dll

Vulnerability description

CWE-415 (http://cwe.mitre.org/data/definitions/415.html) Call free() with the same @ → corrupt memory “Doubly freeing memory may result in a write-what-where condition, allowing an attacker to execute arbitrary code”

DBA developed with Pin (DoubleFreeDBA.dll)

Where?

APIs RtlAllocateHeap (after), RtlAllocateFree (before)

What?

RtlAllocateHeap: keeps returned @ in a list RtlAllocateFree: removes @ from list, and reports if not found!

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 36 / 44

slide-86
SLIDE 86

Applying DBI to Computer Security. . . DBI vulnerability search

DBI vulnerability search (I): Double Free

Demo: DoubleFreeDBA.dll

Vulnerability description

CWE-415 (http://cwe.mitre.org/data/definitions/415.html) Call free() with the same @ → corrupt memory “Doubly freeing memory may result in a write-what-where condition, allowing an attacker to execute arbitrary code”

DBA developed with Pin (DoubleFreeDBA.dll)

Where?

APIs RtlAllocateHeap (after), RtlAllocateFree (before)

What?

RtlAllocateHeap: keeps returned @ in a list RtlAllocateFree: removes @ from list, and reports if not found! Friendly reminder: Make a demo. . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 36 / 44

slide-87
SLIDE 87

Applying DBI to Computer Security. . . DBI vulnerability search

DBI vulnerability search (II): Buffer Overflow (1)

Demo: BufferOverflowDBA.dll

Vulnerability description

CWE-120 (http://cwe.mitre.org/data/definitions/120.html) Copy a buffer without restrictions → arbitrary code execution “Buffer overflows often can be used to execute arbitrary code [...]. Buffer overflows generally lead to crashes [...].”

DBA developed with Pin (BufferOverflowDBA.dll)

Works around scanf Where?→ API scanf (before) What?

Checks parameters seeking buffers without limits

Improvements: extend to other vulnerable APIs (e.g., strcpy)

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 37 / 44

slide-88
SLIDE 88

Applying DBI to Computer Security. . . DBI vulnerability search

DBI vulnerability search (II): Buffer Overflow (1)

Demo: BufferOverflowDBA.dll

Vulnerability description

CWE-120 (http://cwe.mitre.org/data/definitions/120.html) Copy a buffer without restrictions → arbitrary code execution “Buffer overflows often can be used to execute arbitrary code [...]. Buffer overflows generally lead to crashes [...].”

DBA developed with Pin (BufferOverflowDBA.dll)

Works around scanf Where?→ API scanf (before) What?

Checks parameters seeking buffers without limits

Improvements: extend to other vulnerable APIs (e.g., strcpy)

Friendly reminder: Make a demo. . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 37 / 44

slide-89
SLIDE 89

Applying DBI to Computer Security. . . DBI vulnerability search

DBI vulnerability search (II): Buffer Overflow (2)

Demo: ProtectRetAddrDBA.dll

Vulnerability description

CWE-120 (http://cwe.mitre.org/data/definitions/120.html) Copy a buffer without restrictions → arbitrary code execution “Buffer overflows often can be used to execute arbitrary code [...]. Buffer overflows generally lead to crashes [...].”

DBA developed with Pin (ProtectRetAddrDBA.dll)

Where? → every CALL (before) o RETN (before) in .text section What?

CALL → stores legitimate return address (EIP + size(CALL)) RETN → checks if retn address is in the list. . .

Detected 6 retn changes in ntdll.dll library!!

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 38 / 44

slide-90
SLIDE 90

Applying DBI to Computer Security. . . DBI vulnerability search

DBI vulnerability search (II): Buffer Overflow (2)

Demo: ProtectRetAddrDBA.dll

Vulnerability description

CWE-120 (http://cwe.mitre.org/data/definitions/120.html) Copy a buffer without restrictions → arbitrary code execution “Buffer overflows often can be used to execute arbitrary code [...]. Buffer overflows generally lead to crashes [...].”

DBA developed with Pin (ProtectRetAddrDBA.dll)

Where? → every CALL (before) o RETN (before) in .text section What?

CALL → stores legitimate return address (EIP + size(CALL)) RETN → checks if retn address is in the list. . .

Detected 6 retn changes in ntdll.dll library!!

Friendly reminder: Make a demo. . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 38 / 44

slide-91
SLIDE 91

Applying DBI to Computer Security. . . Taint analysis

DBI vulnerability search (III): Taint analysis

Demo: TaintAnalysisDBA.dll

DBA developed with Pin (TaintAnalysisDBA.dll)

Taint analysis of scanf parameters Where? → API scanf (after) What?

Trace all registers/memory zones contaminated from the input data

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 39 / 44

slide-92
SLIDE 92

Applying DBI to Computer Security. . . Taint analysis

DBI vulnerability search (III): Taint analysis

Demo: TaintAnalysisDBA.dll

DBA developed with Pin (TaintAnalysisDBA.dll)

Taint analysis of scanf parameters Where? → API scanf (after) What?

Trace all registers/memory zones contaminated from the input data Friendly reminder: Make a demo. . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 39 / 44

slide-93
SLIDE 93

Applying DBI to Computer Security. . . Reverse Engineering

DBI vulnerability search (IV): Reverse Engineering

Demo: EasyPasswordDBA.dll – very naif example

DBA developed with Pin (EasyPasswordDBA.dll)

Seeking for the correct key Hook when calling to string comparison lstrcmpA Where?

API lstrcmpA (before)

What?

Log all function parameters

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 40 / 44

slide-94
SLIDE 94

Applying DBI to Computer Security. . . Reverse Engineering

DBI vulnerability search (IV): Reverse Engineering

Demo: EasyPasswordDBA.dll – very naif example

DBA developed with Pin (EasyPasswordDBA.dll)

Seeking for the correct key Hook when calling to string comparison lstrcmpA Where?

API lstrcmpA (before)

What?

Log all function parameters

This is not longer valid for current apps. . . isn’t it? ¨ ⌣

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 40 / 44

slide-95
SLIDE 95

Applying DBI to Computer Security. . . Reverse Engineering

DBI vulnerability search (IV): Reverse Engineering

Demo: EasyPasswordDBA.dll – very naif example

DBA developed with Pin (EasyPasswordDBA.dll)

Seeking for the correct key Hook when calling to string comparison lstrcmpA Where?

API lstrcmpA (before)

What?

Log all function parameters

This is not longer valid for current apps. . . isn’t it? ¨ ⌣

Friendly reminder: Make a demo. . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 40 / 44

slide-96
SLIDE 96

Conclusions and Acknowledgments

Outline

1

An Introduction to DBI What (the hell) is Dynamic Binary Instrumentation (DBI)? How does DBI work? Uses of DBI in Computer Security

2

DBI Frameworks DBI Framework: What is? Types of DBI frameworks Analysis and Comparative

3

Applying DBI to Computer Security. . . Developing DBAs with Pin: Pintools DBI vulnerability search Taint analysis Reverse Engineering

4

Conclusions and Acknowledgments

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 41 / 44

slide-97
SLIDE 97

Conclusions and Acknowledgments

Conclusions

DBI frameworks: fast and easy development → high potential NO need of (too much) advanced O.S. programming knowledge

We can focus in what really matters: our DBA tool

Disadvantages:

DBI API knowledge Execution time

Recall about the DBI fws. comparison. . .

Running optimised code or (int/float) computation → DynamoRIO X Slower solution → Valgrind Memory consumption

↓ Pin X ↑ DynamoRIO

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 42 / 44

slide-98
SLIDE 98

Conclusions and Acknowledgments

Acknowledgments

Gal Diskin Dimitry “D1g1” Evdokimov Francisco Falcon & Nahuel Riva CrackLatinoS (CLS) Hack in Paris staff, thank you guys & gals!

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 43 / 44

slide-99
SLIDE 99

Conclusions and Acknowledgments

Acknowledgments

Gal Diskin Dimitry “D1g1” Evdokimov Francisco Falcon & Nahuel Riva CrackLatinoS (CLS) Hack in Paris staff, thank you guys & gals! To you for hearing me stoically. . .

J.A. Artal, R.J. Rodr´ ıguez, J. Merseguer DBI for Computer Security: Uses and Comparative June 21th, 2013 43 / 44

slide-100
SLIDE 100

DBI for Computer Security: Uses and Comparative

Juan Antonio Artal‡, Ricardo J. Rodr´ ıguez†, Jos´ e Merseguer‡

All wrongs reversed

jaartal@gmail.com, rjrodriguez@fi.upm.es, jmerse@unizar.es @RicardoJRdez ※ www.ricardojrodriguez.es

†Universidad Polit´

ecnica de Madrid

‡ Universidad de Zaragoza

Madrid, Spain Zaragoza, Spain

June 21th, 2013 3rd Edition of Hack in Paris Sequoia Lodge Hotel, Disneyland Paris