SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
FuzzingChallenges and Reflections
Marcel Böhme

ARC DECRA Fellow

Senior Lecturer (A/Prof)

Monash University

@mboehme_
Abhik

Roychoudhury
Cristian

Cadar
Marcel

Böhme
Organizers
Kostya

Serebryany

@Google
Patrice

Godegroid
@Microsoft
Keynote Speakers
2019 Shonan Meeting on

Fuzzing and Symbolic Execution:

Reflections, Challenges, and Opportunities
Fuzzing: Challenges
Caroline Lemieux
@cestlemieux
Live Tweets bringing discussions to the larger community
Surveyvalidating our findings with the larger community
Reflections
The Internet and the world’s Digital Economy
runs on a shared, critical OSS infrastructure
that no one is accountable for.
we are all stakeholders of secure open-source.
• Encryption/Decryption (openssl, gnutls, cryptlib, mbed, wolfssl)

• Compression (bzip2, brotli, gzip, lzma, xz, lz4, libarchive)

• Streaming (ffmpeg, gstreamer, libvlc)
• Parser libraries (xml, json, jpg, png, gif, avi, mpg, pcre)

• Databases (mysql, redis, postgre, derby, sqlite)

• Compilers/Interpreter (gcc, llvm [clang,..], php, javascript)
• Protocol implementations (http/http2, ftp, smtp, ssh, tls/ssl, rtsp)

• Server implementations (httpd, nginx, node.js, tomcat, lighthttpd)

• Operating systems (ubuntu, debian, android, glibc)
$ git clone https://github.com/google/oss-fuzz
$ ls -1 oss-fuzz/projects | wc -l
356
The Internet and the world’s Digital Economy
runs on a shared, critical OSS infrastructure
that no one is accountable for.
Reflections we are all stakeholders of secure open-source.
https://www.darpa.mil/program/cyber-grand-challenge
Reflections fuzzing is having substantial impact!
Reflections what enabled this recent surge of interest?
• There is a tremendous need for automatic vulnerability discovery.
• There is a tremendous need for automatic vulnerability discovery.
Reflections what enabled this recent surge of interest?
From https://www.varonis.com/blog/cybersecurity-statistics/
• There is a tremendous need for automatic vulnerability discovery.
SecurityWeek.com
VentureBeat.com
Reflections what enabled this recent surge of interest?
• There is a tremendous need for automatic vulnerability discovery.
Reflections what enabled this recent surge of interest?
Reflections what enabled this recent surge of interest?
• There is a tremendous need for automatic vulnerability discovery.

• We now have the incentives and the required mindset.
• There is a tremendous need for automatic vulnerability discovery.

• We now have the incentives and the required mindset.
https://www.hackerone.com/press-release
Reflections what enabled this recent surge of interest?
• There is a tremendous need for automatic vulnerability discovery.

• We now have the incentives and the required mindset.

• We now have the tools for automatic vulnerability discovery.
Reflections what enabled this recent surge of interest?
• There is a tremendous need for automatic vulnerability discovery.

• We now have the incentives and the required mindset.

• We now have the tools for automatic vulnerability discovery.
• open-source and freely available.

• easy to use (modulo Matt’s concerns 😅)

• very successful in finding bugs!
Reflections what enabled this recent surge of interest?
• There is a tremendous need for automatic vulnerability discovery.

• We now have the incentives and the required mindset.

• We now have the tools for automatic vulnerability discovery.

• Meaningful engagement between industry and academia 

(via open-science) leading to rapid advances in fuzzing!
Reflections what enabled this recent surge of interest?
• There is a tremendous need for automatic vulnerability discovery.

• We now have the incentives and the required mindset.

• We now have the tools for automatic vulnerability discovery.

• Meaningful engagement between industry and academia 

(via open-science) leading to rapid advances in fuzzing!
Entropic @

ClusterFuzz
Reflections what enabled this recent surge of interest?
Community

building
Industry

adoption
• There is a tremendous need for automatic vulnerability discovery.

• We now have the incentives and the required mindset.

• We now have the tools for automatic vulnerability discovery.

• Meaningful engagement between industry and academia 

(via open-science) leading to rapid advances in fuzzing!
https://github.com/AFLplusplus
Reflections what enabled this recent surge of interest?
Industry

adoption
• There is a tremendous need for automatic vulnerability discovery.

• We now have the incentives and the required mindset.

• We now have the tools for automatic vulnerability discovery.

• Meaningful engagement between industry and academia 

(via open-science) leading to rapid advances in fuzzing!
FuzzBench (compute resources and

infrastructure for fuzzer benchmarking)
Paper Reviews et al. (twitch.tv/gamozo)
Reflections what enabled this recent surge of interest?
@infernosec
Disclaimer:
We put forward only questions.
We have no answers (only ideas).
Challenges
• Automating vulnerability discovery.
Considered most important challenge.
Challenges
• Automating vulnerability discovery.

• [C.1] How can we fuzz more types of software systems?
Challenges
• Automating vulnerability discovery.

• [C.1] How can we fuzz more types of software systems?
We know how to fuzz command line tools (e.g., AFL).
We know how to fuzz individual units / functions (e.g., libfuzzer).
What about cyber physical systems, machine learning systems,
stateful software, polyglot software, GUI-based software, .. ?
Challenges
• Automating vulnerability discovery.

• [C.1] How can we fuzz more types of software systems?

• [C.2] How can the fuzzer identify more types of vulnerabilities?

Challenges
• Automating vulnerability discovery.

• [C.1] How can we fuzz more types of software systems?

• [C.2] How can the fuzzer identify more types of vulnerabilities?

• How to detect various side-channels 

(incl. information leaks)?

• How to detect domain-specific vulns.

(incl. sandbox escapes, kernel exploits)?

• How to detect language-specific vulns?

• How to detect other causes of

arbitrary / remote code execution?
Challenges
We need to go beyond memory corruption bugs (ASAN, TSAN).
• Automating vulnerability discovery.

• [C.1] How can we fuzz more types of software systems?

• [C.2] How can the fuzzer identify more types of vulnerabilities?

• [C.3] How can we find “deep bugs” that have evaded detection?
Challenges
• Automating vulnerability discovery.

• [C.1] How can we fuzz more types of software systems?

• [C.2] How can the fuzzer identify more types of vulnerabilities?

