1. 比特币行情首页
  2. 资讯
  3. 技术

得到教训! DeFi中的攻击逻辑

作者| Mika Honkasalo

摘要

越来越多的人希望通过攻击智能合约来窃取资金。他们正在利用将智能合约组合在一起时发生的漏洞。

到2020年,攻击DeFi时查获或盗取的资金总额已达到3600万美元。但是由于dForce攻击者退回了被盗的2500万美元,实际金额约为1100万美元。

以太坊相比,每次丢失的黑客攻击的平均价值已大大下降。在2020年的10起攻击中,有8起攻击的金额不到100万美元。

与传统的网络犯罪相比,区块链上的信息对攻击者更有价值,因为对智能合约的成功攻击可以带来直接的经济回报。传统上,被黑客入侵的信息(例如,被盗的个人信息)也需要出售才能赚钱,但是资产直接存储在智能合约中。

在以太坊初期,大多数攻击都是基于个人找到漏洞可能允许攻击者冻结或智能合同用完的能力。 2016年臭名昭著的DAO黑客事件就是这种情况,其中1.6亿美元的eth被盗并最终以太坊分叉。同样,2017年的Parity多签名攻击使黑客窃取了3000万美元,而Parity钱包中的1.5亿美元被冻结了,所有这些都是此类漏洞的后果。

此类智能合约的漏洞仍不时被利用。最近,攻击者成功偷走所有的V eth从令牌合同,只是排出在V赚了$ 900,000 eth – eth Uniswap池。但这是由V eth引起的简单错误,因为V eth修改ERC20令牌标准的方式在逻辑上是错误的。

总的来说,安全性得到了改善,尤其是那些受到高度重视的项目。用户对审计的期望以及围绕测试的工具的改进推动了其安全性的提高。 DeFi最近最大的安全问题是dForce的2500万美元数字资产在贷款市场被盗。但是,由于找到了攻击者的IP地址并与新加坡警察共享了该资金,因此资金被退回了。

dForce攻击也可以被认为是开发团队特别认真的监督的结果,因为被利用的漏洞是重新进入的。重入攻击是DAO耗尽的原因,这也是开发人员在与ERC777令牌进行交互时需要考虑的一个众所周知的问题。

ERC777令牌的一个显着特征是它可以通知将接收或发送资金的智能合约-并允许该合约根据此信息采取行动。如果允许用户从合同中提取所有资金,此示例说明了为什么合同容易受到重入攻击。

想象一下具有以下四个撤回步骤的合同:

用户致电合同,并准备从合同中提取所有资金。

合同检查用户合同中是否有资金。

合同将合同中的用户资金发送给用户。

合同会自行更新。用户合同中没有资金。

重入漏洞允许恶意用户在合同完全执行之前再次调用合同(“重入”)。在上面的示例中,攻击者可以在步骤3和步骤4之间重新输入合同,并在更新用户余额之前再次将其撤回。通过重复此过程,他们可以从合同中提取所有现有资金。

当合同认为用户不断增加im btc抵押品(ERC777令牌)时,可使用此原理来攻击dForce-然后合同将允许用户从系统中借入更多资金。攻击者将其假冒的btc抵押品增加到2500万美元以上,然后以贷款交易的形式撤回了dForce中的所有流动资金。

通过可组合性进行黑客攻击

得到教训! DeFi中的攻击逻辑

区块链上的智能合约基于与用户和其他智能合约的无许可交互。对于那些设计智能合约的人来说,很难考虑某人将来与合约互动的所有方式。其他人可以建立智能合约并以原始作者不希望看到的方式与合约进行交互。

用户在dForce攻击中使用了基于ERC-777标准的相同漏洞,并从im btc – eth Uniswap池中提取了220,000美元。在使用Uniswap的情况下,攻击者从eth -im btc移除了令牌池eth ,但是IM btc令牌余额没有增加。这种操作通常会增加eth的价格。

与dForce案不同,Uniswap开发团队在这里没有真正的责任,他们几乎不可能阻止人们陷入这种陷阱。即使Uniswap团队确保其交互界面不允许用户向可能已用尽的池中增加流动性,他们也无法阻止其他交互界面建立在允许它的智能合约上。实际上,这种特殊的攻击方法已经在很多年前被广泛讨论。

