宇宙链 宇宙链
Ctrl+D收藏宇宙链

简析meerkat跑路事件 如何躲避DeFi野矿?

作者:

时间:1900/1/1 0:00:00

安全生产简析下meerkat跑路事件

一、核心问题

1.AdminUpgradeabilityProxy天然的负面影响一代理的逻辑合约可以被替换

2.AdminUpgradeabilityProxy权限没有移交timelock一项目方不受时间锁约束,可以随意使用1。所说的能力,替换逻辑合约最终项目方无限制地将正常合约替换成了攻击合约,卷款跑路。

安全公司:AurumNodePool合约遭受漏洞攻击简析:金色财经报道,据区块链安全审计公司Beosin EagleEye监测显示,2022年11月23日,AurumNodePool合约遭受漏洞攻击。

Beosin分析发现由于漏洞合约的changeRewardPerNode函数未进行验证,导致攻击者可以调用该函数进行任意值设置。

攻击者首先调用changeRewardPerNode函数将每日奖励值设置成一个极大数,接下来调用claimNodeReward函数提取节点奖励,而节点奖励的计算取决于攻击者设置的rewardPerDay值,导致计算的节点奖励非常高。而在这一笔交易之前,攻击者便通过一笔交易(0xb3bc6ca257387eae1cea3b997eb489c1a9c208d09ec4d117198029277468e25d)向合约存入了1000AUR,创建了攻击者的节点记录,从而使得攻击者能够提取出该节点奖励。最终攻击者通过该漏洞获得约50个BNB($14,538.04)。[2022/11/23 8:01:04]

二、现场还原(以BUSD池为例)?

安全公司:Starstream Finance被黑简析:4月8日消息,据Agora DeFi消息,受 Starstream 的 distributor treasury 合约漏洞影响,Agora DeFi 中的价值约 820 万美金的资产被借出。慢雾安全团队进行分析后以简讯的形式分享给大家。

1. 在 Starstream 的 StarstreamTreasury 合约中存在 withdrawTokens 函数,此函数只能由 owner 调用以取出合约中储备的资金。而在 April-07-2022 11:58:24 PM +8UTC 时,StarstreamTreasury 合约的 owner 被转移至新的 DistributorTreasury 合约(0x6f...25)。

2. 新的 DistributorTreasury 合约中存在 execute 函数,而任意用户都可以通过此函数进行外部调用,因此攻击者直接通过此函数调用 StarstreamTreasury 合约中的 withdrawTokens 函数取出合约中储备的 532,571,155.859 个 STARS。

3. 攻击者将 STARS 抵押至 Agora DeFi 中,并借出大量资金。一部分借出的资金被用于拉高市场上 STARS 的价格以便借出更多资金。[2022/4/8 14:12:38]

1.项目方故意“坦诚”给出合约的timelock转移权限记录,展示的确执行了changeAdmin方法移交权限给timelock地址,用于混淆视听

Grim Finance 被黑简析:攻击者通过闪电贷借出 WFTM 与 BTC 代币:据慢雾区情报,2021 年 12 月 19 日,Fantom 链上 Grim Finance 项目遭受攻击。慢雾安全团队进行分析后以简讯的形式分享给大家。

1. 攻击者通过闪电贷借出 WFTM 与 BTC 代币,并在 SpiritSwap 中添加流动性获得 SPIRIT-LP 流动性凭证。

2. 随后攻击者通过 Grim Finance 的 GrimBoostVault 合约中的 depositFor 函数进行流动性抵押操作,而 depositFor 允许用户指定转入的 token 并通过 safeTransferFrom 将用户指定的代币转入 GrimBoostVault 中,depositFor 会根据用户转账前后本合约与策略池预期接收代币(预期接收 want 代币,本次攻击中应为 SPIRIT-LP)的差值为用户铸造抵押凭证。

