Jin I MCT

Posted on Aug 03, 2022Read on Mirror.xyz

钱包安全--我是否应该使用浏览器插件?

目前在Web3上,已经有一批帮助用户了解他们何时调用了钱包授权功能的浏览器插件,并且大部分用户也都认识到应该采取手段来保证自己的钱包安全。 拥有这样的意识显然是好的,但是我相信浏览器插件并不能确保钱包安全甚至增加了潜在的风险。

要讨论这个话题,应该分成三点来看:漏洞、威胁、防范。

漏洞是指代币授权会将代币的完全控制权交给另一个地址,而威胁在于用户会在不知情的情况下将控制权交给一个“不怀好意”的地址,最终造成资产的损失。

在知道了什么是漏洞和风险之后我们还需要了解如何防范,网络安全目前有三种防范类型:管理类、技术类和物理类,以及三种控制功能:预防性、检测性及修正性。管理性基于人的控制, 与人的行为与调控有关,因此被称为“软控制”。技术性则是基于软件或硬件的防范。而物理性是存在实体而并非依赖于技术。

在防范功能上,我们更关注预防漏洞被利用,检测未经授权的活动以及修复损坏或将服务恢复到其原始状态。

了解类型以及功能之后,让我们回到最开始的风险和revoke.cash开发的防范功能。

http://revoke.cash/

这个插件偏向于技术性防范,它不会阻止用户进行授权而是进行检测并提供信息。

我们评估了威胁的风险,同时正在考虑将这个插件作为一种预防功能来实现以支持当前的钱包安全态势,或许用户认为这已经足够了,但我们仍然需要重新评估一下剩余风险。

可能有人会问:“什么是剩余风险?”首先,我们刚刚为用户的安全态势引入了一个新的变量,那就是另一个浏览器插件。

为什么说浏览器插件是一种风险?这是因为在你的设备上运行的任何其它代码都有可能成为一个潜在漏洞。

“但是插件的代码是开源的!”或许会有这样的问题出现,确实,开放源代码比封闭源代码产品更安全,但这并不意味着插件本身就是安全的。所有软件产品都存在已知或未知的安全漏洞,这也是 绝大多数软件保持持续开发的原因。虽然Revokecash看起来很强大,但因此从本质上相信它们的代码库永远不会被破坏显然是不明智的。

如果你看了插件是如何工作的,你就会明白其中的威胁到底是什么:

插件就如同一个友善的中间人一样运作,如果它接受到了授权的信号,则它便会开始捕捉并检查函数调用,这代表它通过拦截你在网页上的点击以进入钱包来寻找钱包授权。

随着你持续使用这个插件,它会跳过初始授权并直接进入你的钱包。

这其中的风险就在于向该插件插入恶意代码后会使其成为有“恶意”的中间人。

假设你前往Opensea上架一个NFT,而该插件按照预期弹出显示你正在批准该资产的变动,然而被攻击的插件会将Opensea的地址改为黑客的钱包地址,并且发送到你的钱包。

而由于你已经习惯了信任该插件,你在没有仔细阅读确认的情况下签名授权,资产便是这么损失的。

另外一种威胁则在于插件本身出现了问题,或者它在不知不觉的情况下被禁用了。

比如你在一个虚假的mint网站上点击mint,而插件并没有弹出,你作为老手认为如果授权界面没有出现就代表这笔交易并不是钱包授权,于是你就上当了。

所以我们已经知道了这两种威胁,那又应该如何防范呢?

我想唯一的答案在于养成基于管理的操作习惯养成,作为用户,你应该学会了解在你的钱包中签名代表着什么,而这也是我们对待这些威胁的最佳办法。

总而言之,即使插件能够减小你在交易中的风险,但这种行为本身又带来了一种新的风险,所以最终的解决办法仍然是用户需要了解钱包授权意味着什么。在加密货币中所遇到的这些安全问题 没有简单的解决办法,你要时刻认识到你是你自己的资产的保管人,知道你在用它们做什么并为之负责。学习是关键,任何来自插件的帮助都不会减少你对学习的需求。学习如何阅读你即将签署的内容!

文章译自@4lteredBeast