TPS:Cobo区块链安全月报:盘点解析1月典型安全事件

CoboLabs是亚太最大的加密货币托管平台,最受机构欢迎的金融资管服务商Cobo的加密货币研究实验室。

我们专注于创新项目,前沿加密数字技术领域,全球市场合规动向,市场基本面及波动因子;旨在帮助市场参与者和加密货币爱好者,降低进入市场的认知门槛。

此篇文章由Cobo区块链安全研究团队供稿,团队成员来自知名安全实验室,有多年网络安全与漏洞挖掘经验,曾协助谷歌?、微软处理高危漏洞,并获得谷歌、微软等厂商致谢,曾在微软MSRC最有价值安全研究员Top榜单中取得卓越的成绩。团队目前重点关注智能合约安全、DeFi安全等方面?,研究并分享前沿区块链安全技术。

我们也希望对加密数字货币领域有研究精神和科学方法论的终身迭代学习者可以加入我们的行列,向行业输出思考洞察与研究观点!

此篇是?Cobo?Labs?的第??4??篇文章。

跨链桥Multichain漏洞

1月18日知名跨链桥Multichain发现并修复了一个针对WETH,PERI,OMT,WBNB,MATIC,AVAX共6种代币有重要影响的漏洞。凡对MultichainRouter授权过上述代币的用户均受影响,攻击者可直接利用漏洞转走用户授权的代币。根据19日的官方公告,由于部分用户未及时取消授权,有约445WETH被攻击者盗走。

漏洞发生在AnyswapV4Router合约上的anySwapOutUnderlyingWithPermit函数中,由于函数对Token参数的合法性没有校验,攻击者可传入伪造的Token合约来代替原本官方的AnyswapV1ERC20?Token。另一方面WETH等代币合约没有实现permit方法但是实现了fallback函数,因此在后续调用permit时不会发生revert,可以继续成功执行下去。最终导致攻击者可以将受害者approve给AnyswapV4Router合约的Token盗走。

CoboComment

对于普通用户来说,需要特别留意Token无限授权所带来的风险。授权尽可能保证只授权用到的Token数量,而不要使用默认的无限授权,避免节约了gas却丢失了本金。对已有的无限授权要及时撤销,查询账户的授权情况可以使用Etherscan的工具https://etherscan.io/tokenapprovalchecker。

0xDAO:感谢Cobo团队发现其合约漏洞:3月31日消息,Fantom生态DeFi协议0xDAO发推表示,感谢Cobo的安全团队和联合创始人神鱼发现其合约的重大安全漏洞。Cobo回应称,Cobo自成立以来始终秉承安全至上的原则,协同行业的各方力量构建安全环境,为行业贡献力量。[2022/3/31 14:29:46]

Reference

https://github.com/W2Ning/Anyswap_Vul_Poc

https://theblockbeats.info/news/28774

https://hackernoon.com/erc20-infinite-approval-a-battle-between-convenience-and-security-lk60350r

DEXCrosswise遭攻击

问题是因MasterChef合约的setTrustedForwarder函数没有正确进行权限校验。当攻击者修改了TrustedForwarder后,可以实现伪造msg.sender的效果,从而直接获取到MasterChef的owner权限。然后再利用owner权限调用set函数设置?strategy为攻击者的恶意参数0xccddce9f0e241a5ea0e76465c59e9f0c41727003。修改strategy后通过少量deposit即可withdraw大量的CRSSToken获利。

官方公告也承认这个漏洞过于明显,似乎是开发者有意为之,其内部调查后开除了4个开发者。目前已经对链上数据进行了快照,后续将进行重新部署。官方git上已经开始进行整体的代码审计,据称后续会再联合Certik进行审计。

CoboComment

此次攻击针对的是MasterChef合约,其实不会直接盗取用户的LP或者CRSStoken,但币价大跌还是会让持有CRSS的用户造成实际的损失。查看官方doc上无法找到项目审计报告,此漏洞比较明显,如果经过安全公司审计的话,很大概率可以暴露出来。对于个人投资者来说,未经过审计的项目还需谨慎。

