ARA:项目方遇见“打桩机”?被攻击约40次损失170万美元!Paraluni安全事件分析

2022年3月13日,成都链安链必应-区块链安全态势感知平台舆情监测显示,Paraluni合约遭受攻击,损失约170万美元,成都链安技术团队对此事件进行了相关分析。

#1总述

我们以第一笔攻击交易0xd0b4a1d4964cec578516bd3a2fcb6d46cadefe1fea5a2f18eec4c0a496e696f9为例:

地址列表

攻击地址:

0x94bC1d555E63eEA23fE7FDbf937ef3f9aC5fcF8F

攻击合约:

0x4770b5cb9d51EcB7AD5B14f0d4F2cEe8e5563645

慢雾:JPEG'd攻击者或已将全部6106.75枚ETH归还给项目方:8月4日消息,慢雾MistTrack监测显示,JPEG'd攻击者或已将全部6106.75枚ETH归还给项目方。[2023/8/4 16:18:46]

ParaProxy:

0x633Fa755a83B015cCcDc451F82C57EA0Bd32b4B4

ParaImpl:

0xA386F30853A7EB7E6A25eC8389337a5C6973421D(MasterChef)

UGT:

0xbc5db89CE5AB8035A71c6Cd1cd0F0721aD28B508

UBT

余烬:BALD项目方用1160ETH回购BALD途中撤回逾1万枚ETH和2.24亿BALD流动性:7月31日消息,据余烬梳理,3小时前,BALD项目方开始使用1,160ETH(约合217万美元)回购2978万枚BALD,BALD价格从0.055上涨至最高0.09美元。回购途中,项目方从池子撤回10,704ETH(约合200万美元)和2.24亿枚BALD流动性,导致池子深度骤降和市场恐慌,BALD价格从0.09美元下跌至0.02美元。当前,BALD总量的50.9%(5.09亿枚,价值1100万美元)处于在项目方地址。

早些时间报道,Bald发推表示,未出售过任何代币,仅进行添加、移除流动性和购买代币。[2023/7/31 16:09:37]

0xcA2ca459Ec6E4F58AD88AEb7285D2e41747b9134

分布式加密服务平台Vector DAO正式推出,并对加密项目方开放Season 01申请:由Coinbase前高级产品设计师Jonathan Yan等参与的分布式加密服务平台Vector DAO正式推出,并对加密项目方开放Season 01申请。作为由设计师、品牌专家和创意人员等贡献者组成的分布式协作平台,Vector DAO构建了全新的组织结构,使每一名贡献者都可以通过为加密项目方提供服务而无缝地赚取股权或代币收益。Vector DAO具备三项特色:1. 只接受股权或代币作为对所提供服务的补偿;2. 通过其季节模型(Seasons Model,类似于投资基金)为平台会员提供多元化的项目组合;3. 具备灵活性,全职和兼职的贡献者可以一起工作。[2021/8/12 1:50:20]

1.向CakeSwap(0x7EFaEf62)中通过闪电贷借贷224BSC-USD,224BUSD

成都链安CEO杨霞:DeFi项目方应重视合约安全问题:据官方消息,在由OKEx主办的“后疫情时代:DeFi的机遇与挑战”社群活动上,成都链安创始人兼CEO杨霞谈到最近dForce攻击事件,她表示,DeFi项目正在快速发展壮大,据我们统计截止2020年,锁定在以太坊DeFi应用中资产已达到10亿美元。DeFi项目火爆主要来源它的高收益。DeFi又被称为“去中心化金融”,开放式金融基础,则是高达8%-10%收益率必然会伴随巨大风险。各方DeFi团队开发自己合约产品也是自由发挥;但并没有一个统一的、标准的安全方案去遵守,或者说是必须通过严格安全审计,这就导致各种合约漏洞与相关安全问题层出不穷,此次事件项目方就应该进行重入防护:比如使用OpenZeppelin的ReentrancyGuard,另一方面先修改本合约状态变量,再进行外部调用。任何Defi项目方在开发合约时应重视合约安全问题,以应对各种突发情况和各种非正常使用合约情况,从而避免造成损失;同时建议做好相关安全审计工作,借助专业的区块链安全公司的力量,避免潜在的安全隐患。[2020/4/30]

