1. 链一财经首页
  2. 资讯

主流自动化智能合约审计工具横向对比测试

近期区块链由于智能合约问题被盗事件很多,但是目前全球做智能合约安全审计的公司并不多,开发出形式化验证工具的更是少之又少,我搜集了下,国内外有做合约形式化验证的平台有SmartDec、Securify、QSP、VaaS,各家都各有优缺点。

我对各家的审计平台做了一个测试,包括代币合约安全审计对比测试、竞拍合约测试两部分,以下将各平台工具的安全检测精确度、检测能力、结果分析、用户体验等方面做了对比,欢迎区块链爱好者及开发者借鉴对比:

第一部分 代币合约安全审计对比测试

合约名称: BIGCAdvancedToken

合约地址链接: 0xa6768Ab9252e71cA6bBaDA32B21B91a1cB703C63 

合约介绍:此合约为以太坊链上真实的发币合约

成都链安科技VaaS工具测试结果:

主流自动化智能合约审计工具横向对比测试

主流自动化智能合约审计工具横向对比测试

审计结果显示该合约存在下述问题:

Solidity Coding Conventions (Solidity 编程规范)

1行:solidity版本未固定,

ERC20 Standard   (ERC20 标准)

12行:transferOwnership函数中,没有检测新的owner是否是零

52行:transfer函数缺少返回值,不符合ERC20规范

63行:approve函数中未使用Approve事件,不符合ERC20规范

69行:approveAndCall函数中也未使用Approve事件,不符合ERC20规范

Integer Overflows  (整型溢出)

125和126行:owner 权限过大,操作任意账户的代币,可以任意增发,以及totalsupply 可能溢出的风险

149行:sell函数中有溢出风险,导致用户受到损失

Security Items (安全项)

合约未使用SafeMath库

 

审计结果总结:1. 工具定位准确,正确率达到95%以上

2. 界面清晰,采用分类菜单以及行号标识

3. 提示详细,根据以太坊出现的漏洞进行严格的技术分类,并说明可能导致的后果

4. 不存在漏报和误报。

 

Smartdec测试结果:

主流自动化智能合约审计工具横向对比测试

审计结果显示该合约存在下述问题:

l Lines: 1

编译器版本未固定

l Lines: 17-17

Implicit visibility level (函数缺少可见性声明,这是误报)

l Lines: 63-67

Using the approve function of the ERC-20 standard (approveERC-20 的功能可能导致漏洞,提示不详细,不确定到底存在什么风险。)

l Lines: 136-139

Overpowered user (用户依赖owner用户设置价格,这是合约逻辑需要,为误报)

l Lines: 17-17

l Lines: 32-32

l Lines: 33-33

l Lines: 69-69

l Lines: 109-109

l Lines: 110-110

Upgrade code to Solidity 0.5.0. (不符合Solidity 0.5.0规范:)

审计结果总结:大量的误报和无用信息,对于溢出等高风险漏洞,均未检出

 

Securify测试结果:

主流自动化智能合约审计工具横向对比测试

 详细的审计结果附件:

审计结果显示该合约存在下述问题:

l 第46、47、82、90、92、119、120行:

Contract fields that can be modified by any user must be inspected.(无限制写入存储器)

l 第12、56、63、87、124、131、136、146行:

Method arguments must be sanitized before they are used in computations.(缺少输入验证)

l 第149行:

The amount of ether transferred must not be influenced by other transactions.(交易顺序影响ETH数量)

The execution of ether flows should be restricted to an authorized set of users.(ETH 资金流操作权限应限制在一组用户中)

The target of a call instruction can be manipulated by an attacker.(不安全的外部合约调用)

 

审计结果总结:测试总是显示未完成,几乎都是误报,提示混乱不堪,没有给出有效漏洞信息

 

QSP测试结果:

进行了2次付款操作,使用的是官方要求的QSP,一直提示付款失败,无测试结果

其他用户的付款也显示失败,似乎都遇到了同样的问题,转账截图如下:

主流自动化智能合约审计工具横向对比测试

页面显示:

主流自动化智能合约审计工具横向对比测试

第三步页面没有响应, 无法查看结果

详细的审计结果附件:无

审计结果显示该合约存在下述问题:无

审计结果总结:付费后无法使用

u 横向对比测试总结:

主流自动化智能合约审计工具横向对比测试

 

 

第二部分 竞拍合约测试

合约名称:SimpleAuction

合约功能介绍:SimpleAuction 合约是一个简单的拍卖合约,功能:当前用户竞拍价比上一个用户的竞拍价高时会获得拍位,并返还上一个竞拍者的Ether

 

成都链安科技VaaS工具测试结果:

主流自动化智能合约审计工具横向对比测试

主流自动化智能合约审计工具横向对比测试

审计结果显示该合约存在下述问题

Sensitive Function Call  (敏感函数调用)

line:15   、18    、31    Block Members Manipulation 区块链参数依赖,合约逻辑设计需要,需要谨慎使用

line:24    Denial of service 存在拒绝服务风险,当上一个竞拍者拒绝返还的ether时,其他竞拍者永远无法成功竞拍

Solidity Coding Conventions  (Solidity编程规范)

line:1    Compiler Version Declaration ,版本未固定

Security Items  (安全项)

Safe Math Library 未使用SafeMath库

Integer Overflows  (整型溢出)

line:22    Integer Overflow 由于未使用SafeMathku,此处存在溢出风险

审计结果总结:验证结果详细准确,而且能准确检测出拒绝服务(DoS)风险,证明对代码逻辑功能进行了形式化验证。

 

Smartdec测试结果:

审计结果显示该合约存在下述问题

l Lines: 1-1

Compiler version not fixed 编译器版本未固定

l Lines: 8-8

l Lines: 9-9

l Lines: 13-16

l Lines: 17-28

l Lines: 30-36

Implicit visibility level可见声明不明确

l Lines: 24-24

Send instead of transfer  应使用transfer而不是Send

审计结果总结:提出了send有风险,未提示具体信息,溢出风险未检测出。

 

Securify测试结果:

详细的审计结果附件:无

审计结果显示该合约存在下述问题:无

 审计结果总结:等待良久,遗憾的是,一直未扫出结果

 

QSP测试结果:

进行了1次付款,使用的是官方要求的QSP,仍然一直提示付款失败,无测试结果

其他用户的付款也显示失败,似乎都遇到了同样的问题,转账截图如下:

主流自动化智能合约审计工具横向对比测试

页面显示依然是这样:

主流自动化智能合约审计工具横向对比测试

第三步页面仍没有响应, 无法查看结果

网站上显示的付款记录一共3次

主流自动化智能合约审计工具横向对比测试

详细的审计结果附件:无 审计结果显示该合约存在下述问题:无

审计结果总结:付费后无法使用

横向对比总结:

主流自动化智能合约审计工具横向对比测试

文章声明:本文为火星号作者作品,不代表火星财经观点,版权归作者所有,如需转载,请提前联系作者!

根据国家《关于防范代币发行融资风险的公告》,大家应警惕代币发行融资与交易的风险隐患。

本文来自LIANYI转载,不代表链一财经立场,转载请联系原作者。

发表评论

登录后才能评论

联系我们

微信:kkyves

邮件:kefu@lianyi.com

时间:7x24,节假日bu休息

QR code