SlideShare a Scribd company logo
Security Testing: Fuzzing 
Andrei Rubaniuk for 
Seattle Code Camp 2012
Agenda 
• Introduction 
• What is Fuzzing? 
• Why Fuzz? 
• How to Fuzz? 
• Fuzzing Demo 
• Q&A 
© 2012 Andrei Rubaniuk 2
Introduction 
Who am I? 
– Software Engineer in Mobile space since 2005 
– Past Projects: SlovoEd (PalmOS), Symbian OS/UIQ, 
SCMDM, Zune, Windows Phone 7 and 7.5 
© 2012 Andrei Rubaniuk 3
Introduction (continued) 
What am doing now? 
– At Microsoft since October 2008 
– Current organization – Windows Phone 
• SDL Tools Team 
• Helping Windows Phone org to Fuzz their code 
© 2012 Andrei Rubaniuk 4
What is Fuzzing? 
• Testing technique that involves providing 
malformed inputs to software 
• Fuzzed (attacked) process is monitored for 
exceptions, crashes, memory leaks 
• Is commonly used to test programs that 
receive data from unsafe sources (i.e. e-mail 
client, browser, media player) 
© 2012 Andrei Rubaniuk 5
What is Fuzzing? (continued) 
• Attacked process usually has parser (network 
protocols, document viewers) 
• Especially useful against proprietary software 
as it does not require access to source code 
• Became widely used in the past 10-15 years 
© 2012 Andrei Rubaniuk 6
What is Fuzzing? (continued) 
• Is not a substitute for other types of testing 
(unit tests, BVTs/FVTs, stress, etc.) 
• Cannot prove that your code is bug free 
• But will increase confidence in the correctness 
of your code! 
© 2012 Andrei Rubaniuk 7
What is Fuzzing? (continued) 
• Types of Fuzzing 
– Mutational 
• Smart – knows/learns about the data it mutates 
• Dumb – mutates data with no regard to its format 
– Generational 
• Allows to define specific data format (i.e. file structure) 
© 2012 Andrei Rubaniuk 8
Why Fuzz? 
• Relatively simple testing technique 
• Very effective at finding security bugs (DoS, 
Buffer Overflow, etc.) 
– Widely used by pentesters and hackers 
– Required by Microsoft Secure Development Lifecycle 
(SDL) 
• Inexpensive to implement 
– There are many free and commercial products (from 
iDefense, Codenomicon, etc.) 
– You can quickly implement your own fuzzer! 
• It’s Fun! 
© 2012 Andrei Rubaniuk 9
How to Fuzz? 
• Choose attacked program 
• Make sure generated input thoroughly covers 
possible input space of attacked program 
– To be efficient it should have good code coverage 
• Start Fuzzing and be Patient 
– Lots of bugs are found only after 100K or even 
millions of iterations 
– For example, for File Fuzzing Microsoft SDL 
requires min 100K iterations 
© 2012 Andrei Rubaniuk 10
How to Fuzz? (continued) 
• Analyze found issues 
• Fuzzed data is your repro – open a bug! 
• Iterate and be Patient! 
© 2012 Andrei Rubaniuk 11
Fuzzing Demo: MiniFuzz 
• Free basic file fuzzing tool written by 
Microsoft SDL Team 
• Web: 
http://www.microsoft.com/security/sdl/adopt 
/tools.aspx 
© 2012 Andrei Rubaniuk 12
Fuzzing Demo: MiniFuzz (continued) 
© 2012 Andrei Rubaniuk 13
Fuzzing Demo: fuzzed code 
© 2012 Andrei Rubaniuk 14
Fuzzing Demo: Actual Demo 
© 2012 Andrei Rubaniuk 15
Q&A 
© 2012 Andrei Rubaniuk 16
Follow-up 
• Questions? Suggestions? Feedback? 
© 2012 Andrei Rubaniuk 17

More Related Content

What's hot (20)

PPTX
Testes Unitários
Jadson Santos
 
PPT
Google test training
Thierry Gayet
 
PPTX
TDD Best Practices
Attila Bertók
 
PDF
Unit Testing in Kotlin
Egor Andreevich
 
PDF
Mutation Testing
ESUG
 
PPTX
Saving Time By Testing With Jest
Ben McCormick
 
PPS
Unit Testing
Anuj Arora
 
PPTX
Unit tests & TDD
Dror Helper
 
PDF
Unit Testing in Python
Haim Michael
 
PDF
Effective testing with pytest
Hector Canto
 
PPTX
Unit testing
princezzlove
 
PPTX
Unit Testing
Sergey Podolsky
 
PDF
Clean code
Bulat Shakirzyanov
 
