okx

OpenSea用户NFT被盗:深度复盘

时间:2023-07-04|浏览:214

欧易

欧易(OKX)

用戶喜愛的交易所

币安

币安(Binance)

已有账号登陆后会弹出下载

还是写一篇文章来复盘一下近来OpenSea用户被盗事件,算是对更多用户的提醒吧。

首先OpenSea官方发过这样一封邮件通知用户,大意是说2月18号开始到2月25日,你要迁移你的ListingOrder,如果你不迁移的话届时卖单会过期。

OpenSea然后到了开始迁移卖单的日期,很多用户报道了自己NFT被盗事件,看到的消息被盗用户都称进行过卖单迁移操作。同时OpenSea官方定义此次为“phishing attack”(钓鱼攻击)。

如何攻击

黑客首先知道了OpenSea需要用户对其卖单进行迁移,并且知道OpenSea官方提前发出了迁移日期和操作步骤的邮件。

黑客提前做好了钓鱼网站,并且通过伪造的邮件通知用户进行迁移操作,引导受害用户在该钓鱼网站上进行卖单迁移操作。这个迁移操作就是让用户对其销售的卖单进行签名,然而签名的卖单价格是0。

黑客拿到用户签了名的卖单信息,通过调用OpenSea的交易合约就能以0的价格完成交易,顺利拿到受害者的NFT。

我们以黑客的这笔Transaction交易为例,这笔交易总共盗走了7个NFT。

黑客转走的NFT

OpenSea交易合约发出的事件日志

OpenSea上述这个OrdersMatched的Event是OpenSea交易合约成交之后才会发出的,所以断定黑客是通过该攻击合约去调用OpenSea的交易合约完成了price为0的交易。

下图是OpenSea交易合约的部分代码,实际上在OpenSea完成一个交易,如果是买家发起操作的话,则会做以下几步判断:

验证提交的买单参数是否正确 验证提交的卖单的参数是否正确,以及是否有卖家的正确签名 验证买单的参数是否匹配卖单的条件(例如价格,有效期等)

OpenSea交易合约代码

如果这几项都校验通过,则OpenSea的交易合约则会调用NFT转移之类的操作完成交易,并在最后发送“OrdersMatched”事件来记录这次交易。

所以这次攻击事件中,黑客能够盗取到NFT就是通过钓鱼拿到用户报价为0的卖单信息(“sell”)以及签名(“sellSig”)。

之前我在推特中分析过一些BAYC以很低的价格被黑客买走,也是因为黑客拿到了BAYC拥有者曾经在OpenSea挂出过的带有签名的低价卖单信息,然而用户又忘记了取消挂单导致的。 所以这两次攻击的本质都一样,就是黑客手上有低价、且带有owner签名的卖单信息。不过这次攻击黑客获取卖单信息的方式是通过邮件钓鱼而已。

一点猜想

以上攻击过程和手段是通过推友告知的黑客攻击合约信息,以及看见被盗用户都是进行了卖单迁移操作这些信息推断出来的。虽然目前我还没有看到被盗用户发出的卖单迁移的钓鱼邮件及钓鱼网站,但个人觉得八九不离十。

但是对于这个攻击合约地址的部署时间,差不多是一个月以前了,而第一次发起攻击交易是在2月19号,也就是OpenSea开始迁移卖单没多久,相当于这个黑客提前部署了攻击合约并潜伏了一个月左右。

我这里猜测一下,怀疑可能是OpenSea内部有信息泄漏(内鬼或者内网被攻破),所以黑客才能精准地发起一系列攻击行为:

首先黑客可能在一个月以前就得知了OpenSea要升级合约,OpenSea会要求用户迁移卖单,所以黑客提前部署了一个攻击合约。

接着黑客做了个钓鱼网站,专门用来骗取用户进行订单迁移,但实际上是让用户对售价为0的卖单进行签名。正因为OpenSea提前通知了所有用户官方会在那个时间段要求用户进行迁移,所以这个时候黑客发出的钓鱼邮件以及迁移订单的钓鱼操作都会让用户放松警惕。

另外我看黑客盗取的NFT大多都是BAYC,Doodles,CloneX,Azuki这类蓝筹,而黑客又能精准定位到钓鱼邮件的发送对象是蓝筹NFT的owner用户,而我这个无蓝筹NFT的Jpeg收藏者并没有收到钓鱼邮件,所以推测黑客算是精确打击。

因为迁移卖单而导致NFT被盗的用户,可以联系我将钓鱼邮件发给我,我也判断一下我的猜测是否准确。不过最终的调查结果以OpenSea官方公布的为准!

一点提醒

这里提醒下大家,所有邮件中的发件人是可以伪造的,而且是很方便伪造,所以不能以邮件发送人来判断是否是官方发来的邮件!

另外

热点:NFT NFT被盗

« 上一条| 下一条 »
区块链交流群
数藏交流群
区块链币圈-全球区块链数字货币行情、比特币虚拟货币资讯,狗狗币以太坊环保币柚子币莱特币瑞波币等加密数字货币价格非交易行情查询,金色财经巴比特范非小号快讯平台。
趣开心资讯 Qukaixin.cn ©2020-2024版权所有 桂ICP备19010284号-1