Contact Us Today 01642 716680

Fuzzing

Definition: Fuzzing, also known as fuzz testing, is a software testing technique that involves inputting large amounts of random data, called "fuzz," into a software system in order to uncover coding errors and security loopholes. The primary objective of fuzzing is to identify potential vulnerabilities that could be exploited by malicious actors, such as buffer overflows, crashes, memory leaks, or other unhandled exceptions that could compromise security.

Fuzzers can be either generic or custom-built for specific applications. This automated testing process involves a high attack surface exploration rate and can rapidly expose weaknesses that might be otherwise difficult to detect. It is an essential part of a comprehensive security testing regime and is particularly useful during the development phase of software to strengthen the product before it goes to market.

In the context of cyber security, fuzzing helps to preemptively find and fix bugs that could be used in cyber attacks. Understanding and employing fuzzing enables organisations to harden their applications against potential future exploitation.

Key Characteristics:

  • Automated Testing: Typically involves automated tools to send unexpected or malformed data inputs into a system.
  • Randomness: Inputs are often random or semi-random, designed to trigger faults.
  • Dynamic Analysis: Fuzzing is executed while the program is running, as opposed to static code analysis.
  • Security and Stability: Identifies security vulnerabilities and operational stability issues within software applications.

Examples:

  • Real-World Example: A software company uses fuzzing to test a new internet browser’s ability to handle unexpected inputs, thereby enhancing the product’s security against possible future exploits.
  • Hypothetical Scenario: A cybersecurity team performs fuzz tests on a financial transaction application to uncover any processing errors that could lead to security breaches or application crashes.

Related Terms:

  • Static Code Analysis: The examination of source code before it is run, which is complemented by dynamic techniques such as fuzzing.
  • Penetration Testing: Security testing in which a system is analysed for vulnerabilities that could be exploited by an attacker, potentially using fuzzing tools as part of the assessment.
  • Vulnerability Assessment: A comprehensive evaluation of security flaws, which can include fuzzing to find weak points within the software.

What is the OWASP Top 10: Download our flash cards to find out.

Inside you will find a description of the most common web vulnerabilities.

Contact us

Get a free, no obligation quote from one of our expert staff.