9月20日,知名加密货币做市商Wintermute出现被盗事件,NUMEN实验室第一时间关注这次被盗事件,通过被盗事件的细节分析和验证,被盗原因可能是钱包私钥被破解导致黑客控制了钱包账户和合约的管理员权限,黑客从中获利了1.6亿美金。这次被盗事件也向各个用户和项目方敲响警钟,黑客的攻击手段层出不穷,不仅仅是合约漏洞安全,链平台安全,供应链钱包安全也需要做好安全防护。
为什么Wintermute项目方钱包私钥会被破解?
本次被攻击的钱包地址是与众不同的,地址都是0x0000000形式的地址,这些地址像是地址中的靓号,这些地址从何而来呢,是使用了一个叫profanity的工具,可生成自定义字符的地址,为这次攻击事件埋下了伏笔。其实在9月15日,1inch Network官方就已经发表文章说明了这个工具生成的地址存在安全隐患,这些地址的私钥可以通过暴力攻击来破解,包括之后profanity的github更新的文档中也说明了生成地址存在私钥破解的安全问题。
黑客利用原理:
1.从虚假地址获取公钥 (从转账签名恢复)。
2.将其确定性地扩展到 200 万个公钥。。
3.反复递减它们,直到它们到达种子公钥
1inch Network官方文章链接:
Github文档更新截图
攻击过程详解:
攻击者地址:
https://etherscan.io/address/0xe74b28c2eAe8679e3cCc3a94d5d0dE83CCB84705
攻击者合约地址:
https://etherscan.io/address/0x0248f752802b2cfb4373cc0c3bc3964429385c26
Wintermute被盗钱包地址:
https://etherscan.io/address/0x0000000fe6a514a32abdcdfcc076c85243de899b
Wintermute被盗合约地址:
https://etherscan.io/address/0x00000000ae347930bd1e7b0f35588b92280f9e75
攻击流程图:
- 黑客先从Cash中转了10个ETH到自己的钱包地址(0xe74b28c2eAe8679e3cCc3a94d5d0dE83CCB84705)。
- 黑客将自己钱包地址中的2个ETH转入到Wintermute被盗钱包地址中(0x0000000fe6a514a32abdcdfcc076c85243de899b),作为调用合约的手续费。
- 黑客一直使用Wintermute被盗钱包(0x0000000fe6a514a32abdcdfcc076c85243de899b)调用Wintermute被盗合约(0x00000000ae347930bd1e7b0f35588b92280f9e75)中的0x178979ae函数向攻击者合约(0x0248f752802b2cfb4373cc0c3bc3964429385c26)转移代币,其中进行过多笔转账操作,仅第一笔就转账5890个WETH。
- 通过Wintermute被盗合约字节码分析,其中0x178979ae函数调用有权限验证,而0x0000000fe6a514a32abdcdfcc076c85243de899b地址是拥有该权限的,所以黑客利用该地址将合约下的代币转走。
Wintermute官方回应:
Wintermute创始人发推特称,本次攻击损失1.6亿美金,但是Cefi和OTC业务不受影响,对于本次攻击造成的损失有一定的偿付能力,让大家不用担心,同事希望黑客能与其沟通。
钱包安全相关事件:
前段时间,solana公链已经发生了一起钱包被盗事件,用户钱包中的资产在不知情的情况下被转移,此次攻击造成损失超600万美金。NUMEN实验室通过对用户被攻击细节和使用户钱包情况进行了分析,疑因钱包私钥泄露导致。
总结:
先有solana公链钱包被盗事件,又有1inch提前发文预警profanity工具生成的地址存在安全隐患,依然没有引起各个项目方和用户的重视,直到这一次Wintermute被盗的发生,金额巨大,引起了大家的广泛关注,钱包安全问题也逐渐浮现出来。
NUMEN实验室建议将资产存放在profanity工具生成的地址中的用户尽快转移至安全的钱包地址,同时建议Wintermute项目方将合约权限地址进行移除,更换为安全的钱包地址。提醒用户和项目方,对于使用的钱包要做好安全检测和安全防护,必要时可以找第三方公司提供安全服务。
NUMEN实验室致力于为web3.0的安全发展保驾护航,我们的能力涉及整个web3.0生态,包括钱包安全,链安全,合约安全等,能为其提供坚实可靠的服务。
课外篇:
Wintermute发生被盗事件,造成了很大的损失,提起Wintermute,大家可能还会想起之前发生的一次交易重放攻击。
2000万OP被盗事件
今年6月,在 OP 代币发布之时,Optimism 委托了 Wintermute 来为 OP 在二级市场上提供流动性服务,作为协议的一部分,Optimism 将向 Wintermute 提供 2000 万枚 OP 代币。为了接收代币,Wintermute 提供了Ethereum/L1上的一个多签合约地址(0x4f3a120E72C76c22ae802D129F599BFDbc31cb81),而这个地址并没有在Optimism /L2部署,当Optimism 通过3笔交易转账2000万个OP代币后Wintermute 实际并没有这些代币的控制权,这也引起了黑客的注意。抢先在Optimism /L2上通过重放Ethereum/L1交易,创建了0x4f3a120E72C76c22ae802D129F599BFDbc31cb81地址,获得了2000W个OP的控制权。其创建合约采用new的形式也是导致这次重放攻击的原因。
重放攻击相关事件:
前几天,Gnosis Omni Bridge也发生了重放攻击事件,黑客通过Omni Bridge转了200个WETH,然后以相同的inputData在ETHW链上进行了重放攻击,获得了额外的200ETHW。主要是因为其项目在链ID验证时没有获取链上的chainid,而是获取的固定存储值,导致了这次重放攻击。
总结:
通过这两次重放攻击事件,NUMEN实验室认为创建合约尽量采用安全的函数方式进行创建,以太坊pow到pos的升级,一些项目的兼容性安全问题,也随之暴露,提醒项目方和用户对项目和资产做好安全检测和防护。NUMEN也时刻关注着web3.0的安全问题,并为其提供全方位安全服务。