比特币价格·比特币行情
Ctrl+D收藏简单区块链

Pickle Finance遭攻击损失近2000万美元DAI 未经严格审计的DeFi路在何方?

作者:

时间:2020/12/12 20:18:40

这一周,“科学家”们(利用技术实力和知识门槛专薅 DeFi 的羊毛的黑客)很忙。

11月14日,黑客攻击 Value DeFi 的 MultiStablesVault 池子,获得近 740 万美金的 DAI;11月17日,黑客攻击Origin Protocol 凭空铸造 2050万 枚OUSD。

今天凌晨 2 时 37 分,当人们还在熟睡之时,黑客攻击 DeFi 协议 Pickle Finance(酸黄瓜),捞得近 2000 万美元的 DAI。

11月18日,比特币冲击 18,000 美元,加密货币再次登上央视,此前,加密货币被誉为去中心化的金融工具首次登上央视。据央视报道,从投资回报率的角度来看,加密货币是今年真正的“头号”投资产品。“彭博银河加密货币指数”上涨约65%,超过金价逾20%的涨幅,也超过全球股市、债市和大宗商品市场的收益率。涨幅较高的一个关键原因是以太坊币价暴涨,涨幅达到169.40%。

央视解释道:“以太坊币价格攀升得益于去中心化金融工具(DeFi)的使用增加,以及疫情肆虐后各国出台的巨额刺激措施,让投资者选择了比特币、以太坊等加密货币进行保值。”

一方面,加密货币市场频频发出利好消息;另一方面,DeFi 项目因未经严格审计频遭攻击。

据悉,今年 9 月 10 日 酸黄瓜 Pickle Finance 启动流动性挖矿,9 月 14 日 V神发推文赞赏该项目,使其代币价格暴涨 10 倍。而遭到此次攻击后,酸黄瓜损失近价值 2000 万的 DAI,同时 24 小时内其代币腰斩。

CoinmarketCap 数据显示, Pickle Finance 代币(Pickle)的价格在24小时内,从 22.7 美元跌到 10.2 美元,它的市值在未销毁的情况下, 24小时内蒸发了 1220 万美元。

PeckShield 通过追踪和分析发现,攻击者通过StrategyCmpdDaiV2.getSuppliedUnleveraged() 函数查询资产余额 1972万 美元;

随后,攻击者利用输入验证漏洞将 StrategyCmpdDaiV2 中的所有 DAI 提取到 Pickle Jar:这个漏洞位于 ControllerV4.swapExactJarForJar() 函数中,其中包含两个既定的伪 Jar。在未验证既定 Jar 的情况下,此步骤会将存入的所有 DAI 提取到 Pickle Jar,并进行下一轮部署。

接下来,攻击者调用 earn() 函数将提取的 DAI 部署到 StrategyCmpdDaiV2 中。在内部缓冲区管理中,黑客调用了三次 earn() 函数,在 StrategyCmpdDaiV2 中生成共计 950,818,864.8211968 枚 cDAI;

第一次调用 earn() 函数存入 1976万 枚DAI,铸造 903,390,845.43581639 枚 cDAI;

第二次调用 earn() 函数存入 98.8万 枚DAI,铸造 45,169,542.27179081 枚 cDAI;

第3次调用 earn() 函数存入4.9万 枚DAI,铸造 2,258,477.11358954 枚cDAI;

