[论文分享]Evaluation of Real-world Attacks and Defenses in Ethereum

An Ever-evolving Game: Evaluation of Real-world Attacks and Defenses in Ethereum Ecosystem

本篇文章发表于 USENIX Sec '20。第一作者为复旦大学的Shunfan Zhou。

智能合约漏洞的自动挖掘工作已经非常多,不过代码的漏洞点到真正的攻击还有一定的距离,本文从攻击行为和ether/token的转移 两个角度,来对攻击和防御进行分析。

Intro

本文的任务是分析现有eth网络上的合约,并理解攻击者使用的策略。

这个任务超出代码分析的范围(静态或动态的):它包括过去成功的攻击,也包括失败的。

本文共分析了15-19年之间的420mil eth交易。方法的核心贡献是一个交易记录分析器,可以把执行的trace和交易签名进行匹配并找出恶意的交易记录。签名匹配包括两步,可以解耦两个重要的概念 i 恶意行为 ii 恶意行为后果。前者是一个合约调用,可以看出攻击的意图;后者是一个ether转账,可以看出攻击的结果。

两步设计的一些细节:

首先,设计一种 “行为原语(action clause)” 来建模攻击签名,进而匹配交易记录中的合约交互。细节:action tree...其次,设计了另一种 “结果原语(result clause)” 来匹配ether(平台的原生token)转账、其他token转账、所有权转移的结果。细节:result graph...

一些重要的观察/insights --- 攻击策略分析。

有93.55%的攻击是针对198个缺陷合约的,使用了一种新的攻击技术(airdrop hunting)。攻击的策略在时间域上有比较大的变化:eth的早期攻击(15-17年)重入和调用内插几乎占据了全部攻击的97%;之后攻击逐渐转向了整数溢出和空投狩猎。

另一部分主要产出 --- 研究真实世界中的、已部署的攻击。

本文总共分析了六类的防御,涉及5.8 mil 开源的合约。两个主要广泛使用的机制:3.1 mil 合约使用的SafeMath和 2.1 mil 合约使用的onlyOwner check。虽然一些防御方法被使用了,但并没有达到防御效果。(68,873 txs)

这个工作的一个副产品 --- 0-day 检测。文章共发现了22个0-day。

Overview

Airdrop example

空投是一种加密token分发的方式。项目方为了获得关注,会向新的参与者分发一些固定的、小面额的token。空投狩猎是攻击空投的一类策略,通常会旁路掉身份验证,来获得一大笔token。

[论文分享]Evaluation of Real-world Attacks and Defenses in Ethereum

Fig1这个例子中的ERC20 Token由于没有对msg.sender进行额外的判断,所以攻击者可以创建多个slave,来获得大量free token。

[论文分享]Evaluation of Real-world Attacks and Defenses in Ethereum

一种防御机制见Fig2。

比较高层次地看这个例子,分为3个子分析:

i 攻击分析,找到攻击方的交易;

ii 防御分析,找到合约和对应的防御;

iii 规避分析,找到敌手的规避了当前防御的交易。

Threat Model

这篇工作测了现行的攻击的显性、可衡量的指标(以ether和代币计)。

比如,如果攻击者获利100ether,我们就认为这个攻击是在范围内(in-scope)的。另外一个例子,如果攻击者使一个合约对别人不可用,比如out-of-gas或者锁住了合约,攻击者并不直接获得任何ether,因此我们认为超出了范围(out-of-scope)。采用这种威胁模型是因为攻击者需要显式造成损失并被衡量。

In-scope Attacks

Airdrop huntingCall injectionRe-entrancyInteger overflowHoneypotCall-after-destuct

Methodology

[论文分享]Evaluation of Real-world Attacks and Defenses in Ethereum

整个工作流程如Fig3,分为四个流程

1)preparation。包括action tree和result graph的构造,手动生成敌手交易的签名。

2)attack analysis。检测已确认的和试图攻击。

3)defense analysis。理解部分敌对交易失败的原因。

4)evasion analysis。分析是否可以攻破这些合约的防御代码。

Observation

文中给出了两个观察

1)Attack Strategy Shift

主要的攻击手段从2016年的重入,到2017年的调用插入,再到2018年的honeypot,最后是19年的airdrop hunting。

[论文分享]Evaluation of Real-world Attacks and Defenses in Ethereum

上表中报告了几种攻击的峰值时段、占比和平均攻击的数量。

这些变化在作者认为的原因:

1a 智能合约在进化,新的攻击面也在不断被引入。

1b 爆发的攻击会快速耗尽所有的高价值的问题合约,使得后续攻击不再值钱。

1c 多数问题合约在几个交易的攻击之后就会消亡。

2)“Benign” Adversarial Transactions

一些攻击是由白帽子发动的,来救助问题合约。

两个例子是:TheDAO和Parity Wallet的攻击。

Advices

Advice 1

Improving Existing Program Analysis

作者建议改进现有的程序分析,比如支持合约间数据流的分析并增加代码覆盖。

Advice 2

Keeping Pace with New Strategies

作者建议跟上新的攻击策略和相应的检测和防御手段。


原文始发于微信公众号(COMPASS Lab):[论文分享]Evaluation of Real-world Attacks and Defenses in Ethereum

版权声明:admin 发表于 2022年11月16日 上午11:32。
转载请注明:[论文分享]Evaluation of Real-world Attacks and Defenses in Ethereum | CTF导航

相关文章

暂无评论

暂无评论...