3. 但由于 depositFor 函数并未检查用户指定转入的 token 的合法性,攻击者在调用 depositFor 函数时传入了由攻击者恶意创建的代币合约地址。当 GrimBoostVault 通过 safeTransferFrom 函数调用恶意合约的 transferFrom 函数时,恶意合约再次重入调用了 depositFor 函数。攻击者进行了多次重入并在最后一次转入真正的 SPIRIT-LP 流动性凭证进行抵押,此操作确保了在重入前后 GrimBoostVault 预期接收代币的差值存在。随后 depositFor 函数根据此差值计算并为攻击者铸造对应的抵押凭证。

4. 由于攻击者对 GrimBoostVault 合约重入了多次,因此 GrimBoostVault 合约为攻击者铸造了远多于预期的抵押凭证。攻击者使用此凭证在 GrimBoostVault 合约中取出了远多于之前抵押的 SPIRIT-LP 流动性凭证。随后攻击者使用此 SPIRIT-LP 流动性凭证移除流动性获得 WFTM 与 BTC 代币并归还闪电贷完成获利。

此次攻击是由于 GrimBoostVault 合约的 depositFor 函数未对用户传入的 token 的合法性进行检查且无防重入锁,导致恶意用户可以传入恶意代币地址对 depositFor 进行重入获得远多于预期的抵押凭证。慢雾安全团队建议:对于用户传入的参数应检查其是否符合预期,对于函数中的外部调用应控制好外部调用带来的重入攻击等风险。[2021/12/19 7:49:04]

2.0x7E0c621Ea9F7aFD5b86A50B0942eAee68B04A61Cproxy合约,changeAdmin方法内部调用追踪到304行,实际写入key为ADMIN_SLOT,但读取key却为ADMIN_SLOT。即O(欧)和0(零)的一个细微差异,让changeAdmin方法完全失效,从而达到了已经移交权限的假象

三、结论和经验

1.高度警惕任何包含proxy方式合约的项目,若未经timelock约束,合约有被瞬间替换的风险

2.nevertrust,alwaysverify!不要相信项目方给出的timelock“证据”,对于未经审计的fork项目,务必逐个contract做好与原项目的diff(如果你做到了,就可以躲过meerkat的障眼法)

标签:READEPGRIGRIMBitball Treasuredep币行情GRIM币

Gate交易所热门资讯
区块链思维革命:区块链只能一直创新,旧思维面临淘汰

文|蔡维德???? 2021年03月06日 根据2021年2月1日境外媒体报道,IBM公司将关闭其超级账本区块链部门,90%的员工会离开,而现在IBM主要的工作是区块链研究与开发,许多相关业务被取消.

1900/1/1 0:00:00
高盛前首席投资官Gary Black建议特斯拉抛售比特币回购股票

高盛前首席投资官GaryBlack在推特上建议特斯拉卖出比特币并回购公司股票,引起了强烈反响。自2月8日爆出特斯拉购买15亿美元比特币的消息以来,特斯拉股价已从863.42美元跌至621.44美元,跌幅达28%.

1900/1/1 0:00:00
比特币突破60000美元历史新高,多重利好同时推动

结束了数周的停滞之后,比特币今天重新开启价格飙升,创下了60,000美元的历史新高。 这比比特币先前的历史高点58,258美元高出超过1,750美元.

1900/1/1 0:00:00
三个投资建议,教你玩转NFT | 巴比特原创

自今年1月以来,NFT领域呈现出前所未有的生机和活力,朋友圈、微信群、微博、Twitter、Clubhouse上关于NFT的讨论也与日俱增.

1900/1/1 0:00:00
JINSE Hackathon波卡黑客松大赛报名征集中

由金色财经、Subscript技术社区、polkadot.club联合发起;JINSEHackathon主办;区块动力、Candaq、密码极客联合主办;火币波卡生态基金首席合作企业的波卡黑客松大赛,将于4月8日在上海举办.

1900/1/1 0:00:00
如何花10分钟创建和部署NFT智能合约

什么是NFT NFT代表不可替代的令牌,例如,一个美元钞票是可替代的,因为您可以将其交换为另一个美元钞票。同样,比特币是一个可替代的代币,因为两个不同的比特币完全相同。那么,不可替代的事物就是那些唯一且不能与其他事物互换的事物.

1900/1/1 0:00:00