JAR:CertiK:Pickle Finance损失近2000万美元攻击事件分析

北京时间11月22日凌晨2点37分,CertiK安全研究团队通过Skynet发现PickleFinance项目遭到攻击,共损失约1975万枚价值近一亿三千万人民币DAI。自9月10日PickleFinance开始挖矿起,一直没有什么存在感。有了食物大军的大幅涨跌经验在前,投资者本身对于异军突起的Pickle项目保持着一定程度的警惕。但自从9月14日获得V神亲自站台,酸黄瓜在汹涌的DeFi浪潮中凭借其DeFi新玩法及各种背书,可谓是平地起价完成了10倍的涨幅。

“刚用5美元的价格把手里价值1万美元的PICKLE卖掉,睡了一觉它的价值就变成了60美元???这???”正当各投资者摩拳擦掌预备好入手这一新型食物代币或是已经深陷其中,11月23日传来的消息却令投资者们大惊失色。据Messari数据显示,自PickleFinance被黑客攻击后,其原生代币PICKLE暴跌50.12%,直至10.17美元,此后稍有回升,截止当前其市值为11.41美元。下文将为你带来本次攻击事件详情分析。攻击始末

CertiK通过美国AICPA审核获得SOC 2类型I认证:金色财经报道,Web3安全审计公司CertiK已经通过了美国注册会计师协会(AICPA)的审核,获得了该机构颁发SOC 2 类型 I 认证。SOC2类型I认证是AICPA基于确保服务机构满足客户数据安全而提出的标准,素以严苛著称。CertiK通过独立的第三方审计进行了安全控制、流程和政策等多全面审计和评估,满足了SOC 2的严格标准,有能力为客户和合作伙伴提供最高级别安全的承诺。在通过该认证后,CertiK方面也表示将一如既往地致力于提供最先进的安全解决方案,使个人、企业和组织等能在保证安全的前提下充分发挥区块链技术的潜力。[2023/7/18 11:00:28]

整个攻击流程如下:第一步:攻击者通过StrategyCmpdDAIV2.getSuppliedUnleveraged()的函数获得当前在位于地址0xcd892a97951d46615484359355e3ed88131f829d的StrategyCmpdDAIV2合约中有多少可以被取出的Dai数目,这里记为Amount_A。第二步:攻击者调用位于0x6847259b2b3a4c17e7c43c54409810af48ba5210地址处的ControllerV4智能合约中的swapExactJarForJar()函数,并在调用时传入1号和2号脏jar,Amount_A以及0,,作为参数。

BNB Chain将通过Fjord启动Balancer流动性引导池:12月19日消息,BNB Chain通过Fjord启动Balancer流动性引导池,将允许新项目无缝且公平地产生流动性。流动性引导池最初将支持ERC-20代币,并将于2023年通过Fjord NFT在BNB Chain上公平发布NFT。[2022/12/19 21:54:21]

swapExactJarForJar()函数其中1号脏jar和2号脏jar由于是攻击者自己部署的,符合IJar接口的智能合约,因此其中的token()函数的逻辑实现以及其他函数都是由攻击者自己决定的。因为PickleFinanceswapExactJarForJar()函数没有对传入的jar是否为官方的智能合约地址进行验证,因此该步骤得以成立。

swapExactJarForJar()函数中传入的jar可以定义代币的类型

FTX现已上线Balancer(BAL) 现货、季度合约及永续合约:据官方公告,数字资产衍生品交易所FTX现已上线基于以太坊的自动做市商交易所协议 Balancer 代币 BAL 的现货、季度合约及永续合约。FTX已推出BTC、ETH、EOS等70多个永续及季度合约产品,最高支持101倍杠杆,无合约交割手续费及提币手续费。此外,FTX已于近期上线了COMP合约及DeFi指数合约,DeFi 指数合约对标一篮子热门DeFi币种。[2020/6/25]

调用withdrawForSwap()函数随着swapExactJarForJar()函数的执行,当执行到上图289行的位于swapExactJarForJar()函数中的withdrawForSwap()函数时,经过一系列函数调用,最终执行位于0xcd892a97951d46615484359355e3ed88131f829d的deleverageToMin()函数以及deleverageUntil()函数,将当前StrategyCmpdDAIV2中可以被取出的代币(Amount_A)转移到位于0x6949bb624e8e8a90f87cd2058139fcd77d2f3f87地址的PickleJar智能合约中。

现场 | Hashtag资本合伙人Spencer Yang:接下来一周还将有6个项目IEO:4月23日,金色沙龙新加坡第一期在新加坡举行。Hashtag资本合伙人Spencer Yang在沙龙主题演讲中表示,近三个月IEO已经超过50个项目IEO,接下来一周还将有6个项目IEO。他还从从项目方、投资者和交易所三个角度分析了IEO。对项目方来说,IEO可以募集资金,可以市场宣传和营销,并保证能上交易所;对投资者来说,有精心挑选的项目和明确的投资;对交易所来说,可以带来更多的用户,更高的交易量,并能得到上币费用。因此非常利好平台币,平台币价格在过去3个月都有非常不错的表现,价格都有数倍增长。[2019/4/23]

