Beosin 安全团队对本次安全事件进行了漏洞与资金追踪分析,并将结果分享如下:
作者:Beosin
1 月 9 日凌晨,Truebit Protocol 于 5 年前部署的未开源合约遭受攻击,损失 8,535.36 ETH(价值约 2640 万美元)。Beosin 安全团队对本次安全事件进行了漏洞与资金追踪分析,并将结果分享如下:
攻击手法分析
本次事件我们以最主要的一笔攻击交易作为分析,交易哈希为: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
1. 攻击者调用 getPurchasePrice() 获取价格

2. 随后调用存在缺陷的函数 0xa0296215(),并将 msg.value 值设置得极小

由于合约未开源,通过反编译的代码推测该函数是存在算术逻辑漏洞,如整数截断出现问题,导致攻击者成功铸造了大量 TRU 代币。
3. 攻击者通过 burn 函数将铸造的代币 “卖回” 给合约,从合约储备中提取了大量 ETH。

此过程再重复 4 次,每次 msg.value 值增加,直至将合约中的 ETH 几乎全部提取。
被盗资金追踪
根据链上交易数据,Beosin 通过旗下区块链链上调查与追踪平台 Beosin Trace进行了详尽的资金追踪,并将结果分享如下:
目前,被盗的 8,535.36 ETH 经过转移,绝大部分分别存放在了 0xd12f6e0fa7fbf4e3a1c7996e3f0dd26ab9031a60 和 0x273589ca3713e7becf42069f9fb3f0c164ce850a。
其中地址 0xd12f 持有 4,267.09 ETH,地址 0x2735 持有 4,001 ETH。攻击者发起攻击的地址(0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50)还存有 267.71 ETH,三个地址暂未有更进一步的资金转移。

以上地址均已被 Beosin KYT 标记为高风险地址,以攻击者地址为例:

结语
本次被盗资金涉及 5 年前未开源的智能合约,对于此类合约,项目方应对合约进行升级,引入紧急暂停、参数限制以及新版本的 Solidity 安全特性。此外,安全审计依然是合约必不可少的环节。通过安全审计,Web3 企业可以尽可能全面地检测智能合约代码,发现并修复潜在漏洞,提高合约安全性。
免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。文章内的信息仅供参考,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。




