This document provides an overview of zero-day vulnerabilities and techniques for discovering them, including source code auditing and fuzzing. It discusses identifying entry points, input validations, and vulnerable functions by analyzing source code. Fuzzing is introduced as providing invalid or unexpected data to test for crashes or failures. Common fuzzing methods and the fuzzing lifecycle are outlined. Specific tools for source code auditing like RIPS and fuzzing like JBroFuzz are also mentioned.
18. What is Zero day ?
Zero-day attacks occur during the
vulnerability window that exists in the
time between when a vulnerability is first
exploited and when software developers
start to develop a counter to that threat
Source : wikipedia
40. What is Fuzzing ?
Fuzzing is a software testing technique, often automated or semi-
automated, that involves providing invalid, unexpected, or
random data to the inputs of a computer program. The program
is then monitored for exceptions such as crashes, or failing built-
in code assertions or for finding potential memory leaks. Fuzzing
is commonly used to test for security problems in software or
computer systems.
41. What exactly it is ?
1. No Rules for fuzzing
2. No guarantee for fuzzing
42. Fuzzing Methods
1. Sending random data
2. Manual protocol mutation
3. Bruteforce testing
4. Automatic protocol generation
testing
50. So you know now
* what is a zero day ?
* what is the methodology used ?
* Information gathering of the application
or product
* Discovered or previous vulnerabilities of
product
* Study the architecture of product
51. * Identify the input points
* Source code review
* Source code review (one demo) demo of
RIPS and grep
* Fuzzing
* Fuzzing (one demo) demo of JBroFuzz
* Tools used for code review and Fuzzing