BiKi平台支持持仓MBL空投CBK(Cobak)代币:根据BiKi官方公告,BiKi平台将支持持仓MBL空投CBK(Cobak)代币,用户在BiKi持有MBL,可获得CBK(Cobak)代币。空投比例为,35000MBL:1CBK,持仓快照时间为2020年12月23日,14:00(GMT+8)。

CBK(Cobak)是结合区块链钱包的Cobak社区发行的加密货币。 Cobak社区是现存30万人以上的加密货币用户、日活人数6万人的韩国代表性密码货币社区。CBK代币可以通过用户对Cobak社区贡献后可获得,在服务内可作为多种结算手段使用的实用型代币。[2020/12/22 16:05:26]

Reference

https://twitter.com/peckshield/status/1483340900398895105

https://crosswise.medium.com/post-exploit-update-2a24c3370466

https://bscscan.com/address/0x70873211cb64c1d4ec027ea63a399a7d07c4085b#code

https://github.com/crosswise-finance/crosswise-code-review-1.1

UniswapV3FLOAT/USDC交易对报价,而在攻击发生之前几天,FLOAT/USDC池中流动性下降,低流动性给了攻击者进行进行预言机操纵攻击的机会。攻击者使用47ETH在池中使用USDC兑换FLOAT,导致FLOAT报价升高。之后再使用FLOAT抵押到Rari#90池中借出其他资产实现获利。攻击手法与2021年11月发生的Rari#23池VesperLendBeta攻击一致。

CoboComment

对于一些无法使用ChainLink预言机报价的小币种,DeFi合约中通常会使用DEX作报价。目前UniswapV2/V3延时报价虽然可以抵抗闪电贷攻击,但无法抵抗真实的大资产操纵;而TWAP时间加权机制虽然可以在一定程度上提高操纵难度,但只能缓解不能根除。从开发者角度,可以考虑在合约中添加一定风控类代码针对恶意报价进行检查。对普通用户而言,则要留意相关的流动性池,提防价格操纵风险。

Cobra:所有多签名解决方案都是不必要的:9月6日晚间,Bitcoin.org网站共同所有者Cobra发推称,所有用以解决比特币存储安全问题的多签名解决方案都是不必要的复杂。因为对很多人来说,最好也是最安全的解决办法就是,把他们的12个助记词写下来,放在别人看不到的地方,比如夹在书的中间。[2020/9/7]

Reference

https://twitter.com/FloatProtocol/status/1482184042850263042

https://medium.com/vesperfinance/on-the-vesper-lend-beta-rari-fuse-pool-23-exploit-9043ccd40ac9

Tornado.Cash转账到新地址并部署合约的行为。进一步通过对合约和相关交易的分析来发现潜在的攻击行为,发现问题时将立刻通知相关项目方进行预防。有人已经在Forta上实现了类似的Agent.

CoboComment

项目方可以考虑类似的方式,通过监测链上的新合约和内存池中的交易,对于可疑的合约或交易可以进行静态分析或模拟执行,检查是否会对自身项目关联合约中的资产有不良影响。随着区块链攻防的升级,可以预见类似的监测告警系统将会越发成熟,当然攻击者也会挖掘到更多bypass监测的攻击方式。在传统安全中攻防持续对抗的局面在区块链安全中也将不断重现。

Reference

https://twitter.com/AndreCronjeTech/status/1479778350084333574

https://connect.forta.network/agent/0x2fbec7dcd4eebf34c5b94d899109057eea3642a2400b7143e64873d453b7ba61

Raripool#19攻击失败

知名区块链安全白帽@samczsun发布了针对Rari#19的预警推文,但后面攻击没有实际发生。

Cobra:本轮牛市比特币价格峰值或在3万美元左右:7月28日晚间,Bitcoin.org网站共同所有者Cobra发推称,如果比特币推动新的牛市,我们有责任不鼓励人们在非常高的价格买入。这一次价格峰值可能在3万美元左右,然后价格将回落到1.5万美元左右。Cobra提醒称,永远不要在峰值买入,除非你打算持有很多年。[2020/7/29]