• [C.3] How can we find “deep bugs” that have evaded detection?

• How to mine dictionaries, grammars, and protocols?

• How to identify input dependencies (e.g. checksums)?

• How identify and rectify fuzzer roadblocks?

Challenges
• Automating vulnerability discovery.

• [C.1] How can we fuzz more types of software systems?

• [C.2] How can the fuzzer identify more types of vulnerabilities?

• [C.3] How can we find “deep bugs” that have evaded detection?

• [C.4] What is the empirical nature of undiscovered vulnerabilities?

Challenges
• Which types of vulnerabilities are
difficult to discover by fuzzing and why?
• What are fuzzer roadblocks?
https://github.com/gamozolabs/cookie_dough
@gamozolabs
• Automating vulnerability discovery.

• The human component in fuzzing.

• [C.5] HITL: How can fuzzers leverage the ingenuity of the auditor?

Challenges
We need the auditor-in-the-loop.
• Automating vulnerability discovery.

• The human component in fuzzing.

• [C.5] HITL: How can fuzzers leverage the ingenuity of the auditor?

Challenges
@NedWilliamson
Project Zero
1. Write a good fuzzer harness
2. Identify fuzzer roadblocks (via code coverage).
3. Patch out roadblocks.
4. Goto 2 - until vulnerability is found.
5. Patch back roadblocks, “repair” reproducer.
Challenges
• Automating vulnerability discovery.

• The human component in fuzzing.

• [C.5] HITL: How can fuzzers leverage the ingenuity of the auditor?

• [C.6] Usability: How can we improve the usability of fuzzing tools?
Challenges
• Automating vulnerability discovery.

• The human component in fuzzing.

• [C.5] HITL: How can fuzzers leverage the ingenuity of the auditor?

• [C.6] Usability: How can we improve the usability of fuzzing tools?

Fuzzing in Continuous Integration / Deployment
Fuzzing in IDEs (JUnit-like Fuzzing)
Fuzzing in processes (Fuzz-driven Development)
We need
Challenges
• Automating vulnerability discovery.

• The human component in fuzzing.

• [C.5] HITL: How can fuzzers leverage the ingenuity of the auditor?

• [C.6] Usability: How can we improve the usability of fuzzing tools?

Fuzzing in Continuous Integration / Deployment
Fuzzing in IDEs (JUnit-like Fuzzing)
Fuzzing in processes (Fuzz-driven Development)
Challenges
• Automating vulnerability discovery.

• The human component in fuzzing.

• Fuzzing theory and scientific foundations.

Considered second most important challenge.
Challenges
• Automating vulnerability discovery.

• The human component in fuzzing.

• Fuzzing theory and scientific foundations.

• [C.7] How can we assess residual security risk if the fuzzing campaign was unsuccessful?

• [C.8] What are fundamental limitations of each approach?

How much more efficient is an attacker that has
an order of magnitude more computational resources?
When to stop fuzzing? How to deal with adaptive bias?
We need foundations.
Evaluation and Benchmarking
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
• What makes a fair fuzzer benchmark?
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
• What makes a fair fuzzer benchmark?
• [C.9] How can we evaluate specialised fuzzers?

• Works only in a specific program domain

Command line, parser libraries, network protocols, GUIs, browsers, compilers, kernels, Android apps)

• Focusses on a specific use case

CI/CD [directed fuzzers], specific classes of bugs [UAF, concurrency, deserialization attacks]

• Suggestion was:

• Make available special benchmark categories for specialised fuzzers (as in Test-Comp).
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
• What makes a fair fuzzer benchmark?
• [C.9] How can we evaluate specialised fuzzers?

• [C.10] How can we prevent overfitting to a specific benchmark?

Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
Goodhart’s Law
“When a measure becomes a target, it
ceases to be a good measure.” —
• What makes a fair fuzzer benchmark?
• [C.9] How can we evaluate specialised fuzzers?

• [C.10] How can we prevent overfitting to a specific benchmark?

• Suggestions were:

1. Submit and peer-review benchmarks in addition to fuzzers (Test-Comp).

2. Regularly evaluate on new and unseen benchmarks (Rode0Day).

3. Continuous evaluation on a large and growing set of

diverse, real-world benchmarks (FuzzBench).

Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
Goodhart’s Law
“When a measure becomes a target, it
ceases to be a good measure.” —
• What makes a fair fuzzer benchmark?
• What is a good measure of fuzzer performance?
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
Considered third most important challenge.
• What makes a fair fuzzer benchmark?
• What is a good measure of fuzzer performance?

• [C.11] Are synthetic bugs representative?

• Fuzzer developers can synthesize 

a large number of benchmark subjects 

for their special use case, or domain.

Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
• What makes a fair fuzzer benchmark?
• What is a good measure of fuzzer performance?

• [C.11] Are synthetic bugs representative?

• Fuzzer developers can synthesize 

a large number of benchmark subjects 

for their special use case, or domain.

Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
“Time to retire Lava & CGC, they are actively harmful”

KCC @ Shonan
“I really like the direction [..] of generating programs. [..]

These random programs found an RNG bug in honggfuzz.”

Brandon Falk @ Twitter
• What makes a fair fuzzer benchmark?
• What is a good measure of fuzzer performance?

• [C.11] Are synthetic bugs representative?

• [C.12] Are real bugs representative?

• Is your set of real bugs large enough to be representative?
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
Magma has 114 CVEs + 4 bugs 

in 7 open-source C programs.
• What makes a fair fuzzer benchmark?
• What is a good measure of fuzzer performance?

• [C.11] Are synthetic bugs representative?

• [C.12] Are real bugs representative?

• Is your set of real bugs large enough to be representative?

• Are discovered bugs representative of undiscovered bugs?
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
• What makes a fair fuzzer benchmark?
• What is a good measure of fuzzer performance?

• [C.11] Are synthetic bugs representative?

• [C.12] Are real bugs representative?

• [C.13] Is code coverage a good measure of fuzzer effectiveness?

• Measuring coverage achieved is cheaper than measuring the number of bugs found.

• Coverage feedback is the classic measure of progress in greybox fuzzing.

• If small correlation, how are bugs/vulnerabilities distributed over the code?
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
We need more empirical studies.
• What makes a fair fuzzer benchmark?
• What is a good measure of fuzzer performance?

• [C.11] Are synthetic bugs representative?

