security testing at mozilla - issta 2016 · 2016. 7. 21. · security testing at mozilla christian...

93
SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION

Upload: others

Post on 04-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

SECURITY TESTING AT MOZILLA

CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER

MOZILLA CORPORATION

Page 2: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made
Page 3: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

303,221 commits made by 3,957 contributors

Page 4: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

approx. 13.5M LoC

303,221 commits made by 3,957 contributors

Page 5: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made
Page 6: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made
Page 7: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made
Page 8: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made
Page 9: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made
Page 10: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made
Page 11: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made
Page 12: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

PLATFORM SECURITY

Page 13: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

Platform

PLATFORM SECURITY

Page 14: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

Platform

PLATFORM SECURITY

Gecko Layout Engine

Page 15: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

Platform

PLATFORM SECURITY

Gecko Layout Engine

JS Engine

Page 16: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

Platform

PLATFORM SECURITY

Gecko Layout Engine

JS EngineCodecs and 3rd party libraries

Page 17: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Page 18: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Program

Page 19: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Program

00110001 00110011 00110011 00110111

Page 20: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Program

00110001 00110011 00110011 00110111

?

Page 21: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Program

00110001 00110011 00110011 00110111

?Crashes

AssertionsHangs

Page 22: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Program ?Crashes

AssertionsHangs

Generator

Page 23: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Program ?Crashes

AssertionsHangs

Generator

Random API usage

Page 24: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Program ?Crashes

AssertionsHangs

Mutator

Page 25: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Program ?Crashes

AssertionsHangs

Mutator

SampleTest

SampleTest

SampleTest

SampleTest

Page 26: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Program ?Crashes

AssertionsHangs

Mutator

SampleTest

SampleTest

SampleTest

SampleTest

MutatedTest

Page 27: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZ TESTING

Program ?Crashes

AssertionsHangs

Mutator

SampleTest

SampleTest

SampleTest

SampleTest

MutatedTest

Fuzzing is effective: Quick to get, cheap to use, finds tricky bugs

Page 28: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

LANGFUZZ

MutatedTest

SampleTest

SampleTest

SampleTest

SampleTest

Grammar-based mutations for interpreter testing

Page 29: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

LANGFUZZ

Master Thesis in 2011

USENIX Security 2012

Page 30: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

LANGFUZZ

In use at Mozilla since 2011, 2397 bugs in the JS engine.

Page 31: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

On Google ClusterFuzz since 2014, ~170 Bugs found.

LANGFUZZ

In use at Mozilla since 2011, 2397 bugs in the JS engine.

Page 32: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

On Google ClusterFuzz since 2014, ~170 Bugs found.

LANGFUZZ

In use at Mozilla since 2011, 2397 bugs in the JS engine.

43 Chrome Security Bug Bounties

until today

Page 33: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

OTHER FUZZING AT MOZILLAJSFUNFUZZ

Page 34: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

OTHER FUZZING AT MOZILLAJSFUNFUZZ

Generator-based JS Fuzzer, written by Jesse Ruderman

Page 35: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

OTHER FUZZING AT MOZILLAJSFUNFUZZ

Generator-based JS Fuzzer, written by Jesse Ruderman

Supports most ECMA features as well as Mozilla extensions

Page 36: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

OTHER FUZZING AT MOZILLAJSFUNFUZZ

2869 bugs found since 2006

Generator-based JS Fuzzer, written by Jesse Ruderman

Supports most ECMA features as well as Mozilla extensions

Page 37: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

OTHER FUZZING AT MOZILLADOMFUZZ

Generator/Mutator DOM Fuzzer, written by Jesse Ruderman

Page 38: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

OTHER FUZZING AT MOZILLADOMFUZZ

Generator/Mutator DOM Fuzzer, written by Jesse Ruderman

Modular structure, different modules for different DOM features, e.g.

CSS, Events, WebAudio, SVG, Unicode …

Page 39: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

OTHER FUZZING AT MOZILLADOMFUZZ

Generator/Mutator DOM Fuzzer, written by Jesse Ruderman

Modular structure, different modules for different DOM features, e.g.

CSS, Events, WebAudio, SVG, Unicode …

Open-Source: https://github.com/MozillaSecurity/funfuzz

Page 40: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

OTHER FUZZING AT MOZILLADHARMA

Generation-based API fuzzer using a custom language

Page 41: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

OTHER FUZZING AT MOZILLADHARMA

Generation-based API fuzzer using a custom language

Open-Source: https://github.com/MozillaSecurity/dharma/

Page 42: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A NEW APPROACH: COVERAGE

Page 43: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A NEW APPROACH: COVERAGE

Page 44: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A NEW APPROACH: COVERAGE

A

B

C

Page 45: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A NEW APPROACH: COVERAGE

A

B

CA B C

Page 46: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A NEW APPROACH: COVERAGE

A

B

CA B CA C

Page 47: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A NEW APPROACH: COVERAGE

A

B

CA B CA C

Public tools: AFL (american fuzzy lop) and libFuzzer

Page 48: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A NEW APPROACH: COVERAGE

A

B

CA B CA C

Public tools: AFL (american fuzzy lop) and libFuzzer

Page 49: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A NEW APPROACH: COVERAGE

A

B

CA B CA C

Public tools: AFL (american fuzzy lop) and libFuzzer

