SAND: Decoupling Sanitization from Fuzzing for Low Overhead

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Kong, Ziqiao, Li, Shaohua, Huang, Heqing, Su, Zhendong
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866929711155773440
author Kong, Ziqiao
Li, Shaohua
Huang, Heqing
Su, Zhendong
author_facet Kong, Ziqiao
Li, Shaohua
Huang, Heqing
Su, Zhendong
contents Sanitizers provide robust test oracles for various software vulnerabilities. Fuzzing on sanitizer-enabled programs has been the best practice to find software bugs. Since sanitizers need to heavily instrument a target program to insert run-time checks, sanitizer-enabled programs have much higher overhead compared to normally built programs. In this paper, we present SAND, a new fuzzing framework that decouples sanitization from the fuzzing loop. SAND performs fuzzing on a normally built program and only invokes sanitizer-enabled programs when input is shown to be interesting. Since most of the generated inputs are not interesting, i.e., not bug-triggering, SAND allows most of the fuzzing time to be spent on the normally built program. To identify interesting inputs, we introduce execution pattern for a practical execution analysis on the normally built program. We realize SAND on top of AFL++ and evaluate it on 12 real-world programs. Our extensive evaluation highlights its effectiveness: in 24 hours, compared to all the baseline fuzzers, SAND significantly discovers more bugs while not missing any.
format Preprint
id arxiv_https___arxiv_org_abs_2402_16497
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle SAND: Decoupling Sanitization from Fuzzing for Low Overhead
Kong, Ziqiao
Li, Shaohua
Huang, Heqing
Su, Zhendong
Cryptography and Security
Software Engineering
Sanitizers provide robust test oracles for various software vulnerabilities. Fuzzing on sanitizer-enabled programs has been the best practice to find software bugs. Since sanitizers need to heavily instrument a target program to insert run-time checks, sanitizer-enabled programs have much higher overhead compared to normally built programs. In this paper, we present SAND, a new fuzzing framework that decouples sanitization from the fuzzing loop. SAND performs fuzzing on a normally built program and only invokes sanitizer-enabled programs when input is shown to be interesting. Since most of the generated inputs are not interesting, i.e., not bug-triggering, SAND allows most of the fuzzing time to be spent on the normally built program. To identify interesting inputs, we introduce execution pattern for a practical execution analysis on the normally built program. We realize SAND on top of AFL++ and evaluate it on 12 real-world programs. Our extensive evaluation highlights its effectiveness: in 24 hours, compared to all the baseline fuzzers, SAND significantly discovers more bugs while not missing any.
title SAND: Decoupling Sanitization from Fuzzing for Low Overhead
topic Cryptography and Security
Software Engineering
url https://arxiv.org/abs/2402.16497