List

I am going to present an extended tutorial session on the subject of fuzzing at STeP-IN Security Theme Conference to held on April 16-17, 2009 at Pune. To make it further interesting and useful, I am going to be accompanied by Sethilvel Chidambaram who is a Senior Project Lead at McAfee with a very good experience in the area of anti-virus solutions.

Here is the summary and agenda of the presentation:

FUZZING – Ensuring Software Security through Automated Data Corruption.

Introduction

Fuzzing is about finding possible security issues with software through data corruption. The software in discussion might be a desktop application, a network daemon, an API or anything you could think of. Fuzzing is extensively used by security researchers and large scale product development companies. It has become an essential part of the Security Development Life Cycle in many organizations and is known to find a high percentage of security issues as compared to other techniques.

All in all, fuzzing is a good and easy way to test software for security issues. A software tester can further contribute in the area by brushing up skills on threat modeling for analyzing various input vectors and associated threats, code coverage to check effectiveness of fuzzing tool, core dump analysis to understanding cause of the crashes captured and vulnerability analysis to associate crashes to a possible vulnerability that could be exploited.

Fuzzing should not be thought of as a replacement for other forms of testing. It should be a new form of testing added to the existing tests being conducted.

Pre-Requisites

Beginner-level Software Testing Experience

Who Should Attend?

Anyone with an urge to learn and experiment around security testing

Session Flow

Introduction

  • Defining Fuzzing
  • Its relevance to testers
  • History and Research done so far
  • Fuzzing as an automated testing technique
  • Existing tools and frameworks

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?

Fuzzing Process (TIGEMA)

  • Target Identification
  • Input Vectors
  • Generation
  • Execution
  • Monitoring
  • Analysis

Fuzzing types

  • File fuzzing
  • Environment variables fuzzing
  • Registry fuzzing
  • Web Application fuzzing
  • Network Application fuzzing
  • Browser fuzzing

Fuzz Heuristics

  • Common Attack patterns

Demo on Fuzzing tools

  • API Fuzzer
  • CLS 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)

Designing a fuzzing Framework/Tool

  • Design Snapshot
  • Design considerations

Further steps

References and Conclusion

You can find registration and other details on the STeP-IN Forum Security Testing Conference page.

See you at the conference!

Rahul Verma

Site Admin, Testing Perspective

Leave a Reply

Your email address will not be published. Required fields are marked *