区块链网站|NFTS DeFi DeFi 前车之鉴!复杂磁盘定义中的攻击逻辑

DeFi 前车之鉴!复杂磁盘定义中的攻击逻辑

广告位

DeFi丨前车之鉴!复盘 DeFi 中的攻击逻辑

作者|米卡洪卡萨洛

摘要

越来越多的人想通过攻击智能合约来偷钱,他们正在利用智能合约结合时出现的漏洞。

2020年,在对DeFi的袭击中,被抢或被盗的钱的总数已经达到3600万美元。但由于dForce的攻击者归还了被盗的2500万美元,实际金额约为1100万美元。

与以太坊早期相比,每次黑客攻击的平均损失值明显下降。在2020年的10次攻击中,有8次攻击的金额不到100万美元。

与传统的网络犯罪相比,区块链的信息对攻击者更有价值,因为对智能合约的成功攻击可以带来直接的经济回报。传统的被黑信息,比如被盗的个人信息,仍然需要出售赚钱,但智能合约中有直接资产。

在以太坊的早期,大多数攻击都是基于寻找个体漏洞,这使得攻击者能够冻结或耗尽智能合约。2016年臭名昭著的DAO黑客事件就是如此,当时价值1.6亿美元的ETH被盗,以太坊最终分裂出去。同样,2017年的巴黎多重签名攻击让黑客盗取了3000万美元,巴黎钱包中1.5亿美元被冻结,都是这类漏洞造成的后果。

这种智能合约的漏洞仍不时被利用。最近,一个攻击者成功地从令牌合同中窃取了所有VETH,仅仅通过耗尽VETH-ETH Uniswap池就获利90万美元。但这是VETH造成的简单错误,因为VETH修改ERC20令牌标准的方式存在逻辑错误。

总的来说,目前安全性有所提高,尤其是那些关注度较高的项目。用户对审计的期望和测试工具的改进推动了安全性的提高。最近DeFi最大的安全问题是DFORCE的2500万美元数字资产在借贷市场被盗。然而,由于攻击者的IP地址被找到并与新加坡警方共享,这些资金被归还。

dForce的攻击也可以认为是开发团队一个特别严重的疏忽的结果,因为被利用的漏洞是重新防御的。重入攻击是DAO枯竭的原因,这一直是众所周知的开发者在与ERC777令牌交互时需要考虑的问题。

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

假设一个合同有以下四个撤销步骤:

用户调用合约,并准备从合约中提取所有资金。

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

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

自我续约合同用户在合同中没有资金。

重入漏洞允许恶意用户在合同完全执行之前再次调用合同(“重入”)。在上面的例子中,攻击者可以在第三步和第四步之间重新输入契约,并在用户的余额更新之前再次撤回它。通过重复这一过程,他们可以从合同中提取所有现有资金。

这个原理被用来攻击dForce,当契约认为用户在不断增加imBTC抵押品(一个ERC777令牌)的金额时——那么契约将允许用户从系统中借入更多的资金。攻击者将其伪造的imBTC抵押品增加到远远超过2500万美元,然后通过贷款交易提取dForce中的所有流动性。

通过可组合性破解

区块链上的智能合约基于与用户和其他智能合约交互的无权限。对于设计智能合同的人来说,很难考虑到未来人们可能与他们的合同进行交互的每一种方式。其他人可以建立一个智能契约,并以原作者不想看到的方式与之交互。

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

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

最近6月18日对Balancer的攻击就是在特定市场使用非标准编程模式的类似例子。STA是一个额外紧缩模式的ERC20令牌,即从每笔转账中抽取1%的费用。攻击者使用智能合约在单个交易中自动执行多个操作来来回回交换WETH和STA令牌24次,并耗尽其中一个平衡器流动性池中的STA令牌,直到池中只剩下0.00000000000001 STA(1个weiSTA)。平衡器池没有意识到STA的通货紧缩模型,并根据1 weiSTA为其资产设定了新的价格。然后攻击手在池子里交易了韦德,林克,SNX和WBTC。通过这次攻击,两个资金池的资本损失超过50万美元。

一天后,Balancer遭遇了第二个漏洞问题,同样是因为与其他智能合约交互的意外行为导致的。Compound的令牌分发要求用户通过与Compound的智能合约交互来收集他们的报酬。想要同时获得COMP和BAL(通过提供流动性获得的平衡器令牌)的用户必须使用COMP创建流动性池,以便他们有资格获得这两个令牌。

攻击者意识到平衡器流动性池中的资产产生的新红利不属于任何人,因此攻击者可以进入池中,获得这些可用的红利代币,然后带着比他们投入流动性池中的更多的钱离开。就像现在发现的漏洞一样,攻击者利用闪贷最大化自己的资本,然后获得最大的利润。

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

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

Synthetix是一个长期以来饱受此类问题困扰的协议。从2019年9月到2020年2月,在预测器更新之前,这个协议的套利机器人一直在不停地运行。在Synthetix中,交易不是买卖双方通过撮合进行的,而是基于预言机提供的价格反馈,流动性由SNX代币持有者提供。

当Synthetix的预测者在链上发布价格反馈时,在预测者有机会更新价格之前,机器人将通过支付高额交易费被纳入以太坊区块。因为这次套利,Synthetix单日交易量最高达到6900万美元,而没有套利机会的Synthetix平均交易量今天只有150万美元。

3月12日(\’黑色星期四\’),金库的主人在马克尔道清算中意外损失了830万美元,交易成本也是这次事故的原因之一。当MakerDAO的金库(用户存放抵押品并生成DAI的地方)抵押品不足时,其抵押品(如ETH)将被拍卖,以筹集Dai并偿还清算金库的债务。通常拍卖中的保管者会将戴换成金库中的ETH,然后将这些戴销毁。一旦债务还清,资金池的原所有者将获得剩余的ETH。

3月12日,由于ETH价格暴跌50%以上,多家基金银行进入清算。与此同时,以太坊的网络变得非常拥堵,燃气飙升至400gwei或正常价格的20倍,导致大部分保管员无法立即报价。一个保管员不断触发平仓,以0美元的出价拿下了可用的ETH。

未来对现有治理的攻击?

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

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

敌意收购的例子就发生在Steemit。当这个社交媒体平台背后的团队将Steemit出售给Tron时,社区试图使Tron拥有的代币投票权无效,但这种努力最终被火币、币安等大型交易所的投票权所消灭。

随着DeFi中工具的完善,攻击者的“工具箱”变得越来越高级。闪贷允许任何拥有必要专业知识的人攻击其中一个系统,并获得更多资本以实现利润最大化。

如果说从COMP和BAL代币的发行中可以学到什么的话,那就是无论什么激励方案,只要有利可图,总会有人占便宜。

由利亚姆翻译,米卡洪卡萨洛

利亚姆编辑

内容仅供参考,不作为投资建议,风险自担。

未经许可,严禁版权。

作者:加密谷直播;本文仅代表作者观点,不代表链家官方立场。所有带“GetNo”的文章的原创性和真实性。由贡献者担保。如果稿件有抄袭、篡改等行为造成的法律后果,投稿人自己负责在平台上发布文章。如有侵权、违规等不当言论,请读者监督。一旦确认,平台会立即下线。如果文章内容有任何问题,请发送到电子邮件:linggeqi@chaindd.com。

广告位
本文来自网络,不代表区块链网站|NFTS立场,转载请注明出处:https://www.qklwz.com/defi/12742.html
上一篇
下一篇

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部