• [C.12] Are real bugs representative?

• [C.13] Is code coverage a good measure of fuzzer effectiveness?

• [C.14] What is a fair choice of time budget?
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
We need more empirical studies.
• What makes a fair fuzzer benchmark?
• What is a good measure of fuzzer performance?

• How do we evaluate techniques, not implementations?
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking
FuzzBench
• Continuous benchmarking.

• Open-source (Submit PRs).

• Submit your fuzzer.

• Submit your benchmarks.

• Submit your feature requests.

• Free Compute !!!
hexhive Magma
Test-Comp

Tool Competition
Andmanyothers…!
The Internet and the world’s Digital Economy
runs on a shared, critical OSS infrastructure
that no one is accountable for.
Opportunities
The Internet and the world’s Digital Economy
runs on a shared, critical OSS infrastructure
that no one is accountable for.
• How do we address this at scale?

• Open-source, open-science, open discourse

• has fostered a meaningful engagement between industry and academia,

• has fostered tremendous recent advances

• in symbolic execution-based whitebox fuzzing, and

• in coverage-guided greybox fuzzing.
Opportunities
The Internet and the world’s Digital Economy
runs on a shared, critical OSS infrastructure
that no one is accountable for.
• How do we address this at scale?

• Open-source, open-science, open discourse

• has fostered a meaningful engagement between industry and academia,

• has fostered tremendous recent advances

• in symbolic execution-based whitebox fuzzing, and

• in coverage-guided greybox fuzzing.
Opportunities
@Cppcon
The Internet and the world’s Digital Economy
runs on a shared, critical OSS infrastructure
that no one is accountable for.
• How do we address this at scale?

• Open-source, open-science, open discourse.

• Educate developers and students on fuzzing.
Opportunities
The Internet and the world’s Digital Economy
runs on a shared, critical OSS infrastructure
that no one is accountable for.
• How do we address this at scale?

• Open-source, open-science, open discourse.

• Educate developers and students on fuzzing.

• Develop educational content, such as tutorials and textbooks.

• Integrate software security courses into university curriculum.
Opportunities
An ethical hacker about

https://fuzzingbook.com
pwn.college: MOOC-style ASU Computer Systems Security / CTF course
The Internet and the world’s Digital Economy
runs on a shared, critical OSS infrastructure
that no one is accountable for.
• How do we address this at scale?

• Open-source, open-science, open discourse.

• Educate developers and students on fuzzing.

• Get organised and support others.

• As organization, take matters into your hands.

• Adopt fuzzing (e.g., in continuous integration).

• Make your tools available as open-source.

• Establish competitive bug bounty programs.

• Join cross-organisational security efforts.

(Open Source Security Foundation; https://openssf.org/)
Opportunities
The Internet and the world’s Digital Economy
runs on a shared, critical OSS infrastructure
that no one is accountable for.
• How do we address this at scale?

• Open-source, open-science, open discourse.

• Educate developers and students on fuzzing.

• Get organised and support others.

• As organization, take matters into your hands.

• As individual, take matters into your hands.

• Join the fuzzing community
• Submit PRs to Klee, AFL++, LLVM LibFuzzer, OSS-Fuzz,…

• Make your tools available as open-source.

• Organize and support hackathons, capture-the-flags, 

hacking clubs, ethical hackers.

• Support an open-source project 

(e.g., add it to OSSFuzz or fund it on hackerone.com).
Opportunities
2019 Cyber Security 

Challenge Australia (CySCA)@
• What enabled this recent surge of interest?

• There is a tremendous need for automatic vulnerability discovery.

• We now have the incentives and the required mindset.

• We now have the tools for automatic vulnerability discovery.

• Meaningful engagement between industry and academia 

(via open-science) leading to rapid advances in fuzzing!
Reflections Challenges
• Automating vulnerability discovery.

• The human component in fuzzing.

• Fuzzing theory and scientific foundations.
• What makes a fair fuzzer benchmark?
• What is a good measure of fuzzer performance?

• How do we evaluate techniques, not implementations?
Which fuzzer finds a larger number of important bugs
within a reasonable time in software that we care about?
Evaluation and Benchmarking The Internet and the world’s Digital Economy
runs on a shared, critical OSS infrastructure
that no one is accountable for.
• How do we address this at scale?

• Open-source, open-science, open discourse.

• Educate developers and students on fuzzing.

• Get organised and support others.
Opportunities

Weitere ähnliche Inhalte

Was ist angesagt?

파이썬 TDD 101
파이썬 TDD 101파이썬 TDD 101
파이썬 TDD 101정주 김
 
EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022MichaelM85042
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버준철 박
 
wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)泰 増田
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf toolsBrendan Gregg
 
C++プログラマの為のセキュリティ入門
C++プログラマの為のセキュリティ入門C++プログラマの為のセキュリティ入門
C++プログラマの為のセキュリティ入門道化師 堂華
 
Ruby 3のキーワード引数について考える
Ruby 3のキーワード引数について考えるRuby 3のキーワード引数について考える
Ruby 3のキーワード引数について考えるmametter
 
COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺hydai
 
Intro to exploits in metasploitand payloads in msfvenom
Intro to exploits in metasploitand payloads in msfvenomIntro to exploits in metasploitand payloads in msfvenom
Intro to exploits in metasploitand payloads in msfvenomSiddharth Krishna Kumar
 
JSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
JSMVCOMFG - To sternly look at JavaScript MVC and Templating FrameworksJSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
JSMVCOMFG - To sternly look at JavaScript MVC and Templating FrameworksMario Heiderich
 
シェルスクリプトを極める
シェルスクリプトを極めるシェルスクリプトを極める
シェルスクリプトを極めるbsdhack
 
Countering Innovative Sandbox Evasion Techniques Used by Malware
Countering Innovative Sandbox Evasion Techniques Used by MalwareCountering Innovative Sandbox Evasion Techniques Used by Malware
Countering Innovative Sandbox Evasion Techniques Used by MalwareTyler Borosavage
 
gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築Kazuki Ogiwara
 
MacOS memory allocator (libmalloc) Exploitation
MacOS memory allocator (libmalloc) ExploitationMacOS memory allocator (libmalloc) Exploitation
MacOS memory allocator (libmalloc) ExploitationAngel Boy
 
