OpenSea CTO发文回顾钓鱼攻击:外部攻击导致,并非自身系统性问题
作者:OpenSea CTO Nadav Hollander
2月21日,OpenSea CTO Nadav Hollander发布了关于针对OpenSea用户的钓鱼攻击的技术概要。据悉,这次攻击导致了大约300万美元资产被盗,包括无聊猿,Azuki和CloneX等知名NFT系列。
本帖子分享了针对@OpenSea 用户网络钓鱼攻击的技术概要,包括提供一些 web3方面的技术教育。
在审查了这次攻击中的恶意订单之后,可以看出以下一些数据点:
所有恶意订单都包含来自受影响用户的有效签名,表明这些用户确实在某个时间点某处签署了这些订单。 但是,在签署之后时,这些订单都没有广播到 OpenSea。
没有恶意订单针对新的(Wyvern 2.3)合约执行,表明所有这些订单都是在OpenSea最新的合约迁移之前签署的,因此不太可能与 OpenSea 的迁移流程相关。
32 名用户的NFT在相对较短的时间内被盗。 这是非常不幸的,但这也表明了这是一场有针对性的攻击,而不是OpenSea存在系统性问题。
这些信息,再加上我们与受影响用户的讨论和安全专家的调查,表明由于意识到这些恶意订单即将失效,因此攻击者在 2.2 合约弃用之前执行了这场网络钓鱼操作。
在这场网络钓鱼诈骗之前,我们选择在新合约上实施 EIP-712 的部分原因是 EIP-712 的类型化数据功能使不法分子更难在不知情的情况下诱骗某一位用户签署订单。
例如,如果您要签署一条消息以加入白名单、抽奖或以代币作为门槛的discord群组,您会看到一个引用 Wyvern(OpenSea 使用的协议)的类型化数据有效负载,如果发生一些不寻常的事情,则会向你发出提醒。
“不要共享助记词或提交未知交易”,这种教育在我们的领域已经变得更加普遍。 但是,签署链下消息同样需要同等的思虑。
作为一个社区,我们必须转向使用 EIP-712 类型数据或其他商定标准(如 EIP-4361(“使用以太坊登录”方法))来标准化链下签名。
在这一点上,您会注意到在 OpenSea 上签署的所有新订单(包括迁移的订单)都使用新的 EIP-712 格式——任何形式的更改都是可以理解的,但这种更改实际上使订单签署更加安全,因为你可以更好地看到你签的是什么。
此外,强烈呼吁 @nesotual , @dguido , @quantstamp 等开发者和安全公司向社区提供有关这次攻击性质的详细信息。
尽管攻击似乎是从 OpenSea 外部发起的,但我们正在积极帮助受影响的用户并讨论为他们提供额外帮助的方法。