然后可以思考下,如果你这台电脑丢了、被偷了怎么办?电脑就一个开机密码是不够的,如果磁盘没加密保护,坏人把磁盘拆下来,将里面的资料拿走就行了。此时我建议对于重要的电脑设置好磁盘加密保护。参考:
还有 VeraCrypt 这种磁盘加密神器,曾经是 TrueCrypt,非常传奇,非常强大。如果你感兴趣可以了解并适应下: 更进一步的是启用 BIOS 或固件密码,这点看你自己,反正我是这样做了。不过一定要牢记相关密码,否则可能神仙也救不了你了。这个坑我很荣幸踩过,现在思来想去,浪费了一台笔记本、一点加密货币、一周的时间,但积累了宝贵的踩坑经验。 手机手机主要也就 iPhone、安卓系列,没了,比如曾经我最爱的黑莓,被时代淘汰了。安卓以前的安全性很堪忧,一方面是发展早期,另一方面是版本太多碎片,不同手机品牌都有自己的 fork 版本。现在安全性逐渐好了不少。 手机方面同样要重视系统的安全更新及下载的安全原则,并且警惕下面这几点:
手机方面,我个人会更依赖 iPhone。同时准备至少两个 iCloud 账号,一个中国区、一个海外区,安装不同区域限制的 App 使用(挺奇怪,但这就是现实)。 网络网络方面的安全问题曾经是烂透了,这几年逐步好起来了,尤其是 HTTPS Everywhere 策略普及了后。如果真的发生了网络劫持(中间人攻击),那么系统会有相应的错误反馈。但凡是都有例外,所以网络方面,能有安全的选择当然选择安全的。比如不乱连陌生 Wi-Fi,尤其是 4G/5G 这种安全性高的网络如此普及的情况下,除非信号不好,着急使用。 如果你很有安全洁癖,你非常重要敏感的设备是可以考虑独立网络的。选择口碑好的路由器、运营商,切勿贪图小便宜,并祈祷路由器、运营商层面不会有高级作恶行为出现。 浏览器浏览器方面流行的主要就是 Chrome、Firefox 了,加密货币行业还有人会用 Brave,也行。知名度高的,团队强大的,安全更新也会比较及时。浏览器安全话题实在太广泛,对你来说,你只需注意这几点就好:
Firefox 上我还会用 NoScript 这个上古扩展神器,NoScript 可以很好对抗 JavaScript 作恶情况,当年威震四方。现在的浏览器越来越安全了,同源安全策略、CSP 安全策略、Cookie 安全策略、HTTP 安全响应头策略、扩展安全策略等等等,浏览器现在的安全高度确实是不可同日而语。NoScript 这种安全扩展被使用的空间也就越来越小了,感兴趣的可以自行了解。 密码管理器如果你还没用密码管理器,要么就是你不知道用上之后的安全快感,要么就是有自己强大的记忆宫殿。脑记风险前面也说过,一是时间会让记忆淡忘或错乱;二是自己可能出意外。无论如何,我还是推荐你使用密码管理器来搭配你的脑记,知名的如:1Password、Bitwarden 等。 我并不需要过多讲解这部分的内容,相关教程实在太泛滥了,甚至都不需要教程也很容易上手。我需要提醒的是:
有一点我是很欣赏的,比如 1Password 的安全页面有关介绍和说明: 其中包括安全设计理念、隐私及安全的相关权威认证、安全设计白皮书、安全审计报告等内容。这些内容的透明公开也是方便业内进行必要的验证。这点是非常值得项目方们学习的。 Bitwarden 做得更彻底些,是全开源的,包括服务端,任何人都可去验证、审计、贡献。 你意识到了没?1Password、Bitwarden 这样做的意图很明确:
这叫什么?这叫安全自信:) 双因素认证你在互联网上的身份安全,第一层靠的是密码,第二层得靠双因素,第三层靠的是目标项目本身的风控能力。我不能说双因素都是标配,比如你在用的去中心化钱包,有一层密码就够烦了(现在基本都配套人脸、指纹这类生物识别来提高体验),双因素就算了吧。但在中心化平台里,没有双因素可不行。因为中心化平台任何人都可以访问或有能力访问,你的密码被盗了,意味着你的账号权限失守,资金也就没了。而你的去中心化钱包,密码仅仅只是发生在本地的认证,黑客即使拿到这个密码,还需要有能力接触到你这个钱包所在的设备。 明白其中区别了吧?好,知名的双因素认证 (2FA) 工具有:Google Authenticator、Microsoft Authenticator 等,当然如果你用密码管理器(如 1Password)也是自带了 2FA 功能的,非常方便。无论如何都记得做好备份,因为丢失 2FA 是一件很麻烦的事。 另外,双因素认证也可以是个广义概念,比如账号、密码登录目标平台时,我们的账号一般是邮箱或手机号。此时邮箱或手机号通过收到验证码的方式来进行第二步认证,那么这也可以认为这是一种双因素认证方式。只是这种方式安全性就没那么好了,比如邮箱被黑了或手机的 SIM 卡被劫持了,再或者发送邮箱、短信的第三方服务被黑了,那么平台发送的验证码也就被一览无余。 科学上网这块出于政策原因,不多说,知名的几个自己对比。有能力肯定自建,这样安全可控,毕竟我们的出发点还真是科学上网、安全上网。 如果并非自建,难保不会出现中间人攻击。前面说过,现在网络环境确实没以前那么糟糕,尤其 HTTPS Everywhere 策略普及了后。但有些平静可能只是水面,水面之下早已暗流涌动却不易被察觉。所以这块我并没特别好的安全建议,自建有门槛,但值得,实在不行,一定是多方确认,选择那种存在已久、口碑良好的品牌。 邮箱邮箱是真正重要的 Web 基础身份,我们会用邮箱注册一大堆服务,我们用的邮箱几乎都是免费的,似乎如空气一般,你觉得它应该不会消失。如果哪天,它消失了?那么依赖这个邮箱的一大堆服务就尴尬了。这种极端情况真不是不会发生,比如因为战争、天灾等。当然如果是这些极端情况发生,对你来说除了生存其他也就不那么重要了。 邮箱方面,必然是选择巨头的,如 Gmail、Outlook、QQ 邮箱等。正好我曾经的安全研究方向有这部分,对你来说,这些邮箱安全性足矣。但无论何时你都一定要小心邮箱里发生的钓鱼攻击。并不是每封邮件都需要搭理,尤其是邮件里给的链接、附件文件,病毒木马可能就藏匿在其中。 如果你遇到针对邮箱的高级攻击,那只能自求多福。 除了这些巨头的邮箱服务之外,如果你很在意隐私,两款口碑不错的隐私邮箱,你可以了解了解:ProtonMail 与 Tutanota。我的建议是隐私邮箱就拿来隔离做需要特别在意隐私的服务注册,并且注意下活跃频率,长时间不活跃,免费邮箱可能也就回收了。 SIM 卡SIM 卡,手机号很多时候同邮箱一样也是很重要的基础身份。这些年我们国家的几大运营商对手机号的安全保护做得还是很不错的,比如注销、重办 SIM 卡是有严格的安全认证流程,这些都发生在营业厅里。SIM 卡攻击这块,我举个案例: 2019.5,有人的 Coinbase 账号遭遇了 SIM Port Attack(SIM 卡转移攻击),损失了超过 10 万美金的加密货币,很惨痛。攻击过程大概是: 攻击者通过社会工程学等手法拿到目标用户的隐私,并到运营商欺骗得到一张新的 SIM 卡,然后通过同样的手机号轻松搞定目标用户在 Coinbase 上的权限。 SIM 都被转移了,这就很麻烦了,基本来说我们很多在线服务都是通过手机号来做的二次验证或直接身份验证,这是一个非常中心化的认证方式,手机号成为攻击的弱点。 详细分析可以参考: 这块的防御建议其实也简单,启用知名的 2FA 工具。 SIM 卡还有个风险,就是如果手机丢了或被盗了,SIM 卡被取出来使用就尴尬了。我的做法可以供你参考:我的 SIM 卡设置了密码(PIN 码),每次开机或重新使用 SIM 卡都需要输入正确的密码才可以。具体攻略请自行查询。我只提醒:别忘记了这个密码,否则麻烦,耽误事。 GPG这部分的许多知识点在前文都提到了,不过这里再普及个小概念,以方便日后理解: 有时候会遇到 PGP、OpenPGP 及 GPG 这几种看去相似的叫法,简单这样区分下:
这几个底层都类似,用 GPG 就可以兼容其他的。这里我再次强烈建议:别整那么多有的没的,安全加密这块,用好 GPG 绝对可以大力提升安全感! 隔离环境专门强调隔离环境这个安全原则,本质就是要具备零信任安全法则思维。你一定要相信:我们这些人即使再强大,被黑也是迟早的事,无论是被外部人、内部人还是自己。当被黑的时候,止损是第一步。止损能力被许多人忽略了,从而可能因为一次被黑而陆续被黑。究其本质就是因为许多安全设计不存在的,尤其是隔离这种看似粗暴的安全原则。 一个良好的隔离习惯,当被黑时,损失的仅被黑目标的那些隐私,而不会危及到其他隐私。比如:
我以前提过一个比较极端的观点:隐私不是拿来保护的,隐私是拿来控制的。 提出这个观点的原因是因为:在当下的互联网环境,隐私实际上已经泄露得不行。好在这些年隐私有关的法案越来越普及,大家也越来越重视。一切确实都会往好的方向发展。但在此之前,无论如何,当你掌握了我罗列的这些知识点,你就有能力将你的隐私游刃有余地控制着。在互联网上你如果习惯了,你几乎独立的虚拟身份可能会有好几个。 人性安全说了这么多,人才是那个最大且永恒的风险。《三体》里有句话:“弱小和无知不是生存的障碍,傲慢才是。”
还有一堆人性有关的点,说也说不完,而且关键是我自己也有不少问题。只能说战战兢兢、如履薄冰了。下面重点讲几个需要特别注意的点,都是与人性这些缺陷有关的,坏人利用一些平台的便利性来将人性玩弄得死死的。 Telegram以前我说过 Telegram 是最大的暗网了。首先不得不说 Telegram 太强,安全、稳定、足够的开放性设计得到了太多人的喜欢。但 Telegram 的文化土壤也让坏人们很喜欢:Telegram 太好用了,用户基数足够大,功能开放性足够好,非常方便定制各类 Bot 服务,结合加密货币可以让许多交易体验超越 Tor 网络里的那些暗网市场。并且上面的鱼儿太多了。 社交账号的唯一字段基本都是类似什么用户名或 XX 号之类的,其他都可以被坏人完全复用。有的社交平台有账号认证机制,比如加个蓝 V 什么的。开放的社交还可以通过一些指标来看是不是真账号,比如 follow 情况、发布的内容情况、内容互动情况等。封闭些的社交确认上麻烦些,但类似 Telegram 这种引入了共同在哪些 Groups 的功能是挺不错的。 人性是这样,但凡有空子可以被钻,收益可观时,一定一堆坏人来钻。 所以社交平台上充斥了大量钓鱼陷阱,比如你在一个群里聊着聊着,突然冒出了个看去就像官方的客服私聊你(嗯,任意私聊是 Telegram 的机制,并不需要加好友),然后拿出杀猪盘经典话术,一些人就陆续上钩了... 进一步的话,直接拉你进入另一个群,里面的人除了你,其他都是仿冒的。但你一看就觉得特别真实。黑产里的群克隆技术指的就是这种。 这些都是初级的人性利用,高级点的就会结合漏洞来利用,更是难防。 DiscordDiscord 是这两年流行起来的新型社交平台,聊天、群组这些基本功能都有,最核心的功能是一个个独立的社区服务器(不是传统理解的那种服务器),如官方说法:
看去美好,但实际上安全设计挑战也是很高的,官方也很努力,有专门的安全规则及政策说明: 可惜,许多人不会去仔细阅读的。另外,官方也不一定都能把一些核心安全问题说清楚,因为有的安全问题必须站在攻击者角度才能点透。 下面点出其中一点。 Discord 上发生了这么多起 NFT 被盗案,请问其中的攻击技术要点是什么?如果这都没搞清楚,一堆 Discord 安全建议用处都不大。 不少项目方的 Discord 服务器被搞的技术要点是那个所谓的 Discord Token,实际上这个玩意是 HTTP 请求头里的 authorization 字段内容。这玩意在 Discord 存在非常久了,对于黑客来说,只要想办法拿到这个 Discord Token,即可几乎完全控制目标的 Discord 权限,也就是说,如果目标是管理员、有管理权限的人或机器人 (Bot),那么黑客就可以用这些特权来作恶了。 比如,发布 NFT 钓鱼网站,大家一看:官方发的公告,于是就一股脑儿冲进钓鱼网站了... 有人可能要问,我的 Discord 账号增加双因素 (2FA) 认证 OK 吗?绝对好习惯!但应对这个攻击是不行的!Discord Token 无视你是否开启了 2FA。如果你中招过,你应该立即更改 Discord 密码,这样 Discord Token 就会刷新变化了。 至于黑客是如何拿到这个 Discord Token 的,我们已经摸清楚至少三大手法了,后面找机会写清楚。对于普通用户来说,防御建议其实挺多的,核心要点是:不急不贪、多方验证。 来自 “官方” 的钓鱼坏人真的善于借势搞事,尤其是借官方的势。能仿冒就尽量仿冒得很像很像,如上面提过的假客服。还有如 2022.4 出头,Trezor 这款知名的硬件钱包的许多用户就收到来自 trezor.us 的钓鱼邮件,实际上 trezor.us 并不是 Trezor 官方域名。Trezor 官方域名只是 trezor.io。仅仅域名后缀不一样。另外钓鱼邮件里传播了如下域名:
这个域名是有 “亮点” 的,仔细看那个 ẹ 并不是英文字母 e。非常的迷惑性,实际上这是 Punycode,标准说明是这样的:
如果把 trẹzor 解开后的样子是这样:xn--trzor-o51b,这才是真身! Punycode 这种钓鱼方式,几年前就有真实利用了,比如 2018 年时,币安的一些用户就中招过。 这种域名看去很像的钓鱼就可以让许多人上当,更别提更高级的攻击方式,比如一些官方邮箱被控制,还有一种用户邮箱 SPF 配置问题导致的邮件伪造攻击。在用户眼里看到的邮件来源就是一模一样的官方特征。 如果是内部人作恶,那用户就自求多福了。项目方内部的安全风控一定要特别重视人员安全,这永远是最值得花成本、花精力去建设的。人是最大的那只特洛伊木马,但却最容易被忽视。有的人安全意识实在太差,在安全上又不思进取。这种人,谁招谁倒霉。 Web3 隐私问题随着 Web3 的流行,越来越多有趣或无聊的项目出现,如各种 Web3 基础设施、社交平台等。基础设施有的做了海量的数据分析,一不小心就发现感兴趣的目标的各种行为画像了,不仅各区块链上的,还有 Web2 那些知名平台上的。画像一出,目标基本就属于透明人。而 Web3 社交平台的出现也可能加剧这类隐私问题。 想一想,当你将这些 Web3 有关的各种玩意都玩了一遍,如签名绑定、链上各种交互等,你的隐私有没有泄露更多?很多人以为不会,但其实许多碎片拼在一起实际上就能输出更全面的画像:你喜欢收藏哪些 NFT、你加入了哪些社群、你在哪些白名单里、你和谁有了关联、你绑定了哪些 Web2 账号、你活跃在什么时间段里等等等。看吧,区块链有时候让隐私变得更糟糕。如果你在意隐私,那么需要谨慎对待一切新事物,并保持隔离身份的好习惯。 此时,如果不小心私钥被盗,损失的已经不是资金那么简单的了,是所有一切精心维系的 Web3 权益。我们常说的私钥即身份,现在看来真的是身份了。 人性安全部分就先到这,不继续展开了,你举一反三。 永远不要去考验人性。 区块链作恶方式区块链技术的出现诞生了我们现在所处的行业,无论你如何称呼这个行业,链圈、币圈、区块链、加密货币、虚拟货币、数字货币、Crypto、Web3 等等,一切的核心几乎都还是围绕区块链。最热闹的都与金融活动有关,比如币这个玩意,包括非同质化代币(NFT,也叫数字藏品)。 这个行业有超凡的活力与吸引力,但存在太多作恶方式。由于区块链的一些独特性,也出现了些比较独特的作恶方式。这些作恶方式大体包括:盗币、恶意挖矿、勒索病毒、暗网交易、木马的 C2 中转、洗钱、资金盘、博彩等等。2019.1,我做了个思维导图可做参考:
同时,我们不断在更新维护的 SlowMist Hacked 区块链被黑档案库,大量的案例索引,一笔笔历史印记: 本手册提了许多安全点,如果你能消化成自己的,那么真是恭喜你。至于这些五花八门的作恶方式,我就不准备展开了,如果你感兴趣,你应该自己学会扩展。多了解绝对是好事,更何况新型作恶手法总是层出不穷,变种不断。你的能力越大后,我也希望你能参与进来让这个行业更好一些。 被盗了怎么办既然说了被黑是迟早的。那么当被黑时,甚至加密货币被盗时该怎么办?我就简单地直切主题。以下步骤不一定完全这个顺序,有的时候是来回穿梭的,但大体是这样。 止损第一止损就是让损失不要放大了。这分为至少两个阶段:
保护好现场发觉出事了,千万冷静,深呼吸三次后,一定要保护好有关现场。有几个经验供参考:
这点很关键,我们遇到不少情况是:当我们介入做分析时,现场已经乱七八糟了,甚至关键证据(如日志、病毒文件)都出现被清理干净的情况。没有保存良好的案发现场,会对后续的分析与追踪溯源产生极大的干扰。 分析原因分析原因的目的是了解对手,输出黑客画像。这个时候事故报告就非常重要,也叫验尸报告 (Post Mortem Report),当然国内把 Post Mortem Report 翻译为验尸报告怪怪的,我们喊事故报告就行。 我们遇到许多人被盗币后,来咨询我们怎么办,很纠结的是,许多人难以表达清晰,更别说出具清晰的事故报告了。但我觉得表达是可以练习或依葫芦画瓢出来的。比如至少把以下几点说明下:
我们具体在对接时,模板会复杂的多,循序渐进的。有时候人的记忆也是有问题,甚至出现刻意隐瞒关键信息导致浪费时间或耽误了绝佳时机。所以在实际对接中,消耗是真大,我们需要用我们的经验去做好引导工作。最终和丢币的人或项目方一起出具事故报告,并不断更新这份事故报告。 追踪溯源根据罗卡定律:凡有入侵、必留痕迹。我们只要用心查,总会有发现。这个查的过程实际上就是取证分析、追踪溯源了。我们会根据取证分析出来的黑客画像来做追踪溯源,并不断充实这个黑客画像,这是一个动态、反复的过程。 追踪溯源包含两大部分:
根据这些情报展开的追踪溯源工作就非常多了,甚至需要执法单位的介入。 结案当然我们都希望有个好结局,历史上披露的公共事件中我们重点参与的且有好结局的,举几个例子:
我们亲历的还有许多是未公布的好结局、还行的结局。但大多数是不好的结局,挺遗憾。我们在这些过程中积累了大量宝贵经验,希望未来能将好结局的比率提高一个台阶。 这个部分就简单提到这,我并不打算详细展开,这块的知识量是巨大的,有的我也不擅长。根据不同场景,我们需要掌握的能力有:
几乎方方面面,本手册涵盖的安全点也是方方面面,但几乎都只是引入门罢了。 误区本手册一开始就告诉你需要始终保持怀疑!包括本手册提到的任何知识点。这是个朝气蓬勃的、潜力巨大的行业,充斥大量的陷阱与乱象。这里我们来看看其中的一些误区,这些误区如果当作真理,不加思考的话,就很容易掉入陷阱中,成为乱象的一部分。 Code Is Law代码即法律。但往往一个项目(尤其特指智能合约有关)被黑了或跑路了,受害者们几乎没人希望代码即法律,最终还是会依赖真法律。 Not Your Keys, Not Your Coins不是你的私钥,就不是你的币。其实许多用户拿到了私钥,但没有能力驾驭好自己的私钥,反而因为各种安全问题,币丢了。有时候会发现,币放在足够大且信誉很好的平台里,反而安全了许多。 |