SlideShare ist ein Scribd-Unternehmen logo
1 von 99
Downloaden Sie, um offline zu lesen
Zero Bugs Found? Hold My Beer AFL! How to Improve
Coverage-guided Fuzzing and Find New Zero-days in Tough
Targets
Maksim Shudrak
Security Researcher
Salesforce
DEF CON 27
About me
● Offensive Security Researcher at Salesforce Red Team
● Projects:
○ EAOS: Extremely Abstract Operating System for Malware Analysis (at
IBM Research 2015-2017)
○ drAFL: AFL + DynamoRIO = fuzzing binaries with no source code on
Linux (spare time) https://github.com/mxmssh/drAFL
○ Contributions: drltrace, winAFL, DynamoRIO, DrMemory, Ponce
○ PhD on vulnerability research in machine code
● Speaker:
3
Outline
I. Introduction
II. What is coverage-guided fuzzing ?
III. Downsides of AFL and similar fuzzers
IV. Introducing Manul
V. DEMO
VI. Case Studies + Vulnerabilities
VII. Conclusion & Future Work
4
What is Fuzzing?
5
AAAAA
What is Fuzzing?
6
AAAAA
What is Fuzzing?
7
BAAAA
What is Fuzzing?
8
CAAAA
What is Fuzzing?
9
PAAAA
What is Fuzzing?
10
PWNIT
What is Fuzzing?
11
PWNIT
Very unlikely!
What is Coverage-Guided Fuzzing?
12
AAAAA
What is Coverage-Guided Fuzzing?
13
AAAAA
What is Coverage-Guided Fuzzing?
14
BAAAA
What is Coverage-Guided Fuzzing?
15
CAAAA
What is Coverage-Guided Fuzzing?
16
PAAAA
What is Coverage-Guided Fuzzing?
17
AAAAA
PAAAA
Input queue
What is Coverage-Guided Fuzzing?
18
AAAAA
PBAAA
Input queue
What is Coverage-Guided Fuzzing?
19
AAAAA
PCAAA
Input queue
What is Coverage-Guided Fuzzing?
20
AAAAA
PWAAA
Input queue
What is Coverage-Guided Fuzzing?
21
AAAAA
PAAAA
Input queue
PWAAA
What is Coverage-Guided Fuzzing?
22
AAAAA
PAAAA
Input queue
PWBAA
What is Coverage-Guided Fuzzing?
23
AAAAA
PAAAA
Input queue
PWNAA
What is Coverage-Guided Fuzzing?
24
AAAAA
PAAAA
Input queue
PWNAA
PWNBA
What is Coverage-Guided Fuzzing?
25
AAAAA
PAAAA
Input queue
PWNAA
PWNIA
What is Coverage-Guided Fuzzing?
26
AAAAA
PAAAA
Input queue
PWNAA
PWNIA
PWNIB
What is Coverage-Guided Fuzzing?
27
AAAAA
PAAAA
Input queue
PWNAA
PWNIA
PWNIC
What is Coverage-Guided Fuzzing?
28
AAAAA
PAAAA
Input queue
PWNAA
PWNIA
PWNIT
American Fuzzy Lop aka AFL
29
https://habr.com/ru/company/dsec/blog/449134/
30
31
32
33
Most Popular Languages in July 2019
34https://www.tiobe.com/tiobe-index/
Fuzzing is Very Hot Today!
35
#ofpublications
OSS-Fuzz Project
● ~160 open-source projects
● ~half-trillion test cases per week
Open Issues Count per Month
36
Downsides. Volatile Paths
37
AAAAAAAAA
Downsides. Volatile Paths
38
AAAAAAAAA
ABAAAAAAA
Downsides. Volatile Paths
39
AAAAAAAAA
ABAAAAAAA
ABAAAAAAA
Downsides. Volatile Paths
40
AAAAAAAAA
ABAAAAAAA
ABAAAAAAA
Downsides. Volatile Paths
41
ABAAAAAAA
ABAAAAAAA
Downsides. Volatile Paths
42
Downsides. Parallelization algorithm
● Parallelization is an obvious solution to speed up fuzzing and find
more bugs.
● AFL was not designed to be parallel fuzzer
43
AFL master folder AFL slave #1 AFL slave #2
Downsides. Parallelization algorithm
● Parallelization is an obvious solution to speed up fuzzing and find
more bugs.
● AFL was not designed to be parallel fuzzer
44
AFL master folder AFL slave #1 AFL slave #2
Downsides. Parallelization algorithm
● Parallelization is an obvious solution to speed up fuzzing and find
more bugs.
● AFL was not designed to be parallel fuzzer
45
AFL master folder AFL slave #1 AFL slave #2
Downsides. Parallelization algorithm
● Parallelization is an obvious solution to speed up fuzzing and find
more bugs.
● AFL was not designed to be parallel fuzzer
46
AFL master folder AFL slave #1 AFL slave #2
Downsides. Parallelization algorithm
● Parallelization is an obvious solution to speed up fuzzing and find
more bugs.
● AFL was not designed to be parallel fuzzer
47
AFL master folder AFL slave #1 AFL slave #2
Network apps fuzzing. Current situation
48
● Linux:
○ AFL’s forks, honggfuzz and blind fuzzers
● Windows
○ winAFL network mode
● OS X
○ honggfuzz?
Windows applications fuzzing
49
winAFL clang (libfuzzer/honggfuzz)
OS X applications fuzzing
● Source code is required. Target should be able
to compile with clang
● DynamoRIO has no official support of OS X
● Intel PIN has partial OS X support
50
Some Related Works & Tools
● The author is not the first one who wants to improve AFL.
○ Userland: AFLSmart, AFLFast, winAFL, libfuzzer, driller, QSYM and others.
○ Kernel: syzkaller, kAFL, TriforceAFL and others.
● Systematic research on all existing fuzzers:
○ Valentin J.M. Manes, Hyung Seok Han, Choongwoo Han, Sang Kil Cha, Manuel Egele, Edward
J. Schwartz, Maverick Woo Fuzzing: Art, Science, and Engineering. arXiv:1812.00140
preprint.
● Some Presentations at DEF CON/BlackHat:
○ Mateusz Jurczyk. Effective File Format Fuzzing - Thoughts, Techniques and
Results. BlackHat EU London. 2016.
○ Kang Li. AFL's Blindspot and How to Resist AFL Fuzzing for Arbitrary ELF
Binaries. BlackHat USA 2018.
○ Jonathan Metzman. Going Beyond Coverage-Guided Fuzzing with Structured
Fuzzing. Black Hat USA 2019.
51
State-of-the-art Userland Fuzzers
52
AFL
winAFL
HongFuzz libFuzzer Desired fuzzer
Network fuzzing
No (Unix)
Yes (Windows)
Yes No Yes
(all platforms)
Volatile Paths No No No Yes
Multiple Mutation
Strategies
No No No Yes
Share over network Partial No No Yes
Supported Platform Linux
Windows
Open/NetBSD
GNU/Linux
Windows/Cygwin
Android
OS X
Anywhere where
LLVM exist
Anywhere where
Python exist
Language C C C Python
● Manul - an open-source fuzzer written in pure Python.
○ Easy-to-use, pull and run concept.
○ Coverage-guided fuzzing using AFL-GCC or DBI (Intel Pin or DynamoRIO).
○ Parallel fuzzing is a basic feature.
○ Default mutators.
○ Third-party data mutators (Radamsa + AFL currently supported).
○ Network fuzzing is supported by default.
○ Blackbox binaries fuzzing.
○ Supported: Linux, MacOS (beta) and Windows or any other OS where Python
exist.
Manul Overview
53
Why Manul?
54
Pallas’s Cat (lat. Otocolobus Manul)
Manul Architecture
55
Mutators
(plugins)
Target
Instrumentation
module
User Interface Core Module
Code Coverage
Analysis Module
Manul Network
Module
Shared Memory
Fuzzer
Volatile Paths Detection
56
Run & Calibrate
ABAAAAAAA
Volatile Paths Detection
57
Run & Calibrate
ABAAAAAAA
Volatile Paths Detection
58
Run & Calibrate
ACAAAAAAA
https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-schumilo.pdf
Parallel fuzzing. Python Multiprocessing
59
Main Process
Corpus:
Parallel fuzzing. Python Multiprocessing
60
Main Process
Corpus:
Instance #1 Instance #2 Instance #3
Parallel fuzzing. Python Multiprocessing
61
Main Process
Instance #1 Instance #2 Instance #3
Corpus:
Parallel fuzzing. Python Multiprocessing
62
Main Process
Instance #1 Instance #2 Instance #3
Corpus:
Parallel fuzzing. Python Multiprocessing
63
Main Process
Instance #1 Instance #2 Instance #3
Remote Instance
(Main Process)
Remote
Instance #1
Remote
Instance #2
Parallel fuzzing. Python Multiprocessing
64
Main Process
Instance #1 Instance #2 Instance #3
Remote Instance
(Main Process)
Remote
Instance #1
Remote
Instance #2
65
Main Process
Instance #1 Instance #2 Instance #3
Remote Instance
(Main Process)
Remote
Instance #1
Remote
Instance #2
Target Target Target
Target Target
SHM SHM SHM
SHM SHM
Global shared memory
66
Main Process
Instance #1 Instance #2 Instance #3
Remote Instance
(Main Process)
Remote
Instance #1
Remote
Instance #2
Target Target Target
Target Target
SHM SHM SHM
SHM SHM
Global shared memory
Third Party Mutators
● AFL strategy (ported to Python) and Radamsa (as a shared
library)
Custom Python Mutator:
● def init(fuzzer_id)
● def mutate(data_to_mutate)
67
Network Application Fuzzing (Experimental)
68
Manul Target
TCP|UDP
Manul Target
Test case
(TCP|UDP)
Connect
Client mode
Server mode
Blackbox Binaries Fuzzing
Windows: DynamoRIO: ~x30 overhead
Linux: Intel Pin: ~x45 overhead
DynamoRIO: ~x20 overhead 69
Manul Target binary
Instrumentation lib
SHM
Coverage Coverage
Test
70
Interface & Logo
71
Command Line Arguments
72
DEMO
(Manul)
73
74
Case Study I. Poppler
● Poppler is an open-source library for
rendering PDF documents on GNU/Linux
● Millions of users across the world. Default package on
Ubuntu
● Integrated with Evince, LibreOffice, Inkscape and many
other applications
● Written in C++
● Participate in OSS-Fuzz program (tough target)
75
Case Study I. Poppler. Fuzzing Setup
● 491 PDF files (same corpus used by OSS-Fuzz)
● 24 hours, 78 parallel jobs
● AFL ver. 2.52b & Manul ver. 0.2
● Intel Xeon CPU E5-2698 v4 @2.20GHz 1TB RAM
76
Case Study I. Execution Speed
77
Case Study I. Paths Found
78
Case Study I. Why Manul outperformed AFL
● Manul corpus parallelization algorithm
demonstrates better performance on large
targets
● Radamsa + AFL is better than only AFL
● Volatile paths suppression seems to work
79
Case Study I. Manul Findings
CVE-2019-9631. 9.8 Critical. Poppler 0.74.0 has a heap-based buffer over-read in the
CairoRescaleBox.cc downsample_row_box_filter function.
CVE-2019-7310. 8.8 High. Poppler 0.74.0. A heap-based buffer over-read (due to an
integer signedness error in the XRef::getEntry function in XRef.cc) allows remote
attackers to cause a denial of service (application crash) or possibly have
unspecified other impact via a crafted PDF document, as demonstrated by pdftocairo.
CVE-2019-9959 (X.X. High) In Poppler (latest), JPXStream::init doesn’t have a check
for negative values of stream length thereby making it possible to allocate large
memory chunk on heap with size controlled by an attacker.
Non-security related:
1.Division by zero in CairoRescalBox::downScaleImage
2.Null-pointer dereference in ExtGState
3.Stack-overflow (recursion) in libcairo
80
Case Study I. Poppler. CVE 2019-9631
81
Case Study I. Poppler. CVE 2019-9631
82
Case Study I. Poppler. CVE 2019-9959
83
Case Study I. Poppler. CVE 2019-9959
84
Case Study I. Poppler. CVE 2019-7310
85
Case Study I. Poppler. CVE 2019-7310
86
Case Study II. Zeek IDS
● Zeek (former Bro) is a world’s most powerful open-source
network analysis framework
○ Thousand of companies use Zeek as IDS
○ JA3 plugin for Zeek is a very powerfull tool to detect
suspicious connections of malware with C2
● BroCon happens in Arlington, VA every October
● Written in C++, very high-quality code, fuzzing was done using
libfuzzer by development team in the past
87
Zeek Fuzzing Wrapper Example
● Implemented for HTTP, IRC, KRB, DNP3, SSH, DNS, ICMP, LOGIN, FTP, IMAP
88
Case Study II. Findings
CVE-2018-17019 (7.5. High). In Zeek IDS through 2.5.5, there is a
DoS in IRC protocol names command parsing in
analyzer/protocol/irc/IRC.cc
CVE-2018-16807 (7.5. High). In Zeek IDS through 2.5.5, there is a
memory leak potentially leading to DoS in
scripts/base/protocols/krb/main.bro in the Kerberos protocol
parser.
CVE-2019-12175. (X.X High). In Zeek IDS, there is a DoS in
Kerberos protocol parser in analyzer/protocol/krb/KRB.cc
89
CVE-2018-16807
#1 0x16d0f10 in binpac::KRB_TCP::proc_krb_kdc_req_arguments(binpac::KRB_TCP::KRB_KDC_REQ*,
analyzer::Analyzer*)
#2 0x16d0994 in binpac::KRB_TCP::KRB_Conn::proc_krb_kdc_req_msg(binpac::KRB_TCP::KRB_KDC_REQ*)
#3 0x16f6038 in binpac::KRB_TCP::KRB_AS_REQ::Parse(unsigned char const*, unsigned char const*,
binpac::KRB_TCP::ContextKRB_TCP*, int)
90
IRC Protocol
91
CVE 2018-16807. Packet Example
Send packet that contains: “353 “ on IRC port 6666
92
CVE-2019-12175
==103310==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x55a797d15b75 bp
0x7ffe14590cb0 sp 0x7ffe14590330 T0)
#0 0x55a797d15b74 in binpac::KRB_TCP::proc_padata(binpac::KRB_TCP::KRB_PA_Data_Sequence const*,
analyzer::Analyzer*, bool)
#1 0x55a797d3d36a in binpac::KRB_TCP::proc_krb_kdc_req_arguments(binpac::KRB_TCP::KRB_KDC_REQ*,
analyzer::Analyzer*)
#2 0x55a797d3f61b in binpac::KRB_TCP::KRB_Conn::proc_krb_kdc_req_msg(binpac::KRB_TCP::KRB_KDC_REQ*)
#3 0x55a797d65032 in binpac::KRB_TCP::KRB_AS_REQ::Parse(unsigned char const*, unsigned char const*,
binpac::KRB_TCP::ContextKRB_TCP*, int)
#4 0x55a797d65032 in binpac::KRB_TCP::KRB_PDU::Parse(unsigned char const*, unsigned char const*,
binpac::KRB_TCP::ContextKRB_TCP*)
#5 0x55a797d69717 in binpac::KRB_TCP::KRB_PDU_TCP::ParseBuffer(binpac::FlowBuffer*,
binpac::KRB_TCP::ContextKRB_TCP*)
#6 0x55a797d69717 in binpac::KRB_TCP::KRB_Flow::NewData(unsigned char const*, unsigned char const*)
93
DEMO
(example of CVE 2019-12175 DoS in Zeek)
94
95
List of Bugs Found
96
Bugs Project
CVE-2019-6931, CVE-2019-7310, CVE-2019-9959 Poppler for Linux
CVE-2018-17019, CVE-2018-16807, CVE-2019-12175 Zeek for Linux
CVE-2019-XXXX, CVE-2019-XXXX
Awaiting assignment from MITRE and fix from
maintainer
7-Zip 19.00 for Windows
CVE-2019-XXXX, CVE-2019-XXXX, CVE-2019-XXXX
Awaiting assignment from MITRE and fix from
maintainer
p7zip 16.02 for Linux
CVE-2019-XXXX, CVE-2019-XXXX
Awaiting assignment from MITRE and fix from
maintainer
Unarchiver for MacOS
Discussion & Future Work
● AFL’s forkserver is strongly required
● Add Intel PTrace support
● More mutation algorithms
● + structure-aware fuzzing
● Better MacOS support
● Better network fuzzing support
● CLANG-based instrumentation
97
Conclusion
● Fuzzing is #1 technique for vulnerability research in memory-unsafe
languages
● Manul is a fully functional tool for efficient coverage-guided
fuzzing.
○ Multiple third-party mutators, volatile paths suppression,
efficient parallelization algorithm, blackbox binaries fuzzing
● 13 new bugs in 4 widely-used open-source projects.
● Pull & try! https://github.com/mxmssh/manul
● pip install psutil & git clone https://github.com/mxmssh/manul
98
Thank you!
99
https://github.com/mxmssh/manul
Twitter: https://twitter.com/MShudrak
Linkedin: https://www.linkedin.com/in/mshudrak/

