SlideShare a Scribd company logo
Smarter Peach: Add Eyes to
Peach Fuzzer
Yihan Lian && Zhibin Hu/Qihoo 360 Gear Team
About us
Yihan Lian
• security researcher at Gear team of Qihoo 360
• focused on vulnerability discovery of Open-Source-Software.
• got more than a dozen CVE last year (e.g. qemu, ntp, ffmpeg)
• Fan of Xavi.
Zhibin Hu
• security researcher at Gear team of Qihoo 360
• last several years mainly focus on vulnerability discovery and analysis on windows, and receive msrc top 19 in 2014.
• recent two years interested in cloud security.
Agenda
• Motivation
• Peach fuzzer framework
• Strengths and weaknesses of Peach fuzzer
• Add eyes to Peach fuzzer
• Performance comparison and conclusion
• Demo
• Questions
motivation
• Stop re-inventing the wheel.
• Peach is mature, high stability and strong expandability etc.
• Coverage-feedback make traditional fuzzer more efficient.
• The mutate strategy of AFL is a little crude, not aware of file format.
Comparison of mainstream fuzzers
FOE Peach AFL
Coverage feedback √
Source Code Agnostic √ √
Aware of file format √
aware of protocol format √
Peach fuzzer framework
Peach fuzzer framework
• Original Peach core framework
Switch Iteration
Test Case output to target
Monitor
Log Fault
Normal
File Format
File Database
OriginalCase
Mutate
Strengths and weaknesses of Peach fuzzer
• Strengths
• Aware of file format, mutation strategies are more flexible
• Smarter when communicating with target
• Cross platform
• weaknesses
• Fat and complex
• No Coverage Feedback
aware of file format 1/5
• Basic elements: Number, String and Blob etc
• “xABxCD” is hex Number
• “ABCD” is String
• “ABxCD” is Blob
• Describe relationships in the data: Relation, Fixup and Hint etc
• Relation: 32 is the numbers of bits of “x41x41x41x41”
• Fixup: 0x9B0D08F1 is CRC-32 of “x41x41x41x41”
• Hint: Assign a more exquisite mutate strategy
aware of file format 2/5
• If we need to fuzz a function like this:
if(data_head is "PNG"){
switch(data_tag){
case ("IHDR"):
if(check_CRC)
{
Parse(data);
core_code;
}
else
return;
case ...
}
}
aware of file format 3/5
• Example:
• PNG head
• Elem_0 = data[0-7] type = Blob mutator = Blob mutators
• Elem_1 = data[8 – 0xB] type = Number_hex mutator = hex mutators
• //Elem_1 is the length of Elem_3 ~ elem_9.
• Elem_2 = data[0xC – 0xF] type = String mutator = ASCII or UNICODE … mutators
• Elem_3 = data[0x10 – 0x13] type = Number_hex
• Elem_4 = data[0x14 – 0x17] type = Number_hex
• Elem_5 = data[0x18] type = Number_hex
• …...
• Elem_10 = data[0x1D - 0x21] type = Number_CRC_of_elem_2-9 fixup = calculate CRC
• //Elem_10 is the CRC of Elem_2 ~ Elem_9.
aware of file format 4/5
• DataModel in Peach Pit
<DataModel name="PNGTest">
<Blob name="head" length="8“ mutable=“false”/>
<Number name="dataLength" size="32" valueType="hex" endian="big">
<Relation type="size" of="chunk" expressionGet="size+4" expressionSet="size-4"/>
</Number>
<Block name="chunk">
<String name="chunkHead" length="4">
<Hint name=“ValidValues” value=“pHYs;fcTL;IDAT;”/>
</String>
<Number name="width" size="32" valueType="hex" endian="big"/>
<Number name="height" size="32" valueType="hex" endian="big"/>
<Number name="enum" size="8" minOccurs="1"/>
</Block>
<Number name="CRC" size="32" endian="big">
<Fixup class="Crc">
<Param name="ref" value="chunk"/>
</Fixup>
</Number>
</DataModel>
aware of file format 5/5
• The mutated file still triggers core code.
Smarter when communicating with target 1/3
• Most of fuzzers send mutated-data to target application,
but can not receive valuable data from it.
• They are hard to fuzz servers which need to communicate
client.
Smarter when communicating with target 2/3
• Action: Send commands through Publisher. Read and write data from target.
• Publisher: I/O interfaces. it could be a file or a traffic data.
Smarter when communicating with target 3/3
• Example:
…
<Action type="input" publisher=“Target" >
<DataModel name="InputModel" ref=“model_1" />
</Action>
<Action type="slurp" valueXpath="//InputModel//TransID” setXpath="//OutputModel//TransID"/>
<Action type="output" publisher=" Target ">
<DataModel name="OutputModel” ref=“model_2”/>
<Data fileName="data/request" />
</Action>
…
<Publisher name=“Target" class=“Udp">
<Param name="Host" value=“192.168.11.11" />
<Param name="Port" value=“6666" />
</Publisher>
Cross platform
• Peach supports all major Operating-Systems.
• Windows
• Install Microsoft.NET v4 Runtime
• Install Debugging Tools for Windows
• Unzip Peach binary distribution to a working folder
• OS X
• Install latest Mono packages
• Install Crash Wrangler (download)
• Unzip Peach binary distribution to a working folder
• Linux
• Install latest Mono packages
• Ubuntu/Debian: mono-complete package
• SUSE: See download instructions
• Unzip Peach binary distribution to a working folder
• Remote fuzz
weaknesses
• Fat and complex
• Needs to parse the seed file once in every fuzz-iteration.
• Need to store too many data models and actions.
• No Coverage Feedback
• Peach belongs to Black-Box-Fuzzer.
• Cannot distinguish which mutated file is more valuable.
Add eyes to Peach fuzzer
Add eyes to Peach fuzzer
Problems
• How to detect code coverage
• How to return coverage info better
• How to store valuable files
• How to reproduce valuable files
• How to select a valuable file for next fuzz circle
How to detect code coverage 1/3
• Use LLVM Pass to insert codes in Basic Block
• Source code: IDA output:
How to detect code coverage 2/3
• IDA after inserting codes
• llcov_pcov_block_call is inserted into the Basic-Block of target program.
How to detect code coverage 3/3
• llvm_pcov_block_call:
llvm_pcov_block_call function is used to mark
whether this Basic-Block was run before,
and message to Peach the amount of
New-Basic-Block in this fuzz iteration.
How to return coverage info better
• We need to insert codes in a lot of basic-blocks. In order to be more efficiency, we
pass info between llvm_proc_block_call and Peach through shared memory.
How to store valuable files 1/3
• We cannot store valuable files directly, since the valuable files does not match the
File-Format in most cases, and this could raise a Peach exception.
• Just like this:
[*] Test 'Default' finished.
Error, failed to crack “**datapngtest.png" into "PNGTest":
Block 'PNGTest.chunk' has length of 1744830496 bits
but buffer only has 168 bits left.
How to store valuable files 2/3
• I choose to store the Fuzz status.
How to store valuable files 3/3
• What is Fuzz status
• Name of seed file – file used to be mutated.
• Random status – some numbers used to generate a random number.
• Action name – action used to generate this I-File.
• Mutator name – mutation strategy name used before.
• Etc.
How to reproduce valuable files 1/2
• On every switch-teration, Peach will store lots of information about each seed file to a Original-
Data-Model object. All of the mutated data is mutated on this object.
How to reproduce valuable files 2/2
• What we should to do is modify the original-Data-Model before this iteration
beginning.
File Format
File Database
File choice and parse
How to select a valuable file for next fuzz circle 1/2
• There will be many valuable files after fuzzing a period of time.
• Valuable files info:
fileNameIs0::***bin/data/mov/test_1.mov
33
lastMutatorList
lastMutatorRun_1.Initial.Action....
fileNameIs1::***/bin/data/mov/test_1.mov
32
lastMutatorList
lastMutatorRun_1.Initial.Action....
lastMutatorList
lastMutatorRun_1.Initial.Action....
fileNameIs2::***bin/data/mov/test_2.mov
...
How to select a valuable file for next fuzz circle 2/2
• If a valuable file gets more New_Block_Counts, it will get more weight. And if the mutated files
mutated from it get New_Block_Counts else, the weight of it will increase at the same time.
Whereas: the weight will decrease. This strategy decrease or increase the weight in linear.
performance comparison
Performance comparison and conclusion
• After fuzzing FFMPEG with mutating MOV-file 24 hours by Peach-original, Peach-cov and AFL , the
difference between the amount of triggered source code related with MOV-file is very clear.
• For the AFL case, it will trigger other code which is not relevant with MOV-file, so we only calculate relevant part.
0
5
10
15
20
25
30
35
40
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
triggeredcodepercentage
hours
original
have_weight
afl
Performance comparison and conclusion
• Preponderance:
• Is more efficient than original Peach fuzzer
• Is more efficient than AFL when comparing the depth of triggered source code.
• Future work:
• Strategy of valuable-file chosen
• use Markov chain like AFL-FAST
• add weight on mutators
• Performance improvement
• use fork-server like AFL
• Automatic learn the format
• use machine learning like: https://arxiv.org/pdf/1701.07232.pdf
DEMO
Questions
Thank
you Yihan Lian && Zhibin Hu/Gear Team, Qihoo 360 Inc
lianyihan@360.cn
huzhibin@360.cn

