智能合约安全

2024年07月08日更新 456 人订阅
专栏简介 DeFi安全之杠杆挖矿 SharkTeam系列课程—NFT&GameFi开发与安全 NFT和GameFi概念介绍 ERC20/ERC721/ERC1155概念与协议 闪电贷和重入攻击:Grim Finance被黑事件分析 重入攻击:Uniswap V3流动性协议Visor Finance被黑事件分析 领航Web3安全,让数字生活更安全更美好:SharkTeam线上AMA实录 闪电贷攻击:Sashimi Swap被黑事件分析 ERC20相关业务的合约开发与合约安全 权限问题:Crosswise 被黑事件分析 细节决定成败:QBridge被黑事件分析 损失3.26亿,跨链协议再暴雷:Wormhole被黑事件分析 参数校验不严谨:Superfluid被黑事件分析 ERC721/ERC1155合约开发与合约安全 闪电贷+提案攻击-Beanstalk Farms攻击原理及资金流向分析 监守自盗?Titano.Finance被黑事件分析 AscendEX黑客攻击事件资金流向分析 NFT交易平台安全风险频发--OpenSea & X2Y2安全事件分析 SharkTeam系列课程—NFT 应用场景分析 SharkTeam发布2022年Q1智能合约安全态势感知季报 ChainAegis链上分析:以太坊合并后的中心化风险 大意失荆州-Akutar合约漏洞导致34M美元资金永久被锁 SharkTeam:十大智能合约安全威胁之回退攻击 闪电贷&重入攻击:Hundred与Agave被黑事件分析 从APE空投漏洞谈起,NFT安全情况究竟如何? 千里之堤,溃于蚁穴—跨链协议Nomad被黑事件分析 SharkTeam服务全线升级,重磅推出ChainAegis链上风险分析平台,全面保障Web3生态安全 ChainAegis:从链上数据看,FTX会崩盘吗? NFT合约同样也有重入风险:Revest Finance被黑事件分析 操纵预言机+提案攻击—Fortress Loans被黑事件分析 去年519,今年510—从链上分析的角度看,LUNA会不会真的陷入死亡螺旋? 算法稳定币UST崩盘—是完美风暴还是金融围猎? 6.2亿,再破记录:Ronin Bridge攻击事件技术分析与资金流向分析 周天王的愚人节-NFT精准钓鱼事件技术分析与资金流向分析 【深度】从链上分析和金融安全角度,看stETH的囚徒困境和Celsius挤兑事件 NFT流动性协议的安全困局—NFT借贷协议XCarnival被黑事件分析 NFT流动性市场安全问题频发—NFT交易平台Quixotic被黑事件分析 【深度】OpenSea 新协议 Seaport源码解析 重入攻击+闪电贷—NFT金融协议Omni被黑事件分析 SharkTeam发布2022年第二季度Web3安全态势感知报告 DeFi安全之DEX与AMMs SharkTeam完成Flow生态NFT市场MatrixMarket的安全审计 闪电贷技术详解-Part 1 闪电贷技术详解-Part 2 闪电贷技术详解-Part 3 SharkTeam系列课程:什么是DeFi借贷 DeFi安全之抵押借贷 从链上分析角度看Tornado Cash被制裁事件 Defi安全之借贷杠杆 链上数据角度,看DeFi隐私赛道的现状和未来 火眼金睛,教你如何识别Rug Pull项目 SharkTeam:十大智能合约安全威胁之重入攻击 SharkTeam:十大智能合约安全威胁之操纵预言机 SharkTeam:十大智能合约安全威胁之逻辑校验漏洞 SharkTeam:十大智能合约安全威胁之权限漏洞 SharkTeam:8月Web3安全报告 SharkTeam:十大智能合约安全威胁之合约升级漏洞 警惕以太坊合并后的重放攻击:Omni跨链桥被攻击事件分析 SharkTeam:十大智能合约安全威胁之函数恶意初始化 波卡“以太坊"Moonbeam的技术创新之路 左手以太坊、右手跨链-Moonbeam的创新与突破 批准+校验漏洞-TransitSwap安全事件分析 ChainAegis:BTC和ETH第三季度链上数据解读 默克尔树漏洞成因和链上资金追踪-BNBChain跨链桥攻击事件分析 SharkTeam:Move合约开发与合约安全 Moonbeam的多链架构 高保真还原BNBChain跨链攻击实现原理-攻击者选择高度为110217401的区块到底有什么讲究? SharkTeam:十大智能合约安全威胁之三明治攻击 香港要成为国际虚拟资产中心,链上安全是关键 SharkTeam:十大智能合约安全威胁之提案攻击 ChainAegis:FTX资金流向最新分析,风险大,请尽快提款 SharkTeam:十大智能合约安全威胁之重放攻击 Move语言安全性分析及合约审计要点 之权限漏洞、重入攻击 ChainAegis:Top20 中心化交易所资金储备链上分析-Part 1 区块链安全 Move语言安全性分析及合约审计要点 之逻辑校验漏洞 ChainAegis:Top20 中心化交易所资金储备链上分析-Part 2 ChainAegis:Top20 中心化交易所资金储备链上分析-Part 3 Move语言安全性分析及合约审计要点 之函数恶意初始化 链上数据分析:CeFi频繁暴雷后,DEX会成为主流吗? Move语言安全性分析及合约审计要点之回退攻击 SharkTeam:11月Web3安全报告 SharkTeam与NFMS达成合作,提供Move合约审计服务 Move语言安全性分析及合约审计要点之提案攻击 ChainAegis分析报告:Dogecoin排名前10的市值从何而来? SharkTeam完成APTOS生态项目NFMS的合约审计 ArWiki调研报告 Move语言安全性分析及合约审计要点之合约升级漏洞 Verto调研报告 在深熊中艰难前行,DeFi & CeFi 2022年度分析报告 SharkTeam:2022年度Web3安全报告 ChainAegis:2022年度NFT&GameFi分析报告 Move语言安全性分析及合约审计要点之操纵预言机 加密货币反洗钱(AML)分析 SharkTeam:Move语言安全性分析及合约审计要点 之三明治攻击 ChainAegis:BUSD链上数据分析报告 闪电贷攻击+业务逻辑漏洞:Platypus Finance事件分析 SharkTeam:Move语言安全性分析及合约审计要点之重放攻击 加密货币钓鱼团伙Monkey Drainer链上行为分析 权限漏洞+价格操纵:SwapX被攻击事件分析 ChainAegis:Blur链上数据分析报告 ChainAegis:数读Silvergate & SVB崩盘事件 业务逻辑漏洞+闪电贷攻击:Euler Finance被攻击事件分析 ChainAegis:稳定币协议Liquity链上分析报告 ChainAegis:GMX链上分析报告 SharkTeam与GoPlus Security达成战略合作,共同守护Web3世界安全 香港之夜,Dao的盛会 SharkTeam:2023年第一季度Web3安全报告 Talk with us,公链、DeFi等Web3时代的创新发展机遇有哪些? 香港Web3嘉年华“Web3与安全”主题论坛议程揭秘 2023香港Web3嘉年华,SharkTeam展台指引 权限校验漏洞:SushiSwap被攻击事件分析 香港会议期间,SharkTeam发布“链上安全分析研究报告” 安全是发展Web3的必要条件-SharkTeam受邀香港Web3嘉年华 ChainAegis:LSD赛道链上分析报告 Sui 与 Aptos 技术实现对比 ChainAegis:去中心化保险赛道及风险分析 ChainAegis:Pancakeswap V2V3链上数据分析 ChainAegis:AAVE V2/V3链上数据分析 ChainAegis:Gains Network链上数据分析 逻辑漏洞:DEUS被攻击事件分析 ChainAegis:BRC-20链上数据分析 ChainAegis:Blend链上数据分析 SharkTeam:Tornado.Cash提案攻击原理分析 SharkTeam:Sui主网链上数据分析 SharkTeam:Jimbos protocol闪电贷攻击原理分析 SharkTeam:RWA赛道链上数据分析 SharkTeam:Zksync Era链上数据分析 SharkTeam:Atomic Wallet攻击原理和洗钱模式分析 链安全 Sui主网上线满月,链上持币者数据分析 SharkTeam:Atlantis提案攻击原理分析 SharkTeam:HashFlow攻击事件原理分析 SharkTeam:2023年第二季度Web3安全报告 SharkTeam与Move Accelerator达成合作,Let’s Move! SharkTeam:Themis protocol闪电贷价格操纵攻击分析 SharkTeam:4月28日攻击者就已实施攻击-PolyNetwork攻击原理和资产转移分析 SharkTeam:AzukiDAO攻击事件分析 SharkTeam:BNO攻击事件原理分析 SharkTeam:Vyper漏洞导致Curve和JPEG'd等项目被攻击原理分析 SharkTeam:UniswapV4 Hook最佳安全实践 SharkTeam:UniswapX 源码分析 SharkTeam:Worldcoin运营数据及业务安全分析 SharkTeam与TOKEN2049正式达成合作伙伴关系 SharkTeam:Exactly Protocol攻击事件原理分析 SharkTeam:Rugpull工厂黑色产业链分析 SharkTeam开启9月双城记 SharkTeam上海区块链全球峰会展台指引 SharkTeam:Web3安全实践与创新 KYT/AML:Web3合规展业的必要条件 SharkTeam:典型钓鱼攻击链上资产转移分析 SharkTeam:起底朝鲜APT组织Lazarus Group,攻击手法及洗钱模式 SharkTeam:2023年第三季度Web3安全报告 SharkTeam:BH闪电贷攻击原理分析 SharkTeam:Platypus Finance攻击事件原理分析 SharkTeam:Onyx Protocol攻击事件原理分析 SharkTeam:Raft攻击事件原理分析 从链上分析角度看FTX破产清算过程,美国加密货币监管与风险处置能力究竟如何 SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:ERC2771\&Multicall任意地址欺骗漏洞原理分析 SharkTeam:OKX DEX攻击事件分析及链上资产追踪 SharkTeam:从链上数据看稳定币的安全与监管 SharkTeam:2023年加密货币犯罪分析报告 SharkTeam:MIM_SPELL被攻击事件原理分析 SharkTeam:合约精度计算漏洞与安全建议 SharkTeam:Woo Finance被攻击事件分析 SharkTeam:Prisma Finance被攻击事件分析 SharkTeam:2024年第一季度Web3安全报告 SharkTeam:Hedgey Finance被攻击事件分析 SharkTeam:Sonne Finance攻击事件分析 SharkTeam:Web3常见钓鱼方式分析与安全防范建议 SharkTeam:UwU Lend攻击事件分析 SharkTeam:美国众议院FIT21法案解读 SharkTeam:2024年上半年度Web3安全报告