攻击手法与前面提到的FloatProtocolRari#90预言机攻击是类似的。攻击者在UniswapV3将约300个ETH兑换成了BED,实现对币价的操纵。由于UniswapV2/V3Oracle都是在第二个区块才会更新币价,使攻击者无法在一个交易内完成对币价的操纵,从而可以对抗闪电贷攻击。而当使用真实的大资金进行操纵时,攻击者则需要至少等待到第二个区块才能看到币价的反应。由于TWAP的存在,通常攻击者还需要多等待几分钟,以使币价变得更加明显。对于此次攻击来说,攻击者也确实是这样做的。然而尴尬的是,在第二个区块出现了疑似套利机器人的存在,此地址在第二个区块立刻将将手中的大量BED兑换成了ETH,维持住了原本币价的稳定。使得攻击者无法继续攻击,并且还要承担swap的gas、手续费与大单交易滑点的损失。

CoboComment

UniswapV2/V3Oracle虽然可以抗闪电贷攻击,但是无法直接对抗大资金操纵。因此对于流动性较小的交易对,仍然存在预言机价格被操纵的风险。从攻击者的角度看,要进行对UniswapV2/V3Oracle操纵攻击,需要较高的攻击成本,而且需要保证自己持有市场中大部分所操纵的池子的目标代币,否则就会出现上面的情况,被其他持有目标代币的大户套利,最终偷鸡不成蚀把米。

Reference

https://twitter.com/samczsun/status/1486243806739587076

OpenSea前端漏洞

卖家发起listing,这时用户会对报价数据进行签名,表示同意以设置的价格出售其NFT。

这个签名数据会保存在OpenSea的链下数据库中,当买家在OpenSea上购买该NFT时,OpenSea会把这个签名数据上链验证,通过后即可完成NFT?transfer,OpenSea也会收取一部分手续费。

Cobinhood将于4月列出MIOTA和NEO:据Cobinhood官方消息,将在4月份列出MIOTA、NEO,具体时间尚未确定。Cobinhood是美国完全零手续费的加密货币交易所。自今年1月下旬,Cobinhood不断上新币。目前MIOTA全球均价1.19美元,跌幅1.34%;NEO现全球均价56.32美元,跌幅3.47%。[2018/3/27]

售出前,卖家也可以取消之前的listing,被cancel的listing会在链上验签时失败,从而不会被出售。

这里存在的问题是,OpenSea允许在原有listing不取消的情况下,再次发起listing。这时虽然OpenSeaUI上已经看不到卖家旧的报价,但其实旧的listing依然存在并有效。攻击者可以在https://orders.rarible.com中查询到旧的listing。由于OpenSea的listing并没有交易Nonce机制,旧的listing依然是有效的。攻击者可以通过旧的listing直接购买NFT,并以新的价格售出。由于NFT有剧烈的价格波动,通过这种方式可以实现巨额套利。

https://etherscan.io/token/0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d?a=9991#inventory就是一例子:1月24日BAYC的NFT在OpenSea上先以0.77ETH买入,又以84.2ETH卖出。

CoboComment

普通用户建议登录https://orders.rarible.com查询自己是否有旧的listing,并立刻进行取消处理。更稳妥安全的方式是直接将NFT转移到新地址上。

Reference

https://twitter.com/PeckShieldAlert/status/1485547426467364864

https://twitter.com/yakirrotem/status/1485559864948629512

Metamask泄露个人IP漏洞

@alxlpsc在medium上披露称Metamask存在严重的隐私泄露问题。漏洞主要是利用了MetaMask自动加载NFT图片URL。基本的攻击思路:攻击者在可以将NFT的URI设置成自己可控的服务器网址,并将NFTtransfer给目标账户;当用户登录Metamask时,Metamask会自动扫描账户上所拥有的NFT,并发起指向攻击者服务器的HTTP请求;攻击者则可以从访问日志中得到受害者的IP信息。

CoboComment

