Cointime

扫码下载App
iOS & Android

走进MEV攻击:看黑客如何通过夹层手法获取暴利

个人专家

作者:Immunefi. 编译:Cointime.com QDD

引言

区块链空间中的利用行为变得越来越复杂。

在过去,智能合约开发人员和审计员主要需要考虑如何保护智能合约免受单个交易中的利用。但现在,越来越常见的是看到跨多个交易发生的攻击。

黑客在攻击中愿意冒的个人资金风险也越来越大,以追求巨大的收益。

就在上周,一名黑客冒险投入50 ETH(约96,000美元)对Rodeo Finance进行攻击,结果获得约472 ETH的利润,价值约890,000美元。像这样的案例巩固了“攻击成本”不是有效的安全威慑措施的原则,任何依赖高攻击成本来保护自身安全的协议都应重新考虑其策略。

在本文中,我们将解释黑客如何使用MEV攻击脆弱的协议的常见方式之一。我们还将解释作为漏洞猎手如何使用PoC(概念证明)正确演示MEV攻击向量。

什么是MEV

MEV(矿工可提取价值或最大可提取价值)允许矿工在区块被挖掘之前排除、包含和排序区块中的交易。随着以太坊合并后的结果,这种情况发生了相当大的变化,将这种交易排序角色转移到了网络的验证者。但尽管如此,MEV攻击向量在区块链空间仍然很常见和相关。

攻击者可以通过多种方式使用MEV。我们将演示被称为“夹层攻击”的方法,这是通过对受害者的交换交易进行前奏和后奏来实现的。

前奏(Frontrunning)

前奏是一种技术,攻击者设法在受害者的交易之前提交自己的交易,使得攻击者的交易首先执行。这可以通过增加恶意交易的燃气价格来完成,以便优先于具有较低燃气费率的受害者交易。

后奏(Backrunning)

后奏是一种技术,攻击者将恶意交易放在受害者交易执行后。攻击者可以通过降低恶意交易的燃气价格来实现这一点。这将确保受害者交易优先于后奏交易。

夹层攻击

在夹层攻击场景中,攻击者监视交易池(未决交易的列表)以寻找他们想要利用的目标交易。一旦他们确定目标,他们会提交两个交易——一个在目标交易之前,一个在目标交易之后——就像夹层面包中夹着馅料一样。这个夹层的目的是为了以攻击者的利益操纵目标交易的执行或结果。

使用前面部分提到的方法,攻击者会提交两个燃气费比受害者交易更高和更低的交易,以成功执行夹层攻击。或者,他们可以通过专业的RPC提供者提交交易捆绑,以收取费用保证交易的排序。

这种攻击在DeFi生态系统中可能特别有问题,因为涉及代币、流动性池或去中心化交易的交易非常容易受到交易排序的影响。在这些情况下,攻击者的目标通常是操纵资产价格,从套利机会中获利,或者利用协议中的其他漏洞谋取个人收益。

如何测试MEV攻击

为了创建一个演示MEV攻击的PoC,我们可以使用Hardhat和Forge等工具创建区块链的本地分支。

为了证明这两个测试之间的确定性结果,我们将使用相同的Attacker合约,可以通过此Github gist访问。

在这个演示中,我们故意让受害者在UniswapV2中调用从WETH到USDC的交换交易,最低金额设为0。使得这个交易容易受到夹层攻击的脆弱性是将最小金额设为0,这意味着即使受害者只收到0 USDC或99%滑点,交易也不会回滚。这就是为什么设置最小金额非常关键。

Hardhat

Hardhat是用于智能合约开发的框架,允许开发人员使用JavaScript/TypeScript与智能合约进行交互。在Forge(一种较新的框架)出现之前,大多数白帽黑客通过使用Hardhat分叉区块链来制作他们的PoC。

方便的是,Hardhat已经提供了一种机制来保持交易的最终化,以便我们调用的交易可以在这些交易最终化之前在交易池中聚合。

