不聯網的電腦就絕對安全嗎?錯了

很久以前有個朋友問我電腦安全的問題,說到上網的電腦可能中毒,他說:“這個問題應該很好辦,要保證安全的電腦不容許上網,就可以了嘛”。

邏輯上說,這樣的確沒錯。但在實際情況下,我們又發現很多“應當安全”的電腦沒有脫離互聯網。我已經無數次看到地鐵、移動營業廳的自助機器上裝了各種安全助手、安全管家了。斷網,物理隔離,這麼簡單的辦法,為什麼做不到呢?

其實,安全領域真的有這種“斷網”的機制,英文叫做air gap(有人翻譯為“氣隙”,我覺得不好,翻譯為“空氣隔絕”都好嘛),被這樣處理的電腦,叫做air gapped computer。按照定義,air gapped computer是與互聯網完全隔絕(但是與內部網絡聯通)的電腦,但也有些公司堅持認為,如果防火牆足夠強大完善,躲在防火牆後面的電腦也可以叫做air gapped computer(以下簡稱“物理隔絕”)。

有了air gap,安全看起來就不再是問題,大家可以高枕無憂了。但是,數據安全真的這麼簡單嗎?不是的。

物理隔絕的電腦也是需要數據交換的,常用的U盤可以成為它的命門。大名鼎鼎的震網(Stuxnet)病毒就可以感染被物理隔絕的電腦,比如伊朗伊朗核設施的離心機就被這種病毒感染了(據說病毒是美國國家安全局NSA開發的)。它通過U盤傳播到控制離心機的電腦上,不斷變化離心機的運轉速度,導致離心機報廢。

離心機的控制系統是常說的“工控”,也就是與外界隔絕的單片機,可以簡單理解為“安心躲在自己的龜殼玩”的系統。我們日常使用的智能水錶、智能電錶,都是類似的工作方式。通常認為,這是絕對安全的。但是,“震網”病毒似乎一開始就不是為互聯網傳播,而是為USB傳播定製的。換句話說,只要用過U盤,就可能感染這種病毒。所以,“震網”病毒順利地傳播到了離心機的控制電腦上,而且這種病毒做得相當巧妙,伊朗人只能發現離心機不斷莫名其妙地出現故障,這些故障看起來卻如此“自然”。

然而凡事總有想不到的地方,開發的震網病毒也犯了“想當然”的錯誤。按照原來的設計,如果監測到運行的電腦是太“古老”的Windows 95 Windows 98,就會自動註銷。但是程序員錯誤地把判斷條件裡的“或”寫成了“和”,也找不到這些老機器來測試,所以直接發佈了。結果,只有當運行的電腦是太古老的“Windows 95 Windows 98”的時候才會自動註銷,而這顯然是不可能的。在伊朗那些老舊的電腦裡,“震網”病毒頻繁引發藍屏故障,這才露出馬腳,最終被抓出來。

回頭說安全,U盤可能成為安全命門沒錯,但即使是震網病毒,數據也只能單向傳輸,設計者處心積慮要達到的目的很明確,就是破壞。可是,有沒有辦法能從被感染的機器上把數據偷出來呢?答案是有的。

以色列本·古裡安大學數字安全實驗室(Cyber Security Lab)的研究者們展示了幾種辦法。一種辦法是用計算機和手機配合完成:首先感染計算機,計算機在運行過程中自然會發出電磁輻射,而接受電磁信號正是手機的專長。實驗已經證明,通過控制顯卡工作時發出無線電波,用手機上的FM接收器收取,就可以取得電腦上的數據,有效距離可以達到30米,完全可以隔幾堵牆下手。

還有一種辦法更詭異,堪稱“腦洞大開”。如果有兩臺電腦放在一起,一臺可以上互聯網,一臺做了物理隔絕。如果兩臺電腦都感染了惡意軟件,它們就可以通訊——通過溫度。在物理隔絕的電腦上,惡意軟件可以通過計算量和傳感器精確控制溫度,另一臺電腦的傳感器可以精確感知溫度的變化。如果把數據用溫度變化進行編碼,數據就可以傳輸出去。

只要兩臺電腦的距離不超過40釐米,這種手段就是有效的——而且,這種通訊可以是雙向的。你或許會覺得這種方法帶寬太低,沒錯,它的帶寬確實很低,但是已經足夠用來盜竊密碼和密鑰了。

我不知道有多少人會和我一樣覺得這種辦法“腦洞大開”,因為我們長期以來都已經形成了思維定勢,覺得傳輸數據需要用網絡,至少需要用無線電波,卻沒有想到還能另闢蹊徑。這讓人想起羅伯特·梅特卡夫在1973年給“以太網”命名時的做法,他巧妙借用了物理學中源自古希臘的“以太”概念——以太充滿了空間,承載著比特流,將它們傳到各處。

開了這個腦洞,更多的辦法就會奔湧而出。它們的做法大都類似:先用U盤之類的媒介感染被物理隔絕的電腦,然後通過各種“以太”把數據傳輸出去。比如有一種類似做法是由惡意軟件控制電腦的揚聲器,發出人耳聽不見的超聲波,再用傳感器接收超聲波。

最近,本·古裡安大學的研究人員又想到了一種更巧妙的辦法。惡意軟件感染物理隔絕的電腦之後,通過硬盤燈來發出信號。之所以選擇硬盤燈,有幾個原因。

首先,它的帶寬足夠:硬盤燈每秒可以閃爍6000次,用摩爾斯電碼之類的編碼方式,每秒鐘可以傳輸4000 bit,也就是半小時差不多1m的數據。其次,硬盤燈的閃爍相當正常,沒有人會想到這裡面有什麼貓膩,只會認為這是在搜索或者生成索引。再者,觀測光信號相當容易,只要通過窗戶能看到,就可以通過放飛小型無人機,或者在其它地方用望遠鏡觀察,唯一的問題在於觀察設備:普通智能手機的攝像頭每秒鐘只能接收60 bit,Go Pro每秒鐘可以接收120 bit,專門的感光設備可以接收4000 bit。

研究人員也提出了防範策略:物理隔絕的電腦應當放在安全的房間裡,遠離窗戶,或者在窗戶上粘貼專門隔絕閃光的薄膜。不過,最簡單的辦法當然是遮住服務器的硬盤燈。

我在朋友群裡分享了“通過硬盤燈竊密”的新聞,本來只是讓大家一起跟我腦洞大開,想著這事還相當遙遠。沒想到的是,從大家的反應裡,我得到了更加腦洞大開的信息:

保密嚴格單位的電腦必須放在沒有窗戶的房間裡,因為真的發生過“把圖像編碼之後,通過屏幕閃爍發出去”的事故;

即便不是物理隔絕的電腦,也有奇特的辦法洩密:比如在服務器上偷偷跑大型任務,導致頁面響應速度有規律的延遲……

這樣看來,“安全”永遠不是一勞永逸的事情,在你意想不到的地方,永遠有漏洞在等著你。


分享到:


相關文章: