大意失荆州-- Uranium Finance合约升级漏洞事件分析

北京时间2021年4月28日,币安智能链上区块链项目 Uranium Finance 发推提醒用户称:Uranium 在流动性迁移过程中被攻击,涉及资金为 5000 万美元。提醒用户停止交易,目前团队正在与币安安全团队联系。

随后公开了攻击合约地址:0x2b528a28451e9853F51616f3B0f6D82Af8bEA6Ae

大意失荆州-- Uranium Finance合约升级漏洞事件分析

通付盾区块链安全团队(SharkTeam)第一时间对此事件进行了攻击分析和技术分析,并总结了安全防范手段,希望后续的区块链项目可以引以为戒,共筑区块链行业的安全防线。

一、事件分析

通过分析,Uranium 项目合约中的漏洞出现在 UraniumPair.sol 合约中的 swap 函数中,这个漏洞会导致任何人可以随意的转出合约中的数字资产,而只需要付出一点点的代价。

合约地址在推文中没有公开,我们是从攻击合约中找到的项目合约地址,具体流程如下:

首先查看攻击合约的代码发现,这个合约的源码没有公开,通过反编译查看其源码。

大意失荆州-- Uranium Finance合约升级漏洞事件分析

通过币安智能链浏览器查看最早的攻击交易:

0x5a504fe72ef7fc76dfeb4d979e533af4e23fe37e90b5516186d5787893c37991

可得到攻击者调用的合约方法为52f18fc3。这是合约方法编码后的值,从反编译代码中寻找这个编码后的合约方法,可以找到这个合约攻击的项目方合约地址,也就是 Uranium 项目所在的地址:0xa943ea143cd7e79806d670f4a7cf08f8922a454f。

大意失荆州-- Uranium Finance合约升级漏洞事件分析

大意失荆州-- Uranium Finance合约升级漏洞事件分析

首先看一下出问题UraniumPair.sol合约中swap的代码:

大意失荆州-- Uranium Finance合约升级漏洞事件分析

可以看到 swap 中,最后是一个10的8次方数和一个10的6次方数的比较,这是一个几乎是恒等的判断,这就意味着只要按照一定的套路不断的执行 swap 函数,就可以清空这个合约中所有的数字资产。深究原因,我们看到UniswapV2Pair.sol的合约中的写法是相同的,但是它是两个10的6次方数字的比较。

大意失荆州-- Uranium Finance合约升级漏洞事件分析

所以可以知道造成这次事件的原因应该是项目方更新升级这个合约的时候,忘记了将后面的1000的2次方改为10000的二次方。

二、通付盾区块链安全知识课堂

本次攻击事件中,主要原因在于项目方更新升级合约时,改写不够全面,遗漏了重要的修改点。通付盾区块链安全团队建议您,可以将1000这类在多处使用而且意义一致的常数,可以声明一个常量来使用,这样调整起来就不会有疏漏。调整后应该为:

大意失荆州-- Uranium Finance合约升级漏洞事件分析

这样未来若有升级的需求,直接调整 Num 的值即可,就不会再出现遗漏修改,导致安全事故。同时,在项目上线之前请专业的智能合约审计机构进行严格的审计,保障智能合约和数字资产安全。

三、通付盾智能合约审计服务

区块链智能合约安全关系用户的财产安全,至关重要!在区块链项目开发和运营的各个阶段适时引入合适的安全工具和服务,为用户的数字资产和项目安全发展提供保障已成为行业共识。通付盾作为国内领先的区块链安全服务提供商,为开发者提供智能合约审计服务。

n 智能合约自动化审计在通付盾云平台上为用户提供智能合约进行自动化审计服务。运用符号执行、形式化验证等智能合约分析技术,覆盖高级语言、虚拟机、区块链、业务逻辑四个层面一百多项安全风险检测项,保障智能合约安全运行。

大意失荆州-- Uranium Finance合约升级漏洞事件分析

n 通付盾也为客户提供高级别的区块链安全服务,区块链安全专家团队7*24小时为智能合约提供全生命周期的安全保障,服务包括:VIP安全审计服务、VIP合规审计服务、安全事故应急响应等。

(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )