Detecting Buggy Contracts via Smart Testing
作者: Sally Junsong Wang, Jianan Yao, Kexin Pei, Hidedaki Takahashi, Junfeng Yang
分类: cs.SE, cs.LG, cs.PL
发布日期: 2024-09-06
💡 一句话要点
SmartSys:基于自决策大模型的智能合约漏洞检测系统
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 智能合约 漏洞检测 模糊测试 动态分析 基础模型 自决策系统 安全审计
📋 核心要点
- 现有混合动态分析方法在智能合约漏洞检测中面临可扩展性问题,难以发现复杂代码中的深层漏洞。
- SmartSys通过让基础模型学习动态分析的性能瓶颈,自适应地选择合适的分析技术并生成有效的模糊测试目标。
- SmartSys发现了一个已存在一年多且逃过了多个工具和审计的智能合约协议漏洞,并在真实基准测试中将覆盖率提高了14.3%。
📝 摘要(中文)
智能合约容易受到严重漏洞的影响。混合动态分析,如结合了符号执行的模糊测试和基于基础模型的模糊测试,已成为智能合约漏洞检测的有效技术。尽管这种混合方法在实际基准测试中显示出初步前景,但它在发现复杂代码模式中隐藏的深层漏洞时,仍然面临可扩展性不足的问题。我们观察到,现有动态分析的性能瓶颈和模型幻觉是限制这种混合方法在发现深层漏洞时的可扩展性的两个主要因素。为了克服这些挑战,我们设计了一个交互式的、基于自决策基础模型的系统SmartSys,以支持混合智能合约动态分析。其核心思想是让基础模型了解不同动态分析技术的性能瓶颈,从而预测合适的技术并生成有效的模糊测试目标,以发现深层、隐藏的漏洞。为了修剪幻觉产生的、不正确的模糊测试目标,SmartSys在编译时和运行时将来自动态分析的反馈提供给基础模型。
🔬 方法详解
问题定义:现有智能合约漏洞检测方法,特别是混合动态分析方法,在面对复杂智能合约时,可扩展性不足,难以发现深层漏洞。这主要是由于动态分析技术本身的性能瓶颈以及基础模型可能产生的幻觉,导致无法有效生成能够触发深层漏洞的测试用例。
核心思路:SmartSys的核心思路是利用基础模型来指导和优化动态分析过程。通过让基础模型学习不同动态分析技术的优缺点和适用场景,使其能够根据当前智能合约的特征,自适应地选择合适的动态分析技术,并生成更有针对性的模糊测试目标。同时,利用动态分析的反馈来纠正基础模型的幻觉,提高测试用例的有效性。
技术框架:SmartSys包含以下主要模块:1) 性能瓶颈分析模块:用于分析不同动态分析技术在特定智能合约上的性能瓶颈。2) 自决策基础模型:基于性能瓶颈分析结果,预测合适的动态分析技术,并生成模糊测试目标。3) 动态分析执行模块:执行选定的动态分析技术,并收集执行反馈。4) 反馈循环模块:将动态分析的反馈提供给基础模型,用于纠正幻觉和优化模糊测试目标的生成。整个流程是一个迭代的过程,基础模型不断学习和优化,提高漏洞检测的效率和准确性。
关键创新:SmartSys的关键创新在于其交互式的、自决策的基础模型。与以往直接使用基础模型生成模糊测试目标的方法不同,SmartSys让基础模型参与到动态分析的整个过程中,根据动态分析的反馈不断学习和优化。这种交互式的设计能够有效地克服基础模型的幻觉问题,并提高模糊测试目标的有效性。
关键设计:SmartSys的关键设计包括:1) 性能瓶颈的量化指标:需要设计合适的指标来量化不同动态分析技术的性能瓶颈,例如代码覆盖率、执行时间等。2) 基础模型的训练策略:需要设计合适的训练策略,让基础模型能够有效地学习不同动态分析技术的优缺点和适用场景。3) 反馈信息的编码方式:需要设计合适的编码方式,将动态分析的反馈信息有效地传递给基础模型。
📊 实验亮点
SmartSys成功发现了一个已存在一年多且逃过了11个工具和多次审计的智能合约协议漏洞。在真实世界的智能合约基准测试中,SmartSys相比于其他基线方法,代码覆盖率最高提升了14.3%,证明了其在发现深层漏洞方面的有效性。
🎯 应用场景
SmartSys可应用于智能合约的安全审计、漏洞挖掘和自动化测试等领域。它可以帮助开发者更有效地发现和修复智能合约中的漏洞,提高智能合约的安全性,从而促进区块链技术的更广泛应用。未来,该技术还可以扩展到其他软件系统的漏洞检测中。
📄 摘要(原文)
Smart contracts are susceptible to critical vulnerabilities. Hybrid dynamic analyses, such as concolic execution assisted fuzzing and foundation model assisted fuzzing, have emerged as highly effective testing techniques for smart contract bug detection recently. This hybrid approach has shown initial promise in real-world benchmarks, but it still suffers from low scalability to find deep bugs buried in complex code patterns. We observe that performance bottlenecks of existing dynamic analyses and model hallucination are two main factors limiting the scalability of this hybrid approach in finding deep bugs. To overcome the challenges, we design an interactive, self-deciding foundation model based system, called SmartSys, to support hybrid smart contract dynamic analyses. The key idea is to teach foundation models about performance bottlenecks of different dynamic analysis techniques, making it possible to forecast the right technique and generates effective fuzz targets that can reach deep, hidden bugs. To prune hallucinated, incorrect fuzz targets, SmartSys feeds foundation models with feedback from dynamic analysis during compilation and at runtime. The interesting results of SmartSys include: i) discovering a smart contract protocol vulnerability that has escaped eleven tools and survived multiple audits for over a year; ii) improving coverage by up to 14.3\% on real-world benchmarks compared to the baselines.