# Multichain漏洞事件回顾及白帽救援行动总结2022年1月18日,异常交易监测系统检测到针对Multichain项目的攻击。由于anySwapOutUnderlyingWithPermit()函数未正确实现校验机制,导致用户授权给该项目的token可被攻击者取出。尽管项目方尝试多种方法提醒受影响用户,仍有很多用户未能及时响应,攻击者得以持续实施攻击获利。为保护潜在受害者,BlockSec团队决定采取应急响应措施。本次救援针对以太坊上受影响的账户,将相关账户资金转移到专门设立的多签白帽账户中。为保证行动透明性,相关计划的文件hash向社区公开。救援行动从2022年1月21日开始,到2022年3月11日结束。应急救援面临诸多技术和非技术挑战。本文重新复盘整个过程,分享相关心得与体会,希望对DeFi生态的安全有所帮助。## 简要总结- 白帽和攻击者两个群体之间,乃至各自群体内部对Flashbots的使用产生了激烈竞争,支付的费用也迅速增长。- Flashbots并非总是有效。部分攻击者转而使用mempool,通过巧妙策略成功实施攻击。- 某些攻击者与项目方达成协议,归还部分所得并保留部分作为奖赏,成功"洗白"。这种现象引发了社区对激励公平性的争议。- 白帽可在不泄露敏感信息的同时向社区公开宣告行为,取信于社区。- 社区各方力量携手合作,可使救援行动更迅速有效。## 攻击和救援情况概览### 总体结果在观察范围内(2022年1月18日至2022年3月20日),总体情况如下:- 9个救援账户保护了483.027693 ETH,支付Flashbots费用295.970554 ETH(占比61.27%)- 21个攻击账户获利1433.092224 ETH,支付Flashbots费用148.903707 ETH(占比10.39%)### Flashbots费用变化趋势初期攻击交易Flashbots费用为0,表明攻击者尚未使用Flashbots。随后费用占比快速上升,在某些区块高度甚至达到80%-91%,反映了激烈的上链权竞争。## 救援行动实施及面临的挑战### 救援行动的基本思路1. 监控潜在受害者账户2. 发现WETH转入时,利用合约漏洞将其转出至白帽多签钱包关键要求:- 有效定位转账给受害者的交易- 正确构造拯救交易 - 成功抢跑攻击者交易主要挑战在于抢跑攻击者交易。虽可使用Flashbots,但需考虑费用设置策略。同时,由于竞争存在,Flashbots并非总是最佳选择。### 竞争情况尝试保护171个潜在受害者账户,其中:- 10个自我保护- 14个成功救援- 147个救援失败失败原因涉及3个救援账户和16个攻击账户的竞争。## 经验教训### Flashbots费用设置保守策略效果不佳,竞争对手往往采用更激进策略:- 某攻击者将比例设至70%-86%- 某白帽将比例设至79%-81%这似乎是一个零和游戏,需要在降低成本和赢得竞争间寻找平衡。### Mempool交易排序策略由于激烈竞争,Flashbots并非总是有效。通过mempool发送正常交易,安排在合适位置也可能实现目标。某攻击者成功运用此策略获利312 ETH,且无需支付Flashbots费用。关键在于将攻击交易安排在转账交易之后且尽可能接近。## 其他思考### 白帽与攻击者的区分并非总能简单区分。某账户最初被标记为攻击者,后与项目方协商返还部分获利,保留50 ETH作为奖赏,最终被重新标记为白帽。这种现象引发了对激励公平性的争议。### 白帽间的竞争有必要建立协调机制以降低/避免白帽间的竞争,避免资源浪费和成本提高。### 改进救援行动的建议- 白帽在不泄露敏感信息的前提下向社区公开宣告行为- Flashbots/矿工为可信白帽提供绿色通道- 项目方负担Flashbots费用- 项目方采用更便捷的用户预警机制- 项目方在代码中采取必要的应急措施
Multichain漏洞事件解析:白帽救援行动的挑战与启示
Multichain漏洞事件回顾及白帽救援行动总结
2022年1月18日,异常交易监测系统检测到针对Multichain项目的攻击。由于anySwapOutUnderlyingWithPermit()函数未正确实现校验机制,导致用户授权给该项目的token可被攻击者取出。
尽管项目方尝试多种方法提醒受影响用户,仍有很多用户未能及时响应,攻击者得以持续实施攻击获利。
为保护潜在受害者,BlockSec团队决定采取应急响应措施。本次救援针对以太坊上受影响的账户,将相关账户资金转移到专门设立的多签白帽账户中。为保证行动透明性,相关计划的文件hash向社区公开。救援行动从2022年1月21日开始,到2022年3月11日结束。
应急救援面临诸多技术和非技术挑战。本文重新复盘整个过程,分享相关心得与体会,希望对DeFi生态的安全有所帮助。
简要总结
白帽和攻击者两个群体之间,乃至各自群体内部对Flashbots的使用产生了激烈竞争,支付的费用也迅速增长。
Flashbots并非总是有效。部分攻击者转而使用mempool,通过巧妙策略成功实施攻击。
某些攻击者与项目方达成协议,归还部分所得并保留部分作为奖赏,成功"洗白"。这种现象引发了社区对激励公平性的争议。
白帽可在不泄露敏感信息的同时向社区公开宣告行为,取信于社区。
社区各方力量携手合作,可使救援行动更迅速有效。
攻击和救援情况概览
总体结果
在观察范围内(2022年1月18日至2022年3月20日),总体情况如下:
Flashbots费用变化趋势
初期攻击交易Flashbots费用为0,表明攻击者尚未使用Flashbots。随后费用占比快速上升,在某些区块高度甚至达到80%-91%,反映了激烈的上链权竞争。
救援行动实施及面临的挑战
救援行动的基本思路
关键要求:
主要挑战在于抢跑攻击者交易。虽可使用Flashbots,但需考虑费用设置策略。同时,由于竞争存在,Flashbots并非总是最佳选择。
竞争情况
尝试保护171个潜在受害者账户,其中:
失败原因涉及3个救援账户和16个攻击账户的竞争。
经验教训
Flashbots费用设置
保守策略效果不佳,竞争对手往往采用更激进策略:
这似乎是一个零和游戏,需要在降低成本和赢得竞争间寻找平衡。
Mempool交易排序策略
由于激烈竞争,Flashbots并非总是有效。通过mempool发送正常交易,安排在合适位置也可能实现目标。
某攻击者成功运用此策略获利312 ETH,且无需支付Flashbots费用。关键在于将攻击交易安排在转账交易之后且尽可能接近。
其他思考
白帽与攻击者的区分
并非总能简单区分。某账户最初被标记为攻击者,后与项目方协商返还部分获利,保留50 ETH作为奖赏,最终被重新标记为白帽。这种现象引发了对激励公平性的争议。
白帽间的竞争
有必要建立协调机制以降低/避免白帽间的竞争,避免资源浪费和成本提高。
改进救援行动的建议