More Related Content

What's hot

Cryptography 101 for Java Developers - JavaZone2019
Cryptography 101 for Java Developers - JavaZone2019Cryptography 101 for Java Developers - JavaZone2019
Cryptography 101 for Java Developers - JavaZone2019
Michel Schudel
 
Cryptography 101 for Java Developers - Devoxx 2019
Cryptography 101 for Java Developers - Devoxx 2019Cryptography 101 for Java Developers - Devoxx 2019
Cryptography 101 for Java Developers - Devoxx 2019
Michel Schudel
 
DNS Rebinding Attack
DNS Rebinding AttackDNS Rebinding Attack
DNS Rebinding Attack
Felipe Japm
 
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat Security Conference
 
Security and Privacy on the Web in 2016
Security and Privacy on the Web in 2016Security and Privacy on the Web in 2016
Security and Privacy on the Web in 2016
Francois Marier
 
Cryptography 101 for_java_developers, Fall 2019
Cryptography 101 for_java_developers, Fall 2019Cryptography 101 for_java_developers, Fall 2019
Cryptography 101 for_java_developers, Fall 2019
Michel Schudel
 
Dirty Little Secrets They Didn't Teach You In Pentest Class v2
Dirty Little Secrets They Didn't Teach You In Pentest Class v2Dirty Little Secrets They Didn't Teach You In Pentest Class v2
Dirty Little Secrets They Didn't Teach You In Pentest Class v2
Rob Fuller
 