Cyber Range - An Open-Source Offensive / Defensive Learning Environment on AWS
Cyber Range - An Open-Source Offensive / Defensive Learning Environment on AWS Cyber Range - An Open-Source Offensive / Defensive Learning Environment on AWS
Cyber Range - An Open-Source Offensive / Defensive Learning Environment on AWS Tom Cappetta
 
Edomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみようEdomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみようSatoshi Mimura
 
How NOT to Write a Microbenchmark
How NOT to Write a MicrobenchmarkHow NOT to Write a Microbenchmark
How NOT to Write a MicrobenchmarkAzul Systems Inc.
 
Linux SMEP bypass techniques
Linux SMEP bypass techniquesLinux SMEP bypass techniques
Linux SMEP bypass techniquesVitaly Nikolenko
 

Was ist angesagt? (20)

파이썬 TDD 101
파이썬 TDD 101파이썬 TDD 101
파이썬 TDD 101
 
EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022EMBA - Firmware analysis - Black Hat Arsenal USA 2022
EMBA - Firmware analysis - Black Hat Arsenal USA 2022
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
 
wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)wxPython入門(大阪Pythonユーザの集まり2014/03)
wxPython入門(大阪Pythonユーザの集まり2014/03)
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf tools
 
C++プログラマの為のセキュリティ入門
C++プログラマの為のセキュリティ入門C++プログラマの為のセキュリティ入門
C++プログラマの為のセキュリティ入門
 
Concurrency With Go
Concurrency With GoConcurrency With Go
Concurrency With Go
 
Ruby 3のキーワード引数について考える
Ruby 3のキーワード引数について考えるRuby 3のキーワード引数について考える
Ruby 3のキーワード引数について考える
 
COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺
 
Intro to exploits in metasploitand payloads in msfvenom
Intro to exploits in metasploitand payloads in msfvenomIntro to exploits in metasploitand payloads in msfvenom
Intro to exploits in metasploitand payloads in msfvenom
 
JSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
JSMVCOMFG - To sternly look at JavaScript MVC and Templating FrameworksJSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
JSMVCOMFG - To sternly look at JavaScript MVC and Templating Frameworks
 
シェルスクリプトを極める
シェルスクリプトを極めるシェルスクリプトを極める
シェルスクリプトを極める
 
Countering Innovative Sandbox Evasion Techniques Used by Malware
Countering Innovative Sandbox Evasion Techniques Used by MalwareCountering Innovative Sandbox Evasion Techniques Used by Malware
Countering Innovative Sandbox Evasion Techniques Used by Malware
 
gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築
 
systemd
systemdsystemd
systemd
 
MacOS memory allocator (libmalloc) Exploitation
MacOS memory allocator (libmalloc) ExploitationMacOS memory allocator (libmalloc) Exploitation
MacOS memory allocator (libmalloc) Exploitation
 
Cyber Range - An Open-Source Offensive / Defensive Learning Environment on AWS
Cyber Range - An Open-Source Offensive / Defensive Learning Environment on AWS Cyber Range - An Open-Source Offensive / Defensive Learning Environment on AWS
Cyber Range - An Open-Source Offensive / Defensive Learning Environment on AWS
 
Edomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみようEdomae 2015 - マルウェアを解析してみよう
Edomae 2015 - マルウェアを解析してみよう
 
How NOT to Write a Microbenchmark
How NOT to Write a MicrobenchmarkHow NOT to Write a Microbenchmark
How NOT to Write a Microbenchmark
 
Linux SMEP bypass techniques
Linux SMEP bypass techniquesLinux SMEP bypass techniques
Linux SMEP bypass techniques
 

Ähnlich wie Fuzzing: Challenges and Reflections

Building a Modern Security Engineering Organization. Zane Lackey
 Building a Modern Security Engineering Organization. Zane Lackey Building a Modern Security Engineering Organization. Zane Lackey
Building a Modern Security Engineering Organization. Zane LackeyYandex
 
20240104 HICSS Panel on AI and Legal Ethical 20240103 v7.pptx
20240104 HICSS  Panel on AI and Legal Ethical 20240103 v7.pptx20240104 HICSS  Panel on AI and Legal Ethical 20240103 v7.pptx
20240104 HICSS Panel on AI and Legal Ethical 20240103 v7.pptxISSIP
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemGiovanni Asproni
 
Defending Enterprise IT - beating assymetricality
Defending Enterprise IT - beating assymetricalityDefending Enterprise IT - beating assymetricality
Defending Enterprise IT - beating assymetricalityClaus Cramon Houmann
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemGiovanni Asproni
 
Visualization for Software Analytics
Visualization for Software AnalyticsVisualization for Software Analytics
Visualization for Software AnalyticsMargaret-Anne Storey
 
Seacon Continuous Delivery Pipeline Tools Track
Seacon Continuous Delivery Pipeline Tools TrackSeacon Continuous Delivery Pipeline Tools Track
Seacon Continuous Delivery Pipeline Tools TrackMark Rendell
 
Building a Modern Security Engineering Organization
Building a Modern Security Engineering OrganizationBuilding a Modern Security Engineering Organization
Building a Modern Security Engineering OrganizationZane Lackey
 
Architecting a Post Mortem - Velocity 2018 San Jose Tutorial
Architecting a Post Mortem - Velocity 2018 San Jose TutorialArchitecting a Post Mortem - Velocity 2018 San Jose Tutorial
Architecting a Post Mortem - Velocity 2018 San Jose TutorialWill Gallego
 
Malware Classification and Analysis
Malware Classification and AnalysisMalware Classification and Analysis
Malware Classification and AnalysisPrashant Chopra
 
Wanna see your open source project succeed? - Nurture your community
Wanna see your open source project succeed? - Nurture your communityWanna see your open source project succeed? - Nurture your community
Wanna see your open source project succeed? - Nurture your communityJordi Cabot
 
Spohrer EMAC 20230509 v14.pptx
Spohrer EMAC 20230509 v14.pptxSpohrer EMAC 20230509 v14.pptx
Spohrer EMAC 20230509 v14.pptxISSIP
 
Semantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer AppsSemantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer AppsJie Bao
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
Joining the conversation
Joining the conversationJoining the conversation
Joining the conversationChris Messina
 
Software Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic ArchitecturesSoftware Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic ArchitecturesAngelos Kapsimanis
 
