沙滩上的模糊测试:针对 Solana 智能合约的 Fuzzing
密码学与安全
2024-12-17 v3
摘要
Solana 已迅速成为构建去中心化应用(DApps,如非同质化代币(NFT)市场)的热门平台。其成功的一个关键原因在于 Solana 的低交易费用和高性能,这部分得益于其无状态编程模型。尽管现有文献提供了大量针对智能合约安全性的工具支持,但当前的解决方案主要面向以太坊虚拟机(EVM)。遗憾的是,Solana 执行环境的无状态特性引入了 Solana 特有的新型攻击模式,需要重新思考漏洞分析方法的构建。在本文中,我们填补了这一空白并提出了 FuzzDelSol,这是首个面向 Solana 智能合约的仅二进制、覆盖率引导的模糊测试(fuzzing)架构。FuzzDelSol 忠实地建模了运行时细节,例如智能合约交互。此外,由于绝大多数 Solana 合约不提供源代码,FuzzDelSol 直接作用于合约的二进制代码。因此,由于缺乏语义信息,我们仔细提取了底层程序与状态信息,开发了一组涵盖 Solana 中所有主要漏洞类别的多样化缺陷预言机(bug oracle)。我们在 6049 个智能合约上的广泛评估表明,FuzzDelSol 的缺陷预言机能够以高精确率与召回率发现漏洞。据我们所知,这是对 Solana 主网安全态势最大规模的评估。
引用
@article{arxiv.2309.03006,
title = {Fuzz on the Beach: Fuzzing Solana Smart Contracts},
author = {Sven Smolka and Jens-Rene Giesen and Pascal Winkler and Oussama Draissi and Lucas Davi and Ghassan Karame and Klaus Pohl},
journal= {arXiv preprint arXiv:2309.03006},
year = {2024}
}
备注
This paper appeared on the ACM CCS 2023 in November 2023