PPT
Test Driven Development with PHPUnit
Mindfire Solutions
 
PDF
Unit testing with JUnit
Thomas Zimmermann
 
PPTX
Mockito
sudha rajamanickam
 
PDF
TDD and BDD and ATDD
Anuar Nurmakanov
 
PPTX
Java Unit Testing
Nayanda Haberty
 
PPTX
Metasploit
Parth Sahu
 
PPTX
An Introduction to Unit Testing
Joe Tremblay
 
Testes Unitários
Jadson Santos
 
Google test training
Thierry Gayet
 
TDD Best Practices
Attila Bertók
 
Unit Testing in Kotlin
Egor Andreevich
 
Mutation Testing
ESUG
 
Saving Time By Testing With Jest
Ben McCormick
 
Unit Testing
Anuj Arora
 
Unit tests & TDD
Dror Helper
 
Unit Testing in Python
Haim Michael
 
Effective testing with pytest
Hector Canto
 
Unit testing
princezzlove
 
Unit Testing
Sergey Podolsky
 
Clean code
Bulat Shakirzyanov
 
Test Driven Development with PHPUnit
Mindfire Solutions
 
Unit testing with JUnit
Thomas Zimmermann
 
TDD and BDD and ATDD
Anuar Nurmakanov
 
Java Unit Testing
Nayanda Haberty
 
Metasploit
Parth Sahu
 
An Introduction to Unit Testing
Joe Tremblay
 

Viewers also liked (6)

PDF
Distributed Fuzzing Framework Design
bannedit
 
PDF
Fuzzing sucks!
Yury Chemerkin
 
PPTX
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Jeremy Brown
 
PPTX
0-knowledge fuzzing
Vincenzo Iozzo
 
PDF
FUZZING & SOFTWARE SECURITY TESTING
MuH4f1Z
 
PDF
Introduction to Browser Fuzzing
n|u - The Open Security Community
 
Distributed Fuzzing Framework Design
bannedit
 
Fuzzing sucks!
Yury Chemerkin
 
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Jeremy Brown
 
0-knowledge fuzzing
Vincenzo Iozzo
 
FUZZING & SOFTWARE SECURITY TESTING
MuH4f1Z
 
Introduction to Browser Fuzzing
n|u - The Open Security Community
 
Ad

Similar to Security Testing: Fuzzing (20)

PPTX
Autopsy 3: Free Open Source End-to-End Windows-based Digital Forensics Platform
Basis Technology
 
PPTX
Autopsy 3: Free Open Source End-to-End Windows-based Digital Forensics Platform
Jason Letourneau
 
PDF
Meetup tdd
Santosh Ojha
 
PPTX
Cyber security - It starts with the embedded system
Rogue Wave Software
 
PDF
The (Memory) Safety Dance - SAS 2017 keynote
MarkDowd13
 
PDF
Building world-class security response and secure development processes
David Jorm
 
PPTX
September 13, 2016: Security in the Age of Open Source:
Black Duck by Synopsys
 
PDF
Mengenal ZEUS Botnet Lebih Dekat
Charles Lim
 
PPTX
Lecture 1 Slide introduction to object oriented programming .pptx
amare63
 
PPTX
Started In Security Now I'm Here
Christopher Grayson
 
PDF
DT project.pdf
AkshayKumar895051
 
PDF
A (not-so-quick) Primer on iOS Encryption David Schuetz - NCC Group
EC-Council
 
PDF
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
Felipe Prado
 
PPTX
SplunkLive! Charlotte Bronto Software
Splunk
 
PDF
Beyond security testing
Cu Nguyen
 
PDF
Samsung & The Path to Open Source Leadership (OBC)
Samsung Open Source Group
 
PDF
2013 Toorcon San Diego Building Custom Android Malware for Penetration Testing
Stephan Chenette
 
PPT
Information Assurance And Security - Chapter 2 - Lesson 4
MLG College of Learning, Inc
 
PDF
IoT is Something to Figure Out
Peter Hoddie
 
Autopsy 3: Free Open Source End-to-End Windows-based Digital Forensics Platform
Basis Technology
 
Autopsy 3: Free Open Source End-to-End Windows-based Digital Forensics Platform
Jason Letourneau
 
Meetup tdd
Santosh Ojha
 
Cyber security - It starts with the embedded system
Rogue Wave Software
 
The (Memory) Safety Dance - SAS 2017 keynote
MarkDowd13
 
Building world-class security response and secure development processes
David Jorm
 
September 13, 2016: Security in the Age of Open Source:
Black Duck by Synopsys
 
Mengenal ZEUS Botnet Lebih Dekat
Charles Lim
 
Lecture 1 Slide introduction to object oriented programming .pptx
amare63
 
