首页>财经 > 正文
焦点观察:SharkTeam独家分析 | 批准+校验漏洞-TransitSwap攻击事件分析
来源: SharkTeam 发布于:2022-10-06 18:33:37

一、事件描述


【资料图】

2022年10月2日,Transit Swap项目在Twitter上发布消息称项目遭受到黑客的攻击,被盗取了约2100万美元。

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

二、事件分析

攻击者账户地址:

攻击发起地址:0x5f0b31aa37bce387a8b21554a8360c6b8698fbef,简记为0x5f0b

代币接收地址:0x75f2aba6a44580d7be2c4e42885d4a1917bffd46,简记为0x75f2

Ethereum攻击合约:0x17ff6c94ba3a49c72ef2f10782de8a6152f204ea,简记为0x17ff

Ethereum攻击交易如下:

BSC攻击合约:0x8ca8fd9c7641849a14cbf72faf05c305b0c68a34,简记为0x8ca8

BSC攻击交易如下:

我们以BSC上的第一笔攻击交易为例,对攻击进行分析。

TxHash:0xb25c24e787d750925bd80fd4bf2c0a24e3b18cc73f695b49470e41d913201567

该交易包含了4笔转账,从4个账户中将不同数量的WBNB转入账户0x75f2中。从整个交易的详细过程中发现,每一笔转账的执行过程都包含了4部分,以第一笔转账为例:

(1)调用allowance函数查询代币批准,如下:

账户0xcfbc将所有的WBNB批准给了合约0xed1a。

(2)调用balanceOf函数查询余额,如下:

账户0xcfbc的WBNB余额为18.7

(3)调用balanceOf函数查询余额,与(2)中的查询余额相同。

(4)访问合约0x8785bb8deae13783b24d7afe250d42ea7d7e9d72,简记为0x8785

由合约0x8ca8调用合约0x8785中签名值为0x006de4df的函数

然后,由合约0x8785调用合约0x0b47中签名值为0xd9c45357的函数。

进而,由合约0x0b47调用合约0xed1a中签名值为0x0a5ea466的函数,即claimTokens函数。

其中,inputdata如下:

最后,合约0xed1a中的claimTokens函数会调用WBNB合约中的transferFrom函数。

将账户0xcfbc持有的所有的18.7WBNB转移给账户0x75f2,即攻击交易中第一笔转账。

通过以上过程,攻击者利用合约漏洞以及账户0xcfbc的批准,自定义inputdata,调用transferFrom函数将账户0xcfbc的所有WBNB转移到攻击者自己的账户中。

为什么攻击者可以转走用户批准的代币呢?

整个攻击过程中,攻击合约访问了3个合约,即0x8785、0x0b47和0xed1a。我们知道,Solidity合约中的函数调用属于动态调用类型,可以通过传递的参数来指定访问的合约、调用的函数以及相关的参数。明显这3个合约缺少对访问的合约、调用的函数以及相关的参数这3个方面的校验,使得攻击者可以利用用户对合约的代币批转调用代币的转账函数(transferFrom)调用用户的代币。

三、安全建议

攻击者利用了合约校验漏洞将用户批准的代币转移到了自己的账户中。被攻击合约本身存在校验漏洞是此次攻击发生的根本原因,对于Solidity中的call函数,尤其是在实际业务应用中,建议根据实际业务限定调用的合约以及函数,推荐使用白名单机制。

其次,用户对合约的无限额代币的批准也是引发攻击的原因之一,若每一次批准都是限量的,至少可以保证未批准的代币是安全的。因此,建议项目在获取用户批准的时候可以定量批准,即使这种做法可能会影响一些用户体验。

对于用户来说,批准交易需要谨慎,尤其是全部批准的情况。

关于我们:SharkTeam的愿景是全面保护Web3世界的安全。团队成员分布在北京、南京、苏州、硅谷,由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如Polkadot、Moonbeam、polygon、OKC、Huobi Global、imToken、ChainIDE等建立长期合作关系。

Twitter:https://twitter.com/sharkteamorg

Discord:https://discord.gg/bFmbFy74

Telegram:https://t.me/sharkteamorg

更多区块链安全咨询与分析,点击下方链接查看

D查查|链上风险核查https://m.chainaegis.com

关键词: 防范手段 根本原因

猜你喜欢

  • 焦点观察:SharkTeam独家分析 | 批准+校验漏洞-TransitSwap攻击事件分析
  • 全球看点:ChainAegis:BTC和ETH第三季度链上数据解读
  • 当前热门:光荣特库摩新作《狂野之心》7分钟实机演示放出
  • 环球快看:消息称马斯克曾提出降价30%收购推特 但被拒绝
  • 【天天新要闻】国际首次!我国实现百公里自由空间时频传递,会带来哪些重要影响?
  • 天天实时:科幻射击类游戏《流浪戴维号》正式登陆奇遇VR,满屏星际即视感!
  • 头条:应用链风起,未来将如何发展?
  • 杰克奥特曼最恐怖的一集是什么?杰克奥特曼大结局是什么意思?
  • 北欧神话中的世界之树是什么品种?北欧神话十二主神
  • 龙族路明非的真实身份是什么?龙族为什么要屠龙
  • 女主角很厉害的电视剧有哪些?女主角很厉害的小说有哪些?
  • 华而不实是什么意思?华而不实打一生肖是什么?
  • 仁显王后的男人结局是he还是be?仁显王后的男人演员表
  • 三生三世枕上书具体播出时间是什么时候?三生三世枕上书演员表
  • 花露水可以带上高铁吗?花露水的主要成分是什么?
  • 张蔷的26首经典老歌是什么?张蔷个人资料简介
  • 人民币加息意味着什么?人民币加息对股市的影响是什么?
  • 8500日元是多少人民币?8500日元等于多少美金?
  • 过水门是什么意思?过水门为什么是最高礼遇?
  • 4001395555是什么电话号码?4001395555为什么老打电话?