SharkTeam:十大智能合约安全威胁之操纵预言机

  • SharkTeam
  • 发布于 2022-09-07 09:54
  • 阅读 4717

第二课【详解操纵预言机】。

问:我们常提到的智能合约漏洞真的是实际中威胁最大、发生最频繁的安全漏洞吗? 答:完全不是那样。例如“溢出”、“外部调用”等常提到的智能合约安全漏洞并不是最常发生,威胁最大的。 到底哪些安全威胁从发生频率和危害性上能称为Top10的呢?SharkTeam合约安全系列课程之【十大智能合约安全威胁】和您一起讨论和深入。第二课【详解操纵预言机】。 image.png

一、什么是价格预言机

预言机是现实世界(链下)服务和区块链(链上)协议之间的桥梁。根据定义,预言机都扮演着几个关键角色。这些功能包括: (1)从链下收集数据 (2)使用消息签名,将数据发送到链上 (3)将数据存储在智能合约中,使数据可访问 在DeFi中,预言机可以分为两种类型:链下和链上。预言机还可以进一步分为中心化预言机和去中心化预言机,中心化预言机的数据是由单个运营商(如Compound)验证,去中心化预言机的数据是由独立运营商(如MakerDAO)验证。

image.png

1.1链下预言机

链下中心化预言机:由于需要用新的汇率快速更新预言机,这种的类型的预言机只接受来自链下的新价格。可能会有一些健全性检查,以确保价格不会波动太大。Compound Finance和Synthetix主要对大多数资产使用这种类型的预言机。 链下去中心化预言机:这种类型的预言机接受来自多个链下的新价格,并通过数学函数计算这些值得出平均值。在此模型中,多签名钱包通常用于管理授权来源列表。Chainlink将这种类型的预言机用于ETH和其他资产。

1.2链上预言机

链上中心化预言机:这种类型的预言机使用链上资源(如DEX)来确定资产的价格。但是,只有中央机构才能触发预言机从链上源读取数据。像链下集中式预言机一样,这种类型的预言机需要快速更新,dYdX使用这种类型的预言机。 链下去中心化预言机:这种类型的预言机使用链上资源来确定资产的价格,任何人都可以更新它。可能会有一些健全性检查,以确保价格不会波动太大。DDEX 将链下去中心化预言机用于 DAI,而 bZx 对所有资产都使用链下去中心化预言机。

1.3价格预言机使用场景

抵押贷款清算: Maker、Compound和Aave依靠价格预言来决定何时清算用户的贷款。如果用户的抵押品低于某个阈值,则可以清算该帐户 衍生品定价:Synthetix 使用预言机来计算加密资产的价值,包括期权、期货和合成资产 指数定价:Set 等指数平台使用预言机来检索指数成分的价格 保险协议:Nexus Mutual 等保险协议利用预言机在将索赔报告并发布到区块链之前验证索赔。 预测市场:去中心化预测市场(即 August 和 Gnosis)依赖预言机进行链下事件结算。

1.4常见的操纵预言机攻击方式

使用闪电贷操纵AMM的价格:首先攻击者向上调整借入代币价格(或向下调整抵押品价格),最后通过价格清算抵押品。这种情况一般在链上中心化预言机、去中心化交易所中,攻击者可以利用闪电贷来操纵 AMM 的价格,在贷方智能合约查找代币之前改变代币的现货价格。 预言机故障导致随机攻击:Synthetix 是一个衍生品平台,允许用户接触其他货币等资产。为了促进这一点,Synthetix(当时)依赖于定制的链下价格馈送实现,其中根据一组秘密价格馈送计算出的总价格以固定的时间间隔发布在链上。然后,这些价格允许用户对受支持的资产进行多头或空头头寸。因为在2019年6月25日,出现预言机喂价故障,机器人快速进出sKRW市场,最终造成大量的经济损失。

二、攻击事件分析

操纵预言机是2021和2022年常见的攻击手段之一,通常和闪电贷结合。

2.1 Belt Finance

2021年5月30日,币安智能链(BSC)上多策略收益优化 AMM 协议 Belt Finance遭遇闪电贷攻击,四个资金池受到影响,损失620万美元。

image.png 这次攻击交易hash:0x50b0c05dd326022cae774623e5db17d8edbc41b4f064a3bcae105f69492ceadc 攻击过程如下: (1)攻击者从 PancakeSwap中通过闪电贷分8次,共计借出387315994 BUSD(3.87亿 BUSD) (2)将其中1千万BUSD存入bEllipsisBUSD策略,Ellipsis 是以太坊上 DeFi 协议 Curve 授权 Fork 的项目 (3)将 1.87 亿 BUSD 存入 bVenusBUSD 策略,然后通过 Ellipsis 合约将 1.9 亿 BUSD 兑换为 1.69 亿 USDT (4)从bVenusBUSD策略中提取BUSD,通过Ellipsis将1.69亿USDT换成1.89亿BUSD,向bVenusBUSD策略中再次存入1.97亿BUSD (5)多次重复上步骤,攻击者通过重复买入卖出 BUSD,最后从策略 bVenusBUSD 中提取了更多的 BUSD,使用1.69亿BUSDT兑换出1.89亿的BUSD (6)归还闪电贷,并将资产转移获利 此次攻击,是由于bEllipsis策略余额计算中的漏洞,造成攻击者操纵了beltBUSD 的价格。通过合约分析可知,beltBUSD 的价格依赖于机枪池中的余额,攻击者将 BUSD 存入 bVenusBUSD 策略再提出,由于资产的数量不变,即使重复操作,也不会获利。但,此次攻击者也同时操作了其他策略(bEllipsisBUSD)对beltBUSD余额产生了影响,造成了计算漏洞的产生。

2.2 xWin Finance

2021年6月25日,币安智能链(BSC)上DeFi项目xWin Finance受到闪电贷攻击。攻击过程如下: (1)攻击者首先从0xc78248D676DeBB4597e88071D3d889eCA70E5469(BankController)上通过闪电贷借了76000个BNB备用,并使用少量金额(10 Wei)进行了攻击测试。 (2)攻击者将76000BNB投入xWin中进行挖矿。xWin中xWinDefi和xWinFarm合约中的收益聚合策略,本金被分成两份,一半在PancakeSwap上兑换XWIN,另一半用于和置换出的XWIN一起在PancakeSwap中添加流动性,进行流动性挖矿。 (3)在添加流动性时,BNB和XWIN的数量存在不平衡的情况,存在疑点。此次流动性添加和之前的Swap共同作用,将造成PancakeSwap中XWIN-BNB的巨大滑点。攻击者利用造成的巨大滑点,将(2)中兑换出的95个xWIN再次兑换成BNB,得到76000个BNB以及11个LP token(PCLP-XWIN)。 (4)提取流动性,并获利4.2个BNB。 (5)重复之前操作,总过执行了20次,并归还闪电贷。获得 100个左右的BNB和303000个XWIN,XWIN兑换成900个BNB,总共获利近1000个BNB。 在xWinFarm.sol合约中,在往PancakeSwap中添加流动性前会根据BNB数量计算XWIN数量,而XWIN的数量计算根据的是PancakeSwap:XWIN-BNB的供应量,而供应量被攻击者通过之前的Swap操纵,计算出的XWIN数量远小于正确的数量,而进行流动性添加之后PancakeSwap:XWIN-BNB的滑点将进一步加大。导致攻击者再次使用XWIN去兑换BNB时,能兑换出更多的BNB,从而获利。

2.3 Ploutoz Finance

2021年11月23日,BSC上Defi借贷协议Ploutoz Finance遭到闪电贷攻击,黑客获利26.5万美元,协议损失更大。黑客利用被操纵的DOP做为抵押品借入其他资产,包括CAKE、ETH、BTCB等,随后通过ParaSwap和PancakeSwap交易位BNB后转入混币协议TornadoCash。攻击过程如下: (1)攻击者从PancakeSwap的WBNB/BUSD交易对中闪电贷1000400 BUSD,然后将1000000 BUSD通过TwindexRouter兑换成了570234 DOP,抬高了 TwindexSwap DOP/BUSD交易对中DOP的价格;经剩余的400 BUSD通过 PancakeRouter 兑换成了8841 DOP,抬高了PancakeSwap DOP/BUSD交易对中DOP的价格 (2)抵押8450 DOP,借贷了85 Cake,18000 DOLLY,18 ETH,1.6 BTCB,89000 BSC-USDT以及90000 BUSD (3)将剩余的DOP兑换成 BUSD,结合借贷的90000 BUSD,偿还闪电贷 (4)攻击者能够攻击成功,原因在于攻击者在借贷的过程中抬高了DOP的价格,从而在将DOP作为抵押物时可以借出更多价值的其他资产,当DOP价格恢复的时候,借出的资产价值比抵押物的价值更高,破坏了超额抵押的规则,最终从中获利。

三、预防措施

操纵预言机价格一般会和闪电贷结合进行,我们应该采取哪些适当的措施来避免这类型的漏洞攻击? (1)使用时间加权平均价格 Uniswap V2引入了一个TWAP预言机,供链上开发人员使用。但是存在下面几个问题: a) v2 版本的预言机使用门槛比较高,官方合约中只提供了最新的价格累积值,开发者需要自己实现历史价格的记录和抓取 b)在使用 DEX 预言机时,深度是一个比较重要的考量指标,深度决定了此交易对预言机被攻击的难易程度,但是在 v2 版本我们无法通过简单的方式获取交易对深度变化的历史数据 Uniswap v3 版本针对 v2 版本 Oracle 的痛点,进行了改进: a)合约中默认还是存储一个最近价格的时间累积值,但是可以根据需要,扩展为存储最近 N 个历史价格的时间累积值,最多支持 65535 个最近历史价格信息(还可以包含当前未被写入的价格信息,这样就是 65536 个值),这样第三方开发者不再需要自己实现合约存储历史信息 b)Oracle 中不光记录了价格信息,还记录了对应流动性的时间累积值,因为 v3 中相同交易对在不同费率时时不同的交易池,这样在使用 Oracle 时,可以选择流动性较大的池最为价格参考来源 c)Uniswap v2 中可以计算出时间加权平均价格(算术平均值),而 v3 中计算出来的是时间加权价时几何平均值,团队称几何平均值比算术平均值更适合,但我个人认为这个主要是考虑到工程实现的复杂度所做出的改变 (2)设置减速带 操纵价格预言机是一项对时间非常敏感的操作,因为套利者一直在关注并且希望有机会优化任何次优市场。如果攻击者想要将风险降到最低,他们会想要在一次交易中进行操纵价格预言机所需的两次交易,这样套利者就不可能跳入中间。作为协议开发人员,只需在用户进入和退出系统之间实现短至 1 个块的延迟就足够了。

关于我们:SharkTeam的愿景是全面保护Web3世界的安全。团队成员分布在北京、南京、苏州、硅谷,由来自世界各地的经验丰富的安全专业人士和高级研究人员组成,精通区块链和智能合约的底层理论,提供包括智能合约审计、链上分析、应急响应等服务。已与区块链生态系统各个领域的关键参与者,如OKC、polygon、Huobi Global、Polkadot、imToken、ChainIDE等建立长期合作关系。

image.png Telegram:https://t.me/sharkteamorg Twitter:https://twitter.com/sharkteamorg 更多区块链安全咨询与分析,点击下方链接查看 D查查|链上风险核查 https://m.chainaegis.com

点赞 0
收藏 3
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论