Transit Swap - 翻车



(黑客)像往常一样在周末工作...

周日早上一个多链协议损失了数千万。

就像过去的牛市一样。

Transit Swap损失了2100万美元,该协议的漏洞使得一名匿名黑客可以抽干用户的钱包,如果他们此前曾批准该协议交易合约。

但不幸的是,对黑客来说,超过100万美元在转移(Transit)过程中损失……如此看来,本周并非所有MEV机器人都像0xbad一样倒下

在Twitter上宣布这一事件之前,该团队暂停了受影响的合约。

然后发布一则更新,通过"@SlowMist团队@Bitrace团队@peckshield的安全团队共同努力,已经定位到"黑客的关键信息,包括他们的"IP,电子邮件地址,以及相关的链上地址”。

随着黑客匿名身份开始褪去,他们的想法似乎开始变化。到目前为止,黑客已经归还了超过70%的资金

在一个未经验证的合约中发现漏洞;是勤奋的反编译,还是有内幕信息?

虽然漏洞存在于项目的代码中,但这次攻击通过使用transferFrom()函数的漏洞直接针对用户。任何被批准在Transit Swap上交易的代币都可以直接从用户的钱包转移到匿名黑客的地址。

第一次攻击交易发生在UTC时间18:30之后,攻击持续了大约半小时,然后将被盗的代币换成了ETH和BNB。

黑客在ETHBSC的地址: 0x75f2aba6a44580d7be2c4e42885d4a1917bffd46

有漏洞的合约(在ETH和BSC上都撤销批准): 0xed1afc8c4604958c2f38a3408fa63b32e737c428

特别感谢:Supremacy Inc., SlowMist

这个项目的智能合约是未经验证的。然而,它们可以从公开的字节码中反编译出来:

在了解了黑客的攻击路径后,我们试图找出漏洞的原因,但该项目智能合约是闭源合约。所以我们对其进行了反编译,最终找到了这次攻击的根本原因:一个可控的能被外部调用的transferFrom函数。

因为是反编译的代码,所以对读者来说有点难懂。我们可以设想,varg0是代币地址,varg1、varg2和varg3是transferFrom函数的from、to和amount参数。

图中的0x23b872dd是transferFrom()函数的签名。因此,claimTokens函数调用一个地址的transferFrom函数,地址和函数参数是可被操纵的。

更详细的解释,见SlowMist的分析

Peckshield还提供了一个黑客活动的可视化总结

归还资金已经合并到ETHBSC上的同一个地址(0xD989f7B4320c6e69ceA3d914444c19AB67D3a35E),这两个链上总共持有约1650万美元。

被盗的资金:

在写这篇文章的时候,黑客的BSC地址仍然持有超过350万美元的被盗BNB,并且之前向Tornado Cash发送了2500个BNB(71.5万美元)。

多个安全团队之间的快速反应和合作意味着这一事件相较于大多数翻车事件有一个更愉快的结局。

但是,在DeFi中,使用实时的、未经验证合约的协议绝不是一个好主意,因为在DeFi中,开源是才是关键。

隐藏合约代码使得自己研究几乎不可能,并妨碍了白帽黑客在漏洞被攻击之前发现漏洞的工作。

闭源代码在区块链世界中也滋生了怀疑,在那里,漏洞、抽毯子和”私钥泄露"往往在几周内被遗忘。

这会演变为一个内部人员利用特殊信息来对付他们的用户,然后再归还大部分资金,并希望这一切都会过去的事件吗?

太阳底下无新事。


分享本文

REKT作为匿名作者的公共平台,我们对REKT上托管的观点或内容不承担任何责任。

捐赠 (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

声明:

REKT对我们网站上发布的或与我们的服务相关的任何内容不承担任何责任,无论是由我们网站的匿名作者,还是由 REKT发布或引起的。虽然我们为匿名作者的行为和发文设置规则,我们不控制也不对匿名作者在我们的网站或服务上发布、传输或分享的内容负责,也不对您在我们的网站或服务上可能遇到的任何冒犯性、不适当、淫秽、非法或其他令人反感的内容负责。REKT不对我们网站或服务的任何用户的线上或线下行为负责。