Finding instrumentable locations for fuzzing via static binary analysis

Today, the exploitation of vulnerabilities which exists in every software program is still prevalent, leading to unintended repercussions. This highlights the importance of eradicating the pre-existing vulnerabilities before they can be exploited by hackers. In this study, American Fuzzy Lop Plus Pl...

Full description

Bibliographic Details
Main Author: Ng, Lyon Hong Kai
Other Authors: Liu Yang
Format: Final Year Project (FYP)
Language:English
Published: Nanyang Technological University 2022
Subjects:
Online Access:https://hdl.handle.net/10356/156539
Description
Summary:Today, the exploitation of vulnerabilities which exists in every software program is still prevalent, leading to unintended repercussions. This highlights the importance of eradicating the pre-existing vulnerabilities before they can be exploited by hackers. In this study, American Fuzzy Lop Plus Plus (AFL++) was the fuzzer used to fuzz programs on the ubuntu system. The objective of this project is to find crashes that might lead to the discovery of vulnerabilities which were not documented before. The input files (seeds) consisted of mp4 files and binary files which were obtained from go-fuzz-corpus seed bank, as well as from submitted Proof-of-Concept (POC) files by other users. This paper provides a detailed explanation and highlights the steps for the fuzzing campaign done through a period of 10-12 months on the Program Under Test (PUT) with the seeds mentioned above. The crash found was a reproducible crash and the information on the vulnerability has been submitted to huntr.dev to inform the developers of the program. With more work and time put into this campaign, we could provide a more detailed analysis on the vulnerability and provide a solution for it.