ParmeSan: Sanitizer-guided Greybox Fuzzing USENIX 2020 *some pages - - PowerPoint PPT Presentation

parmesan sanitizer guided greybox fuzzing
SMART_READER_LITE
LIVE PREVIEW

ParmeSan: Sanitizer-guided Greybox Fuzzing USENIX 2020 *some pages - - PowerPoint PPT Presentation

ParmeSan: Sanitizer-guided Greybox Fuzzing USENIX 2020 *some pages borrowed from Zheyu Ma background What is fuzzing: feed random inputs to trigger as many crashes and hangs as possible What is state-of-the-art of fuzzing research:


slide-1
SLIDE 1

ParmeSan: Sanitizer-guided Greybox Fuzzing

USENIX 2020

*some pages borrowed from Zheyu Ma

slide-2
SLIDE 2

background

  • What is fuzzing: feed random inputs to trigger as many crashes and hangs

as possible

  • What is state-of-the-art of fuzzing research:
  • black-box fuzzing: totally random
  • white-box fuzzing: symbolic execution
  • gray-box fuzzing:
  • coverage-guided
  • directed fuzzing
  • heuristics: Dynamic data-flow analysis (DFA), Neural network, etc.
slide-3
SLIDE 3

Contribution

  • designs the first sanitizer-guided fuzzer using a two-stage

directed fuzzing strategy to efficiently reach all the interesting targets.

  • finds the same bugs as state-of-the-art coverage-guided

and directed fuzzers in less time.

slide-4
SLIDE 4

Motivation

slide-5
SLIDE 5

Overview

  • Target Acquisition
  • Dynamic Control Flow Graph (CFG)
  • Sanitizer-guided Fuzzer
slide-6
SLIDE 6

Target Acquisition

  • Statically compare Sanitizer-instrumented program and original program,

instrumented points are target branch

slide-7
SLIDE 7

Target Acquisition

  • Confirm sanitizer’s ability to find real-world bugs
  • Each kind of sanitizers target at one bug types
slide-8
SLIDE 8

Target Acquisition

  • Target Pruning
  • Example
  • for base64 program in LAVA-M, top 3 targets are lava_get() ,

lava_set() , and emit_bug_reporting_address(), the first 2 triggers bugs

slide-9
SLIDE 9

Dynamic CFG

  • CFG construction
slide-10
SLIDE 10

Dynamic CFG

  • CFG construction
slide-11
SLIDE 11

Dynamic CFG

  • CFG construction
  • Distance Metric
  • Augmented with DFA
slide-12
SLIDE 12

Sanitizer-guided Fuzzer

  • End-to-end workflow
slide-13
SLIDE 13

Sanitizer-guided Fuzzer

  • Input Prioritization
  • Maintaining a queue of (input, condition)
slide-14
SLIDE 14

Evaluation

  • ParmeSan v.s. Other Directed Fuzzers
slide-15
SLIDE 15

Evaluation

  • ParmeSan v.s Coverage-guided Fuzzers
slide-16
SLIDE 16

Evaluation

  • Sanitizer Impact
slide-17
SLIDE 17

Evaluation

  • Ability to detect new bugs
slide-18
SLIDE 18

Conclusion