Started In Security Now I'm Here
Christopher Grayson
 
DT project.pdf
AkshayKumar895051
 
A (not-so-quick) Primer on iOS Encryption David Schuetz - NCC Group
EC-Council
 
DEF CON 24 - Dinesh and Shetty - practical android application exploitation
Felipe Prado
 
SplunkLive! Charlotte Bronto Software
Splunk
 
Beyond security testing
Cu Nguyen
 
Samsung & The Path to Open Source Leadership (OBC)
Samsung Open Source Group
 
2013 Toorcon San Diego Building Custom Android Malware for Penetration Testing
Stephan Chenette
 
Information Assurance And Security - Chapter 2 - Lesson 4
MLG College of Learning, Inc
 
IoT is Something to Figure Out
Peter Hoddie
 
Ad

Recently uploaded (20)

PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Per Axbom: The spectacular lies of maps
Nexer Digital
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Per Axbom: The spectacular lies of maps
Nexer Digital
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
The Future of AI & Machine Learning.pptx
pritsen4700
 

Security Testing: Fuzzing

  • 1. Security Testing: Fuzzing Andrei Rubaniuk for Seattle Code Camp 2012
  • 2. Agenda • Introduction • What is Fuzzing? • Why Fuzz? • How to Fuzz? • Fuzzing Demo • Q&A © 2012 Andrei Rubaniuk 2
  • 3. Introduction Who am I? – Software Engineer in Mobile space since 2005 – Past Projects: SlovoEd (PalmOS), Symbian OS/UIQ, SCMDM, Zune, Windows Phone 7 and 7.5 © 2012 Andrei Rubaniuk 3
  • 4. Introduction (continued) What am doing now? – At Microsoft since October 2008 – Current organization – Windows Phone • SDL Tools Team • Helping Windows Phone org to Fuzz their code © 2012 Andrei Rubaniuk 4
  • 5. What is Fuzzing? • Testing technique that involves providing malformed inputs to software • Fuzzed (attacked) process is monitored for exceptions, crashes, memory leaks • Is commonly used to test programs that receive data from unsafe sources (i.e. e-mail client, browser, media player) © 2012 Andrei Rubaniuk 5
  • 6. What is Fuzzing? (continued) • Attacked process usually has parser (network protocols, document viewers) • Especially useful against proprietary software as it does not require access to source code • Became widely used in the past 10-15 years © 2012 Andrei Rubaniuk 6
  • 7. What is Fuzzing? (continued) • Is not a substitute for other types of testing (unit tests, BVTs/FVTs, stress, etc.) • Cannot prove that your code is bug free • But will increase confidence in the correctness of your code! © 2012 Andrei Rubaniuk 7
  • 8. What is Fuzzing? (continued) • Types of Fuzzing – Mutational • Smart – knows/learns about the data it mutates • Dumb – mutates data with no regard to its format – Generational • Allows to define specific data format (i.e. file structure) © 2012 Andrei Rubaniuk 8
  • 9. Why Fuzz? • Relatively simple testing technique • Very effective at finding security bugs (DoS, Buffer Overflow, etc.) – Widely used by pentesters and hackers – Required by Microsoft Secure Development Lifecycle (SDL) • Inexpensive to implement – There are many free and commercial products (from iDefense, Codenomicon, etc.) – You can quickly implement your own fuzzer! • It’s Fun! © 2012 Andrei Rubaniuk 9
  • 10. How to Fuzz? • Choose attacked program • Make sure generated input thoroughly covers possible input space of attacked program – To be efficient it should have good code coverage • Start Fuzzing and be Patient – Lots of bugs are found only after 100K or even millions of iterations – For example, for File Fuzzing Microsoft SDL requires min 100K iterations © 2012 Andrei Rubaniuk 10
  • 11. How to Fuzz? (continued) • Analyze found issues • Fuzzed data is your repro – open a bug! • Iterate and be Patient! © 2012 Andrei Rubaniuk 11
  • 12. Fuzzing Demo: MiniFuzz • Free basic file fuzzing tool written by Microsoft SDL Team • Web: http://www.microsoft.com/security/sdl/adopt /tools.aspx © 2012 Andrei Rubaniuk 12
  • 13. Fuzzing Demo: MiniFuzz (continued) © 2012 Andrei Rubaniuk 13
  • 14. Fuzzing Demo: fuzzed code © 2012 Andrei Rubaniuk 14
  • 15. Fuzzing Demo: Actual Demo © 2012 Andrei Rubaniuk 15
  • 16. Q&A © 2012 Andrei Rubaniuk 16
  • 17. Follow-up • Questions? Suggestions? Feedback? © 2012 Andrei Rubaniuk 17