6月18日对平衡器的最新攻击是在特定市场中使用非标准编程模的类似示例。 STA是带有附加通货紧缩模的ERC20令牌,它将从每次转账中提取1%的费用。攻击者使用智能合约在单个交易中自动执行多项操作以来回交换W eth和STA令牌24次,耗尽了Balancer流动性池中的STA令牌之一,直到池中仅剩0.000000000000000001 STA(1 weiSTA) 。平衡器池不了解STA的通货紧缩模,并基于1 weiSTA为其资产设定新价格。然后,攻击者在池中交易W eth ,LINK,SNX和W btc 。通过这次攻击,两个资金池的资本损失超过500,000美元。

一天后,由于与其他智能合约进行交互时的意外行为,Balancer遇到了第二个漏洞问题。复合令牌的分发要求用户通过与复合智能合约进行交互来接收其COMP。想要同时获得COMP和BAL(通过提供流动性而获得的均衡代币)的用户,必须使用COMP来创建流动性池,以便他们有资格同时获得这两种代币。

攻击者意识到由Balancer流动性池中的资产生成的新COMP不属于任何人,因此攻击者可以进入一个池以获取这些可用的COMP令牌,然后将它们带入流动池中,以留出更多资金。就像现在发现的漏洞一样,攻击者使用闪电贷款来最大化其资本,然后获得最大的利益。

使用区块链的独特属性进行攻击

第三类攻击涉及使用区块链本身的属性。

长期以来受此类问题困扰的协议是Synthetix。从2019年9月到2020年2月,该协议的套利机器人在oracle更新之前连续运行。在Synthetix中,交易不是买卖双方之间通过匹配进行的交易,而是基于oracle提供的价格反馈的交易,而流动性由SNX令牌持有者提供。

当Synthetix的甲骨文机器在链上发布价格反馈时,在甲骨文机器有机会通过支付高额交易费用来更新价格之前,该机器人将包含在以太坊区块中。由于这种先发制人的套利,Synthetix的交易量一天之内最高达到了6900万美元,而如今Synthetix的无套利机会的平均交易量仅为150万美元。

得到教训! DeFi中的攻击逻辑

3月12日(“黑色星期四”),金库(保管库)的所有者在MakerDAO清算中意外损失了830万美元,交易费用也是造成此事故的原因之一。当MakerDAO的库房(用户存入抵押品并产生Dai的抵押品)不足时,将拍卖其抵押品(如eth )以提高DAI并偿还清算库房的债务。通常,拍卖中的投标人(管理人)将使用DAI来交换金库中的eth ,然后销毁这些DAI。一旦还清债务,库房的原始所有者将获得剩余的eth 。

3月12日,由于eth的价格突然下跌了50%以上,许多基金进入了清算程序。同时, 以太坊的网络已变得非常拥挤,天然气飙升至400gwei或正常价格的20倍,这导致大多数管理者无法实时报价。一个门将继续触发清算并赢得可用eth $ 0竞标。

未来的治理攻击?

随着项目从开发团队的集中控制转移到令牌持有者社区的分散治理,治理攻击的问题可能会变得更加普遍。从理论上讲,通过购买链上的选票,区块链可能会成为贿赂的绝佳工具。

购买选票可用于敌意收购,而敌方购买另一项目的多数投票权(代币)便宜。例如,贷款协议可以为另一个贷款协议的令牌持有者提供折扣,允许他们出售另一个协议的令牌以换取自己的令牌。

在Steemit上已经发生了敌意收购的例子。当这个社交媒体平台背后的团队将Steemit卖给Tron的时候,社区试图让Tron投票的代币失败了,但最终的努力却被火币币安等主要交易所的投票权淘汰了。

随着DeFi中工具的改进,攻击者的“工具箱”变得越来越先进。闪电贷款允许具有必要专业知识的任何人攻击这些系统之一,并获得更多资本以最大程度地提高利润。

如果从COMP和BAL代币的发行中可以学到一件事,那就是无论采用哪种激励方案,只要它是有利可图的,总会有人漏洞。

得到教训! DeFi中的攻击逻辑
添加新手交流群:币种分析,每日早晚盘分析
添加助理微信,一对一亲自指导:Zsm1991-8-03

发布者:Libert,转请注明出处:https://www.btchangqing.cn/62659.html

发表评论

登录后才能评论
商务微信
商务微信
客服QQ
分享本页
返回顶部