随后,攻击者调用 ControllerV4.swapExactJarForJar() 函数,利用任意代码执行将 StrategyCmpdDaiV2 中的所有 cDAI 提取出来,这一步中,_execute() 函数有两个参数:_target和 _data,_target 指的是目标地址,即图中橘色所示部分;_target 是一个加白的地址,攻击者没办法任意控制此地址,此处他们利用的是 CurveProxyLogic,该加白的合约(能通过 262 行 approvedJarConverter[_targets[i] 的检查。也就是说,能被完全控制的是参数  _data,即图中紫色所示部分,_data 中包含 _execute() 函数可调用的add_liquidity() 函数,以及传给 add_liquidity() 的所有参数。

此时,咱们回到橘色框里的 curve、curveFunctionSig、curvePoolSize、curveUnderlyingIndex、underlying,其中 curve 是一个地址,它表示橘色框里倒数第二行中的 curve.call() 函数可以执行任意一个合约,因此,攻击者把 curve 设置成 StrategyCmpdDaiV2,curveFunctionSig 表示除了刚刚指定合约外,还可以指定要调用此合约的函数,通过此操作攻击者成功调用 StrategyCmpdDaiV2.withdraw() 函数。

接下来就是组织蓝色框中的函数 StrategyCmpdDaiV2.withdraw() 的参数 _asset,蓝色框中的 _asset 实际上是橘色框框里的 liquidity,liquidity 由传入函数 add_liquidity() 的 underlying 得来,underlying 是另一个伪造的合约地址,它的 balanceOf() 函数会返回 cDAI 的地址。攻击者将 cDAI 的地址设置成 liquidity (此处的 0 也是 add_liquidity() 函数的参数 curveUnderlyingIndex),然后,liquidity 被打包到 callData 里再传给 withdraw() 函数,使得 withdraw() 函数取出的 _asset 就是 cDAI 的地址。值得注意的是,如果 want == _asset ,蓝色框里的函数就不执行,此设计的目的在于 want (也就是 DAI)是不允许被取出的,所以攻击者刻意取出对应的 cDAI。

最后,执行回 ControllerV4.swapExactJarForJar() 函数, 所提取的cDAI 被存入恶意的 _toJar . 在 _toJar.deposit() 函数里, 所有 950,818,864.8211968 枚 cDAI 立即转入黑客地址

针对此次 Pickle Finance(酸黄瓜)被攻击事件,其审计公司 Haechi 发推文称,今年 10 月对其代码进行了一次审计,但是攻击者利用的漏洞发生在新创建的智能合约中,而不是接受安全审计的智能合约中。与此次漏洞攻击相关的代码存在于 controller-v4.sol 中的 swapExactJarForJar,而非此前审计的 controller-v3.sol 中,该智能合约不包含 swapExactJarForJar。

对此,PeckShield 相关负责人表示:“有一些 DeFi 项目在做过第一次智能合约安全审计后,可能会为了快速上线主网,省略审计新增的智能合约,这种省略或能争取短时的利益,但就像此次攻击一样最终因小失大。DeFi 们在上线之前一定要确保代码进行彻底地审计和研究,防范各种可能发生的风险。”

未经严格审计即上线的 DeFi 项目能走多远?

Pickle Finance:创建PIP-19以将PICKLE奖励从基于Uniswap的farms重新分配给其它已有farms:Pickle Finance发推表示,创建PIP-19是为了将PICKLE奖励从基于Uniswap的farms重新分配给其它已有farms。投票将在24小时后结束。[2020/11/15 20:52:30]

Pickle Finance:问题将在24小时内得到解决:流动性挖矿项目Pickle Finance发推称,我们公布了更多关于15小时前发生的事情的细节以及我们的计划。可能会有进一步的延迟,但我们有信心在24小时内解决这个问题。据悉,今天凌晨流动性挖矿项目Pickle Finance中的PickleJar控制器出现错误,导致提款金额不正确。[2020/9/30]

因欧盟GDPR准则 RPARITY被迫关闭ICO护照服务(PICOPS):平价、钱包和区块链供应商PARITY将于2018年5月24日关闭其PICOPS平台,原因是新的欧盟GDPR准则。PICOPS是许多基于以太坊的ICO项目的重要平台。该服务通过验证以太坊地址的所有者,使ICOs易于KYC和AML。不幸的是,由于在GDPR框架中对个人数据法律的具体解释,这项服务不能再继续下去了。[2018/5/21]

标签:

区块链热门资讯
一文了解比特币新签名方案MuSig2

随着比特币的Taproot更新越来越近,社区成员对MuSig多重签名方案产生了相当大的兴趣,MuSig允许一个团体共同管理一些比特币,并创建一个签名来授权支付。由于MuSig创新的密钥聚合特性,这种签名是一种常规的Schnorr签名,一旦Taproot被激活,比特币网络就可以对这种签名进行处理。

2020/12/12 20:18:56
欧科云链观察:美国大选舞弊争议不休 区块链投票会是解决方案吗?

今年的美国大选可谓是腥风血雨,先有拜登与特朗普票数不相上下僵持数日,后有特朗普在7日CNN等外媒报道拜登胜选后至今不承认选举结果,反复发推称自己才是赢了大选的人,拒绝权力过渡,并在各地发起对大选结果的诉讼。 虽然特朗普的处事风格令人见怪不怪,但由于疫情这次选举大量采用邮寄选票的方式,确实存在舞弊争议。

2020/12/12 20:18:51
以太坊 Arbitrum Rollup 的工作原理

最近我发表了一篇博文比较 Arbitrum Rollup 和相互竞争的其他 rollup 系统。不过,那篇文章里面没有详细介绍 Arbitrum Rollup 的工作原理,所以这一篇文章的任务就是填补这个空白。 一句话,Arbitrum Rollup 是一个由以太坊链上合约管理的链下协议。

2020/12/12 20:18:45
2021年科技新热点 隐私计算需提前关注

10月20日, Gartner发布了2021年需要深挖的9项重要战略科技趋势,其中隐私增强计算(Privacy-Enhancing Computation)赫然在列,成为年度重要战略科技趋势中的新秀。

2020/12/12 20:18:36
区块链工程师招聘进行时 我该如何入行?

关键是,你要不要到这个“碗里”去。 近日,中国人民银行数字货币研究所发布了一则“未来可期”招聘信息,这也是近半年以来数研所第三次对外公开招聘相关人才,岗位包括但不限于“前端研发工程师”、“大数据工程师”、“区块链工程师”等,工作地点则分布在深圳、北京、苏州三地。 此外,中国银联总公司正在招聘区块链研究方向的中级工程师和高级工程师。

2020/12/12 20:18:30
欧科云链观察:区块链落地产业按下快进键 与知识产权融合之路可否长久?

近年来,知识产权始终是当代热议的话题之一。我国知识产权法律体系成立相对滞后,且规定界限难以从根源上切实维护创作者的权利,一直以来,侵权事件屡见不鲜。区块链技术恰是可以解决知识产权问题的途径之一。 知识产权在不同的国家表述的方式有所不同。

2020/12/12 20:18:26