作者:CoboLabs
此篇文章由Cobo区块链安全研究团队供稿,团队成员来自知名安全实验室,有多年网络安全与漏洞挖掘经验,曾协助谷歌、微软处理高危漏洞,并获得谷歌、微软等厂商致谢,曾在微软MSRC最有价值安全研究员Top榜单中取得卓越的成绩。团队目前重点关注智能合约安全、DeFi安全等方面,研究并分享前沿区块链安全技术。
跨链桥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。
Reference
https://github.com/W2Ning/Anyswap_Vul_Poc
https://theblockbeats.info/news/28774
MetaMask Institutional、Cobo和Gnosis DAO联合开发灵魂绑定代币项目“Evolution”:12月14日消息,数字资产托管和区块链技术开发商Cobo于12月13日发布公告宣布,Cobo、MetaMask Institutional和Gnosis DAO联合灵魂绑定代币(SBT)项目“Evolution”,旨在帮助用户定义自己数字身份并了解最新行业趋势。(cointelegraph)[2022/12/14 21:44:03]
https://hackernoon.com/erc20-infinite-approval-a-battle-between-convenience-and-security-lk60350r
BSC上的DEXCrosswise遭攻击
1月18日BSC上的DEX项目Crosswise遭受攻击,损失约30万美金,并造成CRSSToken币价闪崩。
问题是因MasterChef合约的setTrustedForwarder函数没有正确进行权限校验。当攻击者修改了TrustedForwarder后,可以实现伪造msg.sender的效果,从而直接获取到MasterChef的owner权限。然后再利用owner权限调用set函数设置?strategy为攻击者的恶意参数0xccddce9f0e241a5ea0e76465c59e9f0c41727003。修改strategy后通过少量deposit即可withdraw大量的CRSSToken获利。
官方公告也承认这个漏洞过于明显,似乎是开发者有意为之,其内部调查后开除了4个开发者。目前已经对链上数据进行了快照,后续将进行重新部署。官方git上已经开始进行整体的代码审计,据称后续会再联合Certik进行审计。
CoboComment
此次攻击针对的是MasterChef合约,其实不会直接盗取用户的LP或者CRSStoken,但币价大跌还是会让持有CRSS的用户造成实际的损失。查看官方doc上无法找到项目审计报告,此漏洞比较明显,如果经过安全公司审计的话,很大概率可以暴露出来。对于个人投资者来说,未经过审计的项目还需谨慎。
Wrapped在Celo区块链推出基于比特币的绿色资产EcoBTC:金色财经报道,Wrapped宣布推出EcoBTC(eBTC),据称是第一个“绿色”的基于比特币的资产。eBTC将通过Ubeswap软件在Celo区块链上启动。新的绿色资产将比特币与MCO2结合在一起,成为一个新的单一数字资产。[2021/5/29 22:54: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
Rari#90即FloatProtocolPool遭受预言机操纵攻击
1月15日,RariCapital上的?90?号池即FloatProtocol池遭受预言机操纵攻击。
该池使用UniswapV3FLOAT/USDC交易对报价,而在攻击发生之前几天,FLOAT/USDC池中流动性下降,低流动性给了攻击者进行进行预言机操纵攻击的机会。
攻击者使用47ETH在池中使用USDC兑换FLOAT,导致FLOAT报价升高。之后再使用FLOAT抵押到Rari#90池中借出其他资产实现获利。攻击手法与2021年11月发生的Rari#23池VesperLendBeta攻击一致。
CoboComment
对于一些无法使用ChainLink预言机报价的小币种,DeFi合约中通常会使用DEX作报价。目前UniswapV2/V3延时报价虽然可以抵抗闪电贷攻击,但无法抵抗真实的大资产操纵;而TWAP时间加权机制虽然可以在一定程度上提高操纵难度,但只能缓解不能根除。
声音 | 眼镜蛇Cobra:比特币10周年纪念日将是更新白皮书的大好时机:眼镜蛇Cobra在其个人社交媒体表示:比特币10周年纪念日将是更新白皮书的大好时机,可以修正术语、删除错误,以及删除矿工对投票的任何错误观念或暗示。新的使用者需要关于比特币的最新介绍。[2018/9/18]
从开发者角度,可以考虑在合约中添加一定风控类代码针对恶意报价进行检查。对普通用户而言,则要留意相关的流动性池,提防价格操纵风险。
Reference
https://twitter.com/FloatProtocol/status/1482184042850263042
https://medium.com/vesperfinance/on-the-vesper-lend-beta-rari-fuse-pool-23-exploit-9043ccd40ac9
DefiDollar发现潜在攻击
1月8日DefiDollarFinance(@defidollar)发推表示在DUSD合约中发现一个潜在漏洞,合约已经暂停,所有资金安全。据称该漏洞可能是使用了区块链监测系统自动发现的。其思路是监测链上Tornado.Cash转账到新地址并部署合约的行为。
进一步通过对合约和相关交易的分析来发现潜在的攻击行为,发现问题时将立刻通知相关项目方进行预防。有人已经在Forta上实现了类似的Agent.
CoboComment
项目方可以考虑类似的方式,通过监测链上的新合约和内存池中的交易,对于可疑的合约或交易可以进行静态分析或模拟执行,检查是否会对自身项目关联合约中的资产有不良影响。
随着区块链攻防的升级,可以预见类似的监测告警系统将会越发成熟,当然攻击者也会挖掘到更多bypass监测的攻击方式。在传统安全中攻防持续对抗的局面在区块链安全中也将不断重现。
Reference
https://twitter.com/AndreCronjeTech/status/1479778350084333574
动态 | Ecobank Transnational发布报告:大多数非洲国家保留数字货币合法化:根据Bitcoinexchangeguide消息,Ecobank Transnational(非洲泛非经济银行集团)近日发布的一份报告称,包含在其经营范围内的36个非洲国家中,只有两个国家(南非和斯威士兰)宣布对数字货币和区块链技术采取友好态度,纳米比亚是唯一一个彻底禁止数字货币的国家。大多数非洲国家考虑其存在潜在风险,但并未在政策层面明确态度,仍然保留将数字货币的使用合法化。该报告继续指出,大多数非洲国家都倾向于采用耐心的方法来监管这些数字资产。[2018/9/2]
https://connect.forta.network/agent/0x2fbec7dcd4eebf34c5b94d899109057eea3642a2400b7143e64873d453b7ba61
Raripool#19攻击失败
知名区块链安全白帽@samczsun发布了针对Rari#19的预警推文,但后面攻击没有实际发生。
攻击手法与前面提到的FloatProtocolRari#90预言机攻击是类似的。攻击者在UniswapV3将约300个ETH兑换成了BED,实现对币价的操纵。由于UniswapV2/V3Oracle都是在第二个区块才会更新币价,使攻击者无法在一个交易内完成对币价的操纵,从而可以对抗闪电贷攻击。
而当使用真实的大资金进行操纵时,攻击者则需要至少等待到第二个区块才能看到币价的反应。由于TWAP的存在,通常攻击者还需要多等待几分钟,以使币价变得更加明显。对于此次攻击来说,攻击者也确实是这样做的。
然而尴尬的是,在第二个区块出现了疑似套利机器人的存在,此地址在第二个区块立刻将将手中的大量BED兑换成了ETH,维持住了原本币价的稳定。使得攻击者无法继续攻击,并且还要承担swap的gas、手续费与大单交易滑点的损失。
CoboComment
UniswapV2/V3Oracle虽然可以抗闪电贷攻击,但是无法直接对抗大资金操纵。因此对于流动性较小的交易对,仍然存在预言机价格被操纵的风险。
声音 | 眼镜蛇Cobra:6个月内BCH将会分叉:眼镜蛇Cobra在推特中表示,因为提前共识(pre-consensus)的矛盾,6个月内BCH将会分叉。[2018/8/8]
从攻击者的角度看,要进行对UniswapV2/V3Oracle操纵攻击,需要较高的攻击成本,而且需要保证自己持有市场中大部分所操纵的池子的目标代币,否则就会出现上面的情况,被其他持有目标代币的大户套利,最终偷鸡不成蚀把米。
Reference
https://twitter.com/samczsun/status/1486243806739587076
OpenSea前端漏洞
@PeckShield发文称OpenSea可能有前端问题,有用户利用该问题获利347ETH。这个漏洞可能与@yakirrotem披露的问题有关。
OpenSea的交易架构是:
卖家发起listing,这时用户会对报价数据进行签名,表示同意以设置的价格出售其NFT。
这个签名数据会保存在OpenSea的链下数据库中,当买家在OpenSea上购买该NFT时,OpenSea会把这个签名数据上链验证,通过后即可完成NFT?transfer,OpenSea?也会收取一部分手续费。
售出前,卖家也可以取消之前的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代币,与?ERC20?Token由两套单独的代码处理。在源链抵押Token时,会调用deposit方法,在抵押时ETH应该调用depositETH方法。
QBridge将零地址作为ETH的标识。但是实现时没有完善的校验,导致合约处理ETH时仍使用deposit方法,相当于将ETH当成了合约地址为零地址的Token处理。在转账时使用transferFrom则相当于是对零地址进行合约调用。
而以太坊底层设计上,对EOA地址发起合约调用会默认成功,不会revert。以上条件结合起来,最终的情况就是虽然攻击者在源链没有抵押任何资产,但仍可以在目标链上mint出大量qXETH,实现获利。
CoboComment
目前区块链行业中多链并存,跨链桥已经是重要的基础设施。跨链桥本身由于要进行链上链下配合,整体复杂度要比普通dapp高上许多,因此更容易出现问题。同时跨链桥上通常会抵押大量的资产,如果可以非法转移那么获利颇丰。各个跨链桥系统似乎成为了攻击者们最近一两月中的重点目标。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。