Weitere ähnliche Inhalte

Was ist angesagt?

The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...CODE BLUE
 
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...CODE BLUE
 
Introduction to Snort Rule Writing
Introduction to Snort Rule WritingIntroduction to Snort Rule Writing
Introduction to Snort Rule WritingCisco DevNet
 
Type of DDoS attacks with hping3 example
Type of DDoS attacks with hping3 exampleType of DDoS attacks with hping3 example
Type of DDoS attacks with hping3 exampleHimani Singh
 
Threat hunting != Throwing arrow! Hunting for adversaries in your it environment
Threat hunting != Throwing arrow! Hunting for adversaries in your it environmentThreat hunting != Throwing arrow! Hunting for adversaries in your it environment
Threat hunting != Throwing arrow! Hunting for adversaries in your it environmentNahidul Kibria
 
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...idsecconf
 
26.1.7 lab snort and firewall rules
26.1.7 lab   snort and firewall rules26.1.7 lab   snort and firewall rules
26.1.7 lab snort and firewall rulesFreddy Buenaño
 
Laura Garcia - Shodan API and Coding Skills [rooted2019]
Laura Garcia - Shodan API and Coding Skills [rooted2019]Laura Garcia - Shodan API and Coding Skills [rooted2019]
Laura Garcia - Shodan API and Coding Skills [rooted2019]RootedCON
 
Hacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning TechniquesHacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning Techniquesamiable_indian
 
Inside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware AnalysisInside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware AnalysisChong-Kuan Chen
 
Network Penetration Testing Toolkit - Nmap, Netcat, and Metasploit Basics
Network Penetration Testing Toolkit - Nmap, Netcat, and Metasploit BasicsNetwork Penetration Testing Toolkit - Nmap, Netcat, and Metasploit Basics
Network Penetration Testing Toolkit - Nmap, Netcat, and Metasploit BasicsBishop Fox
 
"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen
"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen
"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) ShenPROIDEA
 
Access over Ethernet: Insecurites in AoE
Access over Ethernet: Insecurites in AoEAccess over Ethernet: Insecurites in AoE
Access over Ethernet: Insecurites in AoEamiable_indian
 
Using Algorithms to Brute Force Algorithms...A Journey Through Time and Names...
Using Algorithms to Brute Force Algorithms...A Journey Through Time and Names...Using Algorithms to Brute Force Algorithms...A Journey Through Time and Names...
Using Algorithms to Brute Force Algorithms...A Journey Through Time and Names...OpenDNS
 
Awesome_fuzzing_for _pentester_red-pill_2017
Awesome_fuzzing_for _pentester_red-pill_2017Awesome_fuzzing_for _pentester_red-pill_2017
Awesome_fuzzing_for _pentester_red-pill_2017Manich Koomsusi
 

