• 简体版 | 繁體版
  • 联系我们
  • 加入我们
  • 关于我们
  •  
  • 首页
  • 快讯
  • 价值号
  • 视频
  • 专题
  • 一线
  • 入驻价值号
  • 碳链APP
    微信公众号

    扫码下载App

  • 登录
  • 微信公众号

    微信公众号

导航
  • 首页
  • 快讯
  • 区块链+
  • 价值号
  • 视频
  • 专题
  • DeFi优选
碳链价值APP
专注服务于金融科技和区块链
立即打开

复盘Uniswap和Lendf遭攻击始末:DeFi的「多米诺」式崩塌

PeckShieldPeckShield  •  2020-04-21
建议广大 DeFi 开发者务必注意业务存在的系统性风控风险,应尽可能和第三方安全公司合作排查一切潜在的安全风险。

原文标题:《Uniswap和Lendf.Me遭攻击始末:DeFi乐高组合下的“多米诺”式崩塌》

04月18日上午08:58开始, 一 DeFi 平台 Uniswap 被黑客利用重入漏洞实施了攻击。PeckShield 安全团队迅速定位到问题,发现黑客利用了 Uniswap 和 ERC777 标准的兼容性问题缺陷实施了重入攻击。

糟糕的是,仅仅在24小时后,于04月19日上午08:45,又一知名DeFi平台 Lendf.Me 也被黑客以类似的手段实施了攻击。

黑客攻击的原理是:攻击者利用以太坊 ERC777 标准的 transferFrom() 回调机制,在内部调用 _callTokensToSend() 回调函数时劫持交易 ,并在真正更新余额的 _move() 函数之前进行恶意攻击。

在 Uniswap 的攻击案例中,攻击者利用此漏洞消耗尽 Uniswap ETH-imBTC 池约1,278个 ETH。而在 Lendf.Me 中,攻击者则利用它来任意增加内部 imBTC 抵押金额,并通过从其他可用的 Lendf.Me 交易中借入10多种资产(总价值约 2,524 万美元)。

PeckShield 安全团队认为这是自年初 bZx 遭攻击之后,又两起黑客利用 DeFi 系统性风控漏洞实施的攻击。一个不容忽视的问题是,DeFi 市场的风险可能不仅仅局限于平台本身,单个平台的模式创新很可能在与其他平台业务接轨时产生漏洞风险。

详细漏洞攻击细节,我们将在文章后面做详细介绍。

Figure 1: ERC777 transferFrom()Figure 1: ERC777 transferFrom()

ERC777 标准的业务组合兼容性问题

我们首先介绍下 ERC777 标准,ERC777 出现的目的是对 ERC20 标准进行改进。其不但实现了功能扩展,还有 ERC20 标准一样良好的兼容性,愿景是成为 ERC20 标准的有效继承者。

该标准扩展的功能之一是提供了“hook”机制,可以使普通地址或合约通过注册一个tokensToSend() hook 函数来控制或拒绝发送 Token。这原本是在 ERC20 基础上加强了对 Token 的风险控制接口,是一次有益的改进。不过由于 DeFi 项目的可组合特性,一个合约在不同产品之间相互调用时,其业务逻辑复杂度也会大大增加,这就给注入代码攻击提供了可能性。

其中最关键的部分是,攻击者可以通过注册 from 的 tokensToSend() 来实行回调。我们从下面的代码片段可以看到,ERC777 标准中可以通过 getInterfaceImplementer()(1,054行)获得攻击者的 tokensToSend() 接口,并在第1,056行调用此函数。而此处正是黑客劫持交易实施攻击的入口。

Figure 2: ERC777-Compatible tokensToSend() HijackingFigure 2: ERC777-Compatible tokensToSend() Hijacking

如2019年4月OpenZeppelin 发布的帖子以及2019年7月发布的漏洞利用演示中所述,攻击者可以自己定义函数 tokensToSend(),并通过 setInterfaceImplementer() 来设置合约中的 hook 函数。

Figure 3: OpenZeppelin's Exploit Demo (Hook Setup)Figure 3: OpenZeppelin's Exploit Demo (Hook Setup)

之后攻击者就可以像传统 PC 上的 hook 函数一样,在 tokensToSend() 做任何事情。如下图所示,攻击者可以对同一笔交易进行多次交易。

Figure 4: OpenZeppelin's Exploit Demo (Hook Function)Figure 4: OpenZeppelin's Exploit Demo (Hook Function)

Uniswap 攻击分析

Uniswap 被率先发现利用 ERC777 的兼容性问题实施了攻击。就如此恶意交易在 Bloxy 中的截图所示(hash:0x9cb1d93d6859883361e8c2f9941f13d6156a1e8daa0ebe801b5d0b5a612723c1),函数内部进行了一次 tokenToEthSwapInput() 调用。这意味着攻击者可以先通过操纵交易汇率,然后再用另一笔 imBTC 以较低价格兑换更多的 ETH。

Figure 5: Uniswap HackFigure 5: Uniswap Hack

Lendf.Me 攻击分析

在 Uniswap 遭攻击约24小时后,又一 DeFi 平台 Lendf.Me 也遭到了黑客攻击。下面是其中一个攻击交易的截图。如图所示,supply() 函数中调用真实转账函数 transferFrom() 时,被 hook 的攻击者合约里嵌入了盗用 Lendf.Me 的 withdraw() 的提币操作。

Figure 6: Lendf.Me HackFigure 6: Lendf.Me Hack

在这个交易例子中,攻击者第一次 supply() 时确实向 Lendf.Me 存放了289.99999999个 imBTC,而在第二个 supply() 中,攻击者只存放0.00000001个 imBTC,但由于攻击者注册了 tokensToSend(),所以在执行 doTransferIn() -> IMBTC :: transferFrom()(第1,583行)时,调用了攻击者函数 tokensToSend(),攻击者函数通过调用 Lendf.Me 的 withdraw() 函数把290个 imBTC 直接全部提走。

需要注意的是,正常的业务逻辑应该是项目合约中的 Balance 会减去被攻击者提走的290个 imBTC,然而当 supply() 执行返回时,余额并未被重置,仍然为290 imBTC(第1,599行)。攻击者就是通过控制修改 Lendf.Me 中攻击者的 imBTC 抵押金额,有了足够大的 imBTC 抵押,攻击就可以从各种流动交易对中借出所有可用的10多种资产(资产总值25,236,849.44美元)。

Figure 7: Lendf.Me Hack DetailsFigure 7: Lendf.Me Hack Details

资产流向

攻击者 0x538359 共计从 Lendf.Me 获利 25,236,849.44 美元,其中各个 Token 分布如下:

如上图,攻击者在获利之后,马上将各个 Token 转移至其关联账号 0xa9bf70 之中,之后攻击者数十次 通过 1inch.exchange, ParaSwap 等平台将其中比较抢手的 WETH, PAX, BUSD 等 Token 换成 ETH, DAI, BAT 代币,另外将其中的 TUSD, USDT 代币存入 Aave 借贷平台。至此为止,攻击者及其关联账号的余额如上所示。

修复建议

PeckShield 安全团队在此建议开发者,可以采用 “Checks-Effects-Interactions”方法来防止这类重入攻击。举个例子,Lendf.Me 的 supply() 里如果是先更新 token 余额,再调用 doTransferIn() 。这将会让攻击在 withdraw() 之后没有重置余额的可能性。

另一方面, ERC777 标准特性会不可避免地启用 hook 机制,因此我们需要检测并防止所有交易功能产生可以重入的风险。例如,如果 supply() 和 withdraw() 同时运行时加个互斥锁,那么攻击者就无法在 supply() 函数内部执行 withdraw() 操作。

最后并不能被忽视的一点是,我们需要认真思考下 DeFi 业务组合可能存在的系统性风险问题,平台方不仅要确保在产品上线前有过硬的代码审计和漏洞排查,还要在不同产品做业务组合时考虑因各自不同业务逻辑而潜在的系统性风控问题。

可能一个新创新,在原平台一点问题都没有,但组合接入另一个产品后就可能存在业务逻辑缺陷,进而成为黑客攻击整个 DeFi 市场的入口。

