前言
北京时间8月4日上午,知道创宇区块链安全实验室监测到以太坊上的DeFi协议PopsicleFinance遭遇闪电贷袭击,目前只有SorbettoFragola受到影响。实验室第一时间跟踪本次事件并分析。
分析
攻击者信息
攻击tx:
动态 | 报告:金融科技行业的“颠覆者”拥有多种规模和形式,包括加密货币提供商:花旗集团近日发布了2020展望报告指出,金融服务业和其他许多行业一样,面临来自科技升级的冲击。随着数字技术的发展,千禧一代对非传统银行服务持更加开放的态度。此外,政府和监管机构对金融创新的支持也有所增加。随着智能手机上网服务的普及,使那些未曾拥有传统银行账户的用户直接跨入了数字银行时代。尽管世界银行估计,世界上仍有17亿成年人无法获得金融服务,但随着金融科技技术的发展,这一数字正在迅速减少。
花旗将金融科技形容为“颠覆者”,金融科技行业的“颠覆者”拥有多种规模和形式,包括在线支付平台、数字贷款机构、发展中国家的小额贷款机构、移动股票交易应用程序、监管和合规软件制造商以及加密货币提供商。尽管许多传统金融服务集团提供范围广泛的产品和服务,但许多金融科技颠覆者只专注于一个细分市场,比如企业贷款的一个特定领域。(金融界)[2019/12/29]
0xcd7dae143a4c0223349c16237ce4cd7696b1638d116a72755231ede872ab70fc
声音 | Darrell Duffie:数字货币很可能会颠覆银行业的商业模式:斯坦福大学商学院金融学教授Darrell Duffie预测,除非银行想出更快、更便宜的转账方式,否则在未来十年内,以各种形式出现的数字货币很可能颠覆该行业的商业模式。“未来即将到来,这将对那些没有参与该计划的传统银行造成很大的破坏。”这种颠覆不一定来自比特币之类的东西。它更有可能来自与美元或其他主要货币挂钩的稳定币。它也可能来自央行提供的数字货币——而且大多数央行都在考虑这种可能性。或者它可能来自科技公司,比如Facebook,他们想方设法绕过银行。(斯坦福大学商学院)[2019/10/25]
攻击合约:
0xdFb6faB7f4bc9512d5620e679E90D1C91C4EAdE6
声音 | Coinbase前CTO Balaji:颠覆性产品是复制垄断产品UX+区块链化后端:天使投资人、Coinbase前CTO Balaji在推特上分享了他区块链对于如何运用区块链技术开发颠覆性产品的看法。需要做的是:1. 成功复制垄断产品的用户体验;2.区块化后端,为早期采用者和(可能)审查阻力提供激励。 关键是找到第一个技术上可行的候选人。它可能是基于文本的应用程序。在未来几年内,建立“部分”基于区块链的Twitter或Craigslist版本比像YouTube或Snapchat这样的高带宽更容易。不要把它全部放在链上,只关键部位。[2019/5/27]
辅助攻击合约1:
0x576Cf5f8BA98E1643A2c93103881D8356C3550cF
中国信通院所长何宝宏:区块链只是互联网又一块补丁,不可能颠覆它:中国信息通信研究院云计算与大数据研究所所长何宝宏今日在第二届区块链新金融高峰论坛上表示,区块链只是20年来“对互联网又一块大点的补丁”,不可能颠覆互联网,更不可能颠覆当前世界。[2018/6/6]
辅助攻击合约2:
0xd282f740Bb0FF5d9e0A861dF024fcBd3c0bD0dc8
被攻击池信息:
PLP(USDT/WETH):0xc4ff55a4329f84f9Bf0F5619998aB570481EBB48
PLP(USDC/WETH):0xd63b340F6e9CCcF0c997c83C8d036fa53B113546
PLP(WBTC/WETH):0x0A8143EF65b0CE4C2fAD195165ef13772ff6Cca0
PLP(USDT/WETH):0x98d149e227C75D38F623A9aa9F030fB222B3FAa3
PLP(WBTC/USDC):0xB53Dc33Bb39efE6E9dB36d7eF290d6679fAcbEC7
PLP(USDC/WETH):0x6f3F35a268B3af45331471EABF3F9881b601F5aA
PLP(DAI/WETH):0xDD90112eAF865E4E0030000803ebBb4d84F14617
PLP(UNI/WETH):0xE22EACaC57A1ADFa38dCA1100EF17654E91EFd35
攻击流程:
PLP池合约方面调用流程
攻击合约0xdFb6调用PLP池合约的deposit()函数进行质押
将质押获得的shares转移给辅助攻击合约0x576C
通过辅助攻击合约0x576C调用PLP池合约的collectFees()函数
辅助攻击合约0x576C将步骤2获得的所有shares再次转移给下一个辅助攻击合约0xd282
同步骤3,辅助攻击合约0xd282调用PLP池合约的collectFees()函数
辅助攻击合约0xd282将步骤4获得的所有shares转移回攻击合约0xdFb6
攻击合约0xdFb6调用PLP池合约的withdraw()函数进行赎回,完成攻击
辅助攻击合约0x576C和0xd282调用PLP池合约的collectFees()函数提取手续费奖励
细节
攻击者通过AAVE闪电贷借来USDT、ETH、WBTC、USDC、DAI、UNI六种资产依次对PopsicleFinance的SorbettoFragola系列的8个PLP池进行了闪电贷攻击。
漏洞原因在于PLP池合约对手续费奖励的计算上,一方面在计算中直接采用了用户的LP余额值,而LP可被随意转账至另一账户;另一方面,用户的奖励债务并不会随着LP的转账而转移。
于是攻击者在质押后将LP依次转移给两个辅助攻击合约,并在辅助攻击合约调用collectFees()函数时传参0,为了触发updateVault以更新奖励数据,最后再通过collectFees()提取奖励。
总结
此次PopsicleFinance遭遇的闪电贷攻击的本质原因在于对手续费奖励计算的错误设计,未做全面考虑,从而使得攻击者通过多个地址循环利用资金流进行攻击套利。
近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。