前几天有读者在博客评论中询问了“黑暗幽灵木马”(洋名叫“DCM”)的相关事宜。本来想从技术层面聊聊这款木马,但是俺发现相关的分析文章已经很多了。为了不落俗套,俺换一个角度——聊聊“如何应对公安部门的网络临侦”。
先简要介绍一下这款木马的情况。已经了解的同学,请直接跳过本章节,以免浪费时间。
这是4月下旬被腾讯安全团队曝光的木马。这款木马能吸引大量眼球(引发了安全界的严重关注),主要是因为它的两大特色:
此木马首先让人惊艳之处就是传播方式很牛逼。
那些中了这款木马的电脑,并【没有】运行外来的可疑软件,就已经中招了。为啥捏?
根据目前曝光的内幕以及圈内人士的分析,这款木马有一个专门的“传播系统”,该系统是通过“流量注入”进行传播的。大致包括如下几种方式:
1. 软件自动升级
如今很多软件都有自动升级功能。所谓的自动升级就是从该软件的官网下载一个升级的安装包到本机,然后在本机运行该升级安装包。
某些软件(尤其是很多国产软件)不够靠谱,它们在下载完升级安装包之后,没有进行文件的完整性检查,就直接运行了。
这就给了 DCM 可乘之机——当 DCM 木马的传播系统发现你的电脑在下载某个软件的升级安装包,就会篡改这个安装包的内容,把 DCM 木马植入到安装包内部。当这个安装包下载到本机并运行之后,你就中招了。
2. 软件下载
很多网友经常会在网上下载一些软件。DCM 的传播系统一旦发现你的传输流量中包含了“可执行文件的下载”,同样会篡改你的网络传输流量,把 DCM 植入到你下载的那个软件包中。
3. 浏览器劫持
如果前两种情况一直没有出现,DCM 的传播系统会采用最后这招——浏览器劫持。
当受害人在浏览器中访问任何一个网站时,DCM 的传播系统会让浏览器显示一个出错的页面。该页面提示用户升级浏览器,并且包含一个升级的链接。当然,这个链接是假的。受害人一旦通过该链接下载浏览器的升级包并运行,就被植入 DCM 木马了。
这里所说的“隐蔽性”,不仅仅是它本身的软件隐藏得好(隐藏得好的木马多得很)。更主要是指——它非常注重隐藏”木马的操纵者“。
先来说传统木马是如何汇集信息的:
传统的木马在收集到信息之后,通常会发送到某个“地方”。这个“地方”可能是木马控制者自己架设的网站,也可能是木马控制者自己注册的邮箱(甚至可能是某个 SNS 帐号)。不管是哪种,汇集信息的“地方”总是与木马操控者具有某种关联性。因此,一旦木马被安全公司拿去作分析之后,就可以通过观察其行为,知道该木马用来汇集信息的“地方”是哪个。如果有可能的话,就可以据此来追踪木马的操控者。
再来说 DCM 木马的独特之处:
该木马收集到电脑系统的各种信息之后,会把信息压缩并分成 N 份,然后每一份伪装成一个 DNS 请求的数据包。这个数据包会发往微软的服务器。
为啥要发往微软服务器捏?千万【不要】天真地以为木马是微软做的(这个木马跟微软没半毛钱关系)。选择微软服务器是因为:
1. 微软的服务器 IP 【没有】被 GFW 屏蔽
2. 普通网民的电脑与微软服务器的通讯很频繁(因为 Windows 的“自动更新”),【不易】引起怀疑
3. 微软的服务器在国外,所以发往微软服务器的数据包不但会经过“城市的网络出口”,还会经过“省级网络出口”和“天朝的国际出口”。所以,在这几个环节中都可以截获这些伪装的 DNS 数据包。
再来说一下,为啥要选用 DNS 协议?原因如下:
1. DNS 协议非常普遍,【不易】引起怀疑
2. 绝大部分网络环境中,防火墙都允许 DNS 数据包通过
从上述介绍可以看出:为了收集信息,该木马另辟蹊径,完全没有暴露出木马控制端的任何信息。
介绍完 DCM 木马的特色,俺接着来分析:谁是这款木马的始作俑者?
前面说到了该木马的两大特色。其中之一是:在“收集信息”的环节中彻底隐藏了木马控制端的痕迹。但恰恰是这种隐藏手法,反而暴露了:谁才有可能是这款木马的操控者。
列位看官中,如果有稍微懂点网络的,应该能看出来——DCM 木马把收集到的信息发往【墙外】的微软服务器,这个过程大致需要经过如下几个环节:
1. 宽带拨号设备,比如光猫之类(这个环节不一定有,取决于具体的宽带上网方式)
2. 小区的交换机(这个环节不一定有,取决于具体的宽带上网方式)
3. 运营商的局端设备
4. 城域网出口
5. 骨干网省级出口
6. 骨干网国际出口
那么,木马的操纵者如何获取信息捏?显然,至少要能控制其中一个环节。然而上述这些环节都掌握在运营商(ISP)手中。运营商本身是没啥动力去搞这么复杂的一个木马。那么,谁有这个动力,并且还有足够的权威去指使运营商干这种事情捏?答案呼之欲出,那就是【六扇门】。在公安系统内部,这种搞法称之为“网络临侦”。
话说如今是信息时代,体现在六扇门那儿就是:电子证据越来越多(比如“电邮、聊天记录、上网记录”都可以成为证据)。所以最近10年,信息安全行业衍生出一个细分市场叫做【电子取证】。今天咱们要聊的“网络临侦”,就是电子取证的手段之一(还有其它的一些手段,以后有空慢慢聊)。
“网络临侦”可以实现如下几个目的:
通过网络临侦手段,可以详细监控目标嫌疑人的上网行为。为了体现其特色,俺拿“网络临侦”与“GFW”作一个对比。
部署方式不同
GFW 部署在天朝的国际出口。只有当你访问境外网站,你的网络流量才会经过【国际出口】,才会被 GFW 处理。如果你仅仅是访问【墙内】网站,GFW 根本【看不到】你的流量。
相反,用来做网络临侦的设备,可以直接部署在小区交换机甚至是嫌疑人家中的拨号设备中。也就是说,不论你访问国内网站还是国外网站,都会被网络临侦设备监控到。
数据量不同,导致处理方式不同
部署方式不同引出了另一个差异——数据量不同。
GFW 面对的是全国网民的跨国网络流量,那个规模是非常非常惊人的。因此,GFW 的“协议分析模块”和“后续处理模块”就无法作太多的事情。比如说,GFW 无法把它看到的所有流量都保存下来。
相反,由于网络临侦设备可以部署在一个小范围(比如小区交换机),它可以把所监控的流量全部保存下来,供日后分析。
虽然网络临侦设备有上述这几种好处,但是它也有缺点:
1. 无法对付【强加密】的流量
如果目标网民使用强加密的方式上网,临侦设备没法破解这些加密流量,因此也就无法监控目标网民。
2. 无法监控主机的行为
如果你的某个行为仅仅局限在本机,与网络无关。那么单纯的网络监控是无法了解你在做啥?
由于上述这2个缺点,所以临侦设备需要采用其它手段,这就是下面要聊的——收集主机行为的能力。
但是临侦设备是部署在网络传输路径中,并没有部署在本机。它如何能收集本机的行为捏?于是本文提到的 DCM 木马就出场了。前面俺提到了:DCM 木马具有专门的“传播系统”。这个传播系统,其实就是“临侦设备”。由于它的部署方式,使得它可以很容易篡改你的上网流量,从而可以在流量中植入木马。一旦得逞,木马安装到你本机,那么你的一举一动都在六扇门的监控之下了。
这时候,即便你采用加密的方式上网,甚至采用多重代理上网,都于事无补了。因为木马可以直接看到你的浏览器的地址栏(知道你在访问哪个网站),木马还可以收集你输入的每一个汉字(比如装个键盘钩子既可实现)。
大致来说,有两类人需要防范:
1. 犯罪分子
2. 因为政治原因被六扇门盯上的人——比如维权人士、民运人士、反党人士......
(本文主要是写给第二类人看的)
如果你不是这两者之一,你通常不用太担心被临侦设备盯上。
这是最容易想到的应对招数——你一旦加密了网络传输的流量,临侦设备就【无法】对你的上网流量进行木马注入。另外一个好处是,如果你用的是加密代理,临侦设备甚至都无法知道你访问了哪些网站。关于加密网络流量,主要有2种方式:
1. 网站自身提供的 HTTPS
2. 加密代理
这两种方式的中,HTTPS 有如下几个【局限性】:
1. 有很多网站(尤其是小型网站)不支持 HTTPS
2. 如果你通过 HTTPS 访问某网站,临侦设备虽然无法看到你的真实流量的内容,但依然能知道你访问的网站是啥
3. 如果浏览器的证书出现问题(比如你用了朝廷方面发行的 CNNIC 证书),那么单纯的 HTTPS 有可能遭遇“中间人攻击”(洋文叫“MITM”)
4. 如果浏览器存在漏洞(比如“HTTPS 降级攻击的漏洞”),临侦设备【有可能】解密单纯的 HTTPS 流量并实现注入。
与 HTTPS 相比,加密代理具有的好处是:
1. 不受网站本身的限制
即使你访问的网站不支持 HTTPS 也没关系
2. 基于加密代理访问,监控你流量的人无法知道你在访问的网站是啥
临侦设备顶多看到你在访问某个代理服务器,但是【无法】知道你通过这个代理转到了哪个网站
3. 即使你的浏览器证书出了问题,风险也不大
临侦设备因为无法看到你的 HTTPS 流量(HTTPS 流量被包裹在外层的加密代理流量中),无法针对你进行“中间人攻击”
4. 即使你的浏览器含有 HTTPS 协议的漏洞,风险也不大
(类似第3条)
综上所述,“单纯依靠加密代理”比“单纯依靠网站自身的 HTTPS”,要更保险。当然,两者结合更好(前提是网站要支持 HTTPS)
很多人都用过 VPN,俺就拿 VPN 协议来举例。VPN 的实现有很多种方式,其中的 PPTP 就是有名的“弱加密”。由于临侦设备的部署特点,它有可能解密 PPTP 协议,并获得其中的明文流量内容。
考虑到大部分同学都不是信息安全圈内的,通常无法判断哪些是弱加密,哪些是强加密。所以俺再来唠叨一个多年的老建议:“基于 TOR 的多重代理”。由于多重代理是【嵌套】的关系,只要其中一重是强加密,整个就是强加密。而 TOR 肯定是强加密的。
关于多重代理,俺早在 N 年前就写了教程,链接在“这里”
有些情况下,你不得不用明文方式上网。
举个例子:比如国内的视频网站通常都采用明文传输,不支持 HTTPS。并且大多数国内的视频网站都屏蔽了境外的 IP。也就是说,当你用翻墙代理去访问国内视频网站,无法正常观看。就算你找到某个国内的代理服务器,可以解决“国外IP无法观看”的问题,但走代理终归影响性能。而看视频对网络传输性能的要求还是偏高的。
上述这种情况,就使得你被迫用明文的方式进行网络传输,而这种方式就给了临侦设备可乘之机。
咋办捏?俺的建议是采用虚拟机——把那些被迫使用明文传输的上网行为,都统一放到某个虚拟机(Guest OS)中。这个虚拟机就算被入侵了,至少你的物理系统(Host OS)和其它的虚拟机也不会受到影响(本文暂且不考虑“虚拟机穿透”的风险,这种的概率非常低)。
没玩过虚拟机的同学,请参见俺写的系列教程《扫盲操作系统虚拟机》。
使用虚拟机还有另一个额外的好处——利用快照功能自动回退到干净的状态(关于这招可以参见俺的另一篇教程:《如何用“快照”辅助安全加固、强化隐私保护》)
DCM 木马曝光之后,有很多网上的文章给出了相应的防范措施,可惜很多措施都不够靠谱。俺下面分别列举,作为反面教材。
用 Linux 或 Mac OS 替代 Windows 会在一定程度上提升安全性。别的不提,单说六扇门的临侦系统,主要还是针对 Windows 的。因为大部分网民用的是 Windows。
可惜这个措施【不彻底】。因为六扇门未来有可能开发针对 Mac OS 甚至 Linux 的入侵工具(没准现在已经有了)。
因此,本措施属于“非关键性的”。
首先,这个措施实施起来比较困难。因为大部分网民是技术菜鸟,并不知道那些软件的自动升级功能含有“校验机制”。
其次,这个措施是不彻底的。即使你电脑上所有的软件的自动升级都含有校验机制,但如果你没有【全程】加密,临侦设备还是可以通过其它方式对你的【明文】流量进行注入(比如篡改你正在下载的可执行文件),从而让你中招。
所以,这个措施指标不治本。
(不知道何为“数字签名”的同学,可以先看《扫盲文件完整性校验——关于散列值和数字签名》)
首先,并不是所有的软件的安装包都自带数字签名。如果某个安装包没有自带数字签名,你就比较难判断该安装包在下载的过程中是否被篡改了。
其次,由于每次下载都要记得检查,这种细心程度大部分人是做不到滴。
这个措施同样指标不治本。
某些文章提到了这个招数,用来限制 DCM 木马往外发送信息。这个招数是【不】靠谱滴。
虽然目前 DCM 木马用的是 DNS 协议来掩盖它的发送行为。但如今 DCM 已经被曝光。它的下一个版本很可能会改用其它的方式来隐藏信息发送行为(不一定再用 DNS 协议了)。
许多年前,俺就写教程普及了“CA 证书的重要性”,以及“可疑证书的危险性”。
不过捏,在对付网络临侦设备的时候,“禁用可疑的 CA 证书”这个招数用处不大。
举例来说,假如你本机依然存在明文的上网流量,就可能被注入。而明文的上网流量,与 CA 证书没有半毛钱关系。
在本文结尾处,稍微分享一下俺的个人经验(其实这个经验,前几年已经在博客评论区分享过了)
大致包括如下几个要点:
1. 基于 TOR 的多重代理
前面已经提到过:TOR 本身是强加密的,所以基于 TOR 的多重代理,整体而言也是强加密的。
再罗嗦一下:多重代理包含了多重的加密,临侦设备非常难对其进行解密,也就谈不上“注入”了。
2. 虚拟机隔离
虚拟机隔离有两个好处:
其一,前面讲过的——某个虚拟机被入侵不会影响到其它虚拟机
其二,可以通过设置虚拟机的虚拟网卡模式,确保该虚拟机内的【所有】软件都无法【直接】联网(教程参见:原理、配置)。換而言之,就是【强制】所有的网络流量都经由多重代理。
之所以要从部署方式上进行【强制】,是为了避免有些网络软件没有走代理,擅自独立联网。这种情况下就存在“流量注入”的风险。
3. Guest OS 定期回退快照
其实只要做到前面两点,临侦设备就很难往你的系统中植入木马了。但是为了以防万一,俺还是养成了一个好习惯——定期(大约几天)回退一次 Guest OS 的快照。
如果你熟悉虚拟化软件的快照功能,自然知道俺这么干的好处是啥。
4. 定期更新重要的软件/系统补丁
补丁的重要性,俺在《如何防止黑客入侵》系列中已经有介绍,此处不再唠叨。
俺至少对“Host OS、Guest OS、虚拟化软件、浏览器、翻墙代理"都会定期升级。
5. Host OS 基本不干啥事儿
(看了某读者的留言,想起来补充这条)
俺平时的各种操作(上网、办公、编程 ......)全都在 Guest OS 中进行,大部分俺常用的软件也都是装在 Guest OS 中。Host OS 基本不干啥事儿(主要是用来运行虚拟化软件)。
好处是:大大降低了 Host OS 被直接入侵的风险。Host OS 是很重要滴——万一被入侵,则所有的 Guest OS 也陷入危险之中。
当年俺在博客评论区介绍“全程加密”的经验时,有热心读者提出了几个困惑。针对这些困惑,把俺当时的回复整理如下。
如果你看完本文还有其它困惑,欢迎在本文下方留言。
疑问:
如果采用全程加密,那么自己的公网 IP 对外的流量【全都是】加密流量。反而容易引起怀疑。
俺的解答:
公网 IP 的对外流量大致可以分两种:“在家上网”和“在公司上网”。
对于“公司上网”——
通常每个公司分配的公网 IP 都只有少数几个。公司中所有的人都是通过这少数几个公网 IP 对外访问。即使你采用“全程加密”,但是其他同事未必会这么干(大部分网民的流量应该是以非加密为主)。所以,公司的公网 IP 对外的流量,加密的比例依然很低。
对于“家庭上网”——
如果你家里还有其他家庭成员在上网,你们共用一个公网出口。此时,效果等同于刚才提到的“公司上网”——你的家人显然会有一些明文的流量,所以你家的对外流量【不会】全部是密文。
如果你属于“一人吃饱全家不饿”的类型,那么你可以单独开一个虚拟机专门用来做些普通的网页流量,甚至可以在该虚拟机中开个浏览器不断播放视频。这样一来,你家的对外流量中,加密流量的比例就不会这么大了。
疑问:
如果采用全程加密,那么在使用某些国产软件(比如 QQ)或国内网站(比如新浪微博)的时候,服务器记录的“访问者 IP”总是来自境外,反而容易引起怀疑。
俺的解答:
首先,如果你真的很关注安全性(尤其是隐私性),就应该尽量远离那些国产软件或国产网站提供的服务。具体原因,俺在博客中已经了唠叨很多次。
如果你不得不用这些东西,还有一个办法:找一个【墙内】的代理服务器,让这个代理服务器成为你多重代理的【最后一跳】。在这种方式下,那些国内公司的服务器(比如 QQ 服务器)看到的“访问者 IP”就是来自墙内了。
写本文最大的遗憾就是:这篇博文有可能会帮到某些犯罪分子。
其实俺也很无奈,因为俺首先要帮助那些“反党人士、民运人士、维权人士”对抗国保部门的监控。
from https://program-think.blogspot.com/2016/08/Trojan-Horse-DCM.html
★何为“黑暗幽灵木马”?
先简要介绍一下这款木马的情况。已经了解的同学,请直接跳过本章节,以免浪费时间。
这是4月下旬被腾讯安全团队曝光的木马。这款木马能吸引大量眼球(引发了安全界的严重关注),主要是因为它的两大特色:
◇特色之一,传播手段很特别
此木马首先让人惊艳之处就是传播方式很牛逼。
那些中了这款木马的电脑,并【没有】运行外来的可疑软件,就已经中招了。为啥捏?
根据目前曝光的内幕以及圈内人士的分析,这款木马有一个专门的“传播系统”,该系统是通过“流量注入”进行传播的。大致包括如下几种方式:
1. 软件自动升级
如今很多软件都有自动升级功能。所谓的自动升级就是从该软件的官网下载一个升级的安装包到本机,然后在本机运行该升级安装包。
某些软件(尤其是很多国产软件)不够靠谱,它们在下载完升级安装包之后,没有进行文件的完整性检查,就直接运行了。
这就给了 DCM 可乘之机——当 DCM 木马的传播系统发现你的电脑在下载某个软件的升级安装包,就会篡改这个安装包的内容,把 DCM 木马植入到安装包内部。当这个安装包下载到本机并运行之后,你就中招了。
2. 软件下载
很多网友经常会在网上下载一些软件。DCM 的传播系统一旦发现你的传输流量中包含了“可执行文件的下载”,同样会篡改你的网络传输流量,把 DCM 植入到你下载的那个软件包中。
3. 浏览器劫持
如果前两种情况一直没有出现,DCM 的传播系统会采用最后这招——浏览器劫持。
当受害人在浏览器中访问任何一个网站时,DCM 的传播系统会让浏览器显示一个出错的页面。该页面提示用户升级浏览器,并且包含一个升级的链接。当然,这个链接是假的。受害人一旦通过该链接下载浏览器的升级包并运行,就被植入 DCM 木马了。
◇特色之二,隐蔽性很强
这里所说的“隐蔽性”,不仅仅是它本身的软件隐藏得好(隐藏得好的木马多得很)。更主要是指——它非常注重隐藏”木马的操纵者“。
先来说传统木马是如何汇集信息的:
传统的木马在收集到信息之后,通常会发送到某个“地方”。这个“地方”可能是木马控制者自己架设的网站,也可能是木马控制者自己注册的邮箱(甚至可能是某个 SNS 帐号)。不管是哪种,汇集信息的“地方”总是与木马操控者具有某种关联性。因此,一旦木马被安全公司拿去作分析之后,就可以通过观察其行为,知道该木马用来汇集信息的“地方”是哪个。如果有可能的话,就可以据此来追踪木马的操控者。
再来说 DCM 木马的独特之处:
该木马收集到电脑系统的各种信息之后,会把信息压缩并分成 N 份,然后每一份伪装成一个 DNS 请求的数据包。这个数据包会发往微软的服务器。
为啥要发往微软服务器捏?千万【不要】天真地以为木马是微软做的(这个木马跟微软没半毛钱关系)。选择微软服务器是因为:
1. 微软的服务器 IP 【没有】被 GFW 屏蔽
2. 普通网民的电脑与微软服务器的通讯很频繁(因为 Windows 的“自动更新”),【不易】引起怀疑
3. 微软的服务器在国外,所以发往微软服务器的数据包不但会经过“城市的网络出口”,还会经过“省级网络出口”和“天朝的国际出口”。所以,在这几个环节中都可以截获这些伪装的 DNS 数据包。
再来说一下,为啥要选用 DNS 协议?原因如下:
1. DNS 协议非常普遍,【不易】引起怀疑
2. 绝大部分网络环境中,防火墙都允许 DNS 数据包通过
从上述介绍可以看出:为了收集信息,该木马另辟蹊径,完全没有暴露出木马控制端的任何信息。
★这款木马是谁干的?
介绍完 DCM 木马的特色,俺接着来分析:谁是这款木马的始作俑者?
前面说到了该木马的两大特色。其中之一是:在“收集信息”的环节中彻底隐藏了木马控制端的痕迹。但恰恰是这种隐藏手法,反而暴露了:谁才有可能是这款木马的操控者。
列位看官中,如果有稍微懂点网络的,应该能看出来——DCM 木马把收集到的信息发往【墙外】的微软服务器,这个过程大致需要经过如下几个环节:
1. 宽带拨号设备,比如光猫之类(这个环节不一定有,取决于具体的宽带上网方式)
2. 小区的交换机(这个环节不一定有,取决于具体的宽带上网方式)
3. 运营商的局端设备
4. 城域网出口
5. 骨干网省级出口
6. 骨干网国际出口
那么,木马的操纵者如何获取信息捏?显然,至少要能控制其中一个环节。然而上述这些环节都掌握在运营商(ISP)手中。运营商本身是没啥动力去搞这么复杂的一个木马。那么,谁有这个动力,并且还有足够的权威去指使运营商干这种事情捏?答案呼之欲出,那就是【六扇门】。在公安系统内部,这种搞法称之为“网络临侦”。
★六扇门为啥要搞“网络临侦”?
话说如今是信息时代,体现在六扇门那儿就是:电子证据越来越多(比如“电邮、聊天记录、上网记录”都可以成为证据)。所以最近10年,信息安全行业衍生出一个细分市场叫做【电子取证】。今天咱们要聊的“网络临侦”,就是电子取证的手段之一(还有其它的一些手段,以后有空慢慢聊)。
“网络临侦”可以实现如下几个目的:
◇收集网络行为
通过网络临侦手段,可以详细监控目标嫌疑人的上网行为。为了体现其特色,俺拿“网络临侦”与“GFW”作一个对比。
部署方式不同
GFW 部署在天朝的国际出口。只有当你访问境外网站,你的网络流量才会经过【国际出口】,才会被 GFW 处理。如果你仅仅是访问【墙内】网站,GFW 根本【看不到】你的流量。
相反,用来做网络临侦的设备,可以直接部署在小区交换机甚至是嫌疑人家中的拨号设备中。也就是说,不论你访问国内网站还是国外网站,都会被网络临侦设备监控到。
数据量不同,导致处理方式不同
部署方式不同引出了另一个差异——数据量不同。
GFW 面对的是全国网民的跨国网络流量,那个规模是非常非常惊人的。因此,GFW 的“协议分析模块”和“后续处理模块”就无法作太多的事情。比如说,GFW 无法把它看到的所有流量都保存下来。
相反,由于网络临侦设备可以部署在一个小范围(比如小区交换机),它可以把所监控的流量全部保存下来,供日后分析。
虽然网络临侦设备有上述这几种好处,但是它也有缺点:
1. 无法对付【强加密】的流量
如果目标网民使用强加密的方式上网,临侦设备没法破解这些加密流量,因此也就无法监控目标网民。
2. 无法监控主机的行为
如果你的某个行为仅仅局限在本机,与网络无关。那么单纯的网络监控是无法了解你在做啥?
由于上述这2个缺点,所以临侦设备需要采用其它手段,这就是下面要聊的——收集主机行为的能力。
◇收集主机(本地)行为
但是临侦设备是部署在网络传输路径中,并没有部署在本机。它如何能收集本机的行为捏?于是本文提到的 DCM 木马就出场了。前面俺提到了:DCM 木马具有专门的“传播系统”。这个传播系统,其实就是“临侦设备”。由于它的部署方式,使得它可以很容易篡改你的上网流量,从而可以在流量中植入木马。一旦得逞,木马安装到你本机,那么你的一举一动都在六扇门的监控之下了。
这时候,即便你采用加密的方式上网,甚至采用多重代理上网,都于事无补了。因为木马可以直接看到你的浏览器的地址栏(知道你在访问哪个网站),木马还可以收集你输入的每一个汉字(比如装个键盘钩子既可实现)。
★哪些人需要防范“网络临侦”?
大致来说,有两类人需要防范:
1. 犯罪分子
2. 因为政治原因被六扇门盯上的人——比如维权人士、民运人士、反党人士......
(本文主要是写给第二类人看的)
如果你不是这两者之一,你通常不用太担心被临侦设备盯上。
★如何对付“网络临侦”?——关键性的防范措施
◇一定要加密网络流量
这是最容易想到的应对招数——你一旦加密了网络传输的流量,临侦设备就【无法】对你的上网流量进行木马注入。另外一个好处是,如果你用的是加密代理,临侦设备甚至都无法知道你访问了哪些网站。关于加密网络流量,主要有2种方式:
1. 网站自身提供的 HTTPS
2. 加密代理
这两种方式的中,HTTPS 有如下几个【局限性】:
1. 有很多网站(尤其是小型网站)不支持 HTTPS
2. 如果你通过 HTTPS 访问某网站,临侦设备虽然无法看到你的真实流量的内容,但依然能知道你访问的网站是啥
3. 如果浏览器的证书出现问题(比如你用了朝廷方面发行的 CNNIC 证书),那么单纯的 HTTPS 有可能遭遇“中间人攻击”(洋文叫“MITM”)
4. 如果浏览器存在漏洞(比如“HTTPS 降级攻击的漏洞”),临侦设备【有可能】解密单纯的 HTTPS 流量并实现注入。
与 HTTPS 相比,加密代理具有的好处是:
1. 不受网站本身的限制
即使你访问的网站不支持 HTTPS 也没关系
2. 基于加密代理访问,监控你流量的人无法知道你在访问的网站是啥
临侦设备顶多看到你在访问某个代理服务器,但是【无法】知道你通过这个代理转到了哪个网站
3. 即使你的浏览器证书出了问题,风险也不大
临侦设备因为无法看到你的 HTTPS 流量(HTTPS 流量被包裹在外层的加密代理流量中),无法针对你进行“中间人攻击”
4. 即使你的浏览器含有 HTTPS 协议的漏洞,风险也不大
(类似第3条)
综上所述,“单纯依靠加密代理”比“单纯依靠网站自身的 HTTPS”,要更保险。当然,两者结合更好(前提是网站要支持 HTTPS)
◇要用“强加密”,不要用“弱加密”
很多人都用过 VPN,俺就拿 VPN 协议来举例。VPN 的实现有很多种方式,其中的 PPTP 就是有名的“弱加密”。由于临侦设备的部署特点,它有可能解密 PPTP 协议,并获得其中的明文流量内容。
考虑到大部分同学都不是信息安全圈内的,通常无法判断哪些是弱加密,哪些是强加密。所以俺再来唠叨一个多年的老建议:“基于 TOR 的多重代理”。由于多重代理是【嵌套】的关系,只要其中一重是强加密,整个就是强加密。而 TOR 肯定是强加密的。
关于多重代理,俺早在 N 年前就写了教程,链接在“这里”
◇假如你不得不用明文传输,切记用“虚拟机”隔离不同的上网环境
有些情况下,你不得不用明文方式上网。
举个例子:比如国内的视频网站通常都采用明文传输,不支持 HTTPS。并且大多数国内的视频网站都屏蔽了境外的 IP。也就是说,当你用翻墙代理去访问国内视频网站,无法正常观看。就算你找到某个国内的代理服务器,可以解决“国外IP无法观看”的问题,但走代理终归影响性能。而看视频对网络传输性能的要求还是偏高的。
上述这种情况,就使得你被迫用明文的方式进行网络传输,而这种方式就给了临侦设备可乘之机。
咋办捏?俺的建议是采用虚拟机——把那些被迫使用明文传输的上网行为,都统一放到某个虚拟机(Guest OS)中。这个虚拟机就算被入侵了,至少你的物理系统(Host OS)和其它的虚拟机也不会受到影响(本文暂且不考虑“虚拟机穿透”的风险,这种的概率非常低)。
没玩过虚拟机的同学,请参见俺写的系列教程《扫盲操作系统虚拟机》。
使用虚拟机还有另一个额外的好处——利用快照功能自动回退到干净的状态(关于这招可以参见俺的另一篇教程:《如何用“快照”辅助安全加固、强化隐私保护》)
★如何对付“网络临侦”?——【不够靠谱】的防范措施
DCM 木马曝光之后,有很多网上的文章给出了相应的防范措施,可惜很多措施都不够靠谱。俺下面分别列举,作为反面教材。
◇用 Linux 或 Mac OS 替代 Windows
用 Linux 或 Mac OS 替代 Windows 会在一定程度上提升安全性。别的不提,单说六扇门的临侦系统,主要还是针对 Windows 的。因为大部分网民用的是 Windows。
可惜这个措施【不彻底】。因为六扇门未来有可能开发针对 Mac OS 甚至 Linux 的入侵工具(没准现在已经有了)。
因此,本措施属于“非关键性的”。
◇总是使用带校验机制的自动升级
首先,这个措施实施起来比较困难。因为大部分网民是技术菜鸟,并不知道那些软件的自动升级功能含有“校验机制”。
其次,这个措施是不彻底的。即使你电脑上所有的软件的自动升级都含有校验机制,但如果你没有【全程】加密,临侦设备还是可以通过其它方式对你的【明文】流量进行注入(比如篡改你正在下载的可执行文件),从而让你中招。
所以,这个措施指标不治本。
◇总是检查下载的软件的数字签名
(不知道何为“数字签名”的同学,可以先看《扫盲文件完整性校验——关于散列值和数字签名》)
首先,并不是所有的软件的安装包都自带数字签名。如果某个安装包没有自带数字签名,你就比较难判断该安装包在下载的过程中是否被篡改了。
其次,由于每次下载都要记得检查,这种细心程度大部分人是做不到滴。
这个措施同样指标不治本。
◇对 DNS 协议的防范——只允许 DNS 数据包发往合法的 DNS 服务器
某些文章提到了这个招数,用来限制 DCM 木马往外发送信息。这个招数是【不】靠谱滴。
虽然目前 DCM 木马用的是 DNS 协议来掩盖它的发送行为。但如今 DCM 已经被曝光。它的下一个版本很可能会改用其它的方式来隐藏信息发送行为(不一定再用 DNS 协议了)。
◇禁用可疑的 CA 证书
许多年前,俺就写教程普及了“CA 证书的重要性”,以及“可疑证书的危险性”。
不过捏,在对付网络临侦设备的时候,“禁用可疑的 CA 证书”这个招数用处不大。
举例来说,假如你本机依然存在明文的上网流量,就可能被注入。而明文的上网流量,与 CA 证书没有半毛钱关系。
★俺是如何做到“全程加密”的?
在本文结尾处,稍微分享一下俺的个人经验(其实这个经验,前几年已经在博客评论区分享过了)
大致包括如下几个要点:
1. 基于 TOR 的多重代理
前面已经提到过:TOR 本身是强加密的,所以基于 TOR 的多重代理,整体而言也是强加密的。
再罗嗦一下:多重代理包含了多重的加密,临侦设备非常难对其进行解密,也就谈不上“注入”了。
2. 虚拟机隔离
虚拟机隔离有两个好处:
其一,前面讲过的——某个虚拟机被入侵不会影响到其它虚拟机
其二,可以通过设置虚拟机的虚拟网卡模式,确保该虚拟机内的【所有】软件都无法【直接】联网(教程参见:原理、配置)。換而言之,就是【强制】所有的网络流量都经由多重代理。
之所以要从部署方式上进行【强制】,是为了避免有些网络软件没有走代理,擅自独立联网。这种情况下就存在“流量注入”的风险。
3. Guest OS 定期回退快照
其实只要做到前面两点,临侦设备就很难往你的系统中植入木马了。但是为了以防万一,俺还是养成了一个好习惯——定期(大约几天)回退一次 Guest OS 的快照。
如果你熟悉虚拟化软件的快照功能,自然知道俺这么干的好处是啥。
4. 定期更新重要的软件/系统补丁
补丁的重要性,俺在《如何防止黑客入侵》系列中已经有介绍,此处不再唠叨。
俺至少对“Host OS、Guest OS、虚拟化软件、浏览器、翻墙代理"都会定期升级。
5. Host OS 基本不干啥事儿
(看了某读者的留言,想起来补充这条)
俺平时的各种操作(上网、办公、编程 ......)全都在 Guest OS 中进行,大部分俺常用的软件也都是装在 Guest OS 中。Host OS 基本不干啥事儿(主要是用来运行虚拟化软件)。
好处是:大大降低了 Host OS 被直接入侵的风险。Host OS 是很重要滴——万一被入侵,则所有的 Guest OS 也陷入危险之中。
★对“全程加密”的困惑及解答
当年俺在博客评论区介绍“全程加密”的经验时,有热心读者提出了几个困惑。针对这些困惑,把俺当时的回复整理如下。
如果你看完本文还有其它困惑,欢迎在本文下方留言。
◇困惑1
疑问:
如果采用全程加密,那么自己的公网 IP 对外的流量【全都是】加密流量。反而容易引起怀疑。
俺的解答:
公网 IP 的对外流量大致可以分两种:“在家上网”和“在公司上网”。
对于“公司上网”——
通常每个公司分配的公网 IP 都只有少数几个。公司中所有的人都是通过这少数几个公网 IP 对外访问。即使你采用“全程加密”,但是其他同事未必会这么干(大部分网民的流量应该是以非加密为主)。所以,公司的公网 IP 对外的流量,加密的比例依然很低。
对于“家庭上网”——
如果你家里还有其他家庭成员在上网,你们共用一个公网出口。此时,效果等同于刚才提到的“公司上网”——你的家人显然会有一些明文的流量,所以你家的对外流量【不会】全部是密文。
如果你属于“一人吃饱全家不饿”的类型,那么你可以单独开一个虚拟机专门用来做些普通的网页流量,甚至可以在该虚拟机中开个浏览器不断播放视频。这样一来,你家的对外流量中,加密流量的比例就不会这么大了。
◇困惑2
疑问:
如果采用全程加密,那么在使用某些国产软件(比如 QQ)或国内网站(比如新浪微博)的时候,服务器记录的“访问者 IP”总是来自境外,反而容易引起怀疑。
俺的解答:
首先,如果你真的很关注安全性(尤其是隐私性),就应该尽量远离那些国产软件或国产网站提供的服务。具体原因,俺在博客中已经了唠叨很多次。
如果你不得不用这些东西,还有一个办法:找一个【墙内】的代理服务器,让这个代理服务器成为你多重代理的【最后一跳】。在这种方式下,那些国内公司的服务器(比如 QQ 服务器)看到的“访问者 IP”就是来自墙内了。
★结尾
写本文最大的遗憾就是:这篇博文有可能会帮到某些犯罪分子。
其实俺也很无奈,因为俺首先要帮助那些“反党人士、民运人士、维权人士”对抗国保部门的监控。
from https://program-think.blogspot.com/2016/08/Trojan-Horse-DCM.html