[论文解读] Oracle-Supported Dynamic Exploit Generation for Smart Contracts
本文提出 ContraMaster,一种动态、基于预言机的框架,通过变异交易序列并利用通用测试预言机监控语义不一致,实现可利用智能合约漏洞的生成。该方法在 218 个基准合约中检测出全部 28 个可利用漏洞,且零误报,优于现有最先进技术,并发现了三种新型攻击模式。
Despite the high stakes involved in smart contracts, they are often developed in an undisciplined manner, leaving the security and reliability of blockchain transactions at risk. In this paper, we introduce ContraMaster: an oracle-supported dynamic exploit generation framework for smart contracts. Existing approaches mutate only single transactions; ContraMaster exceeds these by mutating the transaction sequences. ContraMaster uses data-flow, control-flow, and the dynamic contract state to guide its mutations. It then monitors the executions of target contract programs, and validates the results against a general-purpose semantic test oracle to discover vulnerabilities. Being a dynamic technique, it guarantees that each discovered vulnerability is a violation of the test oracle and is able to generate the attack script to exploit this vulnerability. In contrast to rule-based approaches, ContraMaster has not shown any false positives, and it easily generalizes to unknown types of vulnerabilities (e.g., logic errors). We evaluate ContraMaster on 218 vulnerable smart contracts. The experimental results confirm its practical applicability and advantages over the state-of-the-art techniques, and also reveal three new types of attacks.
研究动机与目标
- 为解决静态规则化智能合约漏洞检测中误报率高的问题,转向基于运行时语义的动态分析。
- 开发一种通用语义测试预言机,以捕捉合约行为中的基本不变量,如资金一致性与状态完整性。
- 设计一种灰盒模糊测试工具,不仅变异函数输入,还变异交易序列、Gas 限制、回退函数及合约状态,以提升可利用性漏洞的发现能力。
- 在真实世界存在漏洞的合约上验证该框架,并证明其在仅检测可利用漏洞方面优于现有工具。
- 通过观察外部事件与内部合约状态之间的语义不匹配,识别先前未知的漏洞模式。
提出的方法
- ContraMaster 采用一种通用语义测试预言机,用于检测外部可观测事件(如资金转账)与内部合约状态(如余额记账)之间的不一致。
- 它使用增强型灰盒模糊测试引擎,配备针对交易序列、Gas 限制、回退函数及动态合约状态的定制化变异操作符。
- 反馈机制源自数据流、控制流及运行时合约状态分析,用于引导变异以实现更深层次的代码覆盖与漏洞暴露。
- 该框架在真实的 EVM 环境中执行交易,并通过语义预言机验证结果,确保每个检测到的漏洞均可被利用。
- 它利用运行时监控检测语义不一致,这些不一致可指示漏洞,如重入攻击、异常处理混乱以及整数溢出/下溢。
- 该方法无需预先定义漏洞模式,即可泛化适用于多种漏洞类型,从而实现对未知攻击向量的检测。
实验结果
研究问题
- RQ1通用语义测试预言机是否能在不依赖预定义语法模式的前提下,有效检测广泛范围的智能合约漏洞?
- RQ2与单次交易变异相比,变异交易序列在提升可利用漏洞检测能力方面有多大程度的改进?
- RQ3与现有基于规则和静态分析的技术相比,ContraMaster 在降低误报率方面有多高效?
- RQ4通过动态、基于预言机引导的合约执行序列变异,能够发现哪些新型漏洞模式?
- RQ5该框架是否能在类生产环境中高保真度地检测并重现真实世界的利用?
主要发现
- ContraMaster 在 218 个存在漏洞的智能合约上评估,检测出 28 个可利用漏洞,所有漏洞均经验证为有效且可复现,并可通过攻击脚本实现。
- 在报告的 218 个漏洞中,87.16%(189 个)为非可利用漏洞,凸显了现有基于规则工具的高误报率。
- ContraMaster 在所有测试用例中实现零误报,优于最先进的工具如 ContractFuzzer 和 Zeus。
- 该框架发现了 26 个此前未知的漏洞,包括三种现有漏洞模式未涵盖的新类型攻击。
- 语义测试预言机通过检测外部事件与内部合约状态之间的语义不一致,成功识别出可利用缺陷。
- 针对交易序列和合约状态的定制化变异操作符,显著提升了传统模糊测试在漏洞利用生成方面的有效性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。