Home  Home     I   Contact Us  Contact Us  
 
    About the Conference
    Conference Highlights
    Who Should Attend
    Advisory Board
    Vision Statements
    Invitation to be a Speaker
    Leadership RecognizedTM
    Suggested Topics
    Conference Speakers
    Conference Programe
    Conference Tutorials
    Papers and Practices selected
  for Publishing
    Best Papers /
  Practices Submitted
    About Sponsors
    Sponsorship Opportunities
    Past STC Conferences
    Testimonials
    Picture Gallery
    Register
    Venue
    About Organizers
    Contact Us
 Conference Tutorials   November 09 – November 25, 2009
Rahul Verma
FUZZING - Ensuring Software Security through Automated Data Corruption
 Rahul Verma, McAfee
 Bangalore: November 23, 2009

Workshop Overview
Fuzzing is a buzz word today. With its origin from the world of academic projects, it has found its way to the heart of companies like Microsoft, McAfee etc and many independent security researchers. It has become an essential part of the Security Development Life Cycle in these organizations and is known to find a high percentage of security issues as compared to other techniques. Fuzzing has been identified as a black box software testing technique. With some basic knowledge of internal implementation of the application through its manuals and other sources, it can result into a very powerful way of finding bugs. Although it is mostly known for finding security vulnerabilities, it is very useful in finding unexpected behavior of the application and its error handling capabilities in general.

Workshop Pre-requisites
Some experience in any form of testing. Patience to concentrate on learning new concepts.

Who Should Attend
The tutorial is meant for software testers, leads and managers with fascination for security testing. It would help them in thinking about the technical aspects and validating the usefulness of implementing fuzzing.

Workshop Contents
I. Introduction
Defining Fuzzing
Its relevance to testers
History and Research done so far
Fuzzing as an automated testing technique
Existing tools and frameworks

II. Before we discuss fuzzing
Generation and Mutation of Data
Binary Data
Packing
Little Endian/Big Endian
Data Formats: Network packets/File formats
Tools (with demo)
Hex Editors
Network Package capturing - Ethereal
Information gathering - Reconnaissance
RegMon
FileMon
Process explorer
Which Programming Language is suitable?

III. Fuzzing Process (TIGEMA)

Target Identification
Input Vectors
Generation
Execution
Monitoring
Analysis

IV. Fuzzing types

File fuzzing
Registry fuzzing
Web Application fuzzing
Network Application fuzzing
Browser fuzzing

V. Fuzz Heuristics
Common Attack patterns

VI. Demo on Fuzzing tools

API Fuzzer
CLI Fuzzer
Framework: A popular free/open-source fuzzing framework (e.g. Peach)
  Generic File Fuzzer: A popular free/open-source fuzzing tool (e.g. FileFuzz)

VII. Designing a fuzzing Framework/Tool
Design Snapshot
Design considerations

IX. Further steps

X. References and Conclusion

Exercises
The workshop would be interactive and the participants would work on a common exercise which will be revisited multiple times.

Demonstration
The workshop would demonstrate a custom fuzzing script and vulnerability analysis of a buffer overflow.

Participant Take Away
Participants would learn an automated testing technique known to find a high percentage of vulnerabilities reported.

Rahul Verma is QA Tech Lead for Casper Core team at McAfee India. With an experience of 7 years in the industry, he has explored the areas of security testing, large scale performance testing and database migration projects. He is a core member of the McAfee Global Performance Testing Team and a Python trainer in the McAfee Automation Club. Rahul has presented at several conferences, organizations and academic institutions including CONQUEST-2009 (Germany), STeP-IN, ISQT, TEST2008, IIT Madras, Yahoo, BWST-1 and STIG. His recent presentations were on the subjects of Fuzzing, Buffer Overflow Exploitation, Python, Performance Engineering COE, Web Application Security and User Behavior & Performance Perception Analysis (UBPPA). He is a member of Indian Testing Board and is one of the authors of ISTQB Foundation syllabus (2009). He got the Testing Thought Leadership Award at TEST2008 conference for his website www.testingperspective.com, along with the Best Innovative Paper Award for his paper on design of Fuzzing Frameworks.