Page 50: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

HELPFUL TOOLS

FUZZ TESTING

Program ?CrashesAssertionsHangs

Mutator

SampleTest

SampleTest

SampleTest

SampleTest

MutatedTest

Page 51: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

HELPFUL TOOLS

FUZZ TESTING

Program ?CrashesAssertionsHangs

Mutator

SampleTest

SampleTest

SampleTest

SampleTest

MutatedTest

CrashesAssertions

Hangs

Page 52: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

HELPFUL TOOLS

FUZZ TESTING

Program ?CrashesAssertionsHangs

Mutator

SampleTest

SampleTest

SampleTest

SampleTest

MutatedTest

CrashesAssertions

Hangs

Out-of-bounds readUse-after-free

?

Page 53: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

HELPFUL TOOLS

FUZZ TESTING

Program ?CrashesAssertionsHangs

Mutator

SampleTest

SampleTest

SampleTest

SampleTest

MutatedTest

CrashesAssertions

Hangs

Out-of-bounds readUse-after-free

?

Valgrind: Too slow for fuzzing

Page 54: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

HELPFUL TOOLS

FUZZ TESTING

Program ?CrashesAssertionsHangs

Mutator

SampleTest

SampleTest

SampleTest

SampleTest

MutatedTest

CrashesAssertions

Hangs

Out-of-bounds readUse-after-free

?

Valgrind: Too slow for fuzzing

Sanitizers: AddressSanitizer, ThreadSanitizer, UndefinedBehaviorSanitizer

Page 55: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

AddressSanitizer (ASan)

Page 56: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

AddressSanitizer (ASan)

Page 57: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

AddressSanitizer (ASan)

Page 58: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

AddressSanitizer (ASan)

Page 59: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

AddressSanitizer (ASan)

Page 60: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

AddressSanitizer (ASan)

Compile-Time Instrumentation

Average Slowdown: 1.93x

Page 61: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A SIMPLE EXAMPLE

Page 62: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A SIMPLE EXAMPLE

CVE-2014-0160 (Heartbleed)Critical out-of-bounds read in OpenSSL

Page 63: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A SIMPLE EXAMPLE

CVE-2014-0160 (Heartbleed)Critical out-of-bounds read in OpenSSL

Hanno Böck combined: OpenSSL library AddressSanitizer

Coverage Guided Fuzzer

Page 64: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A SIMPLE EXAMPLE

Page 65: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

A SIMPLE EXAMPLE

Found Heartbleed in only 6 hours, no TLS-specific fuzzer required

Page 66: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

SCALING FUZZING

Page 67: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

SCALING FUZZING

More CPU time = More bugs found

Page 68: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

SCALING FUZZING

More CPU time = More bugs found

Deployment?

Page 69: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

SCALING FUZZING

More CPU time = More bugs found

Deployment? Management?

Page 70: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

SCALING FUZZING

More CPU time = More bugs found

Deployment? Management?

Results?

Page 71: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

SCALING FUZZING

More CPU time = More bugs found

Deployment? Management?

Results?

A set of generic, open-source tools would be nice

Page 72: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZMANAGER

Page 73: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZMANAGER

Page 74: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

FUZZMANAGER

Page 75: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

LIFE OF A BUG

Page 76: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

LIFE OF A BUG

FuzzManager

Page 77: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

LIFE OF A BUG

FuzzManager

deploy machines

Page 78: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

LIFE OF A BUG

provide signatures

FuzzManager

deploy machines

Page 79: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

LIFE OF A BUG

provide signatures

FuzzManager

deploy machines

submit crashes

Page 80: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

LIFE OF A BUG

provide signatures

TriageFuzzManager

deploy machines

submit crashes

Page 81: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

LIFE OF A BUG

provide signatures

Triage

File Bug Report

Bug Database (e.g. Bugzilla)

FuzzManager

deploy machines

submit crashes

Page 82: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

GETTING INVOLVED

Page 83: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

GETTING INVOLVED

https://github.com/MozillaSecurity

Page 84: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

GETTING INVOLVED

https://github.com/MozillaSecurity

irc://irc.mozilla.org/#security

Page 85: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

GETTING INVOLVED

https://github.com/MozillaSecurity

https://www.mozilla.org/security/bug-bounty/

irc://irc.mozilla.org/#security

Page 86: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

GETTING INVOLVED

https://github.com/MozillaSecurity

https://www.mozilla.org/security/bug-bounty/

irc://irc.mozilla.org/#security

3,000 USD for every critical/high security vulnerability(… and a t-shirt)

Page 87: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

THE FUTURE

Page 88: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

THE FUTURE

Page 89: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

THE FUTURE

?

Page 90: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

THE FUTURE

? Experiment: Come up with hypotheses, confirm them

Page 91: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

THE FUTURE

? Experiment: Come up with hypotheses, confirm them

Derive a model of how things work

Page 92: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

THE FUTURE

? Experiment: Come up with hypotheses, confirm them

Derive a model of how things work

Fuzzing tools should learn and evolve

Page 93: SECURITY TESTING AT MOZILLA - ISSTA 2016 · 2016. 7. 21. · SECURITY TESTING AT MOZILLA CHRISTIAN HOLLER, M.SC. SENIOR SECURITY ENGINEER MOZILLA CORPORATION . 303,221 commits made

THANKS