freeBuf
SharkTeam:2024年第一季度Web3安全报告
2024-04-09 15:04:12

一、 概述

2024年第一季度因黑客攻击、Rugpull诈骗、钓鱼攻击等恶意行为,总计造成4.62亿美元损失,与2023年第一季度(约3.83亿美元)同比增长约20.63%。本报告旨在对全球2024年第一季度Web3行业安全状况、重大事件、安全趋势进行整理分析,为读者提供有益的信息和新思路,为促进Web3的安全、健康发展贡献力量。

二、安全事件分析

根据SharkTeam链上安全分析平台ChainAegis数据,2024年第一季度Web3领域共发生了280起安全事件(如图1),损失金额累计超过4.62亿美元(如图2),与去年同期相比,安全事件发生频率增加约32.70%,损失金额增长约20.63%。

20240409141826922image.png

Figure 1:Total Count of Security Incidents in 2024Q1

20240409141954928image.png

Figure 2:Total Loss of Security Incidents in 2024Q1

2024年Q1黑客攻击共发生60起,同比2023年Q1增加140%,损失金额达到3.85亿美元,占比为83%(如图3),相对2023年Q1(3.62亿)同比上升6.35%。
Rug Pull共发生127起,同比2023年Q1(30起)激增323.33%,损失金额却下滑59.44%,共计821万美元,占整个Q1损失金额的2%。
钓鱼攻击在Q1总共发生93起,同比有所增加,损失金额约6866万美元,占比约15%。

20240409142107190image.png

Figure 3:Amount of Loss by Attack Type in 2024Q1

20240409142131961image.png

Figure 4:Amount of Count by Attack Type in 2024Q1

将Q1分月来看(如图5),1月的损失最为严重,超过2.50亿美元,远高于2月(7142万美元)和3月(1.40亿美元)。其中1月发生安全事件88起,略高于2月的72起,略低于3月的120起,可见1月单次安全事件的损失金额最高。造成1月损失严重的攻击手段是黑客攻击,总共发生20起黑客攻击,造成2.17亿美元的损失。与此同时,1月钓鱼攻击也呈现高发状态,总共发生39起钓鱼攻击,但损失金额相对最低,共计2915万美元。2月整体安全事件发生频次和损失金额相对1月和3月均处于较低水平。

20240409142346279image.png

Figure 5:Web3 Security Incidents Overview in 2024Q1

2.1 黑客攻击

第一季度共发生黑客攻击60起,共计损失金额高达3.85亿美元。其中,1月损失最为严重为2.17亿美元。主要原因为1月共发生2起大额资金损失事件。
(1)2024年1月1日,跨链桥项目Orbit Chain遭遇了网络攻击,导致价值约8150万美元的加密货币被盗。该事件涉及5笔独立的交易,每笔交易都指向不同的钱包地址。未经授权的资金流动包括5000万美元的稳定币(其中包括3000万美元的USDT,1000万美元的DAI和1000万美元的USDC),价值约1000万美元的231个wBTC和价值约2150万美元的9500个以太坊。
(2)2024年1月31日Ripple联合创始人Chris Larsen的四个钱包被攻击,共计被盗2.37亿枚XRP,约合1.125亿美元。ChainAegis链上分析显示,被盗资金已通过 MEXC、Gate、Binance、Kraken、OKX、HTX、HitBTC 等进行转移。这是 2024 年迄今为止最大的加密货币盗窃案,也是加密世界迄今为止第 20 大加密货币盗窃案,XRP的价格在事件发生的24小时内下跌约4.4%。

2.2 Rug Pull & Scams

如下图(图6)所示,Rugpull & Scam事件1月发生29起,之后逐月增加,3月发生约63起;1月损失约451万美元,2月损失约149万美元。根据ChainAegis分析,事件发生集中在主流链Ethereum和BNB Chain,BNB Chain 项目Rug Pull事件发生频率远高于Ethereum。
除此之外,2月25日,Blast生态的GameFi项目RiskOnBlast发生Rugpull。据ChainAegis分析显示,RiskOnBlast的地址0x1EeB963133f657Ed3228d04b8CD9a13280EFC558在22日至24日间,共募资420枚ETH,价值约125万美元,随后却兑换成DAI,转移至ChangeNOW、MEXC、Bybit等交易所存款地址中套现。

20240409142449358image.png

Figure 6:Overview of Rugpull & Scam by Month in 2024Q1

2.3 钓鱼攻击

如下图(图7)所示,钓鱼攻击在1月发生频率最高共39起,造成损失金额约2915万美元;2月发生频率最低共21起,造成损失金额约1134万美元。SharkTeam提醒大家,牛市中市场活跃,空投机会也多,但大家要提高警惕,避免被Angel Drainer、Pink Drainer等活跃的钓鱼团伙攻击,转账和授权时一定要仔细检查交易信息。

20240409142517967image.png

Figure 7:Overview of Phishing by Month in 2024Q1

三、典型案例分析

3.1 合约精度计算漏洞

2024年1月30日,MIM_SPELL遭受闪电贷攻击,因为精度计算漏洞,损失650万美元。被攻击原因是项目方的智能合约在进行借贷变量计算时精度出现了漏洞,使得关键变量elastic和base值被操纵后比例失衡,导致计算抵押物和借贷数量时出现问题,最终超额借出MIM代币。
被攻击合约(0x7259e1520)中borrow函数和repay函数在对elastic和base两个变量进行计算时,都采用了向上取整的方式。

20240409142717810image.png

20240409142726749image.png

20240409142733027image.png

20240409142738495image.png

20240409142743624image.png

攻击者(0x87F58580)首先通过偿还其他用户借款的方式,将elastic变量和base变量分别设置为了0和97。

20240409142754771image.png

随后不断的调用borrow函数和repay函数并且参数amount都为1,在第一次调用borrow函数时,由于elastic=0,会执行上述if逻辑并回到add函数中。这样会导致elastic = 1,base = 98。
攻击者(0x87F58580)再调用borrow函数并传入1,由于elastic=1,会执行else逻辑,计算出的返回值为98,这样在回到add函数中时,elastic=2,base变量为196.
但此时攻击者(0x87F58580)调用repay函数并传入1,由于elastic=2,会执行else逻辑,计算出的elastic变量本来为 1*2/98 =0,但由于下面存在向上取整的步骤,导致计算出的返回值1,这样在回到sub函数中时,elastic变量又变回1,而base变量为195。
可以看到在经历一次borrow-repay循环后,elastic变量不变而base变量近乎翻倍,利用这一漏洞,黑客频繁进行borrow-repay函数循环,最后再调用一次repay,最终使得elastic=0 base = 120080183810681886665215049728。

20240409142808912image.png

当elastic和Base变量之间的比例严重失衡后,攻击者(0x87F58580)添加极少量抵押物后即可借出大量MIM代币,完成攻击。

20240409142815801image.png

3.2 DeGame被钓鱼攻击事件与Pink Drainer诈骗团伙

2024年3月,一名Web3用户在不知情的情况下点击了被盗号的DeGame官推发布的钓鱼链接并遭受损失。
事后,该用户误以为DeGame在此过程中监守自盗所以在推特上公开了这一事件,一众KOL和媒体及相当一部分用户在不知情的情况下将此事持续扩散,对DeGame的品牌形象和平台口碑造成了很大的影响。
事发后,DeGame启动了紧急预案,帮助受害用户尝试追回资产,DeGame钓鱼攻击事件的经过大致如下:
(1)3月14日4:00 AM至9:30 AM期间,DeGame官方X账号 ( @degame_l2y ) 日发送4条空投推文,推文中空投链接为均为仿制DeGame官方的钓鱼网站。一名用户反馈,自己点击该空投链接后损失约57 PufETH;
(2)DeGame官方推特运营人员在9:30 AM之后发现了平台上的钓鱼链接并删除。同时DeGame通过官方社媒和社区向全体用户同步这一消息,并发布了提示公告。
(3)受害用户在DeGame官方推特账户异常的时间段内,浏览到了钓鱼网站链接及攻击者发布的说明文字,他在不知情的情况下以为该链接确实系DeGame官方联合其他项目方举办的代币空投活动,点击链接后按照攻击者预设的提示进行操作,丢失了资产。
(4)用户点击钓鱼网站连接钱包后,网站会自动检测钱包地址中有无资产。若有资产,将直接弹出Permit Token Approval交易签名。与常规的交易签名所不同的是,该签名完全不上链,完全匿名,很可能被用于非正当途径。另外用户也不需要事先授权,就能通过附加一个授权签名(Permit)与应用合约交互。
(5)在此次被盗事件中,钓鱼黑客获取到了被盗用户授权给钓鱼合约地址0xd560b5325d6669aab86f6d42e156133c534cde90的Permit Token Approval交易签名,并在攻击交易中提交Permit调用Approve获取代币授权后转移被盗资金。
(6)钓鱼工具的提供者为黑客诈骗团伙Pink Drainer,Pink Drainer是一款恶意软件即服务(Malware-as-a-Service,MaaS),能够让攻击者快速建立恶意网站,通过该恶意软件获取非法资产。在这笔被盗交易中约有25%左右的被盗资金转移到了PinkDrainer: Wallet 2,即钓鱼团伙PinkDrainer的编号2钱包地址,系钓鱼实施方在使用钓鱼团伙PinkDrainer 的钓鱼工具后给PinkDrainer的自动分成。

3.3 批量Rugpull导致事件数量激增

2024年Rugpull事件数量激增和RugPull工厂合约批量创建Rugpull代币有很大关系,SharkTeam安全研究团队对这些Rugpull事件进行了详细分析。在分析过程中,我们发现BNB Chain上的Rugpull工厂合约在过去一个月内已经发起了70多次Rugpull,批量Rugpull事件通常具有如下行为特征:
(1)这些代币都是由代币工厂合约进行createToken操作创建的。在createToken函数中,创建代币时需要传入以下参数:代币名称、代币符号、精度、供应量、代币所有者地址、创建代币对的工厂合约地址以及BUSD-T稳定币地址。其中,创建代币对的工厂合约使用了PancakeSwap的工厂合约,并且每个代币都有不同的所有者地址。

20240409142836994image.png

(2)代币所有者利用其它地址对Rugpull代币进行批量买入和卖出操作。在买入和卖出操作下,代币的流动性明显增加,价格也会逐步上涨。
(3)通过钓鱼等方式宣传,诱惑大量用户购买,随着流动性增加,代币价格翻倍。
(4)代币的价格达到一定的数值时,代币所有者进场sell操作进行Rugpull。
这一系列行为背后有一个分工明确的Web3诈骗团伙,构成了一个黑色产业链,主要涉及热点搜集、自动发币、自动交易、虚假宣传、钓鱼攻击、Rugpull收割等环节。所发的Rugpull虚假代币都与行业热点事件紧密相关,具有较强的迷惑性和鼓动性。用户需时刻提高警惕,保持理性,避免损失。

四、总结

2024第一季度因安全事件造成的总损失达到4.62亿美元,本季度币价上涨等因素对总金额的增加有一定的影响,但总体而言,Web3安全形势不容乐观。智能合约逻辑漏洞、Rugpull黑色产业链、钓鱼攻击等是威胁用户加密资产安全的主要原因,希望Web3用户和项目方能尽快提高安全防范意识,减少损失。

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
文章目录