Software Security : From school to reality and back!
Software Security : From school to reality and back!Software Security : From school to reality and back!
Software Security : From school to reality and back!Peter Hlavaty
 
Introduction to Open Source for Libraries
Introduction to Open Source for LibrariesIntroduction to Open Source for Libraries
Introduction to Open Source for LibrariesNicole C. Engard
 
Observing Social Machines Part 1: What to Observe?
Observing Social Machines Part 1: What to Observe?Observing Social Machines Part 1: What to Observe?
Observing Social Machines Part 1: What to Observe?David De Roure
 

Ähnlich wie Fuzzing: Challenges and Reflections (20)

Building a Modern Security Engineering Organization. Zane Lackey
 Building a Modern Security Engineering Organization. Zane Lackey Building a Modern Security Engineering Organization. Zane Lackey
Building a Modern Security Engineering Organization. Zane Lackey
 
20240104 HICSS Panel on AI and Legal Ethical 20240103 v7.pptx
20240104 HICSS  Panel on AI and Legal Ethical 20240103 v7.pptx20240104 HICSS  Panel on AI and Legal Ethical 20240103 v7.pptx
20240104 HICSS Panel on AI and Legal Ethical 20240103 v7.pptx
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your System
 
Defending Enterprise IT - beating assymetricality
Defending Enterprise IT - beating assymetricalityDefending Enterprise IT - beating assymetricality
Defending Enterprise IT - beating assymetricality
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your System
 
Visualization for Software Analytics
Visualization for Software AnalyticsVisualization for Software Analytics
Visualization for Software Analytics
 
Seacon Continuous Delivery Pipeline Tools Track
Seacon Continuous Delivery Pipeline Tools TrackSeacon Continuous Delivery Pipeline Tools Track
Seacon Continuous Delivery Pipeline Tools Track
 
Building a Modern Security Engineering Organization
Building a Modern Security Engineering OrganizationBuilding a Modern Security Engineering Organization
Building a Modern Security Engineering Organization
 
Architecting a Post Mortem - Velocity 2018 San Jose Tutorial
Architecting a Post Mortem - Velocity 2018 San Jose TutorialArchitecting a Post Mortem - Velocity 2018 San Jose Tutorial
Architecting a Post Mortem - Velocity 2018 San Jose Tutorial
 
Malware Classification and Analysis
Malware Classification and AnalysisMalware Classification and Analysis
Malware Classification and Analysis
 
Wanna see your open source project succeed? - Nurture your community
Wanna see your open source project succeed? - Nurture your communityWanna see your open source project succeed? - Nurture your community
Wanna see your open source project succeed? - Nurture your community
 
Spohrer EMAC 20230509 v14.pptx
Spohrer EMAC 20230509 v14.pptxSpohrer EMAC 20230509 v14.pptx
Spohrer EMAC 20230509 v14.pptx
 
Semantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer AppsSemantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer Apps
 
Building your Open Source Security stack
Building your Open Source Security stackBuilding your Open Source Security stack
Building your Open Source Security stack
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
Joining the conversation
Joining the conversationJoining the conversation
Joining the conversation
 
Software Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic ArchitecturesSoftware Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic Architectures
 
Software Security : From school to reality and back!
Software Security : From school to reality and back!Software Security : From school to reality and back!
Software Security : From school to reality and back!
 
Introduction to Open Source for Libraries
Introduction to Open Source for LibrariesIntroduction to Open Source for Libraries
Introduction to Open Source for Libraries
 
Observing Social Machines Part 1: What to Observe?
Observing Social Machines Part 1: What to Observe?Observing Social Machines Part 1: What to Observe?
Observing Social Machines Part 1: What to Observe?
 

Mehr von mboehme

An Implementation of Preregistration
An Implementation of PreregistrationAn Implementation of Preregistration
An Implementation of Preregistrationmboehme
 
On the Reliability of Coverage-based Fuzzer Benchmarking
On the Reliability of Coverage-based Fuzzer BenchmarkingOn the Reliability of Coverage-based Fuzzer Benchmarking
On the Reliability of Coverage-based Fuzzer Benchmarkingmboehme
 
Statistical Reasoning About Programs
Statistical Reasoning About ProgramsStatistical Reasoning About Programs
Statistical Reasoning About Programsmboehme
 
The Curious Case of Fuzzing for Automated Software Testing
The Curious Case of Fuzzing for Automated Software TestingThe Curious Case of Fuzzing for Automated Software Testing
The Curious Case of Fuzzing for Automated Software Testingmboehme
 
On the Surprising Efficiency and Exponential Cost of Fuzzing
On the Surprising Efficiency and Exponential Cost of FuzzingOn the Surprising Efficiency and Exponential Cost of Fuzzing
On the Surprising Efficiency and Exponential Cost of Fuzzingmboehme
 
Foundations Of Software Testing
Foundations Of Software TestingFoundations Of Software Testing
Foundations Of Software Testingmboehme
 
DS3 Fuzzing Panel (M. Boehme)
DS3 Fuzzing Panel (M. Boehme)DS3 Fuzzing Panel (M. Boehme)
DS3 Fuzzing Panel (M. Boehme)mboehme
 
Fuzzing: On the Exponential Cost of Vulnerability Discovery
Fuzzing: On the Exponential Cost of Vulnerability DiscoveryFuzzing: On the Exponential Cost of Vulnerability Discovery
Fuzzing: On the Exponential Cost of Vulnerability Discoverymboehme
 
Boosting Fuzzer Efficiency: An Information Theoretic Perspective
Boosting Fuzzer Efficiency: An Information Theoretic PerspectiveBoosting Fuzzer Efficiency: An Information Theoretic Perspective
Boosting Fuzzer Efficiency: An Information Theoretic Perspectivemboehme
 
AFLGo: Directed Greybox Fuzzing
AFLGo: Directed Greybox FuzzingAFLGo: Directed Greybox Fuzzing
AFLGo: Directed Greybox Fuzzingmboehme
 
NUS SoC Graduate Outreach @ TU Dresden
NUS SoC Graduate Outreach @ TU DresdenNUS SoC Graduate Outreach @ TU Dresden
NUS SoC Graduate Outreach @ TU Dresdenmboehme
 

Mehr von mboehme (11)

An Implementation of Preregistration
An Implementation of PreregistrationAn Implementation of Preregistration
An Implementation of Preregistration
 
