SharkTeam:Tornado.Cash提案攻击原理分析_SHA:BSP

北京时间 2023 年 5 月 20 日,Tornado.Cash 遭受提案攻击,攻击者已获利约 68 万美元。

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

攻击者地址:

0x092123663804f8801b9b086b03B98D706f77bD59

0x592340957eBC9e4Afb0E9Af221d06fDDDF789de9

攻击合约:

0xAF54612427d97489707332efe0b6290F129DbAcb

0x03ecf0d22f9ccd21144a7d492cf63b471916497a

CoinShares资产管理规模在第三季度回升至20亿英镑以上:金色财经报道,数字资产管理公司CoinShares发布了第三季度财报,在第二季度,该公司资产管理规模低于20亿英镑;到9月30日已恢复到20.2亿英镑。调整后的利息、税项、折旧和摊销前利润或EBITDA(衡量公司财务业绩的常用指标)为640万英镑(略高于730万美元)。然而,这低于一年前调整后的EBITDA 2610万英镑。[2022/11/1 12:02:56]

0x7dc86183274b28e9f1a100a0152dac975361353d(部署合约)

0xc503893b3e3c0c6b909222b45f2a3a259a52752d(假提案合约)

被攻击合约:

0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce

Fairyproof:BNB链上ShadowFi (SDF)遭到攻击,被盗1078个BNB:9月2日消息,根据区块链安全公司Fairyproof的探测系统,部署在BNB链上的ShadowFi (SDF)遭到攻击。

根本原因是它的“burn”函数的可见性是“public”。这种可见性通常不应该设置为公开,而应该是一个内部函数。

攻击过程如下:

步骤1:攻击者获取了一定数量的SDF

步骤2: 烧掉交易对中的一些SDF,以推高SDF的价格

步骤3:攻击者将步骤1中获取的所有SDF交换为WBNB

下面是攻击交易的截图:

在撰写本文时,大约有1078 BNB(30万美元)被盗,并通过BNB链上的Tornado Cash提现。[2022/9/2 13:05:04]

发起提案交易:

美国SEC拒绝Ark 21Shares的现货比特币ETF申请:金色财经消息,根据一份文件,美国证券交易委员会(SEC)已经拒绝了Ark 21Shares的现货比特币交易所交易基金(ETF)的申请,理由是缺乏对投资者的保护。Ark是由明星投资者Cathie Wood经营的,该申请是代表Cboe BZX交易所提出的,目的是改变规则,允许Ark 21Shares的发行上市。

Ark投资管理公司和投资产品公司21Shares曾在去年7月合作推出该产品。Ark 21Shares的最初申请被多次推迟,最后一次是在1月份。(Coindesk)[2022/4/1 14:31:57]

0x34605f1d6463a48b818157f7b26d040f8dd329273702a0618e9e74fe350e6e0d

攻击交易:

ProShares向CME申请豁免比特币期货ETF头寸限制:10月25日消息,根据《巴伦周刊》报道,ProShares已经向CME申请豁免比特币期货ETF头寸限制。在未豁免的情况下,从11月份的近月合约开始,CME将把比特币期货ETF的买家可以购买的期货数量限制在4,000张,在到期前三天降至2,000张。由于每张合约代表5个比特币,所以总所有权限制在2万个比特币。

为了绕开这一限制,ProShares已经将其期货投资组合分成了两部分,分别在10月和11月上市。ProShares的CEO Michael Sapir表示,如果CME不授予豁免,ProShares可能会将资产转换为远期合约、结构性票据或掉期合约。《巴伦周刊》还指出,ProShares的ETF招股说明书称,该基金也可以投资有加密货币敞口的股票。[2021/10/25 20:54:27]

0x3274b6090685b842aca80b304a4dcee0f61ef8b6afee10b7c7533c32fb75486d

攻击流程:

(1 )首先,攻击者(0x08e80ecb)先向被攻击合约(0x5efda50f)发起了一个提案,并宣称此提案是16 号提案的补充

(2 ) 但提案中实际上存在一个额外的自毁函数。

(3 )很遗憾的是社区并没有发现此提案中存在问题,大多数成员都投票通过了这次提案。

(4 )攻击者创建了很多个合约来实行代币的转移

(5 )攻击者(0x08e80ecb)销毁了提案合约(0xc503893b)和他的创建合约(0x7dc86183)。随后在相同的地址重新部署了攻击合约(0xc503893b)。

(6 )修改完提案合约后,攻击者(0x08e80ecb)执行提案并将自己所控制的合约地址的代币锁定量都修改为10000 。

(7 )提案执行完成后,攻击者(0x08e80ecb)将代币转移到自己的地址,并获得被攻击合约的所有权。

漏洞分析:

由于提案合约(0xc503893b)的创建合约(0x7dc86183)是通过creat 2 进行部署的,所以两个合约销毁之后,在同一地址上可以部署新的逻辑合约,并且提案执行是通过delegatecall的形式调用,攻击合约可任意修改被攻击合约中的值。

事件总结:

本次事件发生原因是由于社区在检查提案时未能发现提案中存在的风险,并没有认真核实提案合约的代码是否存在安全漏洞。

针对本次攻击事件,我们在开发过程中应遵循以下注意事项:

(1 )在进行提案设计时充分考虑提案机制的安全性并尽量降低提案被中心化控制的风险,可以考虑通过降低攻击的价值,增加获得投票权的成本,以及增加执行攻击的成本等方式结合实际妥善设计。

(2 )在进行提案的投票前,社区应慎重检查合约代码是否有后门。

(3 )在提案通过前,可联系第三方安全审计公司对合约逻辑代码进行安全审计。

金色荐读

金色财经 善欧巴

迪新财讯

Chainlink预言机

区块律动BlockBeats

白话区块链

金色早8点

Odaily星球日报

欧科云链

MarsBit

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:0ms0-6:199ms