区块链的匿名性主要来自链上地址与链下身份的剥离。如果能够通过链上的地址确认链下身份,在区块链场景下确实是比较严重的危害。在传统安全中泄露主机IP通常不被认为是特别严重的问题,但在主张匿名性的区块链世界,隐私的重要程度会再上一个台阶。相信类似的,因安全场景不同而导致漏洞级别不同的情况,在区块链这个相对较新的领域还会不断出现。

Reference

https://medium.com/@alxlpsc/critical-privacy-vulnerability-getting-exposed-by-metamask-693c63c2ce94

wxBTRFLY漏洞披露与修复

@immunefi的白帽黑客发现了wxBTRFLYToken合约中存在严重漏洞。合约中的transferFrom函数没有正确更新recipient的授权,并且会错误更新msg.sender的授权。

漏洞本身虽然严重但成因并不复杂,比较有意思的是官方的修复方式。由于合约本身不支持升级,因此无法直接更新合约代码;合约不支持暂停,因此也没法用快照迁移的方式转移用户资产。最终官方的措施是自己发动了攻击交易,将所有受漏洞影响用户的资产转移到了一个多签钱包中。待后面部署新Token合约后会再行分配。

CoboComment

ERC20Token已经有比较成熟的代码模板,wxBTRFLY是在重写transferFrom时出现的问题。这个问题如果有完善的单元测试应该会很容易发现,项目方可能在开发过程中是缺少完善的测试流程。

Reference

https://discord.com/invite/rpkPDR7pVV

https://twitter.com/redactedcartel/status/1482497468713611266?s=20

https://etherscan.io/tx/0xf0e4ccb4f88716fa5182da280abdb9ea10ec1c61cfc5bbe87e10bdde07c229d6

Qubit跨链桥被攻击

1月28日,BSC上的DeFi平台QubitFinance的跨链桥QBridge遭受攻击,损失约8000万美金。

跨链桥一种常见的实现形式是在源链的合约中抵押资产,并emitevent。由监听节点捕捉event,向目标链的跨链桥合约发起调用,mint等量的资产。来源链上只要有event事件产生,跨链桥系统就会认为有跨链资产需要转移。但如果源链上跨链桥合约代码存在问题,就可能出现没有资产抵押进跨链桥合约但仍emitevent的情况,产生漏洞,造成目标链Token的错误增发。

QBridge就存在这样的问题。QBridge支持抵押ETH和ERC20Token两类资产。由于以太坊的ETH作为native代币,与ERC20Token由两套单独的代码处理。在源链抵押Token时,会调用deposit方法,在抵押时ETH应该调用depositETH方法。QBridge将零地址作为ETH的标识。但是实现时没有完善的校验,导致合约处理ETH时仍使用deposit方法,相当于将ETH当成了合约地址为零地址的Token处理。在转账时使用transferFrom则相当于是对零地址进行合约调用。而以太坊底层设计上,对EOA地址发起合约调用会默认成功,不会revert。以上条件结合起来,最终的情况就是虽然攻击者在源链没有抵押任何资产,但仍可以在目标链上mint出大量qXETH,实现获利。

CoboComment

目前区块链行业中多链并存,跨链桥已经是重要的基础设施。跨链桥本身由于要进行链上链下配合,整体复杂度要比普通dapp高上许多,因此更容易出现问题。同时跨链桥上通常会抵押大量的资产,如果可以非法转移那么获利颇丰。各个跨链桥系统似乎成为了攻击者们最近一两月中的重点目标。

Reference

https://mp.weixin.qq.com/s/PLbuI9JFxyFRlDlj9rPvmQ

https://mp.weixin.qq.com/s/-kTsAs2WH5_4N4_3-XIxag

CoboLabs希望协助加密世界投资者规避风险、提高收益,为传统金融机构、风险投资公司、通证基金、个人投资者、交易所、媒体等伙伴提供客观、有深度的数据分析。

关于亚太最大的加密货币托管及资管平台Cobo:我们向机构提供领先的安全托管与企业资管业务;我们向全球高净值合格投资人提供加密数字钱包业务和丰富灵活的定期与结构化产品,我们关注金融创新,并于?2020?年第三季度成立了第一家面向全球机构的基金产品「DeFiPro」。

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

链链资讯

[0:0ms0-5:520ms