本篇文章开始前,笔者首先要感谢慢雾、Secure3.io、Panews、区块律动、web3caff以及推特大佬@jason_chen998。为了保护我的钱包,笔者翻阅他们提供的大量盗窃案例和安全教程,以及与Secure3的朋友简单交流之后,才写出这篇文章。
这是一篇关于Web3钱包及个人设备安全的指引,希望大家可以在遨游区块链世界的时候,免受攻击,守住自己的财产。
之所以写下这篇文章,是因为我作为一个从小学就开始学编程用电脑的老鸟,前不久自己也差点被骗走一双stepn的鞋子。这才意识到,安全问题离我们每个人都很近。
网络世界的安全问题实际上一直萦绕从所有人的头上。
关于安全的知识庞杂而又繁琐,我们首先要掌握一个原则,计算机世界里,几乎没有安全的地方,甚至你的每一步操作都有泄露隐私的风险。
之前也有很多人做过这方面的科普,但要么过于简单、要么过于复杂。这篇文章里,我准备用最简单、易懂的语言,让尽可能多的人读懂。
具体来说,我们需要关注的安全问题应该包括一下几个方面:情绪控制、web3钱包的使用、设备的使用、个人隐私保护。
这里我继续说一下自己stepn鞋子差点被盗的经历,希望对大家会有一些警示作用。
前不久我弄了一双stepn鞋子想给家人使用,由于鞋子始终不能正常运行,无法获得gst。我每天通过邮件和Discord与官方客服交流,但始终没解决问题。这时我因为一直无法赚到gst变得有些焦虑,在无意中发现有Stepn的“客服”通过私信与我交流。
客服表示这个问题是由于服务器维护导致的(刚好那段时间确实不稳定),只要提供账号邮箱和验证码确认身份就能解决问题。
**重点来了,由于国内很多服务都是需要提供验证码以验证本人身份,加上邮件上只写了”complete verication”而没有提示验证码具体的作用,特别是自己也已经很焦虑。**收到验证码后,我没想太多复制了验证码。所幸在我按下“回车”的那一刻突然清醒过来,”We will never DM you”这句discord名言突然在脑中回响,我立即停止了所有的操作。然后来到stepn的服务器验证,发现所谓的”客服“果然是骗子。
回过神来,才发现一双价值几千刀的鞋子就这么差点被“客服“骗走,真是凶险万分。
后来我看了许多安全方面的资料。发现焦虑和傲慢这两种情绪是我们在区块链世界最大的敌人。
大部分人都像我一样,来到区块链世界是为了赚钱的。但只要涉及到金钱,难免会产生fomo、焦虑的情绪,例如前几天GAL首发的时候有人以200刀的价格入场,又如有的NFT玩家在开盘前被骗到了假的网站mint……
总之,焦虑是所有投资人的大忌,一旦与钱打交道的时候,一定要想办法保持冷静。
与焦虑相反的一面是傲慢。许多人认为自己是行业大佬,上知区块链技术下知汇编语言,熟知各类骗术,怎么可能会被骗?
但恰恰是这样的傲慢,才会属于防范,前不久就发生过Defiance Capital创始人Arthur Cheong钱包被盗的事件。
据报道,Arthur Cheong只是中了一个最常见的攻击方式:打开了邮件里带有病毒的文件。
所谓“骄兵必败”,不少人的事业在处于上升阶段的时会以为自己总是对的那一个,忽略了很多其他方面的问题,等到灾难降临的时候已经一切归零。
前面是从人性的角度讲述可能的攻击手段,现在我们从大家最关心的钱包安全开始,说一些大家最关心的问题。
我们的代币有三个地方可以存放。其中以冷钱包最为安全,如Ledger。对于大多数人来说,只要做好密码保护和双重验证,交易所实际上会比热钱包更安全;我们的热钱包因为时刻在链上,一旦发生错误的授权,资产就很容易被转移。
很多人以为USDT很安全,其实USDT是由Tether公司管理的,一旦被认为是黑钱,Tether可以轻松冻结这一笔钱。所以遇到不明来源的USDT最好还是小心点。同理,需要注意的是USDC,也是会被冻结的。
先说一个大家最容易犯错的地方,就是签名(sign)。一般认为签名不涉及授权,不会有操作风险,但是遇到非明文写下的签名,还是有安全隐患的,好在现在metamask都会用红字提示。
除签名外,最常用的一个功能是授权(approve)。这决定了你授权了对方某个币种可以自由使用的额度,一般来说像常用的Uniswap这类的DEX比较安全,但是一旦遇到新的项目要求你无限转账额度的授权,就一定要小心了。
黑客们最喜欢用的一招就是让你在焦虑(新项目mint时)、兴奋(突然收到貌似大额的空投)、沮丧(反复被骗)等情绪下,将你骗到一个假冒网站,让你无意中将授权交给他。
这里提供一些查询和授权的网站,仔细检查一些是否有不明来源的授权,这对你很重要
https://bscscan.com/tokenapprovalchecker
https://hecoinfo.com/tokenapprovalchecker
https://polygonscan.com/tokenapprovalchecker
https://snowtrace.io/tokenapprovalchecker
https://cronoscan.com/tokenapprovalchecker
https://revoke.cash/
扩展钱包Rabby https://rabby.io/
近期还有一种伪装成NFT的erc1155协议。黑客会将做一个与你钱包里同名的NFT,然后空投给你,一旦你在指定的网站上授权挂单,黑客就可以转移对应的NFT,十分危险。所以不要随便使用不明来源的空投。
Mint主要用于铸造NFT,一般来说不会有什么风险。不过要确定自己mint的网站不是黑客伪造的,这类事件时有发生。
伪装的网站经常会把mint改为一个授权协议,如果在fomo的情绪中mint,很有可能没注意协议导致误授权。有的骗子很直白,会直接要求你send eth给他……
很多人对ETH钱包的相关操作了如指掌,以为可以轻松驾驭其他的钱包(犯了前文提到的自傲的错)。
**实际上,其他链的钱包更不安全。**因为你对新的公链肯定不如对ETH了解那么深,公链和钱包在设计逻辑上也会存在bug,所以交互的时候应该更加小心,不要随意使用陌生的网站进行陌生的交互。
慢雾创始人余弦就提到过一个SOL案例。
攻击者批量给用户空投 NFT (上图1),用户通过空投 NFT 描述内容里的链接 进入目标网站,连接钱包 (上图2),点击页面上的 “Mint”,出现批准提示框 (上图 3)。注意,此时的批准提示框并没有什么特别提示,当批准后,该钱包里的所有 SOL 都会被转走。
这里面有两个坑需要注意:
a)恶意合约在用户批准 (Approve) 后,可以转走用户的原生资产 ( SOL),这点在以太坊上是不可能的。
以太坊的授权钓鱼钓不走以太坊的原生资产 (ETH),但可以钓走其上的 Token。于是这里就存在 “常识违背” 现象,导致用户容易掉以轻心。
b)Solana 最知名的钱包 Phantom 在 “所见即所签” 安全机制上存在缺陷 (其他钱包没测试),没有给用户完备的风险提醒。这非常容易造成安全盲区,导致用户丢币。
NFT很热,相关的骗局也很多,比如:
a) 从传统app弹出通知将你引到某NFT项目——好项目是不需要通过web2的方式来引流的。
b) 社区不断地讨论如何维护地板价——崩盘前奏。
c) Discord上频繁踢人、禁言——这是项目方没有自信的表现。
d) 没有审计(这一点其他非NFT项目也是一样的)——虽然审计了也不一定安全,例如说被CertiK审计但却登上REKT list的那些项目;但不审计肯定危险,尤其是加disclaimer的那种,例如SpaceLoot
e) 频繁出现漏洞——比如gas过高,mint方式不合理
f)假冒NFT——许多新手会被诱骗买到假冒的NFT,所谓的假冒可能是仿冒了某个已经存在的NFT产品,也可能是谎称由某知名艺术家制作,或者谎称拥有某知名艺术家的授权发布的产品,因此购买NFT前最好多来源确认产品的合规性。
网站不安全,一般是发生在以下几种情况中:
a) HTTP肯定是不安全的——必须确保你使用的网站带有HTTPS,HTTP网站的传输是未加密的,你的所有信息都有可能被黑客看到。
b) 被他人的信息带入钓鱼网站——不仅要警惕陌生人,有时候熟人也有可能由于早就被误导,导致发送错误的链接给你,还有的时候是群聊中的朋友,一时轻信了某些消息,无意中传播了钓鱼网站。
c) 官方网站被黑——这比较难防范,你能做的只有一直保持警觉,留意公告再三确认自己进入的网站是否安全。
剪贴板的风险主要在于被其他应用读取你的个人信息,然后组成一套完整的个人档案,获得密码或者钱包密钥/助记词。
我对剪贴板做了一些查证,获取了一下信息:
a)几乎所有的手机app(包括苹果)都会读取你的剪贴板,所以真的不能在手机上复制密钥。
b)谷歌近年来对chrome的插件做了很多限制,除非被破解或者用户主动安装来源不明的插件,否则插件是无法读取剪贴板的,这个基本可以放心。
c)电脑上的各种软件也有读取剪贴板的可能,所以复制信息的时候要小心。
a)不要复制,也不要使用网络传输私钥、助记词。万不得已时,苹果用户可使用隔空投送,其他用户可使用telegram(相对安全)
b)大额资产使用独立的钱包
c)新项目开始前,如果感到危险,可新建立一个钱包去参与
d)对不明来源的空投保持警惕,骗子常常在nft上刻下钓鱼网站的网址,将你诱骗到危险的地方
e)对每一次钱包的操作都保持警惕
行走web3.0,保持设备与保证钱包安全同样重要。
1、手机和电脑的操作系统应该保持更新并开启自动更新,特别是不要使用停止维护的系统,比如win 7。
2、不要使用root过的安卓手机,小品牌的安卓手机风险也很高,必须使用官方市场的app,最好是用google play,苹果手机(非越狱)相对来说更安全。
3、电脑上不要安装不明来源的软件,特别是国产软件,几乎没有下限。
4、虚拟机是个好东西,对于不明来源的文件可以尝试使用虚拟机打开。
现在win10就自带虚拟机,具体使用可参照微软官方文档
但一定要注意,有的黑客(或木马)很厉害,能够意识到自己正在“matrix”当中,会主动寻求跳出虚拟机的方法。
5、浏览器和钱包必须保持更新。
6、Wifi是最容易被监听的渠道。 永远不要使用外面的wifi,自己家的路由器也要经常检查,防止被监听。如果不懂如何检查,最好保存好相关的信息后每隔一段时间重置一次。
7、你的SIM卡也不一定安全,黑客可以伪造一个相同的sim卡获得你的信息(比如验证码)。所以最好不要在网络上炫富,更不要暴露真实身份,这会带来很多麻烦。
8、如果迫不得已要通过网络传输密钥,身边的设备可以使用隔空投送功能,网络传输建议Telegram,可以最大限度地避免被窃取。
9、出于不可名状的原因,本人不建议任何人使用那个被大力推广的反诈XXX。
黑客除了会寻找软硬件上存在的漏洞,还会寻找用户有意无意流露出来的信息,制造社会工程学攻击。
不知大家是否知道,我们大多数的web2网站都被入侵过,甚至有的网站对密码根本就没有加密,网管可以随意读取,所以绝对不要把你使用过的密码用在跟资产有关的地方。
建议设置好几套密码,分别在不同的网络和环境下使用,尤其是涉及到大额资金的密码,必须使用包括大写、小写字母、数字、符号的10位以上的密码,且不能含有生日这种容易被猜到的信息。
对于一些不熟悉的软件和网站,也可以单独使用一套密码,避免跟其他已知安全的软件和网站混肴。
这里有个小建议,如果担心记不住密码,你可以使用一串数字为你的生日“加密”。例如,如果你的生日是19901202,你可以错位加上一串家人(如19500821)的生日,像是19901202+05008210,然后再附上一些字母和符号,黑客没法猜到经过你自己“加密”的密码。
邮件或是其他聊天程序传来的不明文件诈骗虽然很土,但依旧奏效,如果遇到必须打开的情况,可以按上文的方式,在虚拟机中打开。
这在上文已经提过多次,不重复了。
Web3.0的个人信息除了包括生日、电话、家庭住址等,还应包括你的钱包地址,主资产钱包应该跟社交钱包绝对隔离(即不能有互相转账的纪录等),特别对于撸毛党,如果你不想被举报,一定不能泄露你的地址。你看,我的地址YouAirdrop.ETH里面什么都没有:)
除了线上的隐私外,最好不要在生活中透露自己是个搞传销区块链的,除了能避免很多误会外,还能尽量避免被熟悉你的人通过你的个人信息进行撞库攻击。
关于社会工程学的知识可以再出一个专题,我们之恶要知道不要随意泄露个人隐私就好了,如果想了解更多的信息,可以去知乎的这个问答下看看:
这篇文章中我们总结了冲浪Web3.0时的应对各种黑客攻击的方式,但道高一尺魔高一丈,黑客们已经开始熟练地将各种攻击组合在一起,完成更隐蔽、伤害更大的进攻。只有不断提高警觉,才能免于受到黑客的侵害。
大致来说,我们可以把握以下几个原则:
1、保持健康的情绪
2、钱包交互的时候一定要看清楚内容
3、密钥、助记词不能复制,应离线保存
4、确保各项设备安全,并一直保持更新
5、不要相信主动找你的“客服”,也不要随意打开不明来源的文件,灵活使用虚拟机
6、线上和线下都不要泄露个人隐私和资产
网络安全是一个很庞杂的问题,本文难免有遗漏的地方,还请谅解。
欢迎大家关注我的个人推特@YourAirdropETH
谢谢你的时间。