本文Hash(SHA1):fee3b2d74b9299cff25c49a61c58fe935da202c6

编号:链源Security Knowledge No.004

AI驱动的MetaScan 在智能合约漏洞检测的探索

2024年6月22日FSE2024奖项揭晓,其中MetaTrust Labs联合华东师范大学、天津大学、南阳理工大学和西安交通大学的多位学者共同发布的论文《Static Application Security Testing (SAST) Tools for Smart Contracts: How Far Are We?》获得了杰出论文奖,这不仅代表着这篇论文的含金量优于会议上90%的论文,同时也代表了智能合约漏洞检测这个领域的最高水平。链源安全团队对这篇论文进行了深度研究,提取出了文章的核心观点,并对实际落地的检测工具MetaScan进行了分析,希望能够帮助读者提高保护自身资产安全的能力。

核心观点

AI驱动的MetaScan 在智能合约漏洞检测的探索

AI驱动的MetaScan 在智能合约漏洞检测的探索

在论文中,诸位学者们提到了从2012年到2022年之间因智能合约漏洞而造成的经济损失超过了47.5亿美金,为了填补这个技术缺口他们提出了一种最新且细粒度[1]的漏洞分类方法,包含了45种独特的智能合约漏洞类型,并基于此分类,开发了一种涵盖40种不同类型的广泛基准,包含多种代码特征、漏洞模式和应用场景。

AI驱动的MetaScan 在智能合约漏洞检测的探索

AI驱动的MetaScan 在智能合约漏洞检测的探索

他们花费了超过1年的时间使用8个SATS工具在8981个智能合约文件和10394个漏洞上进行基准测试,最终的检测结果是现有的SATS工具未能检测到基准中约50%的漏洞,并且存在较高的误报率,准确率不超过10%,虽然通过结合多种工具的结果可以有效减少假阴性率,但代价是标记了更多的函数。

综合大样本下的数据来说,我们平时在进行智能合约漏洞检测时的最佳工具就是MetaTrust所开发的MetaScan。

MetaScan工具分析

AI驱动的MetaScan 在智能合约漏洞检测的探索

MetaScan漏洞验证平台基于Metasploit框架而开发,它实际上是一个将开发者的需求放在首位的检测平台,能够在整个软件生命周期的早期发现开发者开源依赖中的漏洞。

它使用了多个关键引擎来进行不同维度的检测,其中包括:

(1)Security Analyzer:利用论文中提到的SAST技术来检测智能合约中的关键漏洞;

(2)Security Prover:使用形式化方法[2]证明智能合约无漏洞;

(3)Open Source Analyzer:供应链分析器,也就是对开源依赖进行安全评估,确保它们在应用程序中的安全集成;

(4)IP Analyzer:检测由代码克隆引起的智能合约中的漏洞,尤其是针对迁移攻击[3]

(5)GPTScan:利用ChatGPT等AI技术来适应因漏洞名称和代码流引起的逻辑变体。

等等……

我们上传一段智能合约代码(包括重入攻击、不安全的外部调用、数据溢出、权限控制不当的安全漏洞)为例在MetaScan上进行示例分析:

AI驱动的MetaScan 在智能合约漏洞检测的探索

AI驱动的MetaScan 在智能合约漏洞检测的探索

从分析结果来看,将所有设置的安全漏洞依据不同的问题等级进行了区分,并给出了问题代码和改进建议,非常适合开发者的使用。

名词解读

[1]细粒度:细粒度通常指的是更小的模块或组件。例如,细粒度的类设计意味着每个类承担更小、更具体的职责,遵循单一职责原则。这有助于提高代码的可维护性和可测试性。

[2]形式化方法:不依赖于特定的测试用例,而是通过数学模型和逻辑推理来证明系统的正确性或发现潜在的漏洞。

[3]迁移攻击:攻击者通过在智能合约升级、迁移过程中利用漏洞或设计缺陷,来窃取资金或破坏系统的攻击方式。智能合约因为其不可变性和去中心化特性,使得合约的升级和迁移变得复杂和容易出错,而攻击者正是利用这些复杂性和可能存在的漏洞进行攻击。

结语

总的来说现有的SAST工具在智能合约漏洞检测方面已经取得了一定的进展,但想要做到整体优质的检测效果还有很长一段路需要走。

链源科技是一家专注于区块链安全的公司。我们的核心工作包括区块链安全研究、链上数据分析,以及资产和合约漏洞救援,已成功为个人和机构追回多起被盗数字资产。同时,我们致力于为行业机构提供项目安全分析报告、链上溯源和技术咨询/支撑服务。

感谢各位的阅读,我们会持续专注和分享区块链安全内容。