當聽到「黑客」一詞時,您可能會在腦子中浮現出好萊塢大片裡電腦專家與頂級黑客之間進行攻防較量的場景。不過,在現實生活中,黑客們的確會時常使用側信道攻擊(side-channel attack),在神不知鬼不覺的情況下,「隔空」從設備中提取信息,而目標系統的安全態勢絲毫未受影響。
什麼是側信道攻擊?
假設,和您同住一個屋簷下的室友最近老是神秘兮兮地給某人打電話。好奇心使您迫不及待地想一探究竟。這時,你發現他使用的是帶有物理按鍵的固定電話。那麼,您就可以在無需走到他身邊的情況下,根據他每一次按下的數字鍵的音調,通過一定的「反向工程」的規則,推斷出他依次按下的是哪些數字。
不過,如果所有的按鍵只能發出同樣聲調的話,您也許可以通過估算室友將手指從一個數字鍵移到另一個時所花費的時間。當然,您可能需要事先對室友的撥號習慣,特別是兩次按鍵之間的時間間隔,具有敏銳的洞察和了解。
如果您觀察到的間隙,恰好等於您事先獲得的測量值,那麼可以判斷出他剛才按下的兩個數字鍵是相鄰的;如果有較長的延遲,則表示下一個數字鍵並不相鄰;而如果出現兩次快速的連擊,則表示他按下了相同的數字。據此,您可以推斷出適當的時序排列,進而估算出對應的可能性數字序列。
這裡提到的兩種方法就是典型的「側信道攻擊」。可見,它是一種在無需直接觸及到設備的情況下,截獲信息或提取數據的攻擊方法。一些看似稀鬆尋常的狀態與特徵,往往會被「有心人」用來「隔山打牛」,得到「意外收穫」。
在了解了側信道攻擊的基本概念和工作原理之後,我們下面來看看黑客通常會具體開展哪些類別的攻擊方式:
通過時序攻擊(timing attacks)的發現算法
時序攻擊主要分析的是完成某個過程所需要的時間。這有點類似於上面提到的估算室友的撥號時間,並將其與已掌握的時間間隔作比較。
黑客事先向已知的算法提供不同的輸入,以觀察該處理過程所耗費時長。據此,他們可以從中整理出目標算法在處理一定體量數據的用時,進而找到對應的破解方案。
在視頻連結中,Joe Grand創建了一個帶有四個按鈕的密碼鎖設備。在輸入首個代碼後,該設備會將用戶的輸入與已知代碼的第一部分進行比較。如果相符合,他就可以第二次按下按鈕,並與既定的組合進行比較,依此類推。如果出現不相符的情況,該設備則立即停止後續的處理。
如果您將所有四個按鈕都作為第一個輸入代碼予以測試,那麼可能需要至多重試四次,才能找到正確的那個按鈕。畢竟一旦出現比較錯誤,設備就會在首位就立即停止。一旦知道了第一個按鈕是什麼,我們就可以嘗試將其與每一種可能組成前兩位,依此類推。只要允許處理的時間足夠長,您最終就能夠發現正確的代碼組合。
其實,時序攻擊也是熔斷攻擊的主要組成部分。它分析了讀取緩存的速度,並據此來讀取緩存中的數據。
通過功耗分析來檢查處理器的使用率
黑客也可能會通過監視組件正在使用的電量,來查看其對應的操作功能。例如:如果某個組件消耗的功率比正常值要多一些,那麼它可能正在處理某些複雜的信息;而當它的功耗比平時較少時,則可能表明它正在進入下一個處理階段。
黑客甚至可以使用用電量的特徵籤名,來查看正在發送的數據。例如,在AnySilicon上有一張功率表。該表顯示了能夠發送二進位數據的各種組件。其中,小電塊(bump of power)為0,而高電塊則為1。
通過聲學分析來偵聽線索
聲學分析是指:黑客偵聽來自設備的音頻模式,並使用既有的結果來組合出對應的信息。在上述的探聽室友電話號碼的示例中,偵聽按鍵的撥號音就是一次聲學分析的攻擊。
目前,已經一些研究已經證明了聲學攻擊的可行性。例如,其中有一項研究是:通過偵聽印表機發出的聲音,來確定其列印的內容,而且準確率竟能達到72%。此外,如果攻擊者事先已經大致了解了該文件的內容,那麼這一比率可能會高至95%。
另一項名為SonarSnoop的研究,是將電話變成了聲納設備。研究人員讓電話通過揚聲器發出人耳聽不見的聲音,並通過麥克風記錄下對應的回聲。此類聲納回波甚至可以讓攻擊者獲悉到被偵聽者在繪製解鎖圖案時,觸碰到手機屏幕的具體位置,進而了解到屏幕是如何被解鎖的。
使用電磁分析來監視背景波
黑客可能採取的第三種攻擊方式是:使用電磁(Electromagnetic,EM)分析,來監視設備發出的背景波,進而解密設備的各項行為。或者至少他們能夠發現周圍的電子設備。例如:他們可以使用電話,通過查找附近的EM波源,來發現隱藏在周圍的監控攝像頭。
另一項研究是著眼於物聯網設備及其電磁輻射的。從理論上講,法證團隊可以監視那些可疑的設備,而無需真正侵入它們。這在法理和取證環節上非常重要。畢竟,執法部門既可以監視到目標的可疑行徑,又不會留下任何痕跡。
如何保護自己免受側信道攻擊
不幸的是,目前並沒有簡單的方法可以使您的設備不受側通道攻擊。可以說,只要您在操作過程中使用了電源,設備就會產生輻射並發出聲音,而黑客就能夠針對這些「信道」上的信息進行分析。
當然,您可以設法幹擾或預防黑客採取攻擊性的行為。例如,您可以使用檢測電話登錄模式的SonarSnoop程序。不過,該程序也是一把「雙刃劍」。它可能會被用在與其他惡意軟體相似的分發渠道上。例如,黑客會將它隱藏在供人下載的惡意應用程式或網頁中。
可見,雖然您不能阻止設備發出洩密信號,但是可以避免安裝那些被用於監視此類信號的軟體代理。遵照基本的安全運維概念:保持您設備上的防病毒工具為最新,並保持良好的網絡安全態勢,是非常必要的。此外,對數據進行加密,在信號傳輸裝置和線路上構造法拉第籠,以及發射白噪聲,也是一些對抗側信道攻擊的有效方式。