美國國家安全局是如何入侵你的電腦的?
前兩天,奇虎360了一個報告,講述了美國國家安全局(NSA,不是NASA啊)針對國家級互聯(lián)網(wǎng)專門設(shè)計(jì)的一種先進(jìn)的網(wǎng)絡(luò)流量劫持攻擊技術(shù) :Quantum(量子)攻擊。
(注意,不是量子計(jì)算或者量子通信,就是一個名稱而已。)
這個攻擊方式可以劫持全世界任意地區(qū)、任意網(wǎng)上用戶的正常網(wǎng)頁瀏覽流量,然后利用漏洞攻擊并植入后門程序。
具體的過程是這樣的:
0. NSA把FoxAcid(酸狐貍)服務(wù)器部署在全球的骨干互聯(lián)網(wǎng)中 。
1.“酸狐貍”會監(jiān)控HTTP網(wǎng)絡(luò)請求,一旦發(fā)現(xiàn)NSA想要攻擊的目標(biāo),會比真實(shí)網(wǎng)站服務(wù)器更早做出響應(yīng),率先向用戶電腦發(fā)出重定向報文。
2. 受害者被迫訪問“酸狐貍”服務(wù)器。
3. “酸狐貍”利用各種主流瀏覽器和Flash等應(yīng)用程序的 0day漏洞對目標(biāo)對象實(shí)施攻擊,再向其上網(wǎng)終端中植入初始后門程序。
如果攻擊成功,植入后門,那電腦就被控制了。
0day漏洞指的是還未被軟件廠商或者防病毒廠商發(fā)現(xiàn)的漏洞。
作為程序員,我的職業(yè)病又犯了,開始思考攻擊中的幾個問題:
(1) 如何監(jiān)聽網(wǎng)絡(luò)請求,尤其是HTTPS請求?
(2)如何能比正常服務(wù)器更早地做出響應(yīng)?
(3)這些厲害的0day 漏洞從哪里來的?
我不是網(wǎng)絡(luò)安全專家,下文分析不一定精準(zhǔn),歡迎安全大神批評指正。
1.監(jiān)聽網(wǎng)絡(luò)請求
如果是Http請求,那很簡單,是明文的,只要處理速度夠快就行。
如果是Https請求呢?那就不好辦了。
我之前有一篇非常受歡迎的文章,講述了Https的基本原理, 沒看過的同學(xué)可以點(diǎn)擊下方圖片看看。
簡單來說,就是瀏覽器獲得服務(wù)器的證書,從中提取服務(wù)器的公鑰,用它加密一個對稱密鑰,發(fā)給服務(wù)器,雙方用這個對稱密鑰來加密通信。
對Https有中間人攻擊,如果NSA能夠搞出經(jīng)過合法簽名的證書,讓瀏覽器誤認(rèn)為是服務(wù)器的,那就可以充當(dāng)中間人,截獲通信請求了。
NSA能做到嗎?我也沒有明確答案。
還有一種攻擊就是SSLStrip :
攻擊者設(shè)法將Https鏈接替換成Http,指向攻擊者的服務(wù)器,讓受害者訪問。
與此同時,攻擊者服務(wù)器和真實(shí)服務(wù)器發(fā)起連接,這樣攻擊者就變成了中間人,可以監(jiān)控一切流量了。
例如波蘭遭遇大規(guī)模DNS劫持用戶網(wǎng)上銀行,攻擊者就是利用路由器的DNS漏洞,使得受害者先訪問一個“邪惡的”DNS服務(wù)器,這樣就可以給受害者返回一個“邪惡的”服務(wù)器地址,讓受害者訪問(使用Http)。
“邪惡”服務(wù)器再和真實(shí)的銀行連接(用正常的Https),這樣攻擊者就處于中間人地位,竊取任何數(shù)據(jù)了。
當(dāng)然,這種從家用路由器下手的方式和NSA的量子注入攻擊是不同的,因?yàn)镹SA的酸狐貍服務(wù)器部署在骨干互聯(lián)網(wǎng)上。
2.更快地做出反應(yīng)
酸狐貍服務(wù)器監(jiān)聽到請求后,做到主要工作是:分析請求 ,偽造數(shù)據(jù)包,發(fā)回給瀏覽器。
這三個時間加起來,一定要小于正常服務(wù)器把響應(yīng)發(fā)給瀏覽器的時間,否則沒法實(shí)施注入攻擊。
考慮到骨干互聯(lián)網(wǎng)的超大流量,至少都是100Gbps,和酸狐貍對全世界所有國家的無差別攻擊,它的處理能力肯定是非常驚人的。
由此也聯(lián)想到美國對華為不遺余力的打壓,這背后很有可能有控制網(wǎng)絡(luò)設(shè)備的目的。
3.0day 漏洞
0day漏洞前面說了,就是軟件廠商和防病毒廠商都沒有發(fā)現(xiàn)的漏洞。
量子攻擊最終的目的是利用0day漏洞在瀏覽器等終端中植入后門,一旦成功,機(jī)器就被控制。
美國國家安全局掌握了多少0day漏洞?恐怕他自己知道。
但是想想我們用的操作系統(tǒng)、瀏覽器、辦公軟件、圖形處理軟件幾乎都是美國的,一旦發(fā)生危機(jī),這其中的漏洞是沒人會給我們打補(bǔ)丁的。
咱們前面說到Https看起來很難攻破的樣子,但是這里必須提醒大家:Https只能對通信的過程進(jìn)行保護(hù),防止數(shù)據(jù)在網(wǎng)絡(luò)中被偷看,篡改。它是無法保護(hù)通信的兩端的。
一旦強(qiáng)盜進(jìn)入你的計(jì)算機(jī),在你使用Https進(jìn)行數(shù)據(jù)加密之前就把數(shù)據(jù)給拿到了,還指望Https來保護(hù),那就是笑話了。
所以,當(dāng)你訪問一個既有Http頁面,也有Https頁面的網(wǎng)站的時候,訪問Http頁面的請求就可能被注入,被0day漏洞攻擊,植入后門。
有些網(wǎng)站比如Google,號稱全部都是Https的,酸狐貍是不是就沒辦法了?
從斯諾登曝光的棱鏡計(jì)劃中有這么一張圖:
從中可以看出,用戶和GFE(Google Front End)之間使用了SSL, 但是,在Google 的數(shù)據(jù)中心中,用的卻是明文傳輸,美國國家安全局在這里通過光纖復(fù)制數(shù)據(jù)流,監(jiān)聽就可以了,非常簡單。
在網(wǎng)上,360安全衛(wèi)士被認(rèn)為是流氓軟件,但是很多人不知道的是360也是被美國制裁的一份子,也在美國的實(shí)體清單上。
有一說一,360在網(wǎng)絡(luò)安全領(lǐng)域是挺強(qiáng)的,它的安全團(tuán)隊(duì)對國家安全是做出過重大貢獻(xiàn)的,具體的細(xì)節(jié)這里就不羅列了,感興趣的可以去搜一下。
最后,可能會有人要問了:你BB了這么多,為什么NSA沒有入侵我的電腦呢?
答案很簡單:黑客沒有盯上你,是因?yàn)槟愕膬r值不高。