PS:此次黑客对 Lendf.Me 的攻击对 DeFi 社区来说无疑是一场灾难,建议广大 DeFi 开发者务必注意业务存在的系统性风控风险,应尽可能和第三方安全公司合作排查一切潜在的安全风险。

展开全文
打开碳链价值APP  查看更多精彩资讯
声明:本文内容为作者独立观点,不代表碳链价值立场,且不构成任何投资理财建议。
0 0
ERC777DeFiERC20hook机制

扫一扫,分享到微信

相关推荐

Messari:市场低迷之际,DeFi仍吹响了「无形革命」的号角 深度

Messari:市场低迷之际,DeFi仍吹响了「无形革命」的号角

链捕手 2022-05-18 深度
DeFi
随着加密市场即将迎来另一个或短或长的冬眠期,社区必须牢记我们正在构建的长期未来。
创宇区块链:两天内遭遇两次攻击, DeFi 协议 FEG 真的伤不起 价值号

创宇区块链:两天内遭遇两次攻击, DeFi 协议 FEG 真的伤不起

知道创宇区块链安全实验室 2022-05-18 价值号
DeFi
多链 DeFi 协议 FEG 两天内遭遇两次攻击,累计损失超300万美元。
欧易行业周报(5.9 — 5.15):欧易赞助正式亮相F1迈阿密大赛,风控系统在UST价格脱钩前成功赎回资产 价值号

欧易行业周报(5.9 — 5.15):欧易赞助正式亮相F1迈阿密大赛,风控系统在UST价格脱钩前成功赎回资产

欧易 OKX 2022-05-16 价值号
​NFTDeFi
本周行业动态

碳链快讯更多 ›

2022-05-23

美联储调查:去年有12%的美国成年人使用加密货币

2022-05-23

电商巨头eBay首次发行NFT

2022-05-23

瑞银CEO:将于明天在新加坡推出数字财富产品Circle One

2022-05-23

市场消息:游戏驿站推出加密货币和NFT钱包

2022-05-23

三井住友信托将与Bitbank成立合资企业,为机构投资者提供数字资产托管服务

2022-05-23

GameFi平台GEMS获得GEM Group 5000万美元投资承诺

2022-05-23

美国首例加密货币刑事制裁案:向制裁国家发送1000万美元比特币

2022-05-23

法国巴黎银行加入摩根大通的区块链网络Onyx进行固定收益交易

2022-05-23

厦门“元宇宙产业人才基地”揭牌

2022-05-23

恒生指数宣布推出恒生中国元宇宙指数

2022-05-23

CV VC将推出非洲区块链投资基金,拟筹资1000万-5000万美元

2022-05-23

奢侈品牌巴黎世家将在美国提供加密货币支付方式

2022-05-23

吉宏股份参与设立元宇宙股权投资基金,深交所要求其说明是否蹭元宇宙热点概念

2022-05-23

华谊兄弟与华胜天成达成战略合作,发力元宇宙内容赛道

2022-05-23

广州天河成立元宇宙联合投资基金,总规模逾200亿元

2022-05-23

知情人士:BSN计划8月份在海外推出开源国际版本“BSN Spartan Network”

2022-05-23

元宇宙App BUD完成3680万美元B轮融资,红杉资本印度领投

2022-05-23

MetaMask正在招聘产品营销经理

2022-05-23

中办、国办:加快文化产业数字化布局

2022-05-23

a16z最新报告:Web3用户数到2031年将达10亿,区块链就像过去十年的移动电话

2022-05-22

马斯克:法币与加密货币的竞争中,我支持加密货币

2022-05-22

Ava Labs CEO:Avalanche在UST崩盘中损失了6000万美元

2022-05-22

3位密码学科学家获得理论计算机最高荣誉“2022年哥德尔奖”

2022-05-22

华尔街日报:加密资产投资或存在内幕交易问题

2022-05-21

V神:针对DeFi的批评不能“一杆子打死一船人”

2022-05-21

国内首家主打IP原创数藏平台「Gistoria集幻」即将上线

2022-05-21

华策影视:公司数字藏品已成为常态化业务

2022-05-21

阿里大文娱旗下数字藏品平台“鱿物”上线

2022-05-21

V神:我已不再是亿万富翁了

2022-05-21

5月份ENS收入超过800万美元,创历史新高

