美國國家安全局是如何入侵你的電腦的?
前兩天,奇虎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沒有入侵我的電腦呢?
答案很簡單:黑客沒有盯上你,是因為你的價值不高。