Aptos 在 UPbit上的假充值事件回顾 - 2023/09/27

最近,UPbit交易所遭受了aptos假充值事件攻击。

原因

受到攻击的原因,主要是UPbit犯了一个简单的错误。没有检查token类型的参数,也就是充值没有检查是APTOS还是其它代币。在Apto上,APTOS与token的转账是相同的,唯一不同的是,token会有类型参数。

下图可以看到在浏览器上真实APTOS与普通TOKEN转账的比较

可以看到,Token Transfer具有type_argument这一项值。

由于UPbit没有做参数类型检验,将MoonCoin的transfer识别为APTOS的transfer,导致了被攻击。

背后故事

Aptos的转币机制,以前是需要接收者必须先收币合约中预先注册自己的地址,才能接收相应的代币。在2023年1月15号的升级里发生了更改,更改后,在进行转账时,如果收款人未注册,系统将默认进行注册。

相当于在升级前,Upbit里没有校验也无法被攻击。所以这也算是没有及时关注系统更新带来的问题。

过程

再来看看攻击过程。

  1. 黑客向380000个地址发送了3000~5000Moon代币,这些地址里大部分都是Upbit的充值地址。

  2. 由于充值问题的存在,Upbit将这些Moon代币都识别为30~50个APT(价值150~250$)充值给到用户

  3. 大家发现莫名收到APT后,可能直接进行售卖

  4. 可以看到在攻击发生后,upbit上aptos现货交易量剧增,据说24小时现货交易量高达7100万美元...

并且由于超级多的用户收到了APT,就算有YKC的存在,对于追回资产也是巨大的工作量

看看慢雾这里

以及definalist这里

https://apscan.io/account/0xc4f4e73e689b13799d6a1a52a9db1e0099de2e16967ca9bff97e9946dbedc4e9