2.把第1步借到的代币向Para-LP(0x3fD4FbD7)中添加流动性,并将获得的222枚流动性代币的接收地址指定为UBT(0xcA2ca459)地址,这一步是为了后续的重入做准备。

声音 | 慢雾:ETDP钱包连续转移近2000 ETH到Bitstamp交易所,项目方疑似跑路:据慢雾科技反(AML)系统监测显示,自北京时间 12 月 16 日凌晨 2 点开始,ETDP 项目方钱包(地址 0xE1d9C35F…19Dc1C3)连续转移近 2000 ETH 到 Bitstamp 交易所,另有 3800 ETH 分散在 3 个新地址中,未发生进一步动作。慢雾安全团队在此提醒交易所、钱包注意加强地址监控,避免相关恶意资金流入平台。[2019/12/16]

图1初始准备

3.攻击合约(0x4770b5cb)调用ParaProxy合约的depositByAddLiquidity函数,添加流动性代币抵押挖矿,此处传入的pid为18,对应的Para-LP(BSC-USD/BUSD)0x3fD4FbD7a83062942b6589A2E9e2436dd8e134D4,但是token0,token1传入的地址为UGT、UBT的地址,数量为1e18。

图2重入攻击

4.此处原本正常的逻辑为:添加流动性,并将流动性代币存入pid为18的流动性抵押池,但是本函数在代码中并未检查添加的流动性token0、token1得到的流动性代币是否与pid对应的流动性代币地址一致,导致了攻击的发生。注意,并不是所有的流动性池抵押都有该风险,由于第2524行代码,pool的ticket需要为零地址才能够通过该检查。

但是攻击者通过控制执行逻辑,实际执行的逻辑为:第2505,2506行将攻击者指定的1枚UGT、1枚UBT代币转入ParaProxy合约。然后在第2535行代码用于添加流动性,并在第2537行检查添加的流动性代币数量。

此时,vars.oldBalance为初始流动性代币数量。攻击者为了通过第2537行的检查,在添加流动性的过程中,进行了重入攻击。由于在添加流动性时调用了攻击者构造的恶意代币的transferFrom函数,攻击者在transferFrom函数中才将流动性通过deposit函数存入ParaProxy合约。这也是第2步时攻击合约将流动性代币接收地址指定为UBT合约的原因所在。

在重入过程中,UBT合约存入了真正的LP代币222枚,并计入ParaProxy的账本中。在重入完成后,ParaProxy合约地址新增了222枚LP代币,ParaProxy合约将其视为攻击合约添加的LP,并计入账本中。至此,UBT合约和攻击合约都新增了222枚LP的存取记录。

图3ParaImpl合约相关代码

重入相关过程如下图所示:

图4攻击流程示意图

5.UBT合约和攻击合约分别调用withdraw函数,从ParaProxy合约提取221枚LP,并归集到攻击合约,由攻击合约将LP移除流动性并获取对应的BSC-USD以及BUSD

6.归还闪电贷225枚BSC-USD,225枚BUSD,并将获利的221枚BSC-USD、225枚BUSD发送到攻击者地址。整个攻击交易执行完成。

#2总结建议

攻击者一共执行了约40次攻击,共获利约170万美元。截止发稿时,攻击者通过跨链协议将其转到以太坊网络中,并将其中的660枚ETH转入Tornado.Cash,另外5枚ETH转入了0xDd52CE617cAF1b7C8cEaCC111DE2f1c54E20C1b0地址。

本次攻击主要由合约代码中存在逻辑缺陷以及存在资金操作的关键函数未进行防重入导致。建议合约开发者在开发过程中进行完整的测试以及第三方审计,并养成使用Openzeppelin库的ReentrancyGuard合约来进行重入攻击的防范。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

TRXMET:浪潮抢跑元宇宙,新瓶继续装旧酒

卖服务器还是没新故事。作者??|?王思原编辑??|??伊页本文转载自财经新知最近两年,但凡与科技沾边的公司,都要蹭一蹭元宇宙的热度,似乎已经成了业内共识.

[0:15ms0-0:968ms