Exploiting Software:
How to Break Code

Security can be fun…really

Pop quiz

Slide 4

Commercial security is reactive

Builders versus operators

Magic crypto fairy dust

Attaining software security is gets harder

Software complexity growth

Software vulnerability growth

Normalized (and slightly shifted) data from Geer

Who is the bad guy?

History is quirky

The good news and the bad news

Slide 15

Security problems are complicated

Attackers do not distinguish bugs and flaws

The attacker’s toolkit

Attacker’s toolkit: dissasemblers and decompilers

Attacker’s toolkit: control flow and coverage

Attacker’s toolkit: buffer overflow foo

Attacker’s toolkit: shell code and other payloads

Attacker’s toolkit: rootkits

Attacker’s toolkit: other miscellaneous tools

How attacks unfold

Knowledge: 48 Attack Patterns

Attack pattern 1:
Make the client invisible

Breaking stuff is important

Slide 29

Software security critical lessons

Ten guiding principles for secure design

Software security in <any> SDLC

Software security best practices

Slide 34

IEEE Security & Privacy Magazine

About Cigital

Pointers