Was ist angesagt? (20)

The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by...
 
Nmap for Scriptors
Nmap for ScriptorsNmap for Scriptors
Nmap for Scriptors
 
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
A New Era of SSRF - Exploiting URL Parser in Trending Programming Languages! ...
 
Introduction to Snort Rule Writing
Introduction to Snort Rule WritingIntroduction to Snort Rule Writing
Introduction to Snort Rule Writing
 
Type of DDoS attacks with hping3 example
Type of DDoS attacks with hping3 exampleType of DDoS attacks with hping3 example
Type of DDoS attacks with hping3 example
 
Threat hunting != Throwing arrow! Hunting for adversaries in your it environment
Threat hunting != Throwing arrow! Hunting for adversaries in your it environmentThreat hunting != Throwing arrow! Hunting for adversaries in your it environment
Threat hunting != Throwing arrow! Hunting for adversaries in your it environment
 
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
Information Theft: Wireless Router Shareport for Phun and profit - Hero Suhar...
 
26.1.7 lab snort and firewall rules
26.1.7 lab   snort and firewall rules26.1.7 lab   snort and firewall rules
26.1.7 lab snort and firewall rules
 
Laura Garcia - Shodan API and Coding Skills [rooted2019]
Laura Garcia - Shodan API and Coding Skills [rooted2019]Laura Garcia - Shodan API and Coding Skills [rooted2019]
Laura Garcia - Shodan API and Coding Skills [rooted2019]
 
Hacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning TechniquesHacking With Nmap - Scanning Techniques
Hacking With Nmap - Scanning Techniques
 
Dynamic Port Scanning
Dynamic Port ScanningDynamic Port Scanning
Dynamic Port Scanning
 
Footprinting tools for security auditors
Footprinting tools for security auditorsFootprinting tools for security auditors
Footprinting tools for security auditors
 
Inside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware AnalysisInside the Matrix,How to Build Transparent Sandbox for Malware Analysis
Inside the Matrix,How to Build Transparent Sandbox for Malware Analysis
 
Network Penetration Testing Toolkit - Nmap, Netcat, and Metasploit Basics
Network Penetration Testing Toolkit - Nmap, Netcat, and Metasploit BasicsNetwork Penetration Testing Toolkit - Nmap, Netcat, and Metasploit Basics
Network Penetration Testing Toolkit - Nmap, Netcat, and Metasploit Basics
 
"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen
"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen
"Into the Fog The Return of ICEFOG APT" - Chi en (Ashley) Shen
 
Unix executable buffer overflow
Unix executable buffer overflowUnix executable buffer overflow
Unix executable buffer overflow
 
Access over Ethernet: Insecurites in AoE
Access over Ethernet: Insecurites in AoEAccess over Ethernet: Insecurites in AoE
Access over Ethernet: Insecurites in AoE
 
Using Algorithms to Brute Force Algorithms...A Journey Through Time and Names...
Using Algorithms to Brute Force Algorithms...A Journey Through Time and Names...Using Algorithms to Brute Force Algorithms...A Journey Through Time and Names...
Using Algorithms to Brute Force Algorithms...A Journey Through Time and Names...
 
Awesome_fuzzing_for _pentester_red-pill_2017
Awesome_fuzzing_for _pentester_red-pill_2017Awesome_fuzzing_for _pentester_red-pill_2017
Awesome_fuzzing_for _pentester_red-pill_2017
 
08 tcp-dns
08 tcp-dns08 tcp-dns
08 tcp-dns
 

Ähnlich wie DEF CON 27 - MAKSIM SHUDRAK - zero bugs found hold my beer afl how to improve coverage guided fuzzing and find new zero days in tough targets

Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...
Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...
Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...Maksim Shudrak
 
Non-Blocking Strategies for FFI
 Non-Blocking Strategies for FFI Non-Blocking Strategies for FFI
Non-Blocking Strategies for FFIESUG
 
FFR GreenKiller - Automatic kernel-mode malware analysis system
FFR GreenKiller - Automatic kernel-mode malware analysis systemFFR GreenKiller - Automatic kernel-mode malware analysis system
FFR GreenKiller - Automatic kernel-mode malware analysis systemFFRI, Inc.
 
story_of_bpf-1.pdf
story_of_bpf-1.pdfstory_of_bpf-1.pdf
story_of_bpf-1.pdfhegikip775
 
running stable diffusion on android
running stable diffusion on androidrunning stable diffusion on android
running stable diffusion on androidKoan-Sin Tan
 
May2010 hex-core-opt
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-optJeff Larkin
 
Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...inside-BigData.com
 
Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)Amin Astaneh
 
What’s Slowing Down Your Kafka Pipeline? With Ruizhe Cheng and Pete Stevenson...
What’s Slowing Down Your Kafka Pipeline? With Ruizhe Cheng and Pete Stevenson...What’s Slowing Down Your Kafka Pipeline? With Ruizhe Cheng and Pete Stevenson...
What’s Slowing Down Your Kafka Pipeline? With Ruizhe Cheng and Pete Stevenson...HostedbyConfluent
 
Advanced Techniques for Exploiting ILP
Advanced Techniques for Exploiting ILPAdvanced Techniques for Exploiting ILP
Advanced Techniques for Exploiting ILPA B Shinde
 
Profiling with Devel::NYTProf
Profiling with Devel::NYTProfProfiling with Devel::NYTProf
Profiling with Devel::NYTProfbobcatfish
 