一步一步的指南:

l   确保你的机器上已经安装了Hardhat(https://github.com/NomicFoundation/hardhat

l   创建一个简单的Hardhat项目

l   mkdir MEV-poc

l   cd MEV-poc

l   yarn add hardhat

l   npx hardhat init

l   将合约更改为Attacker合约。

l   将scripts文件夹中的文件更改为sandwichAttack.js https://gist.github.com/GibranAkbaromiL/05020630475f4f2599f72b47e52c7949#file-sandwichattack-js

l   运行npx hardhat run scripts/sandwichAttack.js

输出:

Forge

Forge是一个智能合约开发工具链,允许你使用Solidity脚本测试、部署和与区块链交互。这使我们能够仅通过测试文件中的交易排序演示MEV攻击。

一步一步的指南:

l   确保你的机器上已经安装了Forge(https://book.getfoundry.sh/getting-started/installation)。

l   创建一个简单的forge项目。

l   mkdir MEV-poc

l   cd MEV-poc

l   forge init

l   将src文件夹中的合约更改为攻击者合约。

l   将test文件夹中的测试文件更改为Sandwich.t.sol。https://gist.github.com/GibranAkbaromiL/05020630475f4f2599f72b47e52c7949#file-sandwich-t-sol

输出:

通过这两个测试案例,我们成功地演示了使用Hardhat和Forge进行MEV夹层攻击。从测试案例的输出中可以看出,攻击者和受害者的初始余额都是1000 WETH,攻击者成功地在受害者交易前奏和后奏,导致攻击者获得约123 WETH的利润。受害者收到的USDC较少。

我们学到了什么

在安全研究中,最关键的部分之一是根据你所发现的潜在漏洞创建一个PoC。为什么这么重要呢?因为仅仅识别潜在的漏洞并不能使攻击有效。我们确认攻击是否有效的唯一方法是通过创建一个PoC,每个已识别的漏洞都必须单独创建一个PoC。

我们只讨论了可能发生MEV的许多攻击向量中的一种,你作为研究人员发现的实际攻击场景可能与这里展示的场景大相径庭。在上面的示例中,我们只涉及了其中最常见的一种向量,即没有滑点保护的交换夹层攻击。如果你想测试自己的技能并尝试复制其他攻击向量,请还参阅:NFT铸造前奏链外言机价格更新前奏和JIT(即时)流动性

这篇文章就到这里了。我们希望你能通过在这里度过的几分钟时间,获得一些新的理解或者巩固现有的知识。继续搜寻漏洞,不要停止学习。每天都有新的利用和漏洞等待我们去发现,对于付出努力的白帽黑客来说,奖励和机会是不会缺乏的。

评论

所有评论

推荐阅读

  • EXOR集团 :拒绝Tether公司收购尤文图斯股份的提议

    EXOR集团 :拒绝Tether公司收购尤文图斯股份的提议,重申无意出售尤文图斯股份。 此前报道,加密货币巨头Tether公司对于收购尤文图斯俱乐部的计划非常认真,他们准备再次开出一份超过20亿欧元的新报价。

  • Tether 开出总估价超过 20 亿欧元的新报价收购尤文图斯

    加密货币巨头 Tether 公司对于收购尤文图斯俱乐部的计划非常认真,他们准备再次开出一份超过 20 亿欧元的新报价。昨天 Tether 已经向 Exor 董事会提交了一份报价,意图收购阿涅利家族控股公司所持有的尤文图斯 65.4% 股份,这一消息由首席执行官保罗-阿尔多伊诺通过社交媒体公布,但这仅仅是谈判的开始。

  • American Bitcoin比特币储备过去7天增加约623枚,现仓位达4941枚BTC

    此前曾披露分析“1011内幕巨鲸”的链上分析师Emmett Gallic在X平台发文披露特朗普家族支持的加密矿企American Bitcoin比特币储备更新数据,过去七天增加约623枚BTC,其中约80枚来自于挖矿收入,542枚来自于公开市场的战略收购,截至目前其比特币总持有量增至4941枚,当前市值约合4.5亿美元。

  • 美国现货以太坊ETF昨日净流出1940万美元

    据TraderT监测,美国现货以太坊ETF昨日净流出1940万美元

  • 华夏基金香港在Solana上推出亚洲最大代币化货币市场基金

    12月12日消息,华夏基金香港(ChinaAMC HK)产品与策略负责人 Katie He 在 Solana Breakpoint 大会上表示,将推出亚洲首个且规模最大的代币化货币市场基金,涵盖港币(HKD)、美元(USD)和人民币(RMB)计价,将传统货币市场工具代币化,为投资者提供安全、链上访问稳定收益的机会,具有完全透明度和实时结算。经过数月与监管机构及 OSL 等伙伴的合作,这一创新将自香港扩展至更广阔地区,并原生部署到 Solana 区块链上。

  • 加拿大皇家银行已购入77,700股American Bitcoin股票

    据市场消息:价值1万亿美元的加拿大皇家银行已购入77,700股American Bitcoin ($ABTC)股票,价值约15万美元。该比特币矿企由特朗普家族成员Eric Trump支持。

  • 中国人民银行:继续实施适度宽松的货币政策,推进人民币国际化

    中国人民银行党委召开会议,会议纪要第三点指出:继续实施适度宽松的货币政策,加快推进金融供给侧结构性改革。把促进经济稳定增长、物价合理回升作为货币政策的重要考量,灵活高效运用降准降息等多种货币政策工具,把握好政策实施的力度、节奏和时机,保持流动性充裕,促进社会综合融资成本低位运行,加强对实体经济的金融支持。畅通货币政策传导机制,优化结构性货币政策工具运用,加强与财政政策的协同,激励和引导金融机构加力支持扩大内需、科技创新、中小微企业等重点领域。保持人民币汇率在合理均衡水平上的基本稳定。会议纪要第五点指出:稳步推进金融高水平开放,维护中国国家金融安全。践行全球治理倡议,积极参与和推进全球金融治理改革完善。务实开展金融外交和多双边货币金融合作。推进人民币国际化。持续建设和发展多渠道、广覆盖的人民币跨境支付体系。稳步发展数字人民币。

  • 日本央行据悉将进行更多加息 部分官员认为中性利率高于1%

    据知情人士透露,日本央行官员认为,在本轮加息周期结束前,利率很可能升至0.75%之上,这表明在下周加息之后,可能还会有更多次加息。这些人士称,官员认为,即使加息至0.75%,日本央行仍未达到中性利率水平。部分官员已认为1%仍低于中性利率水平。知情人士表示,即便日本央行根据最新数据更新中性利率估算,目前也并不认为该区间会显著收窄。目前日本央行对名义中性利率区间的估计约为1%至2.5%。知情人士称,日本央行官员认为该区间上下限本身也可能存在误差。(金十)

  • Nexus 启动“节点之光·先锋理财周”,打造节点用户专属通道

    Nexus 12月12日宣布即将启动为期五天的 “节点之光·先锋理财周”,以“节点身份金融特权” 为核心理念,为生态核心参与者开启一段独立于全平台的专属理财周期。此次活动仅限节点用户参与专属理财包认购,并为随后上线的全平台理财与 NexSwap 注入市场期待。

  • 美 SEC 主席:DTC 参与者可将代币化证券转入其他参与者的注册钱包

    美国证券交易委员会(SEC)主席 Paul Atkins 在 X 平台发文表示,美国金融市场即将向链上转型并将优先考虑创新并积极采用新技术,SEC 已向美国存托信托与清算公司(DTC)发布了一封不采取行动的信函,链上市场将为投资者带来更高的可预测性、透明度和效率,现在 DTC 参与者可以直接将代币化证券转入其他参与者的注册钱包,这些交易将被 DTC 官方记录跟踪。