在視頻會議已經廣泛普及的今天,我們電腦的麥克風,也能成為一種攻擊者獲取我們自己電腦上機密信息的側信道攻擊手段。

普遍印象里,側信道攻擊需要物理上能夠接近設備乃至在目標設備上運行目標代碼作為前提,而本文提出了一種完全“被動”的遠程側信道攻擊方式。這種攻擊不需要物理上接近設備,也不需要對目標設備有任何控制權限,只需要攻擊目標在參加視頻會議時開啟麥克風,攻擊者就可以通過麥克風捕捉到的電磁側信道泄露,進而獲取被攻擊者電腦正在瀏覽的網頁、加密程序運行過程中的密鑰、乃至游戲狀態等隱私信息。

筆記本麥克風如何泄露你的信息?

如圖1所示,在筆記本中主板上常見的一種狀態是,筆記本內置的麥克風與聲卡之間有連線,而連線距離CPU相當近,這也就意味著只要筆記本處于收音狀態,那么因CPU計算過程產生的 電磁信號就會對麥克風的收音產生干擾,換而言之,CPU運行過程中產生的電磁信號所蘊含的信息,就被麥克風記錄下來了。

這就是本篇文章攻擊的前提:即CPU運行泄露出的信息能被麥克風記錄下來。而麥克風記錄下來的信息又會被如實通過視頻會議等方式如實傳遞給攻擊者。因此,攻擊者不需要對設備有任何操作,只需要被動等待,就能夠獲取所需的信息,進而對目標設備上的隱私信息進行恢復。

圖1 CPU運行的產生的電磁信息泄露示意圖

可行性驗證

為了驗證通過筆記本內置麥克風手機CPU電磁泄露的這一思想的可行性。如圖2所示,作者做了簡單的實驗進行證明,首先作者編制了一個簡單的測試程序,該程序只會執行0.8s的整數乘法循環以及0.4s的睡眠。在圖2聲譜圖中可以看到,不同的指令使得CPU的負載狀況不同,在這些聲譜圖中,CPU的負載狀況變化信息可以被聲音信號收集,顯示出周期性的變化。

根據該實驗,作者初步證明了通過麥克風收集電磁泄露這一想法的可行性。

圖2 用麥克風收集CPU運行信息的可行性驗證

真實實驗

據此,作者提出的攻擊場景如下:當被攻擊者在執行敏感操作的時候,例如瀏覽網站、加密簽名、游戲渲染時。如果此時被攻擊者同時掛著視頻通話軟件導致麥克風處于開啟狀態,那么攻擊者如果也在同一個視頻會議里,那么攻擊者就可以自由獲取攻擊者的麥克風信息,從而進行遠程攻擊來分析被攻擊者此時瀏覽的網頁類型、加密簽名的密鑰、以及游戲渲染狀態等私密信息。

1、網頁識別

首先,作者假定被攻擊者在外掛視頻會議,麥克風開啟時正在瀏覽網頁(注意,作者實驗中選擇的網頁均為動態網頁,即網頁并非完全靜止,而是有數量統計、倒計時等動態組件,因此動態網頁才會使CPU有負荷,進而產生電磁輻射),此時通過麥克風收集到的信息,識別被攻擊者瀏覽的網頁是什么,如圖3所示。

作者使用宏碁S3筆記本電腦,并以循環的方式打開了每個網站。每次訪問時,作者使用Selenen的瀏覽器控制自動化來啟動一個指向固定網站地址的火狐窗口,讓它打開約40秒,然后關閉它。然后在打開下一頁之前允許了5秒鐘的睡眠時間。在攻擊者的一端,我們記錄了被攻擊者在打開頁面期間輸入的音頻。并將此作為輸入,預處理后放入神經網絡中進行分類。從圖3中可以看到,不同的網頁會有不同的聲譜圖,因此可以利用神經網絡進行判別。