On the Reliability of Coverage-based Fuzzer Benchmarking
On the Reliability of Coverage-based Fuzzer BenchmarkingOn the Reliability of Coverage-based Fuzzer Benchmarking
On the Reliability of Coverage-based Fuzzer Benchmarking
 
Statistical Reasoning About Programs
Statistical Reasoning About ProgramsStatistical Reasoning About Programs
Statistical Reasoning About Programs
 
The Curious Case of Fuzzing for Automated Software Testing
The Curious Case of Fuzzing for Automated Software TestingThe Curious Case of Fuzzing for Automated Software Testing
The Curious Case of Fuzzing for Automated Software Testing
 
On the Surprising Efficiency and Exponential Cost of Fuzzing
On the Surprising Efficiency and Exponential Cost of FuzzingOn the Surprising Efficiency and Exponential Cost of Fuzzing
On the Surprising Efficiency and Exponential Cost of Fuzzing
 
Foundations Of Software Testing
Foundations Of Software TestingFoundations Of Software Testing
Foundations Of Software Testing
 
DS3 Fuzzing Panel (M. Boehme)
DS3 Fuzzing Panel (M. Boehme)DS3 Fuzzing Panel (M. Boehme)
DS3 Fuzzing Panel (M. Boehme)
 
Fuzzing: On the Exponential Cost of Vulnerability Discovery
Fuzzing: On the Exponential Cost of Vulnerability DiscoveryFuzzing: On the Exponential Cost of Vulnerability Discovery
Fuzzing: On the Exponential Cost of Vulnerability Discovery
 
Boosting Fuzzer Efficiency: An Information Theoretic Perspective
Boosting Fuzzer Efficiency: An Information Theoretic PerspectiveBoosting Fuzzer Efficiency: An Information Theoretic Perspective
Boosting Fuzzer Efficiency: An Information Theoretic Perspective
 
AFLGo: Directed Greybox Fuzzing
AFLGo: Directed Greybox FuzzingAFLGo: Directed Greybox Fuzzing
AFLGo: Directed Greybox Fuzzing
 
NUS SoC Graduate Outreach @ TU Dresden
NUS SoC Graduate Outreach @ TU DresdenNUS SoC Graduate Outreach @ TU Dresden
NUS SoC Graduate Outreach @ TU Dresden
 

