Advanced Fuzzing With Peach 2: Michael Eddington
Advanced Fuzzing With Peach 2: Michael Eddington
Peach 2
MICHAEL EDDINGTON
[email protected]
Agenda
Introduction to Peach 2
Data mutations
Peach Farm
Fault detection
INT INT
STRING
Len Len
DATA
DATA
Model Data: Relationships
INT INT
STRING
Len Len
DATA
DATA
Model Data: State Model
Packet Packet
B-1 B-2
Packet
Packet D
A
Packet Packet
C-1 C-2
Benefits of Modeling
Relation
Transformer
State Modeling
State Modeling
Stream Call
Connect Call
Accept Method
Input
Parameters
Result
Output
Close
State Modeling: Stream
State Machine
1 2
State 1 State 2 State 3
State Machine
State 1 State 2 State 3
State Machine
State 1 State 2 State 3
1 3
Connect Connect Input
State Machine
State 1 State 2
1
Start Call
Call Call
2
Call Call
“?k1=v+1&k2=v2”
40,000+
variations
Mutation: Number
00 FFFFFFFFFFFFFFFF
Length: 200
200
Length:
00 FFFFFFFFFFFFFFFF
Mutation: State
Packet Packet
B-1 B-2
Packet
Packet D
A
Packet Packet
C-1 C-2
Mutation: State
Packet Packet
B-1 B-2
Packet
Packet D
A
Mutation: State
Packet Packet
B-1 B-2
Packet
Packet D
A
Add Custom Mutators
Specific mutations
Etc.
Fault Detection
Peach
2 Tier Configuration
2 3
Peach Agent 1 Agent 2
1
Agent 4 Network Network
Manager Capture Capture
Debuggers
Process Monitor
Memory Monitor
Network Capture
VM Control (snapshot, revert)
Networked Power Strips (cycle power)
Adam Cecchetti
Massively Parallel Fuzzing
Scales from 1 to 10,000 nodes
Choose your Virtual Platform/Hosting
EC2, Xen, VMWare, Etc
Utilizes Map/Reduce Algorithm
Map: Maps the fuzzing cases to indexes and results
Reduce: Reduces fuzzing results to interesting cases
Metric based : Time, size, diff, expected errors, OS
faults, crashes
Peach in The Middle
WHAT’S NEXT?
Peach in The Middle
Peach
Data Model
Controller Agent
Client Server
Q&A
HTTP://PEACHFUZZ.SF.NET
HTTP://PHED.ORG