Continuous Go Profiling & Observability
Continuous Go Profiling & ObservabilityContinuous Go Profiling & Observability
Continuous Go Profiling & ObservabilityScyllaDB
 
Make static instrumentation great again, High performance fuzzing for Windows...
Make static instrumentation great again, High performance fuzzing for Windows...Make static instrumentation great again, High performance fuzzing for Windows...
Make static instrumentation great again, High performance fuzzing for Windows...Lucas Leong
 
The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...Arnaud Joly
 
Solving Cross-Cutting Concerns in PHP - DutchPHP Conference 2016
Solving Cross-Cutting Concerns in PHP - DutchPHP Conference 2016 Solving Cross-Cutting Concerns in PHP - DutchPHP Conference 2016
Solving Cross-Cutting Concerns in PHP - DutchPHP Conference 2016 Alexander Lisachenko
 
Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1Cysinfo Cyber Security Community
 
Scale up and Scale Out Anaconda and PyData
Scale up and Scale Out Anaconda and PyDataScale up and Scale Out Anaconda and PyData
Scale up and Scale Out Anaconda and PyDataTravis Oliphant
 
Tesla Hacking to FreedomEV
Tesla Hacking to FreedomEVTesla Hacking to FreedomEV
Tesla Hacking to FreedomEVJasper Nuyens
 
CODE BLUE 2014 : Embedded Security in The Land of the Rising Sun by BEN SCHMI...
CODE BLUE 2014 : Embedded Security in The Land of the Rising Sun by BEN SCHMI...CODE BLUE 2014 : Embedded Security in The Land of the Rising Sun by BEN SCHMI...
CODE BLUE 2014 : Embedded Security in The Land of the Rising Sun by BEN SCHMI...CODE BLUE
 

Ähnlich wie DEF CON 27 - MAKSIM SHUDRAK - zero bugs found hold my beer afl how to improve coverage guided fuzzing and find new zero days in tough targets (20)

Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...
Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...
Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...
 
Non-Blocking Strategies for FFI
 Non-Blocking Strategies for FFI Non-Blocking Strategies for FFI
Non-Blocking Strategies for FFI
 
FFR GreenKiller - Automatic kernel-mode malware analysis system
FFR GreenKiller - Automatic kernel-mode malware analysis systemFFR GreenKiller - Automatic kernel-mode malware analysis system
FFR GreenKiller - Automatic kernel-mode malware analysis system
 
story_of_bpf-1.pdf
story_of_bpf-1.pdfstory_of_bpf-1.pdf
story_of_bpf-1.pdf
 
running stable diffusion on android
running stable diffusion on androidrunning stable diffusion on android
running stable diffusion on android
 
May2010 hex-core-opt
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-opt
 
Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...
 
Parallelformers
ParallelformersParallelformers
Parallelformers
 
Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)
 
What’s Slowing Down Your Kafka Pipeline? With Ruizhe Cheng and Pete Stevenson...
What’s Slowing Down Your Kafka Pipeline? With Ruizhe Cheng and Pete Stevenson...What’s Slowing Down Your Kafka Pipeline? With Ruizhe Cheng and Pete Stevenson...
What’s Slowing Down Your Kafka Pipeline? With Ruizhe Cheng and Pete Stevenson...
 
Advanced Techniques for Exploiting ILP
Advanced Techniques for Exploiting ILPAdvanced Techniques for Exploiting ILP
Advanced Techniques for Exploiting ILP
 
Profiling with Devel::NYTProf
Profiling with Devel::NYTProfProfiling with Devel::NYTProf
Profiling with Devel::NYTProf
 
Continuous Go Profiling & Observability
Continuous Go Profiling & ObservabilityContinuous Go Profiling & Observability
Continuous Go Profiling & Observability
 
Make static instrumentation great again, High performance fuzzing for Windows...
Make static instrumentation great again, High performance fuzzing for Windows...Make static instrumentation great again, High performance fuzzing for Windows...
Make static instrumentation great again, High performance fuzzing for Windows...
 
The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...The genesis of clusterlib - An open source library to tame your favourite sup...
The genesis of clusterlib - An open source library to tame your favourite sup...
 
Solving Cross-Cutting Concerns in PHP - DutchPHP Conference 2016
Solving Cross-Cutting Concerns in PHP - DutchPHP Conference 2016 Solving Cross-Cutting Concerns in PHP - DutchPHP Conference 2016
Solving Cross-Cutting Concerns in PHP - DutchPHP Conference 2016
 
Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1Advanced malwareanalysis training session2 botnet analysis part1
Advanced malwareanalysis training session2 botnet analysis part1
 
Scale up and Scale Out Anaconda and PyData
Scale up and Scale Out Anaconda and PyDataScale up and Scale Out Anaconda and PyData
Scale up and Scale Out Anaconda and PyData
 
Tesla Hacking to FreedomEV
Tesla Hacking to FreedomEVTesla Hacking to FreedomEV
Tesla Hacking to FreedomEV
 
CODE BLUE 2014 : Embedded Security in The Land of the Rising Sun by BEN SCHMI...
CODE BLUE 2014 : Embedded Security in The Land of the Rising Sun by BEN SCHMI...CODE BLUE 2014 : Embedded Security in The Land of the Rising Sun by BEN SCHMI...
CODE BLUE 2014 : Embedded Security in The Land of the Rising Sun by BEN SCHMI...
 

Mehr von Felipe Prado

DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directoryDEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directoryFelipe Prado
 
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...Felipe Prado
 
DEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got antsDEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got antsFelipe Prado
 
DEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryptionDEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryptionFelipe Prado
 
DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101Felipe Prado
 
DEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a governmentDEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a governmentFelipe Prado
 
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardwareDEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardwareFelipe Prado
 
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...Felipe Prado
 
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustrationDEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustrationFelipe Prado
 
DEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interfaceDEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interfaceFelipe Prado
 
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionistDEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionistFelipe Prado
 
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locksDEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locksFelipe Prado
 
DEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud securityDEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud securityFelipe Prado
 
DEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portalsDEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portalsFelipe Prado
 
DEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchDEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchFelipe Prado
 
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...Felipe Prado
 
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucksDEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucksFelipe Prado
 
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationDEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationFelipe Prado
 
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vncDEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vncFelipe Prado
 
DEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devicesDEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devicesFelipe Prado
 

Mehr von Felipe Prado (20)

DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directoryDEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
DEF CON 24 - Sean Metcalf - beyond the mcse red teaming active directory
 
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
DEF CON 24 - Bertin Bervis and James Jara - exploiting and attacking seismolo...
 
DEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got antsDEF CON 24 - Tamas Szakaly - help i got ants
DEF CON 24 - Tamas Szakaly - help i got ants
 
DEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryptionDEF CON 24 - Ladar Levison - compelled decryption
DEF CON 24 - Ladar Levison - compelled decryption
 
DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101DEF CON 24 - Clarence Chio - machine duping 101
DEF CON 24 - Clarence Chio - machine duping 101
 
DEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a governmentDEF CON 24 - Chris Rock - how to overthrow a government
DEF CON 24 - Chris Rock - how to overthrow a government
 
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardwareDEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
DEF CON 24 - Fitzpatrick and Grand - 101 ways to brick your hardware
 
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
DEF CON 24 - Rogan Dawes and Dominic White - universal serial aBUSe remote at...
 
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustrationDEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
DEF CON 24 - Jay Beale and Larry Pesce - phishing without frustration
 
DEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interfaceDEF CON 24 - Gorenc Sands - hacker machine interface
DEF CON 24 - Gorenc Sands - hacker machine interface
 
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionistDEF CON 24 - Allan Cecil and DwangoAC -  tasbot the perfectionist
DEF CON 24 - Allan Cecil and DwangoAC - tasbot the perfectionist
 
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locksDEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
DEF CON 24 - Rose and Ramsey - picking bluetooth low energy locks
 
DEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud securityDEF CON 24 - Rich Mogull - pragmatic cloud security
DEF CON 24 - Rich Mogull - pragmatic cloud security
 
DEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portalsDEF CON 24 - Grant Bugher - Bypassing captive portals
DEF CON 24 - Grant Bugher - Bypassing captive portals
 
DEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchDEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitch
 
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
DEF CON 24 - Plore - side -channel attacks on high security electronic safe l...
 
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucksDEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
DEF CON 24 - Six Volts and Haystack - cheap tools for hacking heavy trucks
 
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitationDEF CON 24 - Dinesh and Shetty - practical android application exploitation
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
 
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vncDEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
DEF CON 24 - Klijnsma and Tentler - stargate pivoting through vnc
 
DEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devicesDEF CON 24 - Antonio Joseph - fuzzing android devices
DEF CON 24 - Antonio Joseph - fuzzing android devices
 

Kürzlich hochgeladen

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 