Attacker's Perspective of Active Directory
Attacker's Perspective of Active DirectoryAttacker's Perspective of Active Directory
Attacker's Perspective of Active Directory
Sunny Neo
 
2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest
2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest
2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest
CĂŠsar HernĂĄndez
 
"Revenge of The Script Kiddies: Current Day Uses of Automated Scripts by Top ...
"Revenge of The Script Kiddies: Current Day Uses of Automated Scripts by Top ..."Revenge of The Script Kiddies: Current Day Uses of Automated Scripts by Top ...
"Revenge of The Script Kiddies: Current Day Uses of Automated Scripts by Top ...
PROIDEA
 
9 password security
9   password security9   password security
9 password securitydrewz lin
 
Python Cryptography & Security
Python Cryptography & SecurityPython Cryptography & Security
Python Cryptography & Security
Jose Manuel Ortega Candel
 
Monica Salas & Raul Siles - Hype Potter and the Chamber of DNSSECrets [rooted...
Monica Salas & Raul Siles - Hype Potter and the Chamber of DNSSECrets [rooted...Monica Salas & Raul Siles - Hype Potter and the Chamber of DNSSECrets [rooted...
Monica Salas & Raul Siles - Hype Potter and the Chamber of DNSSECrets [rooted...
RootedCON
 
Security Features in MongoDB 2.4
Security Features in MongoDB 2.4Security Features in MongoDB 2.4
Security Features in MongoDB 2.4MongoDB
 
End-to-End Analysis of a Domain Generating Algorithm Malware Family
End-to-End Analysis of a Domain Generating Algorithm Malware FamilyEnd-to-End Analysis of a Domain Generating Algorithm Malware Family
End-to-End Analysis of a Domain Generating Algorithm Malware Family
CrowdStrike
 
"Powershell kung-fu" - Paweł Maziarz
"Powershell kung-fu" - Paweł Maziarz"Powershell kung-fu" - Paweł Maziarz
"Powershell kung-fu" - Paweł Maziarz
PROIDEA
 
Webinar: Securing your data - Mitigating the risks with MongoDB
Webinar: Securing your data - Mitigating the risks with MongoDBWebinar: Securing your data - Mitigating the risks with MongoDB
Webinar: Securing your data - Mitigating the risks with MongoDB
MongoDB
 
[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens
OWASP
 
Why isn't infosec working? Did you turn it off and back on again?
Why isn't infosec working? Did you turn it off and back on again?Why isn't infosec working? Did you turn it off and back on again?
Why isn't infosec working? Did you turn it off and back on again?
Rob Fuller
 

What's hot (20)

Cryptography 101 for Java Developers - JavaZone2019
Cryptography 101 for Java Developers - JavaZone2019Cryptography 101 for Java Developers - JavaZone2019
Cryptography 101 for Java Developers - JavaZone2019
 
Cryptography 101 for Java Developers - Devoxx 2019
Cryptography 101 for Java Developers - Devoxx 2019Cryptography 101 for Java Developers - Devoxx 2019
Cryptography 101 for Java Developers - Devoxx 2019
 
DNS Rebinding Attack
DNS Rebinding AttackDNS Rebinding Attack
DNS Rebinding Attack
 
Injection flaw teaser
Injection flaw teaserInjection flaw teaser
Injection flaw teaser
 
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
BlueHat v17 || Detecting Compromise on Windows Endpoints with Osquery
 
Security and Privacy on the Web in 2016
Security and Privacy on the Web in 2016Security and Privacy on the Web in 2016
Security and Privacy on the Web in 2016
 
Cryptography 101 for_java_developers, Fall 2019
Cryptography 101 for_java_developers, Fall 2019Cryptography 101 for_java_developers, Fall 2019
Cryptography 101 for_java_developers, Fall 2019
 
Dirty Little Secrets They Didn't Teach You In Pentest Class v2
Dirty Little Secrets They Didn't Teach You In Pentest Class v2Dirty Little Secrets They Didn't Teach You In Pentest Class v2
Dirty Little Secrets They Didn't Teach You In Pentest Class v2
 
Attacker's Perspective of Active Directory
Attacker's Perspective of Active DirectoryAttacker's Perspective of Active Directory
Attacker's Perspective of Active Directory
 
2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest
2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest
2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest
 
"Revenge of The Script Kiddies: Current Day Uses of Automated Scripts by Top ...
"Revenge of The Script Kiddies: Current Day Uses of Automated Scripts by Top ..."Revenge of The Script Kiddies: Current Day Uses of Automated Scripts by Top ...
"Revenge of The Script Kiddies: Current Day Uses of Automated Scripts by Top ...
 
9 password security
9   password security9   password security
9 password security
 
Python Cryptography & Security
Python Cryptography & SecurityPython Cryptography & Security
Python Cryptography & Security
 
Monica Salas & Raul Siles - Hype Potter and the Chamber of DNSSECrets [rooted...
Monica Salas & Raul Siles - Hype Potter and the Chamber of DNSSECrets [rooted...Monica Salas & Raul Siles - Hype Potter and the Chamber of DNSSECrets [rooted...
Monica Salas & Raul Siles - Hype Potter and the Chamber of DNSSECrets [rooted...
 
Security Features in MongoDB 2.4
Security Features in MongoDB 2.4Security Features in MongoDB 2.4
Security Features in MongoDB 2.4
 
End-to-End Analysis of a Domain Generating Algorithm Malware Family
End-to-End Analysis of a Domain Generating Algorithm Malware FamilyEnd-to-End Analysis of a Domain Generating Algorithm Malware Family
End-to-End Analysis of a Domain Generating Algorithm Malware Family
 
"Powershell kung-fu" - Paweł Maziarz
"Powershell kung-fu" - Paweł Maziarz"Powershell kung-fu" - Paweł Maziarz
"Powershell kung-fu" - Paweł Maziarz
 
Webinar: Securing your data - Mitigating the risks with MongoDB
Webinar: Securing your data - Mitigating the risks with MongoDBWebinar: Securing your data - Mitigating the risks with MongoDB
Webinar: Securing your data - Mitigating the risks with MongoDB
 
[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens[OPD 2019] Attacking JWT tokens
[OPD 2019] Attacking JWT tokens
 
Why isn't infosec working? Did you turn it off and back on again?
Why isn't infosec working? Did you turn it off and back on again?Why isn't infosec working? Did you turn it off and back on again?
Why isn't infosec working? Did you turn it off and back on again?
 

Similar to Yihan Lian & Zhibin Hu - Smarter Peach: Add Eyes to Peach Fuzzer [rooted2017]

Fuzzing - Part 1
Fuzzing - Part 1Fuzzing - Part 1
Fuzzing - Part 1
UTD Computer Security Group
 
Intro To C++ - Class #21: Files
Intro To C++ - Class #21: FilesIntro To C++ - Class #21: Files
Intro To C++ - Class #21: Files
Blue Elephant Consulting
 
Leveraging Structured Data To Reduce Disk, IO & Network Bandwidth
Leveraging Structured Data To Reduce Disk, IO & Network BandwidthLeveraging Structured Data To Reduce Disk, IO & Network Bandwidth
Leveraging Structured Data To Reduce Disk, IO & Network Bandwidth
Perforce
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
Unmesh Baile
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
Unmesh Baile
 
Solving real world data problems with Jerakia
Solving real world data problems with JerakiaSolving real world data problems with Jerakia
Solving real world data problems with Jerakia
Craig Dunn
 
Modern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layerModern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layer
Shakacon
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introduction
musrath mohammad
 
CPP17 - File IO
CPP17 - File IOCPP17 - File IO
CPP17 - File IO
Michael Heron
 
Linux Char Device Driver
Linux Char Device DriverLinux Char Device Driver
Linux Char Device Driver
Gary Yeh
 
Pf cs102 programming-8 [file handling] (1)
Pf cs102 programming-8 [file handling] (1)Pf cs102 programming-8 [file handling] (1)
Pf cs102 programming-8 [file handling] (1)
Abdullah khawar
 
File handling.pptx
File handling.pptxFile handling.pptx
File handling.pptx
VishuSaini22
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue Kid
Matthew Johnson
 
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
BIOVIA
 
2.4 Optimizing your Visual COBOL Applications
2.4   Optimizing your Visual COBOL Applications2.4   Optimizing your Visual COBOL Applications
2.4 Optimizing your Visual COBOL ApplicationsMicro Focus
 
Real World Application Threat Modelling By Example
Real World Application Threat Modelling By ExampleReal World Application Threat Modelling By Example
Real World Application Threat Modelling By Example
NCC Group
 
Hacker Halted 2014 - RDP Fuzzing And Why the Microsoft Open Protocol Specific...
Hacker Halted 2014 - RDP Fuzzing And Why the Microsoft Open Protocol Specific...Hacker Halted 2014 - RDP Fuzzing And Why the Microsoft Open Protocol Specific...
Hacker Halted 2014 - RDP Fuzzing And Why the Microsoft Open Protocol Specific...
EC-Council
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
Alex Moskvin
 
Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016
Yuta Iwama
 
Database training for developers
Database training for developersDatabase training for developers
Database training for developersBhaveshkumar Thakkar
 

Similar to Yihan Lian & Zhibin Hu - Smarter Peach: Add Eyes to Peach Fuzzer [rooted2017] (20)

Fuzzing - Part 1
Fuzzing - Part 1Fuzzing - Part 1
Fuzzing - Part 1
 
Intro To C++ - Class #21: Files
Intro To C++ - Class #21: FilesIntro To C++ - Class #21: Files
Intro To C++ - Class #21: Files
 
Leveraging Structured Data To Reduce Disk, IO & Network Bandwidth
Leveraging Structured Data To Reduce Disk, IO & Network BandwidthLeveraging Structured Data To Reduce Disk, IO & Network Bandwidth
Leveraging Structured Data To Reduce Disk, IO & Network Bandwidth
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
 
Corporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbaiCorporate-informatica-training-in-mumbai
Corporate-informatica-training-in-mumbai
 
Solving real world data problems with Jerakia
Solving real world data problems with JerakiaSolving real world data problems with Jerakia
Solving real world data problems with Jerakia
 
Modern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layerModern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layer
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introduction
 
CPP17 - File IO
CPP17 - File IOCPP17 - File IO
CPP17 - File IO
 
Linux Char Device Driver
Linux Char Device DriverLinux Char Device Driver
Linux Char Device Driver
 
Pf cs102 programming-8 [file handling] (1)
Pf cs102 programming-8 [file handling] (1)Pf cs102 programming-8 [file handling] (1)
Pf cs102 programming-8 [file handling] (1)
 
File handling.pptx
File handling.pptxFile handling.pptx
File handling.pptx
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue Kid
 
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
 
2.4 Optimizing your Visual COBOL Applications
2.4   Optimizing your Visual COBOL Applications2.4   Optimizing your Visual COBOL Applications
2.4 Optimizing your Visual COBOL Applications
 
Real World Application Threat Modelling By Example
Real World Application Threat Modelling By ExampleReal World Application Threat Modelling By Example
Real World Application Threat Modelling By Example
 
Hacker Halted 2014 - RDP Fuzzing And Why the Microsoft Open Protocol Specific...
Hacker Halted 2014 - RDP Fuzzing And Why the Microsoft Open Protocol Specific...Hacker Halted 2014 - RDP Fuzzing And Why the Microsoft Open Protocol Specific...
Hacker Halted 2014 - RDP Fuzzing And Why the Microsoft Open Protocol Specific...
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
 
Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016Treasure Data Summer Internship 2016
Treasure Data Summer Internship 2016
 
Database training for developers
Database training for developersDatabase training for developers
Database training for developers
 

More from RootedCON

Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
RootedCON
 
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
RootedCON
 
Rooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amado
RootedCON
 
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
RootedCON
 
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
RootedCON
 
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
RootedCON
 
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
RootedCON
 
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
RootedCON
 
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
RootedCON
 
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
RootedCON
 
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
RootedCON
 
Rooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molina
RootedCON
 
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
RootedCON
 
Rooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopez
RootedCON
 
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
RootedCON
 
Rooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jara
RootedCON
 
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
RootedCON
 
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
RootedCON
 
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
RootedCON
 
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
RootedCON
 

More from RootedCON (20)

Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
 
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
 
Rooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amado
 
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
 
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
 
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
 
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
 
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
 
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
 
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
 
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
 
Rooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molina
 
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
 
Rooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopez
 
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
 
Rooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jara
 
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
 
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
 
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
 
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
 

Recently uploaded

How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 

Recently uploaded (20)

How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 

Yihan Lian & Zhibin Hu - Smarter Peach: Add Eyes to Peach Fuzzer [rooted2017]

  • 1. Smarter Peach: Add Eyes to Peach Fuzzer Yihan Lian && Zhibin Hu/Qihoo 360 Gear Team
  • 2. About us Yihan Lian • security researcher at Gear team of Qihoo 360 • focused on vulnerability discovery of Open-Source-Software. • got more than a dozen CVE last year (e.g. qemu, ntp, ffmpeg) • Fan of Xavi. Zhibin Hu • security researcher at Gear team of Qihoo 360 • last several years mainly focus on vulnerability discovery and analysis on windows, and receive msrc top 19 in 2014. • recent two years interested in cloud security.
  • 3. Agenda • Motivation • Peach fuzzer framework • Strengths and weaknesses of Peach fuzzer • Add eyes to Peach fuzzer • Performance comparison and conclusion • Demo • Questions
  • 4. motivation • Stop re-inventing the wheel. • Peach is mature, high stability and strong expandability etc. • Coverage-feedback make traditional fuzzer more efficient. • The mutate strategy of AFL is a little crude, not aware of file format.
  • 5. Comparison of mainstream fuzzers FOE Peach AFL Coverage feedback √ Source Code Agnostic √ √ Aware of file format √ aware of protocol format √
  • 7. Peach fuzzer framework • Original Peach core framework Switch Iteration Test Case output to target Monitor Log Fault Normal File Format File Database OriginalCase Mutate
  • 8. Strengths and weaknesses of Peach fuzzer • Strengths • Aware of file format, mutation strategies are more flexible • Smarter when communicating with target • Cross platform • weaknesses • Fat and complex • No Coverage Feedback
  • 9. aware of file format 1/5 • Basic elements: Number, String and Blob etc • “xABxCD” is hex Number • “ABCD” is String • “ABxCD” is Blob • Describe relationships in the data: Relation, Fixup and Hint etc • Relation: 32 is the numbers of bits of “x41x41x41x41” • Fixup: 0x9B0D08F1 is CRC-32 of “x41x41x41x41” • Hint: Assign a more exquisite mutate strategy
  • 10. aware of file format 2/5 • If we need to fuzz a function like this: if(data_head is "PNG"){ switch(data_tag){ case ("IHDR"): if(check_CRC) { Parse(data); core_code; } else return; case ... } }
  • 11. aware of file format 3/5 • Example: • PNG head • Elem_0 = data[0-7] type = Blob mutator = Blob mutators • Elem_1 = data[8 – 0xB] type = Number_hex mutator = hex mutators • //Elem_1 is the length of Elem_3 ~ elem_9. • Elem_2 = data[0xC – 0xF] type = String mutator = ASCII or UNICODE … mutators • Elem_3 = data[0x10 – 0x13] type = Number_hex • Elem_4 = data[0x14 – 0x17] type = Number_hex • Elem_5 = data[0x18] type = Number_hex • …... • Elem_10 = data[0x1D - 0x21] type = Number_CRC_of_elem_2-9 fixup = calculate CRC • //Elem_10 is the CRC of Elem_2 ~ Elem_9.
  • 12. aware of file format 4/5 • DataModel in Peach Pit <DataModel name="PNGTest"> <Blob name="head" length="8“ mutable=“false”/> <Number name="dataLength" size="32" valueType="hex" endian="big"> <Relation type="size" of="chunk" expressionGet="size+4" expressionSet="size-4"/> </Number> <Block name="chunk"> <String name="chunkHead" length="4"> <Hint name=“ValidValues” value=“pHYs;fcTL;IDAT;”/> </String> <Number name="width" size="32" valueType="hex" endian="big"/> <Number name="height" size="32" valueType="hex" endian="big"/> <Number name="enum" size="8" minOccurs="1"/> </Block> <Number name="CRC" size="32" endian="big"> <Fixup class="Crc"> <Param name="ref" value="chunk"/> </Fixup> </Number> </DataModel>
  • 13. aware of file format 5/5 • The mutated file still triggers core code.
  • 14. Smarter when communicating with target 1/3 • Most of fuzzers send mutated-data to target application, but can not receive valuable data from it. • They are hard to fuzz servers which need to communicate client.
  • 15. Smarter when communicating with target 2/3 • Action: Send commands through Publisher. Read and write data from target. • Publisher: I/O interfaces. it could be a file or a traffic data.
  • 16. Smarter when communicating with target 3/3 • Example: … <Action type="input" publisher=“Target" > <DataModel name="InputModel" ref=“model_1" /> </Action> <Action type="slurp" valueXpath="//InputModel//TransID” setXpath="//OutputModel//TransID"/> <Action type="output" publisher=" Target "> <DataModel name="OutputModel” ref=“model_2”/> <Data fileName="data/request" /> </Action> … <Publisher name=“Target" class=“Udp"> <Param name="Host" value=“192.168.11.11" /> <Param name="Port" value=“6666" /> </Publisher>
  • 17. Cross platform • Peach supports all major Operating-Systems. • Windows • Install Microsoft.NET v4 Runtime • Install Debugging Tools for Windows • Unzip Peach binary distribution to a working folder • OS X • Install latest Mono packages • Install Crash Wrangler (download) • Unzip Peach binary distribution to a working folder • Linux • Install latest Mono packages • Ubuntu/Debian: mono-complete package • SUSE: See download instructions • Unzip Peach binary distribution to a working folder • Remote fuzz
  • 18. weaknesses • Fat and complex • Needs to parse the seed file once in every fuzz-iteration. • Need to store too many data models and actions. • No Coverage Feedback • Peach belongs to Black-Box-Fuzzer. • Cannot distinguish which mutated file is more valuable.
  • 19. Add eyes to Peach fuzzer
  • 20. Add eyes to Peach fuzzer
  • 21. Problems • How to detect code coverage • How to return coverage info better • How to store valuable files • How to reproduce valuable files • How to select a valuable file for next fuzz circle
  • 22. How to detect code coverage 1/3 • Use LLVM Pass to insert codes in Basic Block • Source code: IDA output:
  • 23. How to detect code coverage 2/3 • IDA after inserting codes • llcov_pcov_block_call is inserted into the Basic-Block of target program.
  • 24. How to detect code coverage 3/3 • llvm_pcov_block_call: llvm_pcov_block_call function is used to mark whether this Basic-Block was run before, and message to Peach the amount of New-Basic-Block in this fuzz iteration.
  • 25. How to return coverage info better • We need to insert codes in a lot of basic-blocks. In order to be more efficiency, we pass info between llvm_proc_block_call and Peach through shared memory.
  • 26. How to store valuable files 1/3 • We cannot store valuable files directly, since the valuable files does not match the File-Format in most cases, and this could raise a Peach exception. • Just like this: [*] Test 'Default' finished. Error, failed to crack “**datapngtest.png" into "PNGTest": Block 'PNGTest.chunk' has length of 1744830496 bits but buffer only has 168 bits left.
  • 27. How to store valuable files 2/3 • I choose to store the Fuzz status.
  • 28. How to store valuable files 3/3 • What is Fuzz status • Name of seed file – file used to be mutated. • Random status – some numbers used to generate a random number. • Action name – action used to generate this I-File. • Mutator name – mutation strategy name used before. • Etc.
  • 29. How to reproduce valuable files 1/2 • On every switch-teration, Peach will store lots of information about each seed file to a Original- Data-Model object. All of the mutated data is mutated on this object.
  • 30. How to reproduce valuable files 2/2 • What we should to do is modify the original-Data-Model before this iteration beginning. File Format File Database File choice and parse
  • 31. How to select a valuable file for next fuzz circle 1/2 • There will be many valuable files after fuzzing a period of time. • Valuable files info: fileNameIs0::***bin/data/mov/test_1.mov 33 lastMutatorList lastMutatorRun_1.Initial.Action.... fileNameIs1::***/bin/data/mov/test_1.mov 32 lastMutatorList lastMutatorRun_1.Initial.Action.... lastMutatorList lastMutatorRun_1.Initial.Action.... fileNameIs2::***bin/data/mov/test_2.mov ...
  • 32. How to select a valuable file for next fuzz circle 2/2 • If a valuable file gets more New_Block_Counts, it will get more weight. And if the mutated files mutated from it get New_Block_Counts else, the weight of it will increase at the same time. Whereas: the weight will decrease. This strategy decrease or increase the weight in linear.
  • 34. Performance comparison and conclusion • After fuzzing FFMPEG with mutating MOV-file 24 hours by Peach-original, Peach-cov and AFL , the difference between the amount of triggered source code related with MOV-file is very clear. • For the AFL case, it will trigger other code which is not relevant with MOV-file, so we only calculate relevant part. 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 triggeredcodepercentage hours original have_weight afl
  • 35. Performance comparison and conclusion • Preponderance: • Is more efficient than original Peach fuzzer • Is more efficient than AFL when comparing the depth of triggered source code. • Future work: • Strategy of valuable-file chosen • use Markov chain like AFL-FAST • add weight on mutators • Performance improvement • use fork-server like AFL • Automatic learn the format • use machine learning like: https://arxiv.org/pdf/1701.07232.pdf
  • 36. DEMO
  • 38. Thank you Yihan Lian && Zhibin Hu/Gear Team, Qihoo 360 Inc lianyihan@360.cn huzhibin@360.cn