前两天,奇虎360了一个报告,讲述了美国国家安全局(NSA,不是NASA啊)针对国家级互联网专门设计的一种先进的网络流量劫持攻击技术 :Quantum(量子)攻击。

(注意,不是量子计算或者量子通信,就是一个名称而已。)

这个攻击方式可以劫持全世界任意地区、任意网上用户的正常网页浏览流量,然后利用漏洞攻击并植入后门程序。

具体的过程是这样的:

0. NSA把FoxAcid(酸狐狸)服务器部署在全球的骨干互联网中 。

1.“酸狐狸”会监控HTTP网络请求,一旦发现NSA想要攻击的目标,会比真实网站服务器更早做出响应,率先向用户电脑发出重定向报文。

2. 受害者被迫访问“酸狐狸”服务器。

3. “酸狐狸”利用各种主流浏览器和Flash等应用程序的 0day漏洞对目标对象实施攻击,再向其上网终端中植入初始后门程序。

如果攻击成功,植入后门,那电脑就被控制了。

0day漏洞指的是还未被软件厂商或者防病毒厂商发现的漏洞。

作为程序员,我的职业病又犯了,开始思考攻击中的几个问题:

(1) 如何监听网络请求,尤其是HTTPS请求?

(2)如何能比正常服务器更早地做出响应?

(3)这些厉害的0day 漏洞从哪里来的?

我不是网络安全专家,下文分析不一定精准,欢迎安全大神批评指正。

1.监听网络请求

如果是Http请求,那很简单,是明文的,只要处理速度够快就行。

如果是Https请求呢?那就不好办了。

我之前有一篇非常受欢迎的文章,讲述了Https的基本原理, 没看过的同学可以点击下方图片看看。

简单来说,就是浏览器获得服务器的证书,从中提取服务器的公钥,用它加密一个对称密钥,发给服务器,双方用这个对称密钥来加密通信。

对Https有中间人攻击,如果NSA能够搞出经过合法签名的证书,让浏览器误认为是服务器的,那就可以充当中间人,截获通信请求了。

NSA能做到吗?我也没有明确答案。

还有一种攻击就是SSLStrip :

攻击者设法将Https链接替换成Http,指向攻击者的服务器,让受害者访问。

与此同时,攻击者服务器和真实服务器发起连接,这样攻击者就变成了中间人,可以监控一切流量了。

例如波兰遭遇大规模DNS劫持用户网上银行,攻击者就是利用路由器的DNS漏洞,使得受害者先访问一个“邪恶的”DNS服务器,这样就可以给受害者返回一个“邪恶的”服务器地址,让受害者访问(使用Http)。

“邪恶”服务器再和真实的银行连接(用正常的Https),这样攻击者就处于中间人地位,窃取任何数据了。

当然,这种从家用路由器下手的方式和NSA的量子注入攻击是不同的,因为NSA的酸狐狸服务器部署在骨干互联网上。

2.更快地做出反应

酸狐狸服务器监听到请求后,做到主要工作是:分析请求 ,伪造数据包,发回给浏览器。

这三个时间加起来,一定要小于正常服务器把响应发给浏览器的时间,否则没法实施注入攻击。

考虑到骨干互联网的超大流量,至少都是100Gbps,和酸狐狸对全世界所有国家的无差别攻击,它的处理能力肯定是非常惊人的。

由此也联想到美国对华为不遗余力的打压,这背后很有可能有控制网络设备的目的。

3.0day 漏洞

0day漏洞前面说了,就是软件厂商和防病毒厂商都没有发现的漏洞。

量子攻击最终的目的是利用0day漏洞在浏览器等终端中植入后门,一旦成功,机器就被控制。

美国国家安全局掌握了多少0day漏洞?恐怕他自己知道。

但是想想我们用的操作系统、浏览器、办公软件、图形处理软件几乎都是美国的,一旦发生危机,这其中的漏洞是没人会给我们打补丁的。

咱们前面说到Https看起来很难攻破的样子,但是这里必须提醒大家:Https只能对通信的过程进行保护,防止数据在网络中被偷看,篡改。它是无法保护通信的两端的。

一旦强盗进入你的计算机,在你使用Https进行数据加密之前就把数据给拿到了,还指望Https来保护,那就是笑话了。

所以,当你访问一个既有Http页面,也有Https页面的网站的时候,访问Http页面的请求就可能被注入,被0day漏洞攻击,植入后门。

有些网站比如Google,号称全部都是Https的,酸狐狸是不是就没办法了?

从斯诺登曝光的棱镜计划中有这么一张图:

从中可以看出,用户和GFE(Google Front End)之间使用了SSL, 但是,在Google 的数据中心中,用的却是明文传输,美国国家安全局在这里通过光纤复制数据流,监听就可以了,非常简单。

在网上,360安全卫士被认为是流氓软件,但是很多人不知道的是360也是被美国制裁的一份子,也在美国的实体清单上。

有一说一,360在网络安全领域是挺强的,它的安全团队对国家安全是做出过重大贡献的,具体的细节这里就不罗列了,感兴趣的可以去搜一下。

最后,可能会有人要问了:你BB了这么多,为什么NSA没有入侵我的电脑呢?

答案很简单:黑客没有盯上你,是因为你的价值不高。