Binary and Malware Analysis

Table of Contents

Dynamic taint analysis

“Tracking interesting things”

Idea:

Access policies:

Tainting to detect attacks

For exploits:

Questions for tainting:

  1. what to taint?
  2. how to propagate taint, and how to clean it?
  3. how to use taint?
  4. track bits, bytes, words, blocks…in single color or multiple colors?
  5. tainting boundaries – only registers, or also memory? what about disk?

What to taint

For control of information flow, taint everything.

For attack detection, taint everything from untrusted source, and see if it ends up where it shouldn’t.

For binary analysis, taint anything possible, like data typed by user and config files.

For privacy breaches: taint privacy sensitive data, like passwords and credit card number.

For vulnerability detection, taint everything that attacker can control.

Taint propagation

Generally, these rules hold:

Cleaning the taint:

Propagating:

Using the taint