deleverageToMin()函数以及deleverageUntil()函数

StrategyCmpdDAIV2智能合约向PickleJar智能合约转移代币的内部交易截图

韩国区块链公司Certon.In参与日本虚拟货币'BaaSid’项目:今日(5日)韩国区块链公司Certon.In宣布为了加强其子公司‘X-Chain’的个人认证服务将参与日本安全公司PRO主导准备的基于去中心化认证的虚拟货币项目 ‘BaaSid’。根据Certon.In公司的描述, ‘BaaSid’是将用户敏感的个人身份验证信息进行拆分,并将这些被拆分的信息在单独的节点上进行分离·分散的储存, 进行登录、付款或使用网上银行时可以进行暂时合并。该网络平台没有在线服务提供商(OSP)提供的中心化数据库,是一个即时验证(即时访问)的去中心化数据库公共网络平台。[2018/2/5]

PickleJar智能合约中的earn()函数第三步:调用位于0x6949bb624e8e8a90f87cd2058139fcd77d2f3f87地址的PickleJar智能合约中的earn()函数(如上图所示)。总共调用三次,目的是将位于当前PickleJar中的pDAI数目的DAI,从0x6b175474e89094c44da98b954eedeac495271d0f地址转移到位于0x6847259b2b3a4c17e7c43c54409810af48ba5210地址处的ControllerV4智能合约中,并在887行通过调用ControllerV4合约中的earn()函数(如下图所示),在下图152行中通过deposit()函数。从而实现调用0xcd892a97951d46615484359355e3ed88131f829d的StrategyCmpdDAIV2合约中的deposit()函数,将PickleJar中的pDAI数目的cDAI铸造给StrategyCmpdDAIV2。

ControllerV4智能合约中的earn()函数

StrategyCmpdDAIV2合约中的deposit()函数第四步:再次调用位于0x6847259b2b3a4c17e7c43c54409810af48ba5210地址处的ControllerV4智能合约中的swapExactJarForJar()函数,并在调用时传入3号和4号脏jar,以及0,0,CurveProxyLogic智能合约地址,0x20作为参数。此处0x20是一个注入参数,目的是为了与CurveProxyLogic智能合约地址配合,执行位于0x6186e99d9cfb05e1fdf1b442178806e81da21dd8地址的CurveProxyLogic智能合约中的add_liquiditya()函数。3号脏jar:0xa2da08093a083c78c21aeca77d6fc89f3d545aed4号脏jar:0xa445e12d69e8bd60290f6935d49ff39ba31c6115CurveProxyLogic智能合约地址:0x6186e99d9cfb05e1fdf1b442178806e81da21dd8

swapExactJarForJar()函数使用CurveProxyLogic智能合约地址和注入参数来执行指定函数

CurveProxyLogic智能合约中的add_liquiditya()函数在此步骤之后,在第三步中存储在StrategyCmpDAIV2被从StrategyCmpDAIV2智能合约中转移到ControllerV4智能合约处。至此所有可以被取出的代币被以cDAI的形式存储在ControllerV4智能合约中,并且攻击者拥有取出cDAI的资格。第五步,攻击者调用位于地址0x5d3a536e4d6dbd6114cc1ead35777bab948e3643的CErc20Delegator智能合约中的redeemUnderlying()函数,内部调用了位于0xbb8be4772faa655c255309afc3c5207aa7b896fd地址处的CErc20中的redeemUnderlying(),redeemUnderlyingInternal()以及redeemFresh()函数。最终将所有获得的cDAI转换成DAI,提出所有DAI并完成攻击。

CErc20Delegator中的redeemUnderlying()函数

CErc20中的redeemUnderlying()函数

CErc20中redeemUnderlyingInternal()函数安全建议

多次的DeFi攻击事件,表明了一个事实:“已审计”并不意味着其拥有了安全保证。PickleFinance在10月或更早通过的安全审计,并不代表其新增的智能合约均得到了实时的安全检测。高收益伴随着高风险,此次漏洞的爆发同样也是一个警示。完备的安全保障=安全审计+实时检测+资产保障=CertiK审计服务+CertiK实时检测安全预言机+CertiK快速扫描+CertiKShield去中心化资产保障资金池CertiK的一系列安全服务及工具,覆盖了项目及用户的资产安全需求。如您有审计需求,欢迎点击CertiK公众号底部对话框,留言免费获取咨询及报价!

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

地球链

[0:0ms0-0:970ms