讲者简介
-
周亚军(Yajin Zhou)
-
浙江大学教授
-
BlockSec联合创始人
-
研究领域:DeFi安全、区块链系统安全
-
发表论文60余篇,引用超过9000次
Web3安全问题
DeFi安全事件仪表板
DeFi是"Decentralized Finance"的缩写,中文通常称为"去中心化金融"。它指的是利用区块链技术,特别是以太坊(Ethereum)等智能合约平台,构建的一系列金融应用和服务。这些应用和服务不依赖于传统的中心化金融机构,而是通过去中心化的方式运行,使得用户可以直接进行金融交易和交互,而无需通过银行或其他中介机构。
DeFi的关键特点包括:
-
去中心化
:DeFi应用通常不受单一实体控制,而是通过社区治理和智能合约自动执行。
-
透明度
:所有交易和协议的代码都是公开的,任何人都可以查看。
-
可访问性
:只要有互联网连接,用户就可以访问DeFi服务,不受地理位置限制。
-
互操作性
:DeFi应用和服务通常设计为可以相互操作,用户可以在不同的DeFi应用之间轻松转移资产和数据。
-
开放性
:任何人都可以参与DeFi生态系统,无论是作为用户、开发者还是流动性提供者。
DeFi涵盖了多种金融服务,包括但不限于:
-
借贷平台
:允许用户存入资产以赚取利息,或借用资产支付利息。
-
去中心化交易所(DEX)
:允许用户直接交易加密货币,无需中心化交易所作为中介。
-
稳定币
:加密货币,其价值与法定货币或其他资产挂钩,以减少价格波动。
-
衍生品
:提供期货、期权等金融衍生品的交易。
-
保险
:去中心化的保险服务,可以覆盖智能合约风险等。
-
资产管理
:包括去中心化基金、投资组合管理等。
DeFi的目标是提供一个更加开放、透明、高效和可访问的金融系统。然而,由于其新颖性和快速发展,DeFi领域也存在一些风险,包括智能合约漏洞、市场操纵和监管不确定性等。
安全事件普遍的原因
-
经济激励:黑客可以获得“报酬”,就像一个没有良好安全系统的金库。
-
安全合格的开发者较少:开发者在安全概念上没有得到良好的培训。
-
DeFi的可组合性:创造了更多的攻击向量。
-
开放性:每个人都可以看到链上的代码,如果存在漏洞,每个人都可以发出攻击
-
匿名性:如果攻击者足够聪明地隐藏,就很难追踪(并非不可能)攻击者
-
Flashloan:扩大攻击者可以使用的钱
现有方法
DeFi攻击的步骤
-
准备攻击
-
发起攻击
-
洗钱获利
我们的方法
智能合约和EVM背景
挑战与解决方案
-
如何从攻击合约中提取攻击逻辑:
解决方案:冻结条件性JUMP,利用执行跟踪。
-
如何定位和替换收益地址:
解决方案:余额变化表,构建余额变化表,在地址被推送到栈上时替换它们。
-
如何识别攻击的先决条件:
解决方案:如果涉及多笔交易/合同,则进行依赖性分析
任务一:提取和构建攻击逻辑
连接攻击交易的指令码追踪
尽可能重用基本块
冻结条件性JUMP
任务二:识别和替换收益地址
收益地址识别
替换收益地址
任务三:识别攻击的先决条件
辅助合约识别