铸币疑云——PaidNetwork被盗细节分析
慢雾科技
刚刚
11
据消息,以太坊DApp项目PaidNetwork遭受攻击。攻击者通过合约漏洞铸造近1.6亿美元的PAID代币,并获利2000ETH(约300万美元)。慢雾安全团队在第一时间跟进并分析,现在将细节分析给大家参考。
Vader将关闭稳定币协议Vader Protocol,已暂停该应用程序的铸币功能:12月30日,据Vader开发者公告,生产稳定币Vader Protocol US Dollar (USDV) 的应用程序将被关闭,正在关闭Vader Protocol,现持有VADER和USDV代币的用户,请访问web应用程序兑换金库资产。
据悉,Vader Protocol是一种算法稳定币网络,类似于Terra网络,目前Vader团队已暂停该应用程序的铸币功能,防止用户遭遇其稳定币也脱钩时可能出现的任何问题。目前,团队已暂停销毁功能,开发人员创建一个兑换应用程序来分发应用程序的剩余金库,该兑换应用程序计划将保留到6月。[2022/12/30 22:15:51]
攻击细节分析
RaceNetwork 将采用Mint铸币机制完成初版产品完整架构建设:5月15日消息,BNBChain基础设施服务平台RaceNetwork将在5月15日21:30(UTC+8)采用Mint铸币机制发行,用于完成初版产品完整架构建设,即市场参与资金总量决定发售价格。据悉,目前已上线预测游戏和挖矿功能,单币挖矿将开采BNB,后续陆续开放DAO、SwapDEX等功能,Certik信息显示,Race已通过其安全审计。[2022/5/15 3:17:23]
Akropolis重入攻击事件:攻击者使用自己构造token导致合约使用相同差值铸币两次:11月14日,慢雾发布DeFi协议Akropolis重入攻击事件简析。内容显示:
1. 攻击者使用自己创建的token进行deposit,此时Akropolis合约会先记录一次合约中所有代币的总量;
2. Akropolis合约调用用户自己创建的token的transferFrom函数的时候,攻击者在transferFrom函数中重入Akropolis合约的deposit函数,并转入DAI到Akropolis合约中;
3. 此时在重入的交易中,由于Akropolis合约会先获取合约中所有代币的总量,这个值和第一次调用deposit函数获取的合约代币总量的值一致;
4. Akropolis合约计算充值前后合约中代币总量的差值,攻击者在充值DAI后,会得到一定量的Delphi token,获得token的数量就是充值DAI的数量;
5. 铸币完成后,流程回到第一次deposit往下继续执行,这时合约会再次获取合约中所有代币的总量,这时由于在重入交易时,攻击者已经转入一定量的DAI,所以得到的代币总余额就是攻击者在重入交易完成后的代币总余额;
6. 此时合约再次计算差值,由于第一次deposit的时候合约中所有代币的总量已经保存,此时计算出来的差值和重入交易中计算的差值一致,Akropolis合约再次铸币给攻击者。总结:攻击者使用自己构造的token,对Akropolis合约的deposit函数进行重入,导致Akropolis合约使用相同的差值铸币了两次,但是只触发了一次转账,当攻击者提现的时候,就可以提两倍的收益,从而获利。[2020/11/14 20:48:37]
以上是整个攻击过程的调用流程细节。
Kava借贷平台USDX铸币额度将于今晚上调至1750万:据官方推特,跨链DeFi借贷平台Kava将于今晚10点左右上调其USDX铸币额度,预计将从原来的1500万提高到1750万USDX。目前平台已抵押超过3383万美元BNB抵押品,发放价值105万美元KAVA代币奖励。
Kava是一个支持多资产抵押的跨链DeFi协议,支持主流数字资产的抵押及稳定币贷款服务。[2020/8/18]
可以看到整个攻击过程非常的简单,攻击者通过调用代理合约中函数签名为(0x40c10f19)的这个函数,然后就结束了整个攻击流程。由于这个函数签名未知,我们需要查阅这个函数签名对应的函数是什么。
通过查阅这个函数签名,我们发现这个签名对应的正是mint函数。也就是说,攻击者直接调用了mint函数后就结束了攻击过程。那么到这里,我们似乎可以得出一个mint函数未鉴权导致任意铸币的漏洞了。通过Etherscan的代币转移过程分析,似乎也能佐证这个猜想。
但是,事实真是如此吗?
为了验证未鉴权任意铸币的这个想法,我们需要分析合约的具体逻辑。由于PaidNetwork使用的是合约可升级模型,所以我们要分析具体的逻辑合约(0xb8...9c7)。但是在Etherscan上查询的时候,我们竟然发现该逻辑合约没有开源。
这个时候,为了一探究竟,我们只能使用反编译对合约的逻辑进行解码了。通过Etherscan自带的反编译工具,可以直接对未开源合约进行反编译。在反编译后,我们却发现了一个惊人的事实:
通过反编译,我们不难发现,合约的mint函数是存在鉴权的,而这个地址,正是攻击者地址(0x187...65be)。那么为什么一个存在鉴权的函数会被盗呢?由于合约未开源,无法查看更具体的逻辑,只能基于现有的情况分析。我们分析可能是地址(0x187...65be)私钥被盗,或者是其他原因,导致攻击者直接调用mint函数进行任意铸币。
总结
本次攻击过程虽然简单,但是经过细节分析后却有了惊人的发现。同时这次的攻击也再次对权限过大问题敲响了警钟。如果这次的mint函数给到的鉴权是一个多签名地址或是使用其他方法分散权限,那么此次攻击就不会发生。
参考链接:
攻击交易:
https://etherscan.io/tx/0x4bb10927ea7afc2336033574b74ebd6f73ef35ac0db1bb96229627c9d77555a0.htm
区块链
盗币
本文来源:
慢雾科技
文章作者:慢雾安全团队
我要纠错
声明:本文由入驻金色财经的作者撰写,观点仅代表作者本人,绝不代表金色财经赞同其观点或证实其描述。
提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。
金色财经>区块链>铸币疑云——PaidNetwork被盗细节分析
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。