Vulseye: Detect Smart Contract Vulnerabilities via Stateful Directed Graybox Fuzzing

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Liang, Ruichao, Chen, Jing, Wu, Cong, He, Kun, Wu, Yueming, Cao, Ruochen, Du, Ruiying, Liu, Yang, Zhao, Ziming
Format: Preprint
Publié: 2024
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866909290808213504
author Liang, Ruichao
Chen, Jing
Wu, Cong
He, Kun
Wu, Yueming
Cao, Ruochen
Du, Ruiying
Liu, Yang
Zhao, Ziming
author_facet Liang, Ruichao
Chen, Jing
Wu, Cong
He, Kun
Wu, Yueming
Cao, Ruochen
Du, Ruiying
Liu, Yang
Zhao, Ziming
contents Smart contracts, the cornerstone of decentralized applications, have become increasingly prominent in revolutionizing the digital landscape. However, vulnerabilities in smart contracts pose great risks to user assets and undermine overall trust in decentralized systems. But current smart contract fuzzers fall short of expectations in testing efficiency for two primary reasons. Firstly, smart contracts are stateful programs, and existing approaches, primarily coverage-guided, lack effective feedback from the contract state. Consequently, they struggle to effectively explore the contract state space. Secondly, coverage-guided fuzzers, aiming for comprehensive program coverage, may lead to a wastage of testing resources on benign code areas. This wastage worsens in smart contract testing, as the mix of code and state spaces further complicates comprehensive testing. To address these challenges, we propose Vulseye, a stateful directed graybox fuzzer for smart contracts guided by vulnerabilities. Different from prior works, Vulseye achieves stateful directed fuzzing by prioritizing testing resources to code areas and contract states that are more prone to vulnerabilities. We introduce Code Targets and State Targets into fuzzing loops as the testing targets of Vulseye. We use static analysis and pattern matching to pinpoint Code Targets, and propose a scalable backward analysis algorithm to specify State Targets. We design a novel fitness metric that leverages feedback from both the contract code space and state space, directing fuzzing toward these targets. With the guidance of code and state targets, Vulseye alleviates the wastage of testing resources on benign code areas and achieves effective stateful fuzzing. In comparison with state-of-the-art fuzzers, Vulseye demonstrated superior effectiveness and efficiency.
format Preprint
id arxiv_https___arxiv_org_abs_2408_10116
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Vulseye: Detect Smart Contract Vulnerabilities via Stateful Directed Graybox Fuzzing
Liang, Ruichao
Chen, Jing
Wu, Cong
He, Kun
Wu, Yueming
Cao, Ruochen
Du, Ruiying
Liu, Yang
Zhao, Ziming
Software Engineering
Smart contracts, the cornerstone of decentralized applications, have become increasingly prominent in revolutionizing the digital landscape. However, vulnerabilities in smart contracts pose great risks to user assets and undermine overall trust in decentralized systems. But current smart contract fuzzers fall short of expectations in testing efficiency for two primary reasons. Firstly, smart contracts are stateful programs, and existing approaches, primarily coverage-guided, lack effective feedback from the contract state. Consequently, they struggle to effectively explore the contract state space. Secondly, coverage-guided fuzzers, aiming for comprehensive program coverage, may lead to a wastage of testing resources on benign code areas. This wastage worsens in smart contract testing, as the mix of code and state spaces further complicates comprehensive testing. To address these challenges, we propose Vulseye, a stateful directed graybox fuzzer for smart contracts guided by vulnerabilities. Different from prior works, Vulseye achieves stateful directed fuzzing by prioritizing testing resources to code areas and contract states that are more prone to vulnerabilities. We introduce Code Targets and State Targets into fuzzing loops as the testing targets of Vulseye. We use static analysis and pattern matching to pinpoint Code Targets, and propose a scalable backward analysis algorithm to specify State Targets. We design a novel fitness metric that leverages feedback from both the contract code space and state space, directing fuzzing toward these targets. With the guidance of code and state targets, Vulseye alleviates the wastage of testing resources on benign code areas and achieves effective stateful fuzzing. In comparison with state-of-the-art fuzzers, Vulseye demonstrated superior effectiveness and efficiency.
title Vulseye: Detect Smart Contract Vulnerabilities via Stateful Directed Graybox Fuzzing
topic Software Engineering
url https://arxiv.org/abs/2408.10116