Kürzlich hochgeladen (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 

DEF CON 27 - MAKSIM SHUDRAK - zero bugs found hold my beer afl how to improve coverage guided fuzzing and find new zero days in tough targets

  • 1.
  • 2. Zero Bugs Found? Hold My Beer AFL! How to Improve Coverage-guided Fuzzing and Find New Zero-days in Tough Targets Maksim Shudrak Security Researcher Salesforce DEF CON 27
  • 3. About me ● Offensive Security Researcher at Salesforce Red Team ● Projects: ○ EAOS: Extremely Abstract Operating System for Malware Analysis (at IBM Research 2015-2017) ○ drAFL: AFL + DynamoRIO = fuzzing binaries with no source code on Linux (spare time) https://github.com/mxmssh/drAFL ○ Contributions: drltrace, winAFL, DynamoRIO, DrMemory, Ponce ○ PhD on vulnerability research in machine code ● Speaker: 3
  • 4. Outline I. Introduction II. What is coverage-guided fuzzing ? III. Downsides of AFL and similar fuzzers IV. Introducing Manul V. DEMO VI. Case Studies + Vulnerabilities VII. Conclusion & Future Work 4
  • 12. What is Coverage-Guided Fuzzing? 12 AAAAA
  • 13. What is Coverage-Guided Fuzzing? 13 AAAAA
  • 14. What is Coverage-Guided Fuzzing? 14 BAAAA
  • 15. What is Coverage-Guided Fuzzing? 15 CAAAA
  • 16. What is Coverage-Guided Fuzzing? 16 PAAAA
  • 17. What is Coverage-Guided Fuzzing? 17 AAAAA PAAAA Input queue
  • 18. What is Coverage-Guided Fuzzing? 18 AAAAA PBAAA Input queue
  • 19. What is Coverage-Guided Fuzzing? 19 AAAAA PCAAA Input queue
  • 20. What is Coverage-Guided Fuzzing? 20 AAAAA PWAAA Input queue
  • 21. What is Coverage-Guided Fuzzing? 21 AAAAA PAAAA Input queue PWAAA
  • 22. What is Coverage-Guided Fuzzing? 22 AAAAA PAAAA Input queue PWBAA
  • 23. What is Coverage-Guided Fuzzing? 23 AAAAA PAAAA Input queue PWNAA
  • 24. What is Coverage-Guided Fuzzing? 24 AAAAA PAAAA Input queue PWNAA PWNBA
  • 25. What is Coverage-Guided Fuzzing? 25 AAAAA PAAAA Input queue PWNAA PWNIA
  • 26. What is Coverage-Guided Fuzzing? 26 AAAAA PAAAA Input queue PWNAA PWNIA PWNIB
  • 27. What is Coverage-Guided Fuzzing? 27 AAAAA PAAAA Input queue PWNAA PWNIA PWNIC
  • 28. What is Coverage-Guided Fuzzing? 28 AAAAA PAAAA Input queue PWNAA PWNIA PWNIT
  • 29. American Fuzzy Lop aka AFL 29 https://habr.com/ru/company/dsec/blog/449134/
  • 30. 30
  • 31. 31
  • 32. 32
  • 33. 33
  • 34. Most Popular Languages in July 2019 34https://www.tiobe.com/tiobe-index/
  • 35. Fuzzing is Very Hot Today! 35 #ofpublications
  • 36. OSS-Fuzz Project ● ~160 open-source projects ● ~half-trillion test cases per week Open Issues Count per Month 36
  • 43. Downsides. Parallelization algorithm ● Parallelization is an obvious solution to speed up fuzzing and find more bugs. ● AFL was not designed to be parallel fuzzer 43 AFL master folder AFL slave #1 AFL slave #2
  • 44. Downsides. Parallelization algorithm ● Parallelization is an obvious solution to speed up fuzzing and find more bugs. ● AFL was not designed to be parallel fuzzer 44 AFL master folder AFL slave #1 AFL slave #2
  • 45. Downsides. Parallelization algorithm ● Parallelization is an obvious solution to speed up fuzzing and find more bugs. ● AFL was not designed to be parallel fuzzer 45 AFL master folder AFL slave #1 AFL slave #2
  • 46. Downsides. Parallelization algorithm ● Parallelization is an obvious solution to speed up fuzzing and find more bugs. ● AFL was not designed to be parallel fuzzer 46 AFL master folder AFL slave #1 AFL slave #2
  • 47. Downsides. Parallelization algorithm ● Parallelization is an obvious solution to speed up fuzzing and find more bugs. ● AFL was not designed to be parallel fuzzer 47 AFL master folder AFL slave #1 AFL slave #2
  • 48. Network apps fuzzing. Current situation 48 ● Linux: ○ AFL’s forks, honggfuzz and blind fuzzers ● Windows ○ winAFL network mode ● OS X ○ honggfuzz?
  • 49. Windows applications fuzzing 49 winAFL clang (libfuzzer/honggfuzz)
  • 50. OS X applications fuzzing ● Source code is required. Target should be able to compile with clang ● DynamoRIO has no official support of OS X ● Intel PIN has partial OS X support 50
  • 51. Some Related Works & Tools ● The author is not the first one who wants to improve AFL. ○ Userland: AFLSmart, AFLFast, winAFL, libfuzzer, driller, QSYM and others. ○ Kernel: syzkaller, kAFL, TriforceAFL and others. ● Systematic research on all existing fuzzers: ○ Valentin J.M. Manes, Hyung Seok Han, Choongwoo Han, Sang Kil Cha, Manuel Egele, Edward J. Schwartz, Maverick Woo Fuzzing: Art, Science, and Engineering. arXiv:1812.00140 preprint. ● Some Presentations at DEF CON/BlackHat: ○ Mateusz Jurczyk. Effective File Format Fuzzing - Thoughts, Techniques and Results. BlackHat EU London. 2016. ○ Kang Li. AFL's Blindspot and How to Resist AFL Fuzzing for Arbitrary ELF Binaries. BlackHat USA 2018. ○ Jonathan Metzman. Going Beyond Coverage-Guided Fuzzing with Structured Fuzzing. Black Hat USA 2019. 51
  • 52. State-of-the-art Userland Fuzzers 52 AFL winAFL HongFuzz libFuzzer Desired fuzzer Network fuzzing No (Unix) Yes (Windows) Yes No Yes (all platforms) Volatile Paths No No No Yes Multiple Mutation Strategies No No No Yes Share over network Partial No No Yes Supported Platform Linux Windows Open/NetBSD GNU/Linux Windows/Cygwin Android OS X Anywhere where LLVM exist Anywhere where Python exist Language C C C Python
  • 53. ● Manul - an open-source fuzzer written in pure Python. ○ Easy-to-use, pull and run concept. ○ Coverage-guided fuzzing using AFL-GCC or DBI (Intel Pin or DynamoRIO). ○ Parallel fuzzing is a basic feature. ○ Default mutators. ○ Third-party data mutators (Radamsa + AFL currently supported). ○ Network fuzzing is supported by default. ○ Blackbox binaries fuzzing. ○ Supported: Linux, MacOS (beta) and Windows or any other OS where Python exist. Manul Overview 53
  • 54. Why Manul? 54 Pallas’s Cat (lat. Otocolobus Manul)
  • 55. Manul Architecture 55 Mutators (plugins) Target Instrumentation module User Interface Core Module Code Coverage Analysis Module Manul Network Module Shared Memory Fuzzer
  • 56. Volatile Paths Detection 56 Run & Calibrate ABAAAAAAA
  • 57. Volatile Paths Detection 57 Run & Calibrate ABAAAAAAA
  • 58. Volatile Paths Detection 58 Run & Calibrate ACAAAAAAA https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-schumilo.pdf
  • 59. Parallel fuzzing. Python Multiprocessing 59 Main Process Corpus:
  • 60. Parallel fuzzing. Python Multiprocessing 60 Main Process Corpus: Instance #1 Instance #2 Instance #3
  • 61. Parallel fuzzing. Python Multiprocessing 61 Main Process Instance #1 Instance #2 Instance #3 Corpus:
  • 62. Parallel fuzzing. Python Multiprocessing 62 Main Process Instance #1 Instance #2 Instance #3 Corpus:
  • 63. Parallel fuzzing. Python Multiprocessing 63 Main Process Instance #1 Instance #2 Instance #3 Remote Instance (Main Process) Remote Instance #1 Remote Instance #2
  • 64. Parallel fuzzing. Python Multiprocessing 64 Main Process Instance #1 Instance #2 Instance #3 Remote Instance (Main Process) Remote Instance #1 Remote Instance #2
  • 65. 65 Main Process Instance #1 Instance #2 Instance #3 Remote Instance (Main Process) Remote Instance #1 Remote Instance #2 Target Target Target Target Target SHM SHM SHM SHM SHM Global shared memory
  • 66. 66 Main Process Instance #1 Instance #2 Instance #3 Remote Instance (Main Process) Remote Instance #1 Remote Instance #2 Target Target Target Target Target SHM SHM SHM SHM SHM Global shared memory
  • 67. Third Party Mutators ● AFL strategy (ported to Python) and Radamsa (as a shared library) Custom Python Mutator: ● def init(fuzzer_id) ● def mutate(data_to_mutate) 67
  • 68. Network Application Fuzzing (Experimental) 68 Manul Target TCP|UDP Manul Target Test case (TCP|UDP) Connect Client mode Server mode
  • 69. Blackbox Binaries Fuzzing Windows: DynamoRIO: ~x30 overhead Linux: Intel Pin: ~x45 overhead DynamoRIO: ~x20 overhead 69 Manul Target binary Instrumentation lib SHM Coverage Coverage Test
  • 70. 70
  • 74. 74
  • 75. Case Study I. Poppler ● Poppler is an open-source library for rendering PDF documents on GNU/Linux ● Millions of users across the world. Default package on Ubuntu ● Integrated with Evince, LibreOffice, Inkscape and many other applications ● Written in C++ ● Participate in OSS-Fuzz program (tough target) 75
  • 76. Case Study I. Poppler. Fuzzing Setup ● 491 PDF files (same corpus used by OSS-Fuzz) ● 24 hours, 78 parallel jobs ● AFL ver. 2.52b & Manul ver. 0.2 ● Intel Xeon CPU E5-2698 v4 @2.20GHz 1TB RAM 76
  • 77. Case Study I. Execution Speed 77
  • 78. Case Study I. Paths Found 78
  • 79. Case Study I. Why Manul outperformed AFL ● Manul corpus parallelization algorithm demonstrates better performance on large targets ● Radamsa + AFL is better than only AFL ● Volatile paths suppression seems to work 79
  • 80. Case Study I. Manul Findings CVE-2019-9631. 9.8 Critical. Poppler 0.74.0 has a heap-based buffer over-read in the CairoRescaleBox.cc downsample_row_box_filter function. CVE-2019-7310. 8.8 High. Poppler 0.74.0. A heap-based buffer over-read (due to an integer signedness error in the XRef::getEntry function in XRef.cc) allows remote attackers to cause a denial of service (application crash) or possibly have unspecified other impact via a crafted PDF document, as demonstrated by pdftocairo. CVE-2019-9959 (X.X. High) In Poppler (latest), JPXStream::init doesn’t have a check for negative values of stream length thereby making it possible to allocate large memory chunk on heap with size controlled by an attacker. Non-security related: 1.Division by zero in CairoRescalBox::downScaleImage 2.Null-pointer dereference in ExtGState 3.Stack-overflow (recursion) in libcairo 80
  • 81. Case Study I. Poppler. CVE 2019-9631 81
  • 82. Case Study I. Poppler. CVE 2019-9631 82
  • 83. Case Study I. Poppler. CVE 2019-9959 83
  • 84. Case Study I. Poppler. CVE 2019-9959 84
  • 85. Case Study I. Poppler. CVE 2019-7310 85
  • 86. Case Study I. Poppler. CVE 2019-7310 86
  • 87. Case Study II. Zeek IDS ● Zeek (former Bro) is a world’s most powerful open-source network analysis framework ○ Thousand of companies use Zeek as IDS ○ JA3 plugin for Zeek is a very powerfull tool to detect suspicious connections of malware with C2 ● BroCon happens in Arlington, VA every October ● Written in C++, very high-quality code, fuzzing was done using libfuzzer by development team in the past 87
  • 88. Zeek Fuzzing Wrapper Example ● Implemented for HTTP, IRC, KRB, DNP3, SSH, DNS, ICMP, LOGIN, FTP, IMAP 88
  • 89. Case Study II. Findings CVE-2018-17019 (7.5. High). In Zeek IDS through 2.5.5, there is a DoS in IRC protocol names command parsing in analyzer/protocol/irc/IRC.cc CVE-2018-16807 (7.5. High). In Zeek IDS through 2.5.5, there is a memory leak potentially leading to DoS in scripts/base/protocols/krb/main.bro in the Kerberos protocol parser. CVE-2019-12175. (X.X High). In Zeek IDS, there is a DoS in Kerberos protocol parser in analyzer/protocol/krb/KRB.cc 89
  • 90. CVE-2018-16807 #1 0x16d0f10 in binpac::KRB_TCP::proc_krb_kdc_req_arguments(binpac::KRB_TCP::KRB_KDC_REQ*, analyzer::Analyzer*) #2 0x16d0994 in binpac::KRB_TCP::KRB_Conn::proc_krb_kdc_req_msg(binpac::KRB_TCP::KRB_KDC_REQ*) #3 0x16f6038 in binpac::KRB_TCP::KRB_AS_REQ::Parse(unsigned char const*, unsigned char const*, binpac::KRB_TCP::ContextKRB_TCP*, int) 90
  • 92. CVE 2018-16807. Packet Example Send packet that contains: “353 “ on IRC port 6666 92
  • 93. CVE-2019-12175 ==103310==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x55a797d15b75 bp 0x7ffe14590cb0 sp 0x7ffe14590330 T0) #0 0x55a797d15b74 in binpac::KRB_TCP::proc_padata(binpac::KRB_TCP::KRB_PA_Data_Sequence const*, analyzer::Analyzer*, bool) #1 0x55a797d3d36a in binpac::KRB_TCP::proc_krb_kdc_req_arguments(binpac::KRB_TCP::KRB_KDC_REQ*, analyzer::Analyzer*) #2 0x55a797d3f61b in binpac::KRB_TCP::KRB_Conn::proc_krb_kdc_req_msg(binpac::KRB_TCP::KRB_KDC_REQ*) #3 0x55a797d65032 in binpac::KRB_TCP::KRB_AS_REQ::Parse(unsigned char const*, unsigned char const*, binpac::KRB_TCP::ContextKRB_TCP*, int) #4 0x55a797d65032 in binpac::KRB_TCP::KRB_PDU::Parse(unsigned char const*, unsigned char const*, binpac::KRB_TCP::ContextKRB_TCP*) #5 0x55a797d69717 in binpac::KRB_TCP::KRB_PDU_TCP::ParseBuffer(binpac::FlowBuffer*, binpac::KRB_TCP::ContextKRB_TCP*) #6 0x55a797d69717 in binpac::KRB_TCP::KRB_Flow::NewData(unsigned char const*, unsigned char const*) 93
  • 94. DEMO (example of CVE 2019-12175 DoS in Zeek) 94
  • 95. 95
  • 96. List of Bugs Found 96 Bugs Project CVE-2019-6931, CVE-2019-7310, CVE-2019-9959 Poppler for Linux CVE-2018-17019, CVE-2018-16807, CVE-2019-12175 Zeek for Linux CVE-2019-XXXX, CVE-2019-XXXX Awaiting assignment from MITRE and fix from maintainer 7-Zip 19.00 for Windows CVE-2019-XXXX, CVE-2019-XXXX, CVE-2019-XXXX Awaiting assignment from MITRE and fix from maintainer p7zip 16.02 for Linux CVE-2019-XXXX, CVE-2019-XXXX Awaiting assignment from MITRE and fix from maintainer Unarchiver for MacOS
  • 97. Discussion & Future Work ● AFL’s forkserver is strongly required ● Add Intel PTrace support ● More mutation algorithms ● + structure-aware fuzzing ● Better MacOS support ● Better network fuzzing support ● CLANG-based instrumentation 97
  • 98. Conclusion ● Fuzzing is #1 technique for vulnerability research in memory-unsafe languages ● Manul is a fully functional tool for efficient coverage-guided fuzzing. ○ Multiple third-party mutators, volatile paths suppression, efficient parallelization algorithm, blackbox binaries fuzzing ● 13 new bugs in 4 widely-used open-source projects. ● Pull & try! https://github.com/mxmssh/manul ● pip install psutil & git clone https://github.com/mxmssh/manul 98