圖3 不同網頁對應收集到的聲譜圖

作者選取了Alexa’s top-30評選出的最受歡迎的三十個網頁中的14個具有動態元素的網頁進行分類,成功率如圖4所示,可以看出,絕大多數網址都可以成功進行分類。

圖4 神經網絡分類情況

作者還特意提到,實際攻擊場景中由于麥克風一定會記錄各種環境噪音,所以噪音對攻擊成功率的影響也需要被進一步進行系統性評估,為此作者專門設計了加入環境音的實驗。作者使用電視節目《The Office》第一季和第二季的劇集作為環境背景音,研究了背景音大小對于攻擊成功率的影響。如圖5所示,α為背景音在背景音和泄露信號中的所占權重。從圖中可以看到,只有占比超過0.9后成功率才會收到明顯影響,所以這進一步說明了該攻擊方法的魯棒性。

圖5 背景音占比對攻擊成功率的影響

2、ECDSA密鑰恢復

為了進一步探究該方法的實際攻擊能力,作者嘗試利用收集到的音頻破解被攻擊者電腦進行ECDSA加密時的密鑰,作者在攻擊者的對話一側錄制了音頻,對應于在宏碁目標目標上簽名的2萬條不同的信息。我們以循環的方式重復簽名所有20,000條消息,直到每條消息被簽名91次。

作者提到由于不同的前置0的數量會導致Libgcrypt的簽名操作運行時間不同,所以可以泄露出簽名操作的具體位置。

圖6 Libgcrypt的簽名操作運行時長

與不同nonce長度的關系

如圖7所示,作者成功通過聲譜圖構造波形圖,并找到簽名位置,進而對其進行側信道攻擊并恢復標量k。

圖7 左為聲譜圖 右為經過基帶濾波和AM解調的波形圖

3、用側信道方式打開一種另類的CS游戲透視掛

CS是最著名和最具商業成功的在線第一人稱射擊游戲之一,在CS中,每個游戲會話都有一個3D虛擬環境(地圖),每個玩家都控制一個位于它上面的類似人的化身,其目的是“殺死”其他化身。CS模擬了一個近距離的戰斗場景,玩家可以通過使用地圖的布局來獲得戰術優勢,比如使用無生命的物體(如墻壁和汽車)來躲避和設置埋伏。CS在分布式客戶機-服務器模型中工作:任何人都可以運行一個服務器節點,并在線發布它,以便其他玩家加入。為了互相競爭,玩家必須連接到同一個服務器。服務器和客戶端之間的游戲狀態同步如下:每個客戶端定期將其化身的位置和視角發送到服務器。客戶端還可以從服務器上獲得關于中所有現有對象的更新,即他們的視野,這是地圖上的一個錐狀區域。然后使用這些信息在客戶端上本地呈現玩家的視圖。

這也就意味著本地玩家在CPU所接受到的錐形區域內有敵人存在時,盡管顯示屏上有障礙物遮擋而導致看不見敵人,但實際上CPU依然會對現有對象進行更新。也就是說會導致CPU的狀態不同于錐形視野中無人的情況,如圖8所示。此時攻擊者就可以利用聲譜圖的不同判斷墻后是否有人。

圖8 CS中錐形視野中有無敵人與攻擊者獲得的信號關系圖

總結

本文提出了一種遠程側信道攻擊方法,利用了如今廣泛被大家使用的視頻會議這一場景,通過被攻擊者的麥克風收集其筆記本電腦運行過程中產生的電磁信息進行攻擊,并通過恢復網頁類型、恢復ECDSA密鑰、游戲開掛這三種方式,進行了充分實驗,證明了該攻擊方法的有效性。

參考資料

[1] Genkin D, Nissan N, Schuster R, et al. Lend Me Your Ear: Passive Remote Physical Side Channels on {PCs}[C]//31st USENIX Security Symposium (USENIX Security 22). 2022: 4437-4454.