这其实就是一种盲签,用户并不需要在 NFT 市场里签名,可以被诱骗在任何网站(钓鱼网站)上签名,而用户根本就不知道这些签名的实际意义,可惜的是黑客知道。对于用户来说,只需牢记:拒绝盲签。OpenSea 之前存在盲签情况,2022.2.20 后改进了,采用 EIP-712 进行了升级改进。但即使不是盲签,还是有用户会粗心大意。 为什么会出现这种情况,最最本质的原因还是在于签名并不存在浏览器同源策略的约束,你可以简单理解为:同源策略可以确保一个行为只在明确的域名下发生,不会跨域发生,除非项目方故意要跨域的发生。如果签名有同源策略,那么非目标域名产生的请求签名,即使用户签名完成了,黑客也没法将这个签名用于目标域名下的攻击。这里就不继续展开说了,协议级别的安全改进,我有注意到新草案,我希望这种情况能尽快得到改善。 目前提到的签名安全涵盖了主要方式,但变种其实挺多,无论如何,万变不离其宗。最好的吃透方式是自己从头到尾完整将攻击复现一遍,甚至首创一些独特的攻击方式。比如这里提到的签名,其实里面有大量细节,比如如何构造待签名内容、签名后的内容具体都是什么?除了 approve 这种授权方式,还有其他的吗(有,比如 increaseAllowance)。好吧,这里展开的话就太过技术了。很好的是,你清楚签名的重要性了。 对于用户来说,取消授权 (approve) 是可能在源头上对抗这类攻击的,你可以用如下这些知名的工具来操作:
小心反常识签名!还没结束,我还想特别提一种风险:反常识风险。 什么是反常识,比如你已经特别熟悉以太坊了,各种 DeFi、NFT 玩得小白们直呼你大佬。此时你去玩 Solana,同样也遇到了各种钓鱼网站,你可不畏惧,轻蔑一笑:“这些在以太坊系列生态里都麻了,我怎么可能上当?” 不好意思,黑客笑了,你确实上当了。因为出现了个反常识流程,人都是有惯性或惰性,这导致你大意了,没有闪。 好,让我们来看看这个反常识真实案例。
2022.3.5,一个安全预警:Solana 上的授权钓鱼残忍多了,攻击者批量给用户空投 NFT(图 1) ,用户通过空投 NFT 描述内容里的链接 (www_officialsolanarares_net) 进入目标网站,连接钱包 (图 2),点击页面上的 “Mint”,出现批准提示框 (图 3)。注意,此时的批准提示框并没有什么特别提示,当批准后,该钱包里的所有 SOL 都会被转走。 当点击 “批准” 时,用户会和攻击者部署的恶意合约交互: 3VtjHnDuDD1QreJiYNziDsdkeALMT6b2F9j3AXdL4q8v 该恶意合约的功能最终就是发起 “SOL Transfer”,将用户的 SOL 几乎全部转走。从链上信息来看,该钓鱼行为已经持续了几天,中招者在不断增加。 这里面有两个坑,需要注意的:
一些高级攻击方式高级攻击方式其实真很多,大多在大众视角下无非就是:我被钓鱼了。但这钓鱼可真高级了,比如: 黑客通过邮件发送钓鱼,邮件里附带的文档是:
这确实是一份很有吸引力的文档... 但这份文档打开后电脑就可能被植入木马(一般通过 Office 宏脚本方式或 0day/1day),这类木马一般都会包括如下常规功能:
除此之外,针对加密货币行业的木马还会进行特别利用定制,如采集知名钱包、交易所的敏感信息,以实施盗币。上面提到的木马,根据专业的分析可以发现存在针对 MetaMask 的特别攻击:
木马会将用户的 MetaMask 替换为一个有后门的 MetaMask,一个有后门的 MetaMask 就意味着你在其中使用的加密货币就不是你的了。即使你配套硬件钱包,这个有后门的 MetaMask 也会通过篡改目标地址、金额的方式来实施盗币。 这种攻击方式是专门针对财富外露的知名人士。我注意到的现象是,有些知名人士过于傲慢,被黑也就是迟早的事了。一般被黑后,许多人会从教训中痛定思痛、全面复盘、全面改进,并与信得过的专业安全人士或机构保持长期的合作及友谊。但,这个世界永远存在例外,有的人或项目方被黑一次,还会有第二、第三次。如果说是天将降大任于斯人也,每次被黑都真的是遇到了对手,那么此人或项目方,我会非常尊重,并称之为先驱,而且大概率之后也能发展起来。可惜的是,许多被黑是因为低级问题,而且可以举一反三的,这就真不可理解了。这种人或项目方建议远离。 那种广撒网的钓鱼攻击,其实手法就一般了,无非就是准备了一批域名相近的钓鱼网站,Twitter 等社交平台买号散播,热点及技巧拿捏得好,中招也是不少的。这种钓鱼没什么特别,一般就是粗暴的让用户的钱包授权相关代币(包括 NFT),然后盗走。 还有一些高级攻击,如结合 XSS、CSRF、Reverse Proxy 等技巧来让整个攻击更加丝滑顺畅。没法都展开聊,这里可以专门说其中一个非常细节的利用点(Cloudflare 中间人攻击),属于 Reverse Proxy(反向代理)有关的场景,这个利用点已经发生过真实的盗币攻击,且非常的隐蔽。 这里的问题并不是 Cloudflare 本身作恶或被入侵的问题,而且项目方用了 Cloudflare,项目方的账号权限被盗后的问题。大体过程是这样的,如果你的网站用了 Cloudflare 服务,在管理后台可以注意到 Workers 这个功能模块,这个 Workers 官方说法是:
我很早就做了个测试页面: 你访问后会有个弹窗,内容是:
其实这个弹窗,甚至整个 x.html 内容都不是这个文件本身的,全部都是 Cloudflare 提供的,原理见下图:
截图里这段代码意思很简单:如果我是黑客,我控制了你的 Cloudflare 账号,我就可以利用 Workers 特性,往任意页面注入任意恶意脚本。但此时用户是很难意识到目标页面被这样偷偷劫持篡改了,目标页面不会有任何错误提示(比如 HTTPS 证书错误),甚至项目方也一时半会意识不到这地方会出问题,可能花了大量的时间排查服务器、人员等安全。等意识到这个,损失也就大了。 Cloudflare 其实很好,许多网站或 Web 服务都会使用 Cloudflare 来做 Web 防火墙、对抗 DDoS 攻击、全球 CDN 加速、反向代理等场景,由于有免费版本,所以用户众多,类似 Cloudflare 的,还有 Akamai 等服务。 用户一定要注意自己的这类账号的安全性,账号安全问题从互联网流行开始,全球随时随处都在谈,再说似乎都要炸。但没办法,确实太多人还会因为账号安全而被黑。比如针对重要服务的密码并非唯一使用的强密码(1Password 这类密码安全管理软件普及率其实还是很堪忧的),再比如双因素 (2FA) 懒得开启、甚至不知道有这玩意、不知道该如何使用。更别提针对一些服务,每年至少要重置下密码吧。 好,一点高级攻击手法就先介绍这些。对于你来说,只需明白这确实是个黑暗森林,但凡有可能就多了解了解各种五花八门的攻击手法。见多后,甚至自己踩过几次坑,你至少也可以成为一名非职业网络安全人员了(这样的一种身份多好,技多不压身)。 传统隐私保护不容易,你学习到这里了。传统隐私保护老生常谈了,2014 年我就写过一篇:
回头读这篇文章,绝大多数建议都没过时,我建议你消化下,很快,毕竟当年这篇属于特别入门型的。下面我将开始新的介绍。隐私保护实际上和安全息息相关,在这你也可以认为是你的安全保护,保护的是什么?当然是你的隐私,私钥什么的属于隐私的一种。另外,别认为这是传统就不重视,传统的这些才是基石,基石都不安全了,基石的隐私都没了,上层建筑也就是空中楼阁,危如累卵,脆弱不堪了。 这里有两大资源是我非常推荐的: 一个是:
SSD(SURVEILLANCE SELF-DEFENSE) 即监视自卫,由非常知名的电子前沿基金会 (EFF) 发起,专门出了相关指南来告诉你,在监视/监控横向的互联网世界里,如何避开老大哥 (Big Brother) 看着你。其中包括了不少有用的工具(比如 Tor、WhatsApp、Signal、PGP 等)。 另一个是:
这个网站是专门罗列相关工具的,已经很全面了。看到了没?它还推荐了加密货币交易所、钱包等。注意,网站里罗列的工具其实不少我都不怎么用,主要是我有一套自己的方式,你也应该逐步形成你自己的方式,不断对比不断完善。 这里我重点提下我觉得无论如何你都必须掌握的或使用的工具。 操作系统Windows 10(及以上版本) 和 macOS 的安全性都挺让人满意了,你选择哪个都行。你能驾驭好,用 Linux 也是你的自由,比如 Ubuntu,或如 Tails、Whonix 这些隐私及安全变态的操作系统也行。 操作系统方面最容易上手的安全原则是:重视系统安全更新,有安全更新就立即行动。然后才是一些驾驭技能的掌握,很多人说 Windows、Mac 电脑还需要学习什么驾驭技能?点来点去不就行了吗?当然远远不行。对于安全小白来说,安装个杀毒软件是绝对的标配,如卡巴斯基、BitDefender 这种口碑很好的,Mac 上也有。 接着记住下载的安全原则,前面有提。不乱下程序其实已经杜绝了绝大多数风险了。 |