# 黑客「钓鱼攻击」闪袭 OpenSea 用户 

By [蜂巢Tech](https://paragraph.com/@tech-2) · 2022-02-21

---

![](https://storage.googleapis.com/papyrus_images/15a3586caa1c3142ddc1e96095f74ba755896d931226ad9855f1b44cef5cace1.png)

撰稿：茉莉

2月19日，全球最大的NFT交易平台OpenSea刚开始支持用户使用新合约，一些用户的NFT资产就被盗了。

次日，OpenSea的CEO Devin Finzer在推特上披露，「这是一种网络钓鱼攻击。我们不相信它与 OpenSea 网站相关联。到目前为止，似乎有 32 个用户签署了来自攻击者的恶意有效载体，他们的一些 NFT 被盗。」Finzer称，攻击者钱包一度通过出售被盗NFT获得了价值170万美元的ETH。

用户NFT被盗后，不少人在推特上猜测，钓鱼攻击的链接可能隐藏在假冒的「OpenSea致用户」邮件中。因为19日当日，该交易平台正在进行一项智能合约升级，用户需要将列表迁移到新的智能合约中。攻击者很可能利用了这次的升级消息，将钓鱼链接伪装成通知邮件。

2月21日，OpenSea的官方推特更新回应称，攻击似乎不是基于电子邮件。截至目前，钓鱼攻击的来源仍在调查中。

> **OpenSea用户遭「钓鱼」丢失NFT**

2月18日，OpenSea开始了一项智能合约的升级，以解决平台上的非活跃列表问题。作为合约升级的一部分，所有用户都需要将他们在以太坊上的NFT列表迁移至新的智能合约中，迁移期将持续7天，到美东时间的2月25日下午2点完成，迁移期间，用户NFT在OpenSea上的旧报价将过期失效。

2月19日，用户需要配合完成的操作开始了。人们没有想到，在忙乱的迁移过程中，黑客的「黑手」伸向了OpenSea用户的钱包里。从用户们在社交平台的反馈看，大部分攻击发生在美东时间下午5点到晚上8点。

从后来在以太坊浏览器上被标记为「网络钓鱼/黑客」的地址上看，19日晚18时56分，被盗的资产开始从黑客地址转移，并在2月20日10时30分出现了通过混币工具Tornado Cash「洗币」的操作。

![](https://storage.googleapis.com/papyrus_images/8248dcf328fe06fea2c4be7fe61766fd119a16f65baea16454b97a477af4b91d.png)

黑客链上地址的部分动向

用户NFT被盗后，「OpenSea被黑客攻击，价值2亿美元资产被盗」的说法开始在网络上蔓延，人们无从得知失窃案的准确原因，也无法确认到底殃及了多少用户。

直到2月20日，OpenSea的CEO Devin Finzer才在推特上披露，「据我们所知，这是一种网络钓鱼攻击。我们不相信它与 OpenSea 网站相关联。到目前为止，似乎有 32 个用户签署了来自攻击者的恶意有效载体，他们的一些 NFT 被盗。」Finzer 驳斥了「价值2 亿美元的黑客攻击的传言」，并表示攻击者钱包通过出售被盗NFT 获得了价值170 万美元的ETH。

区块链安全审计机构 PeckShield 列出了失窃NFT的数量，共计315个NFT资产被盗，其中有254个属于ERC-721标准的NFT，61个为ERC-1155标准的NFT，涉及的NFT品牌包括知名元宇宙项目Decentraland 的资产和NFT头像「无聊猿」Bored Ape Yacht Club等。该机构还披露，黑客利用Tornado Cash清洗了1100 ETH，按照ETH当时2600美元的价格计算，清洗价值为286万美元。

> **攻击者如何拿到用户「签单」授权？**

用户NFT失窃事件发生后，有网友猜测，黑客利用了OpenSea升级的消息，将钓鱼链接伪造成通知用户的邮件，致使用户上当受骗而点击了危险链接。

对此，Devin Finzer表示，他们确信这是一次网络钓鱼攻击，但不知道钓鱼发生在哪里。根据与32名受影响用户的对话，他们排除了一些可能性：攻击并非源自OpenSea官网链接；与OpenSea电子邮件交互也不是攻击的载体；使用OpenSea 铸造、购买、出售或列出NFT不是攻击的载体；签署新的智能合约（Wyvern 2.3 合约）不是攻击的载体；使用 OpenSea 上的列表迁移工具将列表迁移到新合约上不是攻击的载体；点击官网banner页也不是攻击的载体。

简而言之，Finzer试图说明钓鱼攻击并非来自OpenSea网站的内部。2月21日凌晨，OpenSea官方推特明确表示，攻击似乎不是基于电子邮件。

截至目前，钓鱼攻击到底是从什么链接上传导至用户端的，尚无准确信息。但获得Finzer认同的说法是，攻击者通过钓鱼攻击拿到了用户转移NFT的授权。

推特用户Neso的说法得到了Finzer的转发，该用户称，攻击者让人们签署授权了一个「半有效的 Wyvern 订单」，因为除了攻击者合约和调用数据（calldata）之外，订单基本上是空的，攻击者签署了另一半订单。

该攻击似乎利用了Wyvern 协议的灵活性，这个协议是大多数 NFT 智能合约（包括在 OpenSea上制定合约）的基础开源标准，OpenSea 会在其前端/API上验证订单，以确保用户签署的内容将按预期运行，但这个合约也可以被其他更复杂的订单使用。

按照Neso的说法，首先，用户在Wyvern上授权了部分合约，这是个一般授权，大部分的订单内容都留着空白；然后，攻击者通过调用他们自己的合约来完成订单的剩余部分，如此一来，他们无需付款即可转移 NFT 的所有权。

简单打个比方就是，黑客拿到了用户签名过的「空头支票」后，填上支票的其他内容就搞走了用户的资产。

也有网友认为，在钓鱼攻击的源头上，OpenSea排除了升级过的、新的Wyvern 2.3合约，那么，不排除升级前的、被用户授权过的旧版本合约被黑客利用了。对此说法，OpenSea还未给出回应。

截至目前，OpenSea仍在排查钓鱼攻击的源头。Finzer也提醒不放心的用户，可以在以太坊浏览器的令牌批准检查程序（Ethereum Token Approval）上取消自己的NFT授权。

（_声明：请读者严格遵守所在地法律法规，本文不代表任何投资建议_）

**互动时间：你认为OpenSea是否应该对受损用户负责？**

**_蜂巢Tech/专注区块链深度报道_**

**_微信公众号：蜂巢Tech_**

**_Discord:_**[**_https://discord.gg/BhBknfHxtU_**](https://discord.gg/BhBknfHxtU)

**_Twitter：_**[**_twitter.com/HiveTechCN_**](http://twitter.com/HiveTechCN)

**_YouTube：_**[**_https://www.youtube.com/channel/UCcfH5WWorQbT4VlSJBcLSSg_**](https://www.youtube.com/channel/UCcfH5WWorQbT4VlSJBcLSSg)

**_Telegram：_**[**_t.me/HiveTech_**](http://t.me/HiveTechCN)

---

*Originally published on [蜂巢Tech](https://paragraph.com/@tech-2/opensea)*
