MKR:闪电贷:DeFi项目新玩法,如何攻击MakerDao获取7亿美金

编者按:本文来自头等仓区块链研究院,作者:DominikHarz,编译:头等仓-Mark,Odaily星球日报经授权转载。如果不引入新治理合约的延迟,您有可能窃取Maker的所有抵押品并使用闪电贷发行任意数量的Dai。任何人都可以执行攻击,只需要支付交易费用,而无需持有任何MKR。如果Maker在闪电贷池的流动性池超过阈值之前不引入延迟,则几乎没有机会阻止攻击。Maker知道了攻击方式,并在2月21日举行投票,以防止攻击。介绍

Maker及其Dai稳定币是以太坊上最受欢迎的去中心化金融项目,智能合约锁定了约7亿美元。Maker协议依赖于智能合约中编码的治理流程。MKR代币持有人可以投票替换现有的治理合约,投票与MKR的持有量成正比。MKR代币的总数约为987530,其中选定的钱包或合约持有大量代币:Maker基金会:117993MKRa16z:60000MKR0xfc7e22c6afa3ebb723bdde26d6ab3783aab9726b:51291MKR0x000be27f560fef0253cac4da8411611184356549:39645MKR注意:Maker治理合约包含多方的MKR令牌。治理攻击

安全机构:BSC链上Cupid代币合约遭受闪电贷攻击分析:8月31日消息,据Beosin EagleEye平台监测显示,BSC链上Cupid代币合约遭受闪电贷攻击,Beosin安全团队分析发现,Cupid合约0x40c994299fb4449ddf471d0634738ea79c734919有一个奖励的逻辑漏洞,拥有USDT/VENUS的LP代币可以得到Cupid代币,攻击者利用闪电贷贷出USDT,购买VENUS代币,抵押后得到LP代币,把LP发到多个地址后通过调用被攻击合约的0xe98bfe1e()函数claim得到Cupid代币,获得Cupid代币后抛售获利78,623 USDT。[2022/8/31 13:00:41]

2019年12月,MicahZoltu指出了如何攻击治理合约。基本思想是积累足够的MKR代币,用攻击者恶意的治理合约替换现有的治理合约。这样,恶意治理合约便能够使攻击者完全控制系统,并撤回系统以及Dai中的任何抵押品。为了减少所需的MKR代币数量,他建议在对新的治理合约进行投票时执行攻击。目前,在治理合约中已锁定192,910个MKR代币。但是,如果将两个或三个合约与类似的代币分发并行地进行投票,则攻击者将需要较少的代币。如下图所示,这种情况过去经常发生:

多链DeFi协议FEG疑似遭受闪电贷攻击,损失金额约130万美元:据成都链安安全舆情监控数据显示,Ethereum和BNBChain上FEGtoken项目均遭受闪电贷攻击。攻击者通过闪电贷借贷FEG、WBNB以及WETH代币,利用FEGexPRO合约中swapToSwap函数的path地址可控的漏洞,让FEGexPRO合约给攻击者控制的合约授权FEG、fBNB以及fETH代币,从而利用transferFrom函数将合约中FEG、fBNB以及fETH代币盗取出来。本次攻击约损失代币3280BNB和144ETH,价值$1,293,096.88。[2022/5/16 3:17:56]

明显的攻击策略是通过智能合约对所需的MKR代币进行众筹,并向每位攻击者支付一定份额的奖金。但是,攻击者可能需要积累大约5万个MKR代币,才能有机会在没有Maker注意到这些动作的情况下攻击系统。新攻击策略:闪电贷

Grim Finance 被黑简析:攻击者通过闪电贷借出 WFTM 与 BTC 代币:据慢雾区情报,2021 年 12 月 19 日,Fantom 链上 Grim Finance 项目遭受攻击。慢雾安全团队进行分析后以简讯的形式分享给大家。

1. 攻击者通过闪电贷借出 WFTM 与 BTC 代币,并在 SpiritSwap 中添加流动性获得 SPIRIT-LP 流动性凭证。

2. 随后攻击者通过 Grim Finance 的 GrimBoostVault 合约中的 depositFor 函数进行流动性抵押操作,而 depositFor 允许用户指定转入的 token 并通过 safeTransferFrom 将用户指定的代币转入 GrimBoostVault 中,depositFor 会根据用户转账前后本合约与策略池预期接收代币(预期接收 want 代币,本次攻击中应为 SPIRIT-LP)的差值为用户铸造抵押凭证。

3. 但由于 depositFor 函数并未检查用户指定转入的 token 的合法性,攻击者在调用 depositFor 函数时传入了由攻击者恶意创建的代币合约地址。当 GrimBoostVault 通过 safeTransferFrom 函数调用恶意合约的 transferFrom 函数时,恶意合约再次重入调用了 depositFor 函数。攻击者进行了多次重入并在最后一次转入真正的 SPIRIT-LP 流动性凭证进行抵押,此操作确保了在重入前后 GrimBoostVault 预期接收代币的差值存在。随后 depositFor 函数根据此差值计算并为攻击者铸造对应的抵押凭证。

4. 由于攻击者对 GrimBoostVault 合约重入了多次,因此 GrimBoostVault 合约为攻击者铸造了远多于预期的抵押凭证。攻击者使用此凭证在 GrimBoostVault 合约中取出了远多于之前抵押的 SPIRIT-LP 流动性凭证。随后攻击者使用此 SPIRIT-LP 流动性凭证移除流动性获得 WFTM 与 BTC 代币并归还闪电贷完成获利。

