SECRMay 15, 2019

Harvey: A Greybox Fuzzer for Smart Contracts

arXiv:1905.06944v1221 citations
Originality Incremental advance
AI Analysis

This addresses security vulnerabilities in smart contracts for blockchain developers and users, but it is incremental as it builds on existing greybox fuzzing methods.

The paper tackles the challenge of efficiently fuzzing smart contracts to detect bugs and vulnerabilities, particularly for code with narrow checks and complex state transitions, by introducing Harvey, a greybox fuzzer that uses predictive input generation and targeted transaction sequencing, achieving orders-of-magnitude faster coverage and vulnerability detection in evaluations on 27 real-world contracts.

We present Harvey, an industrial greybox fuzzer for smart contracts, which are programs managing accounts on a blockchain. Greybox fuzzing is a lightweight test-generation approach that effectively detects bugs and security vulnerabilities. However, greybox fuzzers randomly mutate program inputs to exercise new paths; this makes it challenging to cover code that is guarded by narrow checks, which are satisfied by no more than a few input values. Moreover, most real-world smart contracts transition through many different states during their lifetime, e.g., for every bid in an auction. To explore these states and thereby detect deep vulnerabilities, a greybox fuzzer would need to generate sequences of contract transactions, e.g., by creating bids from multiple users, while at the same time keeping the search space and test suite tractable. In this experience paper, we explain how Harvey alleviates both challenges with two key fuzzing techniques and distill the main lessons learned. First, Harvey extends standard greybox fuzzing with a method for predicting new inputs that are more likely to cover new paths or reveal vulnerabilities in smart contracts. Second, it fuzzes transaction sequences in a targeted and demand-driven way. We have evaluated our approach on 27 real-world contracts. Our experiments show that the underlying techniques significantly increase Harvey's effectiveness in achieving high coverage and detecting vulnerabilities, in most cases orders-of-magnitude faster; they also reveal new insights about contract code.

Code Implementations2 repos
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes