SlideShare a Scribd company logo
Fault Models and Fuzz TechniquesShmuel GershonSTAREAST 2011Copyright © CC:BY-NC-SA 2007-11, Shmuel Gershon.
About...Shmuel Gershon
Testing Engineer
http://testing.gershon.info
Creator of Rapid Reporter
Twitter: @sgershon, Skype: sgershon, shmuel@gershon.infoDisclaimer:Names and Brands referenced herein may be claimed as property of third parties
Views expressed in this presentation are solely my own, and do not in any manner represent the views of my employer
Information in this presentation is provided 'as is' without any warranties or representations of any kindCopyright © CC:BY-NC-SA 2007-11
Fault Models and FuzzTalk ObjectivesUnderstand the principles of the techniquesMeet tools available for both techniquesLearn to apply the methods (in different app types)Perceive drawbacks and difficultiesLay down a foundation for further researchHave at least one new idea for your tests  :)Testing is questioning a product in order to evaluate its value to a person that mattersAdapted from Jerry Weinberg + James Bach + Michael BoltonCopyright © CC:BY-NC-SA 2007-11
Putting Concepts into ContextAvailabilityRobustnessDependabilitySecurityReliabilityStabilityCopyright © CC:BY-NC-SA 2007-11
Fault Models and FuzzTalk OutlineFault ModelsOverviewExamples + DemosPitfalls and TricksFuzzingOverviewExamples + DemosPitfalls and TricksSummary and QuestionsCopyright © CC:BY-NC-SA 2007-11
Fault Models OverviewConceptual DiagramOS – Disk StorageInjectionRuntimeFaultLayerApplication Under TestOS – User I/OOS - MemoryOS - NetworkCopyright © CC:BY-NC-SA 2007-11
Fault Models Overview – DefinitionDefinitions:Introducing faults in order to test (error handling) code paths, that might otherwise rarely be followedAssess the robustness of software by checking it's reaction to adverse eventsPurposeValidation of: Robustness, Dependability (Availability) and SecurityAlso known as: Recovery Code test, Fault Injection, Negative test, Error Handling, Stress test...Copyright © CC:BY-NC-SA 2007-11
Fault Models Overview – ApproachesRandom Runtime Fault Injections:A tool control the type, time and location to ‘attack’. May modify the coverage of a set of tests (issues found may be harder to reproduce or debug).Initiated Runtime Fault Injection:Specific tests in which the faults are controlled at specific point, aiming a clear error handling flow.Bugs found in this approach may be easier to reproduce, accept and fix.(This is the approach we'll focus on).Copyright © CC:BY-NC-SA 2007-11
Fault Models Overview – ReactionsReactions against Runtime Fault BugsIt will never happen in real lifeA user will not do thatIt should fail in such conditionsIt is an unsupported scenarioWe can’t fix thisIt is a third-party problemHow would you reply?Whose decision it ultimately is?Copyright © CC:BY-NC-SA 2007-11
Fault Injection – Example #1Memory Starvation:Refuses to allocate a memory upon request (Insufficient Memory).Pinball:Silently skips the action,no harm done.WordPad:Disappears with your most valuable workCopyright © CC:BY-NC-SA 2007-11
Fault Injection – Example #2Network Errors:Simulates an error responses for common network requests and resources.Browser Wars:One browser survives

More Related Content

What's hot (20)

PPT
Manual testing visonia
VisoniaTechlab
 
PDF
Software Quality Assurance
Pramod Parajuli
 
PPT
Testing Presentation
sureshpkumar
 
PPT
Software Testing_Overview
Subramanya Mudukutore
 
DOC
Document defect tracking for improving product quality and productivity
ch_tabitha7
 
PDF
2007 EBU Training VRT news security and continuity
European Broacasting Union
 
PDF
Software testing
Rico-j Laurente
 
PPT
Software testing overview by subbu
palla subrahmanyam
 
PDF
Software Testing Fundamentals
jothisekaran
 
PPT
179 black-box-software-testing-copyright-2003-cem-kaner1652
ngothanhtungth
 
PDF
Software engineering principles (marcello thiry)
Marcello Thiry
 
PPTX
Software testability slide share
BeBo Technology
 
DOCX
Risk analysis
supportc2go
 
PDF
5-Ways-to-Revolutionize-Your-Software-Testing
Mary Clemons
 
DOCX
Interview questions
sivareddyeda
 
PPTX
Quality & Reliability in Software Engineering
SivaRamaSundar Devasubramaniam
 
PDF
Winning strategies in Test Automation
XBOSoft
 
PPT
Software Testability
Kai Feng Zhang
 
PPTX
Bug Tracking System
Kishan Acharya
 
PPTX
5 Ways to Reduce 3rd Party Developer Risk
Security Innovation
 
Manual testing visonia
VisoniaTechlab
 
Software Quality Assurance
Pramod Parajuli
 
Testing Presentation
sureshpkumar
 
Software Testing_Overview
Subramanya Mudukutore
 
Document defect tracking for improving product quality and productivity
ch_tabitha7
 
2007 EBU Training VRT news security and continuity
European Broacasting Union
 
Software testing
Rico-j Laurente
 
Software testing overview by subbu
palla subrahmanyam
 
Software Testing Fundamentals
jothisekaran
 
179 black-box-software-testing-copyright-2003-cem-kaner1652
ngothanhtungth
 
Software engineering principles (marcello thiry)
Marcello Thiry
 
Software testability slide share
BeBo Technology
 
Risk analysis
supportc2go
 
5-Ways-to-Revolutionize-Your-Software-Testing
Mary Clemons
 
Interview questions
sivareddyeda
 
Quality & Reliability in Software Engineering
SivaRamaSundar Devasubramaniam
 
Winning strategies in Test Automation
XBOSoft
 
Software Testability
Kai Feng Zhang
 
Bug Tracking System
Kishan Acharya
 
5 Ways to Reduce 3rd Party Developer Risk
Security Innovation
 

Viewers also liked (12)

PPT
FPLDs
Abhilash Nair
 
PPTX
Presentaciónseminario5
EstGonRom
 
PPTX
Menu a punti
foodinsider
 
PPT
ENJ-400-Tribunales de Trabajo
ENJ
 
PPT
CPLD & FPLD
Abhilash Nair
 
PPTX
Owasp mobile top 10
Pawel Rzepa
 
PPTX
Escuela para padres: Estilos de Crianza
Juan Mubayed
 
PPTX
Доставка зловредов через облака
Positive Hack Days
 
PPTX
FPGA Architecture Presentation
omutukuda
 
PPTX
Field programable gate array
Neha Agarwal
 
PPTX
What is FPGA?
GlobalLogic Ukraine
 
PPT
FPGA
subin mathew
 
Presentaciónseminario5
EstGonRom
 
Menu a punti
foodinsider
 
ENJ-400-Tribunales de Trabajo
ENJ
 
CPLD & FPLD
Abhilash Nair
 
Owasp mobile top 10
Pawel Rzepa
 
Escuela para padres: Estilos de Crianza
Juan Mubayed
 
Доставка зловредов через облака
Positive Hack Days
 
FPGA Architecture Presentation
omutukuda
 
Field programable gate array
Neha Agarwal
 
What is FPGA?
GlobalLogic Ukraine
 
Ad

Similar to Fault Models and Fuzzing (20)

PPTX
Blaze Information Security: Slaying bugs and improving software security thro...
Blaze Information Security
 
PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Codemotion
 
PDF
FUZZING & SOFTWARE SECURITY TESTING
MuH4f1Z
 
PDF
Az4301280282
IJERA Editor
 
PDF
Fuzzing underestimated method of finding hidden bugs
Pawel Rzepa
 
PDF
[Wroclaw #4] Fuzzing - underestimated method of finding hidden bugs
OWASP
 
PPT
Perform fuzz on appplications web interface
IndicThreads
 
PPTX
nullcon 2011 - Fuzzing with Complexities
n|u - The Open Security Community
 
PPTX
Fuzzing101: Unknown vulnerability management for Telecommunications
Codenomicon
 
PDF
How to find Zero day vulnerabilities
Mohammed A. Imran
 
PPTX
Showing How Security Has (And Hasn't) Improved, After Ten Years Of Trying
Dan Kaminsky
 
PDF
Fuzzing: Challenges and Reflections
mboehme
 
PPTX
OWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust Theorem
OWASP
 
PPT
Fuzzing 101 Webinar on Zero Day Management
Codenomicon
 
PDF
Democratizing Fuzzing at Scale by Abhishek Arya
abh.arya
 
PDF
Ch 16 & 17 Fault Injection & Fuzzing
Sam Bowne
 
PDF
Fuzzing: The New Unit Testing
Dmitry Vyukov
 
PPTX
Fuzzing
Khalegh Salehi
 
PPTX
Security Testing: Fuzzing
Andrei Rubaniuk
 
PPTX
IFIP2023-Abhik.pptx
Abhik Roychoudhury
 
Blaze Information Security: Slaying bugs and improving software security thro...
Blaze Information Security
 
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Codemotion
 
FUZZING & SOFTWARE SECURITY TESTING
MuH4f1Z
 
Az4301280282
IJERA Editor
 
Fuzzing underestimated method of finding hidden bugs
Pawel Rzepa
 
[Wroclaw #4] Fuzzing - underestimated method of finding hidden bugs
OWASP
 
Perform fuzz on appplications web interface
IndicThreads
 
nullcon 2011 - Fuzzing with Complexities
n|u - The Open Security Community
 
Fuzzing101: Unknown vulnerability management for Telecommunications
Codenomicon
 
How to find Zero day vulnerabilities
Mohammed A. Imran
 
Showing How Security Has (And Hasn't) Improved, After Ten Years Of Trying
Dan Kaminsky
 
Fuzzing: Challenges and Reflections
mboehme
 
OWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust Theorem
OWASP
 
Fuzzing 101 Webinar on Zero Day Management
Codenomicon
 
Democratizing Fuzzing at Scale by Abhishek Arya
abh.arya
 
Ch 16 & 17 Fault Injection & Fuzzing
Sam Bowne
 
Fuzzing: The New Unit Testing
Dmitry Vyukov
 
Security Testing: Fuzzing
Andrei Rubaniuk
 
IFIP2023-Abhik.pptx
Abhik Roychoudhury
 
Ad

Recently uploaded (20)

PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
July Patch Tuesday
Ivanti
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 

Fault Models and Fuzzing

  • 1. Fault Models and Fuzz TechniquesShmuel GershonSTAREAST 2011Copyright © CC:BY-NC-SA 2007-11, Shmuel Gershon.
  • 6. Twitter: @sgershon, Skype: sgershon, [email protected]:Names and Brands referenced herein may be claimed as property of third parties
  • 7. Views expressed in this presentation are solely my own, and do not in any manner represent the views of my employer
  • 8. Information in this presentation is provided 'as is' without any warranties or representations of any kindCopyright © CC:BY-NC-SA 2007-11
  • 9. Fault Models and FuzzTalk ObjectivesUnderstand the principles of the techniquesMeet tools available for both techniquesLearn to apply the methods (in different app types)Perceive drawbacks and difficultiesLay down a foundation for further researchHave at least one new idea for your tests :)Testing is questioning a product in order to evaluate its value to a person that mattersAdapted from Jerry Weinberg + James Bach + Michael BoltonCopyright © CC:BY-NC-SA 2007-11
  • 10. Putting Concepts into ContextAvailabilityRobustnessDependabilitySecurityReliabilityStabilityCopyright © CC:BY-NC-SA 2007-11
  • 11. Fault Models and FuzzTalk OutlineFault ModelsOverviewExamples + DemosPitfalls and TricksFuzzingOverviewExamples + DemosPitfalls and TricksSummary and QuestionsCopyright © CC:BY-NC-SA 2007-11
  • 12. Fault Models OverviewConceptual DiagramOS – Disk StorageInjectionRuntimeFaultLayerApplication Under TestOS – User I/OOS - MemoryOS - NetworkCopyright © CC:BY-NC-SA 2007-11
  • 13. Fault Models Overview – DefinitionDefinitions:Introducing faults in order to test (error handling) code paths, that might otherwise rarely be followedAssess the robustness of software by checking it's reaction to adverse eventsPurposeValidation of: Robustness, Dependability (Availability) and SecurityAlso known as: Recovery Code test, Fault Injection, Negative test, Error Handling, Stress test...Copyright © CC:BY-NC-SA 2007-11
  • 14. Fault Models Overview – ApproachesRandom Runtime Fault Injections:A tool control the type, time and location to ‘attack’. May modify the coverage of a set of tests (issues found may be harder to reproduce or debug).Initiated Runtime Fault Injection:Specific tests in which the faults are controlled at specific point, aiming a clear error handling flow.Bugs found in this approach may be easier to reproduce, accept and fix.(This is the approach we'll focus on).Copyright © CC:BY-NC-SA 2007-11
  • 15. Fault Models Overview – ReactionsReactions against Runtime Fault BugsIt will never happen in real lifeA user will not do thatIt should fail in such conditionsIt is an unsupported scenarioWe can’t fix thisIt is a third-party problemHow would you reply?Whose decision it ultimately is?Copyright © CC:BY-NC-SA 2007-11
  • 16. Fault Injection – Example #1Memory Starvation:Refuses to allocate a memory upon request (Insufficient Memory).Pinball:Silently skips the action,no harm done.WordPad:Disappears with your most valuable workCopyright © CC:BY-NC-SA 2007-11
  • 17. Fault Injection – Example #2Network Errors:Simulates an error responses for common network requests and resources.Browser Wars:One browser survives
  • 18. The other crashes!Copyright © CC:BY-NC-SA 2007-11
  • 19. Fault Injection – Example #3Low Resources / Slow or Clogged CPUComputer behaves as a busy or old computer(CPU is busy on other tasks / time scheduler starvation...)Playing to win:Can we escape from death by simply slowing down the rest?Copyright © CC:BY-NC-SA 2007-11
  • 20. Fault Models – NotesFinding bugs can take a long time (but you record important data during the process)Abstract knowledge of the internal flows of the software is imperative for good resultsBugs are received with the comments seen earlierIt is difficult to assess the exposure of such bugsThese points can make it harder to adopt the practices in the company......so be sure to address themCopyright © CC:BY-NC-SA 2007-11
  • 21. Fault Injection Tools ExamplesCanned Heat is free & easy, but buggyLimitations:Does not support .NET apps or ServicesBug: In some systems it will not load or needs to be reloaded between applications.Others:Verifier, AppVerifierSlowProc, HeavyLoadHolodeck - not free.PIN and (soon) the random malloc blockerIn-House or Brute-Force toolsCopyright © CC:BY-NC-SA 2007-11
  • 22. FuzzFuzzFuzzFuzzFuzzFuzzFuzz TestingConceptual DiagramOS – Disk StorageApplication Under TestOS – User I/OOS - MemoryOS - NetworkCopyright © CC:BY-NC-SA 2007-11
  • 23. Fuzz Testing – DefinitionDefinitions:Providing random data which is free of preconceptions to the inputs of a program, in order to reach unexpected statesFuzz explores the points that programmers and testers leave out due to assumption(Data that does not necessarily map to harmful inputs, or to valid inputs)PurposeBuilt-in code assertions, Coding and state assumptionsValidation of: Robustness, Dependability (Availability) and Security (many times it finds buffer overflows)Copyright © CC:BY-NC-SA 2007-11
  • 24. Be only as smart as you have to Fuzz Testing – ApproachesSmart Fuzzers:Organize the input data so it would pass initial filters on the software (or the environments)Dumb Fuzzers:Data is close to random and chaos, in order to avoid assumption pitfallsTest approach:Simple, automated, no assumptions or objectiveCopyright © CC:BY-NC-SA 2007-11
  • 25. Fuzz Testing – ReactionsContrary Reactions are similar, but usually in less extentIt will never happen in real lifeA user will not do thatIt should fail in such conditionsWe can not fix itWhen fuzz finally finds a bug it can be very severe, (crashes? overflows? data loss?)Can take little active time from testers, adoption mostly requires initial investment.Copyright © CC:BY-NC-SA 2007-11
  • 26. Fuzz Testing – Failures to look forCrashesFailing built-in Code AssertionsUndesired (or impossible) statesWrong Error messagesAbsence of error messagesCopyright © CC:BY-NC-SA 2007-11
  • 27. Fuzz Testing – Example #1GUI Fuzzer:Sends random keyboard and mouse events all over the application.Solitaire
  • 28. MS PaintCopyright © CC:BY-NC-SA 2007-11
  • 29. Fuzz Testing – Example #2File Fuzzer:Manipulates a file in order to create a set of randomly modified files.File Fuzzerdemo
  • 30. WordPad:Gives an error message.Open Office:Crashes! and MS Word too!!Copyright © CC:BY-NC-SA 2007-11
  • 31. Fuzz Testing – Examples #3CD-Rom driver:Interface is easy, the Peach Frameworkmakes it automaticWeb HTTP:
  • 33. Web Fuzzer FuzzingWeb fuzzers are very diverse, and are available in many formsCopyright © CC:BY-NC-SA 2007-11
  • 34. Comments on Fuzz TestingFinding bugs can take a long timeKnowledge of the internal flows of the software is no necessary, and it can even hurtDoes not necessarily find software weaknesses in the shortest amount of timeNot every issue found is exploitableDeveloping a smart framework is important in order to achieve efficiency.Copyright © CC:BY-NC-SA 2007-11
  • 35. Fuzz Testing Tools ExamplesFree tools:GUI and Command line:Fuzzer by the University of WisconsinFile manipulation:FileFuzzFuzz Framework:Peach FuzzerList of fuzzers:http://www.infosecinstitute.com/blog/2005/12/fuzzers-ultimate-list.htmlhttp://www.computerdefense.org/2007/01/15/fuzzing-tools/Commercial tools:Network Protocols:Codenomicon’sDefensicsIxiaCopyright © CC:BY-NC-SA 2007-11
  • 36. Fault Models and Fuzz SummaryWe can reach hard-to-reach-in-lab scenarios with these techniques
  • 37. These tests are a good way to prevent(some) surprises
  • 38. Impact of such bugs can be very high!
  • 39. There are tools available, many of them free
  • 40. You can build your own
  • 41. this is not a way of doing, It is a way of thinkingCopyright © CC:BY-NC-SA 2007-11
  • 42. Fault Models and Fuzz Techniques - Learn MoreWikipedia:Fuzz: http://en.wikipedia.org/wiki/Fuzz_testingFault Injection: http://en.wikipedia.org/wiki/Fault_injectionUniversity of Wisconsin-Madison Fuzz Articles and Software:http://www.cs.wisc.edu/~bart/fuzz/Look out! It’s the fuzz:http://iac.dtic.mil/iatac/download/Vol10_No1.pdfFault Injection:“How to Break Software” book by James WhitakerA study on fuzzing effectiveness:http://www.docstoc.com/docs/53958850/Fuzz-By-NumberFuzzing Examples at the Open Wen App Security Project:http://www.owasp.org/index.php/FuzzingAttack your programs before someone else does:http://www.whitestar.linuxbox.org/pipermail/fuzzing/2006-November/000168.htmlCopyright © CC:BY-NC-SA 2007-11
  • 43. Fault Models and FuzzCredits:<stripped in web version>Questions??Copyright © CC:BY-NC-SA 2007-11