此次攻击是由于 GrimBoostVault 合约的 depositFor 函数未对用户传入的 token 的合法性进行检查且无防重入锁,导致恶意用户可以传入恶意代币地址对 depositFor 进行重入获得远多于预期的抵押凭证。慢雾安全团队建议:对于用户传入的参数应检查其是否符合预期,对于函数中的外部调用应控制好外部调用带来的重入攻击等风险。[2021/12/19 7:49:04]

但是,如果我们考虑使用闪电贷,则可以完全取消大量MKR代币的要求。闪电贷是一个相当新的概念,因此在此进行简要说明。通常,借贷人必须提供抵押品以在DeFi项目中获得贷款。例如,在Maker中,A可以通过存入ETH借用Dai。这是必需的,这是在弱身份和经济上合理的代理人的模型下运作的。闪电贷取消了这个要求,因为它仅在单个交易中发生:1.A从闪电贷流动性提供者中提取贷款。2.A执行一些动作。A偿还了利息的闪电贷。

BSC上DeFi协议Pancake Hunny遭闪电贷攻击:PeckShield派盾预警显示,BSC上DeFi协议Pancake Hunny遭到闪电贷攻击,HUNNY代币短时下跌70%左右。黑客攻击的交易中包含了513笔转账,Gas消耗达1900万,其中大量转账和Alpaca代币相关。[2021/10/20 20:44:02]

闪电贷之所以有效,是因为以太坊虚拟机的设计方式:如果在该交易期间的任何时候,闪电贷失败,那么整个交易将被还原。因此,A可以无偿承担贷款风险,如果无法偿还贷款,那就像从未承担过一样。流动性提供者也获得了胜利:他们只有在A能够偿还贷款的情况下才借出资金。利用闪电贷和Oracle进行操纵套利

Balancer将对被闪电贷攻击的损失者进行全额赔偿 约50万美元:去中心化交易协议Balancer Labs发布公告,表示将对昨天因为攻击事件而损失的用户进行全额赔偿,也将为Hex Capital提供最高额度的漏洞赏金。更多的细节将会在今日晚些时候发布。据此前报道,Balancer资金池遭闪电贷攻击,损失50万美元,此类攻击或仅影响通缩代币的资金池。[2020/6/29]

2月14日和2月18日,发生了两起涉及闪电贷的事件,导致bZx停止了平台。在第一笔交易中,单笔闪电贷就能赚取1193ETH的利润。该交易使用智能合约执行,该合约在wBTC上开设了Fulcrum的空头头寸。在同一笔交易中,该笔交易从Compound借出了wBTC贷款,并在Kyber的Uniswap储备金上进行了wBTC的交易,导致滑点最终也降低了Fulcrum的价格,可以在bZx的事后评估中找到完整的详细信息。同样,第二起事件发生在2月18日,在一次交易中获利2378ETH。该交易涉及初始借入7500ETH以在Synthetix?的sUSD上买入多头头寸。Oracle操纵以减少所需的流动性

对于攻击,假设50kMKR就足够了。即使在实践中,代币的数量可能会更多,闪电贷款的概念如何使Maker的安全难以保证,而不会造成治理延迟。以一种幼稚的方法,攻击者可以借一笔小额贷款购买5万个MKR代币。以目前的汇率,攻击者需要大约485000ETH来购买该数量的MKR,只有一个交易所Kyber有足够的可用容量。但是,攻击者还可以利用多个交易所从Kyber购买38kMKR,从Uniswap购买11.5kMK,从Switcheo购买500MKR,总计378940ETH。这个数字仍然很高,但已经减少了近100,000ETH!攻击者可以使用上面的Oracle操作策略来有效降低Kyber和Uniswap上的MKR价格。这是MKR的两个最大的提供者,并且显示出容易受到oracle价格操纵的影响,需要进一步分析以确定MKR价格可以降低多少。但是,在像wBTC这样的流动性较低的代币上,攻击者能够将价格波动操纵大约285%。获得足够的流动性

即使使用oracle操作,也需要大量ETH来执行对Maker的攻击。攻击者可以通过在同一笔交易中提取两笔闪电贷款来增加其流动性。Aave和dYdX保护自己免受重新进入的侵害,并且在单笔交易中仅允许一笔闪电贷款,但是攻击者可以在同一笔交易中从这两种协议借用ETH。组合方案

显然,可以将众筹和闪电贷结合起来。使用约107kETH的可用流动性,有可能从Kyber获得约10800MKR。这样一来,多个攻击者就可以将合计50kMKR的所需数量减少到大约39.2kMKR。正如非正式的Twitter调查显示,似乎有些人确实对这种攻击感兴趣:

还应注意,排名前四的帐户持有人能够在无需众筹的情况下执行攻击。最好的攻击时机

一旦可以通过闪电贷池获得足够的流动性,任何人都可以接管Maker治理合约。当流动性池达到该阈值时,一旦Maker开始投票,Maker就需要确保MKR代币分配得尽可能少。如果在此投票过程中的任何时候分发MKR都可以利用此漏洞,则可以剥夺任何抵押品。攻击者将能够窃取价值7亿美元的ETH抵押品,并能够随意创造新的Dai。由于Dai被用作其他协议的支持抵押品,因此这种攻击将遍及整个DeFi项目。此外,攻击者还可以利用他的Dai交易价值约2.3亿美元的其他货币。对策

Maker应修订新的治理合约,防止闪电贷攻击它的系统。具体来说,Maker基金会应该能够检查新的治理合约中是否存在恶意代码,并给予足够的时间做出反应。最低限度,新的治理合约不应在单个交易中生效。这样,攻击者可能无法从攻击中获利,从而无法偿还闪电贷。如果攻击者无法偿还闪电贷,那么攻击就永远不会发生。Maker将在2020年2月21日将此类合约进行表决。拟议的合约将激活治理安全模块,并防止此类闪电贷攻击。

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

链链资讯

[0:0ms0-8:406ms