2022-05-21

亚马逊副总裁:更关注开发影响现实世界的技术,而不是所谓的元宇宙

2022-05-21

欧洲央行行长:加密货币“一文不值”,应该受到监管

2022-05-21

Pantera Capital合伙人发文介绍创业者的熊市生存之道

2022-05-21

银泰百货推出多款数字藏品

2022-05-21

Coinbase联合创始人Fred Ehrsam买入7500万美元COIN股票

2022-05-21

OpenSea推出Web3市场协议Seaport Protocol

2022-05-20

DeFi 流动性管理协议 iZUMi Finance 完成 3000 万美元融资

2022-05-20

G7:加密资产应与传统金融资产遵循相同标准

2022-05-20

OpenSea交易额突破300亿美元

2022-05-20

数字支付公司Xendit完成3亿美元D轮融资,Coatue等领投

2022-05-20

比尔·盖茨:没有投资任何加密资产

2022-05-20

贵州茅台数字藏品活动已暂停

2022-05-20

前美国驻华大使:全球合作对于促进Web3.0的发展非常重要

2022-05-20

Gopax运营商Streami完成约2368万美元B轮融资

2022-05-20

塞浦路斯已起草加密资产监管法案

2022-05-20

世界经济论坛:数字货币将重塑全球贸易格局

2022-05-20

英国监管机构将结合近期稳定币市场的不稳定性与财政部联合制定加密新规

2022-05-20

Tether CTO:Terra项目并非Rug Pull,而是设计糟糕的「纸牌城堡」

2022-05-20

索尼音乐成立RCA唱片大中华区分部,将探索NFT和元宇宙等领域

2022-05-20

乌兰察布市集宁区法院发布区块链存证应用指引

推荐文章

  • 以太坊与 Solana NFT 背后的思考:为何收藏家会选择更贵的链?

    2022-05-23

  • YC致创业者:做好最坏的打算

    2022-05-20

  • Real Vision 创始人:局势动荡,加密经济将快速赶超互联网

    2022-05-20

  • 时代周刊:Terra崩盘给我们带来哪些启示?

    2022-05-19

  • 律师:NFT平台如何防范版权漏洞?

    2022-05-19

价值号更多 ›

吉时通信
吉时通信
文章: 131
  • 宏观视角解析LUNA和UST崩盘:稳定币的路在何方?
  • 通往Web3.0的入口:零知识证明与 EVM
  • 元宇宙落地的九宫格框架:从What到How
链集市ChainMarket
链集市ChainMarket
文章: 174
  • 再看区块链对现实世界有什么意义?
  • 区块链产业周刊丨云南省重点构建区块链产业生态;Meta 正研究开发区块链技术;欧洲央行或推出匿名数字欧元
  • 区块链产业周刊丨数字人民币迎来智能合约;星巴克将构建Web3数字“第三空间”;谷歌云布局区块链领域
Unitimes
Unitimes
文章: 378
  • 哈佛商业评论:Web3的机遇和挑战
  • 如火如荼的「稳定币战争」
  • 彭博社:Crypto革命加速央行设计货币的未来
换一批

热门标签

新基建 比特币 以太坊 矿业 DeFi 共识对话 区块链+ 研报 美联储 央行数字货币 无限QE 加密衍生品 AI 云计算 大数据 5G 政策 交易所 稳定币 电子支付 Libra 算力产业 联盟链 公链 区块链 加密货币 Nervos Cosmos EOS STO

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

App内打开

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

Moshou

碳链价值是集资讯、行情、数据于一身的区块链信息服务平台,我们追求及时、全面、专业、精确的资讯与数据,致力于为区块链创新者和数字货币投资者提供优质的服务。

关于我们 加入我们 联系我们 隐私条款
微信公众号

扫一扫关注微信公众号

Copyright © 2018-2020 碳链价值 京ICP备18046423号
下载碳链App

下载碳链App

微信公众号

微信公众号

微信公众号

微信公众号

打赏文章作者

支付宝打赏二维码 支付宝扫一扫打赏
微信打赏二维码 微信扫一扫打赏

# 热门搜索 #

CBDC 比特币 DeFi 以太坊 区块链