freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

千里之堤,溃于蚁穴—跨链协议Nomad被黑事件分析
SharkTeam 2022-08-02 22:51:31 71148
所属地 江苏省

千里之堤,溃于蚁穴—跨链协议Nomad被黑事件分析

2022年8月2日消息,跨链协议Nomad遭受到黑客攻击,损失超过1.9亿美元。

1659451702_62e939364690d643110aa.png!small

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

1659451710_62e9393e8580c689870e2.png!small

一、 事件分析

被攻击合约(代理合约): 0x5d94309e5a0090b165fa4181519701637b6daeba

代理合约实现合约: 0xb92336759618f55bd0f8313bd843604592e27bd8

以其中一笔交易为例,交易如下:

txHash: 0xb1fe26cc8892f58eb468f5208baaf38bac422b5752cca0b9c8a871855d63ae28

1659451718_62e93946c955ab7873f64.png!small

该交易中调用了process函数:

1659451727_62e9394f8094a2b2f1333.png!small

根据交易执行过程,并且对比了其他调用了process函数的交易,最终发现了问题所在:

1659451735_62e939578079fa9a0e461.png!small

在调用acceptableRoot函数时,输入的参数为0,即messages中并没有对应的消息,结果返回ture。acceptableRoot函数如下:

1659451740_62e9395c8c38db9c578d8.png!small

这里,参数_root是0,confirmAt的值是1,返回值是true。

1659451747_62e939639ffc82e3d3915.png!small

confirmAt本身的表示_root被确认的时间,当_root为0时,实际是没有被确认过的,confirmAt的值应该也为0,最后会返回false。正是这一点小失误造成了巨大的经济损失,对整个项目造成了近乎毁灭性的打击。

另外,confirmAt[0]的值为什么会是1呢?

从合约中可以看出,合约的初始化函数initialize会将confirmAt的值初始化为1,初始化函数需要在合约部署后即刻调用,一般由合约的部署地址即owner账户来调用。

1659451756_62e9396cd1d8bea16d6ab.png!small

另外,setConfirmation函数也可以直接设置confirmAt的值,但只有owner账户才能调用。

我们查看了owner账户以及其所有的交易,发现是在初始化时将confirmAt[0]设置成了1。

owner: 0xa5bd5c661f373256c0ccfbc628fd52de74f9bb55

txHash: 0x53fd92771d2084a9bf39a6477015ef53b7f116c79d98a21be723d06d79024cad

1659451763_62e939736901aed05bcdc.png!small

该合约是升级后的合约,初始化函数是在合约升级后对合约进行初始化。对比于升级前的实现合约(0x7f58bb8311db968ab110889f2dfa04ab7e8e831b),初始化函数相同,但process函数是不同的,升级前的process函数如下:

1659451768_62e93978c320822a4f542.png!small

因此,本次事件完全就是合约升级时的失误造成的,小小的失误却给合约和项目带来了致命的风险。

二、 安全建议

引发本次安全事件的根本原因是可升级合约在合约升级的过程中存在失误,造成合约逻辑实现存在严重漏洞。

鉴于此,我们建议在使用可升级合约时要保持谨慎之心。尤其是在升级合约时,不仅要保证状态变量的正确性,也要保证逻辑处理没有漏洞。另外,选择专业的智能合约审计团队进行多轮审计,也是提高合约安全性的重要保障。

# web安全 # 漏洞分析 # 跨链桥
本文为 SharkTeam 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
SharkTeam LV.8
SharkTeam的愿景是全面保护Web3世界的安全。团队成员分布在北京、南京、苏州、硅谷,由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Huobi Global、OKC、polygon、Polkadot、imToken、ChainIDE等建立长期合作关系。
  • 172 文章数
  • 42 关注者
SharkTeam:2024年上半年度Web3安全报告
2024-07-08
SharkTeam:美国众议院FIT21法案解读
2024-06-26
SharkTeam:UwU Lend攻击事件分析
2024-06-13