★先插播一个安全通告
11月29日曝光了一个 Firefox 的高危漏洞,详情在“这里”(洋文)。
根据漏洞描述,此漏洞只影响 Windows 平台。照理说俺用的是 Linux,应该不受影响。但考虑到俺是高危险人士,为了保险起见,还是先静默几天——暂不使用“编程随想”这个身份进行网络活动。俗话说得好:【小心驶得万年船】。
本来俺计划在11月底发一篇博文谈 Linux,但是这个漏洞让俺改变主意——所以今天这篇来聊聊“物理隔离”的话题。
(本文发出后,俺已经到博客后台管理界面,把这几天被 Google 误判为垃圾广告的评论,全都恢复出来了)
★本文的目标读者是哪些人?
为了避免浪费大伙儿的时间,俺先声明一下本文的目标读者。
这篇博文是面向那些【对安全性要求非常高】的用户。对这些人而言,“虚拟机隔离”还是无法令他们放心。
既然聊到这里,顺便解释一下:什么情况下“虚拟机隔离”会出问题。
如果虚拟化软件(比如 VirtualBox、VMware、KVM ...)本身出现了安全漏洞,并且这个安全漏洞会导致虚拟机被穿透;然后,Guest OS 正好又感染了恶意软件;而相关恶意代码正好又能够利用这个漏洞进行穿透;那么,该恶意代码就有可能从 Guest OS 入侵 Host OS。一旦恶意代码能够侵入 Host OS,理论上它就可以访问这个 Host OS 上的所有 Guest OS。在这种情况下,“虚拟机隔离”的措施就【失效】了。
出现上述情况的概率是非常低的——需要好几个条件【同时】具备。因此,能够进行这种攻击的,必然是比较高级的入侵者,而且这个入侵者对入侵对象必须有深入的了解:
知道对方用的是什么类型的虚拟化软件(不同的虚拟化软件,其安全漏洞的情况全然不同),
知道对方用的 Guest OS 是什么类型的系统
知道对方用的 Host OS 是什么类型的系统
所以,普通的网民不需要考虑这种风险。为啥捏?能这么搞的入侵者都是比较高级的,他们根本不屑于去入侵普通网民。
★预备知识:关于“隔离性”和“攻击面”
◇几种不同的隔离级别
在本系列的前面3篇,俺连续聊了很多关于 Web 方面的防范措施。你看完这3篇之后应该会发现:俺提及的防范措施,全都是围绕“隔离”这个概念来展开的。不论是“多实例”还是“多用户”或者“多虚拟机”,说白了都是为了隔离“浏览器环境”。
“隔离”的好处在于:一旦某个环境被入侵,(只要你的隔离屏障没有被穿透)别的环境不会受影响。说到“隔离屏障被穿透”,自然就引出“隔离性的好坏”这个话题。
不同的“隔离措施”,其“隔离性”是不同的。“隔离性”越好,攻击者就越难穿透。
【常见的】隔离措施(从低到高)有如下几种。俺结合浏览器来加以说明
1. 进程级
(以浏览器为例)搞多个“浏览器实例”。不同的实例肯定是不同进程,但都在同一个用户下。
2. 用户级
(以浏览器为例)在不同的【普通】用户下分别运行浏览器。但都在同一个操作系统下。
3. 虚拟系统级
(以浏览器为例)创建多个虚拟系统(Guest OS),在不同的虚拟系统中分别运行浏览器。虽然处于不同的 Guest OS,但还是在同一个 Host OS 下。
4. 物理系统级
(以浏览器为例)在不同的物理系统中运行浏览器。
今天俺要介绍的就是最高级的“物理系统级的隔离”。
◇“物理隔离”的3种子类型
“物理隔离”还可以继续细分为3种子类型(这三种级别也是从低到高):
物理隔离1型
多个物理系统之间【存在】网络连接。
物理隔离2型
多个物理系统之间【没有】网络连接,但【存在】存储介质的交换(比如:通过“U盘”交换数据)。
物理隔离3型
多个物理系统之间既【没有】网络连接,也【没有】存储介质的交换。
◇攻击面
关于这个概念,洋文称之为“attack surface”,相关的英文维基百科页面在“这里”。考虑到很多同学不喜欢看洋文,下面俺通俗地扫盲一下。
为了描述这个概念,暂且借用一下军事术语。在军事领域中,如果其它因素都一样,则防线越长就越容易被突破。
在信息安全领域,道理也类似。军事领域的“防线”就类似于本文所说的“攻击面”。
◇“攻击面”的2个维度
从概念上讲,“攻击面”可以再分成2个维度,分别是“时间维度”和“空间维度”。为了便于理解,下面俺举例说明。
时间维度
有两台软硬件配置一模一样电脑(A 和 B)。A 是一年到头365天都挂在网上,而 B 在一年里面只联网1分钟。很显然,A 被入侵的概率要大大高于 B。
空间维度
有两台服务器 A 和 B,都是始终联网的(时间维度一样)。A 上面【没有】装任何服务端软件;而 B 上面既装了 Apache(web 服务)又装了 MySQL(数据库)。而且这几个服务的端口都对外开放。假如某天,Apache 曝光了高危漏洞,B 就可能因此而被入侵,但是 A 就没事儿。
【通俗地说】,系统中装的软件越多,则包含的“代码”就越多,那么“代码”中出现安全漏洞的概率也就越大。
(上面这句只是“通俗”的说法。严格来讲,“攻击面”与“代码量”并【不是】简单的线性关系。这两者之间的关系牵扯的因素很多,比如:软件代码的质量,软件模块的类型、各个软件模块之间的依赖关系、开源 or 闭源 ......)
★招数1:把不同的上网帐号放到不同的物理系统
这个招数是最容易想到的,所以俺先聊这招。
如今很多人都有不止一台 PC。但是 PC 再多也不会超过10台吧(除非你是开网吧的)。但是你的上网帐号很可能不止10个。所以,你不太可能给每一个上网帐号配一台单独的 PC。这就需要考虑一个“划分策略”:哪些帐号共用一台 PC。
“划分策略”通常有如下两种:
◇根据“重要程度”进行划分
比如说,你搞两台 PC,一台专门用来操作很重要的网络帐号,另一台用来操作不那么重要的网络帐号。
对于前者,安装靠谱的操作系统(Linux > Mac OS > Windows),装的软件要尽量【少】(减少“攻击面”),并采取尽可能多的措施来保护它(具体措施参见本系列前面几篇)。
◇根据“身份”划分
如果你对隐匿性的要求很高,可以考虑以“身份”划分上网帐号到不同的 PC。
为了便于理解,拿俺自个儿来举例:
显然,俺是非常看重“隐匿性”滴——如果让朝廷方面知道俺的真实身份,俺就废了。所以,俺不光注重【安全性】的需求(防止被入侵),更加要注重【隐匿性】的需求(防止俺的“虚拟身份”与“真实身份”被关联起来)。
如果俺仅仅使用“虚拟机隔离”(一个虚拟机用来操作“真实身份”的帐号,另一个虚拟机用来操作“编程随想这个身份”的帐号)。万一碰到“虚拟机穿透”(前面提到过),入侵者通过 Guest OS 进入 Host OS,就可以同时访问到这两个 Guest OS,就有可能发现:原来“编程随想”就是某某人。
反之,如果把这两个身份的帐号放到两台 PC(物理隔离)。即使“编程随想”这个身份对应的 PC 被彻底入侵,入侵者看到的帐号全部都是“编程随想”相关的帐号,不会看到“真实身份的帐号”(因为这些帐号在另一台 PC 上)。
★招数2:在【专用的】物理系统中操作“重置密码的邮箱”
这个招数很简单,仅仅从章节标题,你基本上就能猜到是怎么玩的。所以俺就节省点口水,不展开了。
下面简单说说这个招数的注意事项:
1. 用来“重置密码”的邮箱,最好是专用的——也就是说:除了“重置密码”,不再作其它用途(以降低“攻击面”)
2. 操作这个邮箱的 PC,最好也是专用的(以降低“攻击面”)
3. 这台电脑只要很低的硬件配置就可以了。所以,你可以拿以前淘汰的旧电脑来用。
★招数3:在【专用的】物理系统中运行密码生成器
可能很多同学是第一次听说“密码生成器”这个玩意儿。所以俺来解释一下:
在本系列的第3篇《如何构造安全的口令/密码》中,俺介绍了好几种设置密码的技巧,那篇教程的最后一招就是“用散列算法构造密码”。
“用散列算法构造密码”,有“简单用法”,也有“高级用法”(对这两种,那篇博文都有介绍)。由于本文针对的是“安全性要求很高的读者”,所以你当然要用“高级用法”。“高级用法”通常需要依靠一个小程序/小脚本来辅助你进行 N 迭代(计算 N 次散列)。这个“小程序/小脚本”就是本章节所说的“密码生成器”。
有了“密码生成器”,你可以轻松构造出许许多多超长密码(可以长达几百个字符,前提是:网站要支持这么长的密码)。而且你【不需要】花很多脑细胞来记住这些变态的长密码。你只需记住自己的“种子串”以及“迭代次数”。如果你把“种子串”及“迭代次数”写死在生成器的脚本中,那你甚至连这两个信息也【不用】记忆。
这台运行“密码生成器”的电脑完全【不用联网】。所以这台 PC 的隔离属于前面提到的“物理隔离3型”——这是物理隔离中最严格的(没有之一)。
★招数4:对重要帐号划分“操作机”和“登录机”
这个招数与前面几个完全不同——是采用【2台】PC 来保护【单个】帐号。通常而言,只有很重要的帐号才值得你动用两台物理电脑来保护。
这个招数相对比较难懂,俺需要多费点口水。在开讲之前,先来解释一下什么是“记住登录状态”的功能。
◇“记住登录状态”功能
如今大部分网络帐号都有【记住登录状态】这个功能。当你登录该帐号,输入完密码后,如果勾选了“记住登录状态”这个选项(不同的网站,界面上的叫法可能略有不同),那么你下次访问该帐号就【不用】再输入密码了。
◇“记住登录状态”的技术原理
网站是如何做到这个效果的捏?通常是利用浏览器 cookie。当你输入密码并登录成功之后,会在 cookie 中保存一个“安全令牌”(洋文叫“token”)。这个“安全令牌”不是密码,但是比密码更复杂更难暴力破解。而且,根据令牌是【无法】逆向推算出密码的(只要是比较靠谱的网站,技术上肯定能保证这点)。
当你下一次又访问了这个网站,浏览器会把 cookie 中的这个令牌发送到网站服务器,服务器端会采用某种安全可靠的算法来验证这个令牌是否合法,如果合法,就认为你是之前登录过的那个用户。
由于 cookie 有时间限制(期限),过了期限这个 cookie 就失效了。这时候你如果又访问这个网站,它又会要求你输入密码。另外,如果你在浏览器中清空了所有 cookie,那么下一次访问该网站也要重新输入密码。
◇物理隔离的玩法
明白了这个功能的原理之后,开始来说“物理隔离”怎么玩。
你需要专门准备2台 PC——“登录机”和“操作机”。记住:这2台电脑都是用来操作【同一个】帐号滴。
每次需要登录该帐号,你一定要在“登录机”上输入密码。登录成功之后,把登录机上的【cookie 文件】复制到“操作机”上。然后你就可以在“操作机”上【免登录】访问该帐号。
(由于需要把 cookie 从“登录机” copy 到“操作机”。所以这种隔离属于前面提到的“物理隔离2型”)
◇这个招数的优点
首先,因为你从来【不】在“操作机”上输入该帐号的密码。所以,即使“操作机”被植入木马,木马也不可能知道该帐号的密码是啥。
从“时间维度”而言
由于“登录机”仅仅用来输入密码,其它的日常操作都在“操作机”。所以,(从“时间维度”上讲)“登录机”的攻击面远远小于“操作机”。
从“空间维度”而言
由于这个“登录机”仅仅用来输入密码。你只需安装非常少的几个软件(比如 浏览器 之类的)。如果你的帐号名称是洋文(大部分应该都是吧),这台“登录机”甚至连输入法都【不用装】。
所以,从“空间维度”而言,“登录机”的攻击面也会远远小于“操作机”。
综上所述,入侵者很难搞定“登录机”。
然后,前面俺又说了,根据(cookie 中的)“安全令牌”是无法逆向推算出帐号密码滴。所以,即使“操作机”被【彻底】入侵了,入侵者虽然可以进入你的帐号,但是他/她依然无法知道你的密码(因此也就无法改密码)。
这种情况下,你可以很轻松地把入侵者踢掉——只需通过“登录机”进入帐号,修改密码;然后入侵者在“操作机”上就进不了这个帐号了(一旦修改过密码,原有的安全令牌就作废了)。
★招数5:“物理隔离”搭配“多重代理”
◇“物理电脑”与“虚拟机”在“网络隔离”方面的差异
俺博客上有一个很受欢迎的系列叫做《如何隐藏你的踪迹,避免跨省追捕》。在这个系列中,俺介绍“多重代理”,也介绍了“用虚拟机防止公网 IP 暴露”。
当初俺写那篇《用虚拟机隐匿公网 IP》的时候,好几个懂技术的读者跳出来质疑。因为他们光看标题没看内容 :)
所谓的“用虚拟机防止公网 IP 暴露”,是因为:可以利用虚拟网卡的不同模式(NAT 及 Host-Only)来设置网络隔离,使得 Guest OS 中的软件【无法直接联网】(强迫这些软件走代理)。这样就可以避免:“因为某些软件【直连网络】导致的公网 IP 暴露”。
但如果出现“虚拟机被穿透”,那“公网 IP”还是有暴露的风险。因为虚拟网卡只能用来限制 Guest OS,而无法限制 Host OS。而 Host OS 中的软件通常是可以直连公网的。当某个恶意代码从 Guest OS 穿透进入 Host OS,该恶意代码就有可能尝试“网络直连”,并导致你的公网 IP 暴露。
看到这里,聪明的读者已经猜到解决方案了。那就是把原先“单虚拟机方案 或 双虚拟机方案”中那个“隔离的虚拟机”换成“隔离的物理电脑”。
话虽这么说,但操作起来会有点复杂。
原先的“虚拟机方案”,你只需设置虚拟网卡的“网卡模式”(设置成 Host-Only 或 Internal),就可以把 Guest OS 的网络访问隔离起来。但是物理电脑是【没有】虚拟网卡的,物理电脑是物理网卡。而“物理网卡”是【没有】“网卡模式”让你修改的。所以你需要在网络拓扑上下点功夫。具体的玩法有很多种,考虑到本文的篇幅有限,俺只介绍其中一种。
◇“物理电脑”进行“网络隔离”的玩法(方法之一)
下面俺【简单】介绍一下步骤(考虑到本文面向的是安全要求很高的读者。既然你的安全要求很高,当然不能是技术菜鸟,肚子里要有点货。所以,俺在下面只提几个要点,操作的细节靠你自己摸索了)
1.
准备两台物理电脑,分别称为“隔离机”和“网关机”。
“隔离机”要有一个【有线】的网卡;“网关机”要有2个网卡,至少有一个是【有线】的(用来与“隔离机”对接)
为啥俺要强调“有线网卡”,因为有线网卡才能确保其只连接到一个对端;而无线网卡就难说了。
所以隔离机只能保留仅有的一个有线网卡。如果隔离机有多余的无线网卡,在 BIOS 里面禁掉。
2.
“隔离机”上运行的软件是:
有可能遭遇高级入侵的软件(比如你的浏览器),或者是那些本身就不太安分的软件(比如 QQ)
“网关机”上运行的软件是:
TOR
TOR 的前置代理(如果你在墙外,可以不用前置代理。但是有前置代理会更安全——“双重代理”优于“单重代理”)
防火墙
3.
前面说了,“网关机”至少有一个有线网卡,用来对接“隔离机”。
因此,你需要配置“网关机”的防火墙,使得【在这块网卡上】只允许 TOR 的监听端口对外暴露(这条一定设置)
另一块网卡是用来接入公网的,你可以配置防火墙,禁止该网卡上的任何监听端口(这条可设可不设,设置了更保险一些)
4.
用一根网线把这2台电脑各自的【有线网卡】对接起来。
5.
设置“隔离机”上的软件,让它们以“网关机”的 TOR 作为代理。
6.
设置“网关机”上的 TOR,让它通过“网关机”上的前置代理联网。
★总结
几个主要招数聊得差不多了。俺在最后提醒一下:
1. 本文的这几个招数,相互之间是可以【组合使用】的
2. 本文的这几个招数是可以跟“虚拟机隔离”结合起来用的
3. 组合得越复杂,需要的物理电脑也越多 :)
4. 如今的 PC 已经很便宜啦(两三千就可以买到硬件配置还凑合的)。如果你是“高危人士”或“高价值目标”,【不要】吝啬那几千块钱!
回到本系列的目录
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始地址:
https://program-think.blogspot.com/2016/12/howto-prevent-hacker-attack-8.html?m=0
有人打算整理一下关于编程随想下落的线索吗?(从正反两个方面来举证)
好多怪事都是人为的,第一在搞邪术如祭鬼封神献祭打call,其次是搞种姓的事,
这帮东西用老外的名义来操控挑拨玩弄这个那个,这也是奇葩的,和叫东土人找阿三还是鬼子去表达册封封禅这皇帝是东土的皇帝一样奇葩, ......
ym蜀人都不愿放手的东西如屁眼套路,幼女,献祭,老单和最高神位是有原因的,很值得去研究的 ......
即使博主能活着出狱,若要看到他更新六四系列,那也是在天朝发生了民主化之后,共产党不再有能力镇压批评者之时。
就算哪天中国情报部门不经司法程序,直接把人暗杀了,我也不会觉得奇怪。
https://www.zaobao.com.sg/realtime/china/story20241226-5649612
https://www.youtube.com/watch?v=ozVq_04XMro
如果出现了自杀场景,多半是政府秘密下令处决,并伪装成了自杀。
来自Firsthack的评论
而且,二审的发改率(发回重审+改判)是一个考核政绩的指标,高层认为这个数字越低说明冤假错案越少,然后下面就越容易升官。 ......
原神UID:310221197410210025
互动热线: 13524626271 上海移动
学历: 硕士
生日: 19741021
身高: 165 ......
周欣身份证310105197106042383
户籍地址 :上海市闵行区吴中路429弄15号501室
同户人 :薛军,男,310106196903180414,1969年03月18日; ......
希望各大媒体都报道这几个名字:审判长周欣,审判员:凌莉、须梅华。
家属贝震颖推特号:Birds_b_r_32309
多谢分享“中药注射剂”等国产医疗行业的相关丑闻。
另外,关于疫情期间的乱象,俺整理了一篇:
《每周转载:白纸抗议年的“动态清零”灾难(网文14篇,多图)》
多年前不记得在哪篇博文的评论区和博主讨论叙利亚的命运,当时叙利亚的局势还未尘埃落定。可惜博主现在大牢内,看不到。
这次叙利亚的民主转型发生在俄国陷入战争的泥沼的背景下。 ......
这个是个邪术,第一个是给上面看(不知什么鬼),其次的就真的会指导目标去实际地去做这么些的犯罪邪恶,侵犯幼女的情节是经常频繁重复地出现地,和侵犯女性,还有就是生命 ......
估计到最高法院也没戏,可能会以9:0判决禁抖音。
欢迎提出不同观点。
你提到的是这二者之间的差异,俺也同意这些差异确实存在。
但是,俺要开始说但是了。从本文,咱们也可以讨论这二者之间的共性,至少包含以下方面: ......
玩邪术玩出个什么结果好歹给公开一下,拼命玩邪术还一声不吭,很危险的,要分享分享,劳资帮你们来研究研究
劳资相信这帮东西是能穿越时空的,现在是2019年的ZS,时空被改变穿越了。穿越时空的套路。这帮东西几千年都一个屌样,来几个十级地震都不会任何改变。 ......
现在的两党是争先比谁对华更强硬,已经通过的制裁法案不会松绑,已经加的关税也不会再降,否则就会被在野党骂成“通敌叛国”。
明年1月19日之前,抖音会被禁。
每天上网的好多人都在聊政治呢,难道你要把每一个聊政治的人都抓起来判刑?那也没用。因为年轻人越来越倾向于认为政治制度才是造成他们被困在他那个阶层的重要原因。 ......
这个博客对于政府的批评,大部分都是有理有据。你要是觉得哪里不对,可以反驳博主嘛。判7年是究竟有多心虚? ......
以色列做任何事,都是美国包容范围,和美国民意无关(甚至抗议都无效)。台湾今后也会差不多。
国会一旦提出新的关于台湾的法案,无论是军售,亦或是改善台湾的国际地位等等,都很容易造成近乎【全票通过】。 ......
然而,公报本身只是行政政府的声明,其效力不如法律。 ......
然而,现在的人们,对于不能证明是否为间谍的走线客,也不太宽容。估计人们会支持一律用“有间谍嫌疑”之类的理由,实行一律驱逐的政策。 ......
但是,有些两党已经形成共识的事,其实是不受太大影响的。例如:把台湾武装成以色列。
所以我估计,中共在川普第2任期的前2年之内,就会对台湾动手。
因为这次GOP在众院优势实在太小了,稍微发生一点差错,钟摆效应会让民主党夺回之。
参议院不好说。如果连参议院也丢了,那川普后两年就可能成为跛脚总统,啥事都干不了。
不服者会选择:明着顺从,其实背地里跟共产党对着干。
众议院估计是个险胜。
上次共和党在众议院也是微弱优势,导致议长难产。
这次应该不会难产,因为有川普在,他只要在台上喊几句,就可以让任何一个人当议长,其它共和党议员不会阻挠。 ......
根据NBC新闻:
https://www.nbcnews.com/politics/immigration/trump-may-deport-hundreds-thousands-migrants-biden-allowed-legally-ent-rcna179357 ......
就是先用民调测量其它选举,比如某个地方议员的选举,然后和民调进行对比,看女性候选人是否严重吃亏,是否和民调严重不符。
如果发生该现象,那得出的差额数字,就是该地隐藏的“害羞的性别歧视者”的百分比。 ......
因为“害羞的川粉”等受访者不诚实回答问题的现象,仍然使得民调失真。
贺锦丽连普选票都输了。
你民主党输得这么惨,总不能反思为啥没去迎合那些“黑命贵零元购”之类的种族主义口号吧?反思搞种族平权搞得过头了?
......
美国出了个川贼东。抗战前没做到【攘外必先安内】,这下麻烦大了。
恭喜美国又创造了世界纪录。
估计是川普险胜。
因为大法官的任命是由总统和参议院共同决定,如果总统是川普,那他就会提名非常有争议的保守派大法官。
......
......
川普险胜29%
其它情况基本可以排除。