Fuzz on the Beach: Fuzzing Solana Smart Contracts

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Smolka, Sven, Giesen, Jens-Rene, Winkler, Pascal, Draissi, Oussama, Davi, Lucas, Karame, Ghassan, Pohl, Klaus
Format: Preprint
Veröffentlicht: 2023
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866929631124258816
author Smolka, Sven
Giesen, Jens-Rene
Winkler, Pascal
Draissi, Oussama
Davi, Lucas
Karame, Ghassan
Pohl, Klaus
author_facet Smolka, Sven
Giesen, Jens-Rene
Winkler, Pascal
Draissi, Oussama
Davi, Lucas
Karame, Ghassan
Pohl, Klaus
contents Solana has quickly emerged as a popular platform for building decentralized applications (DApps), such as marketplaces for non-fungible tokens (NFTs). A key reason for its success are Solana's low transaction fees and high performance, which is achieved in part due to its stateless programming model. Although the literature features extensive tooling support for smart contract security, current solutions are largely tailored for the Ethereum Virtual Machine. Unfortunately, the very stateless nature of Solana's execution environment introduces novel attack patterns specific to Solana requiring a rethinking for building vulnerability analysis methods. In this paper, we address this gap and propose FuzzDelSol, the first binary-only coverage-guided fuzzing architecture for Solana smart contracts. FuzzDelSol faithfully models runtime specifics such as smart contract interactions. Moreover, since source code is not available for the large majority of Solana contracts, FuzzDelSol operates on the contract's binary code. Hence, due to the lack of semantic information, we carefully extracted low-level program and state information to develop a diverse set of bug oracles covering all major bug classes in Solana. Our extensive evaluation on 6049 smart contracts shows that FuzzDelSol's bug oracles find bugs with a high precision and recall. To the best of our knowledge, this is the largest evaluation of the security landscape on the Solana mainnet.
format Preprint
id arxiv_https___arxiv_org_abs_2309_03006
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle Fuzz on the Beach: Fuzzing Solana Smart Contracts
Smolka, Sven
Giesen, Jens-Rene
Winkler, Pascal
Draissi, Oussama
Davi, Lucas
Karame, Ghassan
Pohl, Klaus
Cryptography and Security
Solana has quickly emerged as a popular platform for building decentralized applications (DApps), such as marketplaces for non-fungible tokens (NFTs). A key reason for its success are Solana's low transaction fees and high performance, which is achieved in part due to its stateless programming model. Although the literature features extensive tooling support for smart contract security, current solutions are largely tailored for the Ethereum Virtual Machine. Unfortunately, the very stateless nature of Solana's execution environment introduces novel attack patterns specific to Solana requiring a rethinking for building vulnerability analysis methods. In this paper, we address this gap and propose FuzzDelSol, the first binary-only coverage-guided fuzzing architecture for Solana smart contracts. FuzzDelSol faithfully models runtime specifics such as smart contract interactions. Moreover, since source code is not available for the large majority of Solana contracts, FuzzDelSol operates on the contract's binary code. Hence, due to the lack of semantic information, we carefully extracted low-level program and state information to develop a diverse set of bug oracles covering all major bug classes in Solana. Our extensive evaluation on 6049 smart contracts shows that FuzzDelSol's bug oracles find bugs with a high precision and recall. To the best of our knowledge, this is the largest evaluation of the security landscape on the Solana mainnet.
title Fuzz on the Beach: Fuzzing Solana Smart Contracts
topic Cryptography and Security
url https://arxiv.org/abs/2309.03006