Kürzlich hochgeladen

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Kürzlich hochgeladen (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Fuzzing: Challenges and Reflections

  • 1. FuzzingChallenges and Reflections Marcel Böhme
 ARC DECRA Fellow
 Senior Lecturer (A/Prof)
 Monash University @mboehme_
  • 4. Live Tweets bringing discussions to the larger community
  • 5. Surveyvalidating our findings with the larger community
  • 6. Reflections The Internet and the world’s Digital Economy runs on a shared, critical OSS infrastructure that no one is accountable for. we are all stakeholders of secure open-source.
  • 7. • Encryption/Decryption (openssl, gnutls, cryptlib, mbed, wolfssl) • Compression (bzip2, brotli, gzip, lzma, xz, lz4, libarchive) • Streaming (ffmpeg, gstreamer, libvlc) • Parser libraries (xml, json, jpg, png, gif, avi, mpg, pcre) • Databases (mysql, redis, postgre, derby, sqlite) • Compilers/Interpreter (gcc, llvm [clang,..], php, javascript) • Protocol implementations (http/http2, ftp, smtp, ssh, tls/ssl, rtsp) • Server implementations (httpd, nginx, node.js, tomcat, lighthttpd) • Operating systems (ubuntu, debian, android, glibc) $ git clone https://github.com/google/oss-fuzz $ ls -1 oss-fuzz/projects | wc -l 356 The Internet and the world’s Digital Economy runs on a shared, critical OSS infrastructure that no one is accountable for. Reflections we are all stakeholders of secure open-source.
  • 9. Reflections what enabled this recent surge of interest? • There is a tremendous need for automatic vulnerability discovery.
  • 10. • There is a tremendous need for automatic vulnerability discovery. Reflections what enabled this recent surge of interest? From https://www.varonis.com/blog/cybersecurity-statistics/
  • 11. • There is a tremendous need for automatic vulnerability discovery. SecurityWeek.com VentureBeat.com Reflections what enabled this recent surge of interest?
  • 12. • There is a tremendous need for automatic vulnerability discovery. Reflections what enabled this recent surge of interest?
  • 13. Reflections what enabled this recent surge of interest? • There is a tremendous need for automatic vulnerability discovery. • We now have the incentives and the required mindset.
  • 14. • There is a tremendous need for automatic vulnerability discovery. • We now have the incentives and the required mindset. https://www.hackerone.com/press-release Reflections what enabled this recent surge of interest?
  • 15. • There is a tremendous need for automatic vulnerability discovery. • We now have the incentives and the required mindset. • We now have the tools for automatic vulnerability discovery. Reflections what enabled this recent surge of interest?
  • 16. • There is a tremendous need for automatic vulnerability discovery. • We now have the incentives and the required mindset. • We now have the tools for automatic vulnerability discovery. • open-source and freely available. • easy to use (modulo Matt’s concerns 😅) • very successful in finding bugs! Reflections what enabled this recent surge of interest?
  • 17. • There is a tremendous need for automatic vulnerability discovery. • We now have the incentives and the required mindset. • We now have the tools for automatic vulnerability discovery. • Meaningful engagement between industry and academia 
 (via open-science) leading to rapid advances in fuzzing! Reflections what enabled this recent surge of interest?
  • 18. • There is a tremendous need for automatic vulnerability discovery. • We now have the incentives and the required mindset. • We now have the tools for automatic vulnerability discovery. • Meaningful engagement between industry and academia 
 (via open-science) leading to rapid advances in fuzzing! Entropic @
 ClusterFuzz Reflections what enabled this recent surge of interest? Community
 building Industry
 adoption
  • 19. • There is a tremendous need for automatic vulnerability discovery. • We now have the incentives and the required mindset. • We now have the tools for automatic vulnerability discovery. • Meaningful engagement between industry and academia 
 (via open-science) leading to rapid advances in fuzzing! https://github.com/AFLplusplus Reflections what enabled this recent surge of interest? Industry
 adoption
  • 20. • There is a tremendous need for automatic vulnerability discovery. • We now have the incentives and the required mindset. • We now have the tools for automatic vulnerability discovery. • Meaningful engagement between industry and academia 
 (via open-science) leading to rapid advances in fuzzing! FuzzBench (compute resources and
 infrastructure for fuzzer benchmarking) Paper Reviews et al. (twitch.tv/gamozo) Reflections what enabled this recent surge of interest? @infernosec
  • 21. Disclaimer: We put forward only questions. We have no answers (only ideas). Challenges
  • 22. • Automating vulnerability discovery. Considered most important challenge. Challenges
  • 23. • Automating vulnerability discovery. • [C.1] How can we fuzz more types of software systems? Challenges
  • 24. • Automating vulnerability discovery. • [C.1] How can we fuzz more types of software systems? We know how to fuzz command line tools (e.g., AFL). We know how to fuzz individual units / functions (e.g., libfuzzer). What about cyber physical systems, machine learning systems, stateful software, polyglot software, GUI-based software, .. ? Challenges
  • 25. • Automating vulnerability discovery. • [C.1] How can we fuzz more types of software systems? • [C.2] How can the fuzzer identify more types of vulnerabilities? Challenges
  • 26. • Automating vulnerability discovery. • [C.1] How can we fuzz more types of software systems? • [C.2] How can the fuzzer identify more types of vulnerabilities? • How to detect various side-channels 
 (incl. information leaks)? • How to detect domain-specific vulns.
 (incl. sandbox escapes, kernel exploits)? • How to detect language-specific vulns? • How to detect other causes of
 arbitrary / remote code execution? Challenges We need to go beyond memory corruption bugs (ASAN, TSAN).
  • 27. • Automating vulnerability discovery. • [C.1] How can we fuzz more types of software systems? • [C.2] How can the fuzzer identify more types of vulnerabilities? • [C.3] How can we find “deep bugs” that have evaded detection? Challenges
  • 28. • Automating vulnerability discovery. • [C.1] How can we fuzz more types of software systems? • [C.2] How can the fuzzer identify more types of vulnerabilities? • [C.3] How can we find “deep bugs” that have evaded detection? • How to mine dictionaries, grammars, and protocols? • How to identify input dependencies (e.g. checksums)? • How identify and rectify fuzzer roadblocks? Challenges
  • 29. • Automating vulnerability discovery. • [C.1] How can we fuzz more types of software systems? • [C.2] How can the fuzzer identify more types of vulnerabilities? • [C.3] How can we find “deep bugs” that have evaded detection? • [C.4] What is the empirical nature of undiscovered vulnerabilities? Challenges • Which types of vulnerabilities are difficult to discover by fuzzing and why? • What are fuzzer roadblocks? https://github.com/gamozolabs/cookie_dough @gamozolabs
  • 30. • Automating vulnerability discovery. • The human component in fuzzing. • [C.5] HITL: How can fuzzers leverage the ingenuity of the auditor? Challenges We need the auditor-in-the-loop.
  • 31. • Automating vulnerability discovery. • The human component in fuzzing. • [C.5] HITL: How can fuzzers leverage the ingenuity of the auditor? Challenges @NedWilliamson Project Zero 1. Write a good fuzzer harness 2. Identify fuzzer roadblocks (via code coverage). 3. Patch out roadblocks. 4. Goto 2 - until vulnerability is found. 5. Patch back roadblocks, “repair” reproducer.
  • 32. Challenges • Automating vulnerability discovery. • The human component in fuzzing. • [C.5] HITL: How can fuzzers leverage the ingenuity of the auditor? • [C.6] Usability: How can we improve the usability of fuzzing tools?
  • 33. Challenges • Automating vulnerability discovery. • The human component in fuzzing. • [C.5] HITL: How can fuzzers leverage the ingenuity of the auditor? • [C.6] Usability: How can we improve the usability of fuzzing tools? Fuzzing in Continuous Integration / Deployment Fuzzing in IDEs (JUnit-like Fuzzing) Fuzzing in processes (Fuzz-driven Development) We need
  • 34. Challenges • Automating vulnerability discovery. • The human component in fuzzing. • [C.5] HITL: How can fuzzers leverage the ingenuity of the auditor? • [C.6] Usability: How can we improve the usability of fuzzing tools? Fuzzing in Continuous Integration / Deployment Fuzzing in IDEs (JUnit-like Fuzzing) Fuzzing in processes (Fuzz-driven Development)
  • 35. Challenges • Automating vulnerability discovery. • The human component in fuzzing. • Fuzzing theory and scientific foundations. Considered second most important challenge.
  • 36. Challenges • Automating vulnerability discovery. • The human component in fuzzing. • Fuzzing theory and scientific foundations. • [C.7] How can we assess residual security risk if the fuzzing campaign was unsuccessful? • [C.8] What are fundamental limitations of each approach? How much more efficient is an attacker that has an order of magnitude more computational resources? When to stop fuzzing? How to deal with adaptive bias? We need foundations.
  • 37. Evaluation and Benchmarking Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about?
  • 38. • What makes a fair fuzzer benchmark? Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking
  • 39. • What makes a fair fuzzer benchmark? • [C.9] How can we evaluate specialised fuzzers? • Works only in a specific program domain
 Command line, parser libraries, network protocols, GUIs, browsers, compilers, kernels, Android apps) • Focusses on a specific use case
 CI/CD [directed fuzzers], specific classes of bugs [UAF, concurrency, deserialization attacks] • Suggestion was: • Make available special benchmark categories for specialised fuzzers (as in Test-Comp). Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking
  • 40. • What makes a fair fuzzer benchmark? • [C.9] How can we evaluate specialised fuzzers? • [C.10] How can we prevent overfitting to a specific benchmark? Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking Goodhart’s Law “When a measure becomes a target, it ceases to be a good measure.” —
  • 41. • What makes a fair fuzzer benchmark? • [C.9] How can we evaluate specialised fuzzers? • [C.10] How can we prevent overfitting to a specific benchmark? • Suggestions were: 1. Submit and peer-review benchmarks in addition to fuzzers (Test-Comp). 2. Regularly evaluate on new and unseen benchmarks (Rode0Day). 3. Continuous evaluation on a large and growing set of
 diverse, real-world benchmarks (FuzzBench). Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking Goodhart’s Law “When a measure becomes a target, it ceases to be a good measure.” —
  • 42. • What makes a fair fuzzer benchmark? • What is a good measure of fuzzer performance? Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking Considered third most important challenge.
  • 43. • What makes a fair fuzzer benchmark? • What is a good measure of fuzzer performance? • [C.11] Are synthetic bugs representative? • Fuzzer developers can synthesize 
 a large number of benchmark subjects 
 for their special use case, or domain. Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking
  • 44. • What makes a fair fuzzer benchmark? • What is a good measure of fuzzer performance? • [C.11] Are synthetic bugs representative? • Fuzzer developers can synthesize 
 a large number of benchmark subjects 
 for their special use case, or domain. Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking “Time to retire Lava & CGC, they are actively harmful”
 KCC @ Shonan “I really like the direction [..] of generating programs. [..]
 These random programs found an RNG bug in honggfuzz.”
 Brandon Falk @ Twitter
  • 45. • What makes a fair fuzzer benchmark? • What is a good measure of fuzzer performance? • [C.11] Are synthetic bugs representative? • [C.12] Are real bugs representative? • Is your set of real bugs large enough to be representative? Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking Magma has 114 CVEs + 4 bugs 
 in 7 open-source C programs.
  • 46. • What makes a fair fuzzer benchmark? • What is a good measure of fuzzer performance? • [C.11] Are synthetic bugs representative? • [C.12] Are real bugs representative? • Is your set of real bugs large enough to be representative? • Are discovered bugs representative of undiscovered bugs? Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking
  • 47. • What makes a fair fuzzer benchmark? • What is a good measure of fuzzer performance? • [C.11] Are synthetic bugs representative? • [C.12] Are real bugs representative? • [C.13] Is code coverage a good measure of fuzzer effectiveness? • Measuring coverage achieved is cheaper than measuring the number of bugs found. • Coverage feedback is the classic measure of progress in greybox fuzzing. • If small correlation, how are bugs/vulnerabilities distributed over the code? Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking We need more empirical studies.
  • 48. • What makes a fair fuzzer benchmark? • What is a good measure of fuzzer performance? • [C.11] Are synthetic bugs representative? • [C.12] Are real bugs representative? • [C.13] Is code coverage a good measure of fuzzer effectiveness? • [C.14] What is a fair choice of time budget? Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking We need more empirical studies.
  • 49. • What makes a fair fuzzer benchmark? • What is a good measure of fuzzer performance? • How do we evaluate techniques, not implementations? Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking
  • 50. Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking FuzzBench • Continuous benchmarking. • Open-source (Submit PRs). • Submit your fuzzer. • Submit your benchmarks. • Submit your feature requests. • Free Compute !!! hexhive Magma Test-Comp
 Tool Competition Andmanyothers…!
  • 51. The Internet and the world’s Digital Economy runs on a shared, critical OSS infrastructure that no one is accountable for. Opportunities
  • 52. The Internet and the world’s Digital Economy runs on a shared, critical OSS infrastructure that no one is accountable for. • How do we address this at scale? • Open-source, open-science, open discourse • has fostered a meaningful engagement between industry and academia, • has fostered tremendous recent advances • in symbolic execution-based whitebox fuzzing, and • in coverage-guided greybox fuzzing. Opportunities
  • 53. The Internet and the world’s Digital Economy runs on a shared, critical OSS infrastructure that no one is accountable for. • How do we address this at scale? • Open-source, open-science, open discourse • has fostered a meaningful engagement between industry and academia, • has fostered tremendous recent advances • in symbolic execution-based whitebox fuzzing, and • in coverage-guided greybox fuzzing. Opportunities @Cppcon
  • 54. The Internet and the world’s Digital Economy runs on a shared, critical OSS infrastructure that no one is accountable for. • How do we address this at scale? • Open-source, open-science, open discourse. • Educate developers and students on fuzzing. Opportunities
  • 55. The Internet and the world’s Digital Economy runs on a shared, critical OSS infrastructure that no one is accountable for. • How do we address this at scale? • Open-source, open-science, open discourse. • Educate developers and students on fuzzing. • Develop educational content, such as tutorials and textbooks. • Integrate software security courses into university curriculum. Opportunities An ethical hacker about
 https://fuzzingbook.com pwn.college: MOOC-style ASU Computer Systems Security / CTF course
  • 56. The Internet and the world’s Digital Economy runs on a shared, critical OSS infrastructure that no one is accountable for. • How do we address this at scale? • Open-source, open-science, open discourse. • Educate developers and students on fuzzing. • Get organised and support others. • As organization, take matters into your hands. • Adopt fuzzing (e.g., in continuous integration). • Make your tools available as open-source. • Establish competitive bug bounty programs. • Join cross-organisational security efforts.
 (Open Source Security Foundation; https://openssf.org/) Opportunities
  • 57. The Internet and the world’s Digital Economy runs on a shared, critical OSS infrastructure that no one is accountable for. • How do we address this at scale? • Open-source, open-science, open discourse. • Educate developers and students on fuzzing. • Get organised and support others. • As organization, take matters into your hands. • As individual, take matters into your hands. • Join the fuzzing community • Submit PRs to Klee, AFL++, LLVM LibFuzzer, OSS-Fuzz,… • Make your tools available as open-source. • Organize and support hackathons, capture-the-flags, 
 hacking clubs, ethical hackers. • Support an open-source project 
 (e.g., add it to OSSFuzz or fund it on hackerone.com). Opportunities 2019 Cyber Security 
 Challenge Australia (CySCA)@
  • 58. • What enabled this recent surge of interest? • There is a tremendous need for automatic vulnerability discovery. • We now have the incentives and the required mindset. • We now have the tools for automatic vulnerability discovery. • Meaningful engagement between industry and academia 
 (via open-science) leading to rapid advances in fuzzing! Reflections Challenges • Automating vulnerability discovery. • The human component in fuzzing. • Fuzzing theory and scientific foundations. • What makes a fair fuzzer benchmark? • What is a good measure of fuzzer performance? • How do we evaluate techniques, not implementations? Which fuzzer finds a larger number of important bugs within a reasonable time in software that we care about? Evaluation and Benchmarking The Internet and the world’s Digital Economy runs on a shared, critical OSS infrastructure that no one is accountable for. • How do we address this at scale? • Open-source, open-science, open discourse. • Educate developers and students on fuzzing. • Get organised and support others. Opportunities