張 琪,劉文斌,丁建鋒,王 哲,廖翔宇,宋 滔
(中國電子科技網(wǎng)絡(luò)信息安全有限公司,四川 成都 610041)
防范網(wǎng)絡(luò)攻擊的一種較有效的措施是使被防護(hù)對(duì)象與網(wǎng)絡(luò)物理隔離,也就是將目標(biāo)設(shè)備或網(wǎng)絡(luò)從公共或其他可訪問網(wǎng)絡(luò)中分離出來。然而,通過社會(huì)工程學(xué)、供應(yīng)鏈滲透等手段,可以實(shí)現(xiàn)對(duì)物理隔離計(jì)算機(jī)的木馬植入或使其感染病毒,并且以聲、光、電磁、熱等不同形式建立用于信息傳輸?shù)碾[蔽通道[1]。
基于聲、光、電磁等形式建立的隱蔽通道已有相關(guān)研究,針對(duì)計(jì)算機(jī)系統(tǒng),通過熱量建立的隱蔽熱通道隱蔽性更高,更不容易被發(fā)現(xiàn)。
由于計(jì)算機(jī)處理器、硬盤、內(nèi)存、主板或者其他電子設(shè)備工作時(shí)有電流通過,或多或少會(huì)發(fā)出熱量傳遞到周圍環(huán)境中,這些熱量可能會(huì)被周邊事先設(shè)置的溫度傳感器或者熱量傳感器監(jiān)測而建立一個(gè)隱蔽熱學(xué)通道。
本文首先提出一個(gè)新的對(duì)抗模式,揭示物理隔離網(wǎng)絡(luò)可以在一個(gè)建立的隱蔽熱通道上實(shí)現(xiàn)通信接收;其次,展示了攻擊者怎樣通過受感染的空調(diào)系統(tǒng)(假設(shè)該空調(diào)系統(tǒng)已經(jīng)連接到互聯(lián)網(wǎng))將命令發(fā)送到物理隔離網(wǎng)絡(luò)中的被感染主機(jī);最后,通過實(shí)驗(yàn)驗(yàn)證以熱建立的隱通道可行,并給出了應(yīng)對(duì)這種類型的隱通道的措施。
傳統(tǒng)的固有思維是如果敏感網(wǎng)絡(luò)與所有其他公共網(wǎng)絡(luò)(如因特網(wǎng))之間沒有連接,那么敏感網(wǎng)絡(luò)不會(huì)有被遠(yuǎn)程攻擊的安全問題。換句話說,人們認(rèn)為如果沒有物理通道與隔離網(wǎng)絡(luò)通信,那么攻擊者不能突破該網(wǎng)絡(luò)。然而,這種策略并非萬無一失。攻擊者一直在開發(fā)橋接物理隔離網(wǎng)絡(luò)的方法,并且已經(jīng)有了一些成功案例。一個(gè)突破物理隔離網(wǎng)絡(luò)進(jìn)行攻擊的典型案例是針對(duì)“伊朗核計(jì)劃”[2]的計(jì)算機(jī)病毒“stuxnet”(“震網(wǎng)”)。作為世界上首個(gè)“超級(jí)破壞性武器”,“震網(wǎng)”病毒已經(jīng)感染了全球超過45 000個(gè)網(wǎng)絡(luò),60%的個(gè)人電腦感染了這種病毒?!罢鹁W(wǎng)”代碼非常精密,主要有兩個(gè)功能,一是使伊朗的離心機(jī)運(yùn)行失控,二是掩蓋發(fā)生故障的情況“謊報(bào)軍情”,以“正常運(yùn)轉(zhuǎn)”記錄回傳給管理部門,造成決策誤判。
2013年,兩個(gè)研究人員未經(jīng)授權(quán)輕易進(jìn)入了谷歌總部辦公樓的暖通空調(diào)系統(tǒng)[3]。這兩個(gè)研究人員不僅能夠通過被入侵的系統(tǒng)(Tridium Niagara AX平臺(tái))對(duì)目標(biāo)房間進(jìn)行加熱和冷卻,還能夠進(jìn)入用于橋接的局域網(wǎng)主機(jī)(在本地網(wǎng)絡(luò)上的計(jì)算機(jī))。在這類系統(tǒng)中也看到了類似的漏洞,使攻擊者可以訪問建筑物的門鎖、供電、電梯和其他各種自動(dòng)化系統(tǒng)[4]。另外,HVAC系統(tǒng)(供熱、通風(fēng)和空調(diào)系統(tǒng))中的空調(diào)另一個(gè)被入侵的可能是攻擊基于Wi-Fi控制的恒溫器[5]。這些類型的接口很容易受到Wi-Fi或其他社會(huì)學(xué)工程攻擊[6]。
上述研究表明,在某些情況下,一個(gè)不安全且公共連接的網(wǎng)絡(luò)與物理隔離網(wǎng)絡(luò)具有一些重疊的物理空間,這些網(wǎng)絡(luò)很容易被安全專家忽略,被入侵后可以用來攻擊附近的安全網(wǎng)絡(luò)。HVAC系統(tǒng)屬于這種不安全但是看似無辜的網(wǎng)絡(luò),可以連接到可訪問網(wǎng)絡(luò)(如互聯(lián)網(wǎng))。目前,很多大型建筑的暖通空調(diào)系統(tǒng)(HVAC)系統(tǒng)都通過網(wǎng)絡(luò)連接在一起,目的是設(shè)定每個(gè)房間的溫度和報(bào)告空調(diào)故障。
隨著物聯(lián)網(wǎng)的快速發(fā)展,像HVAC系統(tǒng)這類基礎(chǔ)設(shè)施不可避免需連接到公共訪問網(wǎng)絡(luò),那么攻擊者可以輕易通過互聯(lián)網(wǎng)控制建筑物的HAVC系統(tǒng),操縱環(huán)境溫度來建立HVAC系統(tǒng)和目標(biāo)計(jì)算機(jī)所在隔離網(wǎng)絡(luò)的隱形通道,從而達(dá)到攻擊目標(biāo)計(jì)算機(jī)或者其網(wǎng)絡(luò)的目的。
在分析攻擊場景前,先做一個(gè)合理的假設(shè):目標(biāo)組織(受攻擊對(duì)象)擁有一個(gè)包含以太網(wǎng)的環(huán)境,物理上與因特網(wǎng)和其他公共網(wǎng)絡(luò)斷開連接,同時(shí)與該目標(biāo)組織網(wǎng)絡(luò)有一個(gè)平行的建筑環(huán)境控制系統(tǒng)(HVAC系統(tǒng)),其控制中心(管理單元)與互聯(lián)網(wǎng)連接,如圖1所示。
圖1 攻擊場景模型(在物理隔離網(wǎng)絡(luò)中被感染的主機(jī)接收攻擊者跨越物理隔離的命令)
攻擊者通過互聯(lián)網(wǎng)入侵一個(gè)HAVC系統(tǒng),使用空調(diào)系統(tǒng)向受感染主機(jī)發(fā)送熱信號(hào),被感染主機(jī)利用內(nèi)部熱傳感器采集這些熱信號(hào),那么一個(gè)面向物理隔離網(wǎng)絡(luò)受感染主機(jī)的單向隱蔽熱通信廣播通道就建立起來了。這種熱通信廣播信道可以用來讓目標(biāo)組織中的計(jì)算機(jī)拒絕服務(wù),以干擾日常工作。
這種攻擊的前提是事先在目標(biāo)組織網(wǎng)絡(luò)中任意一臺(tái)主機(jī)上植入惡意軟件。有兩種方式可以實(shí)現(xiàn)這種植入:一是由目標(biāo)組織內(nèi)部人員向主機(jī)插入受感染的USB設(shè)備,由于主機(jī)連接在目標(biāo)組織物理隔離的網(wǎng)絡(luò)上,這臺(tái)主機(jī)可以通過網(wǎng)絡(luò)進(jìn)行擴(kuò)散惡意軟件的行為;二是可以在主機(jī)購買時(shí)由供應(yīng)廠商植入惡意軟件,也就是后門[7]。
通過攻擊者操縱被感染的目標(biāo)計(jì)算機(jī),攻擊者可以實(shí)現(xiàn)如表1所示的攻擊行為。
表1 攻擊行為表
對(duì)于圖1對(duì)應(yīng)的攻擊場景模型,按照如下方式執(zhí)行。
步驟①:攻擊者的命令發(fā)送到與互聯(lián)網(wǎng)連接的指控中心服務(wù)器。這是為了將攻擊者與攻擊行為隔離,從而為攻擊者提供更好的隱蔽和偽裝。
步驟②和步驟③:指控中心服務(wù)器通過互聯(lián)網(wǎng)接口將命令轉(zhuǎn)發(fā)到HAVC系統(tǒng)的中央空調(diào)管理單元。
步驟④和步驟⑤:HVAC系統(tǒng)發(fā)送命令,根據(jù)預(yù)先設(shè)定的協(xié)議,改變目標(biāo)計(jì)算機(jī)周圍的熱學(xué)環(huán)境。
這里,攻擊者利用事先植入的惡意客戶端程序,就可以解析出來自空調(diào)的熱信號(hào)。惡意客戶端程序執(zhí)行過程中,惡意客戶端程序控制硬件熱傳感器(CPU、內(nèi)存、硬盤、主板上的溫度傳感器)為自己的意圖服務(wù),對(duì)周圍溫度進(jìn)行感知,從熱信號(hào)中解析出命令,然后根據(jù)表1執(zhí)行攻擊任務(wù)。這樣攻擊者就擁有一條從攻擊者到受惡意客戶端感染主機(jī)的單向熱通信廣播通道[8]。
由于感染了惡意軟件客戶端的計(jì)算機(jī)連接到物理隔離的網(wǎng)絡(luò),惡意軟件可以通過該網(wǎng)絡(luò)自動(dòng)傳播。同時(shí),受感染計(jì)算機(jī)可以通過惡意軟件客戶端保持特征不明顯的通信,而未受感染的計(jì)算機(jī)不受溫度變化影響,大大增加了攻擊者攻擊目標(biāo)計(jì)算機(jī)成功的概率。
本質(zhì)上,通信是跨越一段距離來傳播信號(hào)的行為。2.2節(jié)提到空調(diào)通過指控中心發(fā)送熱信號(hào)到計(jì)算機(jī)的熱傳感器,那么從攻擊者到目標(biāo)計(jì)算機(jī)的熱通信信道就被建立起來了。
傳統(tǒng)的對(duì)電壓二進(jìn)制編碼和光電轉(zhuǎn)換的線路編碼,由于速度快,并不適用于熱通道的通信編碼。因?yàn)樵陂_放空間中,冷熱轉(zhuǎn)換時(shí)間較長。因此,需要對(duì)熱通信信道提出一個(gè)新的線路編碼方式——隱蔽熱學(xué)線性編碼。盡管這種編碼方式傳輸速率很慢,但是對(duì)于攻擊者發(fā)出攻擊命令已經(jīng)足夠。
熱通信信道傳輸信號(hào)保密性比傳輸能力更重要,因此對(duì)其進(jìn)行編碼要盡量速率低、簡單。假設(shè)環(huán)境中每一個(gè)區(qū)域的溫度不可能相同且溫度的變化速率也不相同。這種假設(shè)是成立的,因?yàn)槟繕?biāo)計(jì)算機(jī)們的熱傳感器距離熱源位置不同,接收到的熱信號(hào)也會(huì)不同。這種編碼方式類似于歸零碼(RZ),根據(jù)非線性時(shí)不變理論,除非有連續(xù)的1或0,否則信號(hào)保持不變。
根據(jù)上述編碼原則,對(duì)發(fā)送端按照表2進(jìn)行編碼,對(duì)接收端按照表3進(jìn)行譯碼。
表2 發(fā)送端編碼原則
表3 接收端譯碼原則
為了進(jìn)一步量化分析熱通信信道通信行為,可以假設(shè)如下:假設(shè)發(fā)射端(空調(diào))是A,接收端(受感染計(jì)算機(jī)的傳感器)是B,T是時(shí)隙長度,也就是單個(gè)比特的傳輸時(shí)間,H為最大傳輸編碼(單位℃),L為最小傳輸編碼(單位℃),D=|H-L|,γ是受感染計(jì)算機(jī)熱傳感器的分辨率。M(A,B)是空調(diào)A到傳感器B的距離函數(shù)(溫度和距離的關(guān)系)。
在攻擊啟動(dòng)時(shí),A的取值應(yīng)該是攻擊時(shí)的室溫H和L,H和L是目標(biāo)值而不是最大值。由于編碼是基于觀察環(huán)境中各位置的溫度決定的,解碼通過目前接收到比特與先前接收的比特進(jìn)行比較得到。因此,發(fā)射端只需要關(guān)注是否需要接近目標(biāo)溫度,而接收端需要關(guān)注溫度如果沒有變化時(shí)發(fā)射端是否達(dá)到目標(biāo)溫度。
熱通信信道的線路編碼規(guī)則后,編碼的信號(hào)需要按照一定的傳輸協(xié)議來通信。攻擊者設(shè)定的傳輸協(xié)議應(yīng)當(dāng)使傳輸信號(hào)時(shí)間最小化,以避免被檢測到。為了避免接收端溫度傳感器檢測到的室溫出現(xiàn)頻繁變化,協(xié)議中的幀格式應(yīng)當(dāng)謹(jǐn)慎設(shè)定。
傳輸協(xié)議是一種基于幀的消息廣播,幀結(jié)構(gòu)如圖2所示。
圖2 隱蔽熱通道通信傳輸協(xié)議幀格式
幀開始時(shí)發(fā)送前導(dǎo)碼,用于同步;在同步信號(hào)后,假設(shè)對(duì)溫度變換趨勢進(jìn)行解碼,在3 bitsop碼發(fā)送后,是一個(gè)可以選擇的奇偶校驗(yàn)碼,緊接著是n bits的有效載荷。op碼其實(shí)是操作碼,操作碼對(duì)應(yīng)按照表1進(jìn)行攻擊操作。操作碼可以包括刪除攻擊留下來的證據(jù)、搜索和銷毀關(guān)鍵字對(duì)應(yīng)的文件等攻擊行為。有效載荷的長度n bits取決于操作碼對(duì)應(yīng)的行為,可以是自毀命令1 bits,也可以是更改進(jìn)入受感染計(jì)算機(jī)的身份驗(yàn)證密鑰,此時(shí)有效載荷可能是很多比特。
為了有效降低廣播通信攻擊的失誤率,攻擊者可以這樣設(shè)計(jì)協(xié)議:在特定的時(shí)間準(zhǔn)確發(fā)送和接收幀,那么在這個(gè)時(shí)間之前,攻擊者可以讓空調(diào)先加熱自身部件,然后再對(duì)房間加熱,最后再冷卻房間。
實(shí)驗(yàn)驗(yàn)證包括兩個(gè)驗(yàn)證,一是對(duì)線路編碼性能的驗(yàn)證,二是對(duì)設(shè)計(jì)的熱通信協(xié)議的驗(yàn)證。在實(shí)驗(yàn)中選取如表4所示配置的計(jì)算機(jī)作為受攻擊對(duì)象。
評(píng)估線路編碼性能,可以根據(jù)被感染計(jì)算中惡意客戶端讀取的CPU熱傳感器數(shù)據(jù)響應(yīng)發(fā)送端的命令來評(píng)估(實(shí)驗(yàn)一),然后通過實(shí)驗(yàn)驗(yàn)證計(jì)算機(jī)的隨機(jī)使用對(duì)主板上的熱傳感器的數(shù)據(jù)采集沒有影響(實(shí)驗(yàn)二),用來排除計(jì)算機(jī)自身由于隨機(jī)工作造成的熱傳感器溫度上升的影響。
表4 用于實(shí)驗(yàn)的計(jì)算機(jī)配置
3.1.1 實(shí)驗(yàn)一
實(shí)驗(yàn)中計(jì)算機(jī)采樣分辨率γ為1 ℃,計(jì)算機(jī)機(jī)箱封閉,驗(yàn)證空調(diào)在離計(jì)算機(jī)3 m遠(yuǎn)將房間加熱90 s后關(guān)閉,CPU熱傳感器讀取的采樣數(shù)據(jù)的變化,如圖3所示。
圖3 CPU采集的溫度數(shù)據(jù)與時(shí)間的關(guān)系
圖3 中,曲線2代表攻擊者發(fā)出的信號(hào)脈沖,可以理解發(fā)送端(空調(diào))發(fā)送編碼為10,指示空調(diào)管理單元控制空調(diào)提高室溫;曲線1表示受感染計(jì)算機(jī)CPU接收到發(fā)送端(空調(diào))的編碼信號(hào)的采樣響應(yīng)曲線。因此可以得出結(jié)論,對(duì)于發(fā)送端讓空調(diào)溫度提高的編碼,接收端響應(yīng)了命令,而發(fā)送端和接收端是物理隔離的,驗(yàn)證了在物理隔離網(wǎng)絡(luò)中,可以通過建立隱蔽的熱通信信道,采用合適的編碼原則進(jìn)行通信。
3.1.2 實(shí)驗(yàn)二
這里先設(shè)置一個(gè)實(shí)驗(yàn),讀取計(jì)算機(jī)主板上的熱傳感器溫度。首先,隨機(jī)使用接收熱信號(hào)的計(jì)算機(jī),同時(shí)讀取來自空調(diào)的環(huán)境熱信號(hào);其次,計(jì)算機(jī)只是讀取來自空調(diào)的環(huán)境熱信號(hào)。實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 接收計(jì)算機(jī)的隨機(jī)使用對(duì)熱傳感器的影響
從圖4的曲線1可以看出,計(jì)算機(jī)的隨機(jī)使用對(duì)計(jì)算機(jī)主板上的熱傳感器影響不顯著,表明通過熱通道傳輸?shù)臒嵝盘?hào)幾乎不會(huì)受到計(jì)算機(jī)自身運(yùn)算造成組件發(fā)熱的干擾,因此排除計(jì)算機(jī)自身由于隨機(jī)工作造成的熱傳感器溫度上升的影響,證明了對(duì)熱通信通道的命令進(jìn)行編碼是可行的。
為了測試該協(xié)議性能,生成了一個(gè)幀。攻擊者可以在同一個(gè)HVAC系統(tǒng)下向所有接收計(jì)算機(jī)進(jìn)行廣播。該幀包含一個(gè)操作碼(用于改變內(nèi)部通信的密鑰)和有效載荷(新的128位密鑰)。換句話說,假設(shè)受感染主機(jī)之間可以相互通信,所有接收該命令的受感染主機(jī)將相應(yīng)更新其內(nèi)部通道加密密鑰。
實(shí)驗(yàn)發(fā)現(xiàn),位于主板上的熱傳感器對(duì)環(huán)境溫度變化響應(yīng)比CPU的熱傳感器快。這是合理的,因?yàn)镃PU擁有冷卻單元(風(fēng)扇和散熱器),主板上的熱傳感器無冷卻單元。因此,使用主板上的傳感器來測試熱通信協(xié)議。
先進(jìn)行實(shí)驗(yàn)設(shè)置,如表5所示。根據(jù)表5中實(shí)驗(yàn)設(shè)置,接收計(jì)算機(jī)的主板傳感器測得如表6所示的結(jié)果數(shù)字。信道的比特率是熱通信通道的傳輸速率,取決于環(huán)境的設(shè)置,如空調(diào)和接收計(jì)算機(jī)的距離。
表5 用于測試協(xié)議的參數(shù)
表6 空調(diào)對(duì)主板傳感器的影響
由表5空調(diào)的設(shè)置溫度和表6主板傳感器的實(shí)際溫度可以看出,由于機(jī)箱封閉,機(jī)箱不能及時(shí)散熱,機(jī)箱中主板傳感器的溫度高于空調(diào)溫度。
HVAC系統(tǒng)發(fā)送的128 bits的有效載荷,加上2 bits的前導(dǎo)碼、3 bits的操作碼和1bit的奇偶效驗(yàn)碼,該幀長度為134 bits。在傳輸速率為40 b/h下,計(jì)算得出134 bits的幀需要約3.5 h發(fā)送完。接收計(jì)算機(jī)的熱傳感器將廣播信號(hào)解調(diào)成幀,解調(diào)出的幀對(duì)應(yīng)的比特碼如表7所示。根據(jù)圖2幀結(jié)構(gòu)約定,前導(dǎo)碼為2 bits、操作碼3 bits、奇偶效驗(yàn)碼1 bit。根據(jù)采集的溫度解碼出有效載荷為11100110011100010………(僅顯示部分幀)。
表7 解調(diào)出的幀對(duì)應(yīng)的比特碼
因此,40 b/h的速率足夠讓攻擊者在一晚上激活表1羅列的攻擊任務(wù)。
通過上面的實(shí)驗(yàn)可以證明,實(shí)驗(yàn)中設(shè)計(jì)的熱通信協(xié)議和線路編碼是成功的,也證明了在物理隔離網(wǎng)絡(luò)通過溫度建立的隱蔽通信信道是合理的。
針對(duì)利用操縱環(huán)境溫度為物理隔離網(wǎng)絡(luò)建立隱通道進(jìn)行攻擊的威脅,可以有三種方法來應(yīng)對(duì)。
第一種,HVAC系統(tǒng)與互聯(lián)網(wǎng)徹底斷開。這是基于提高HVAC系統(tǒng)的安全性來應(yīng)對(duì)這類威脅,因?yàn)镠VAC與受保護(hù)的物理隔離網(wǎng)絡(luò)可以通過熱量建立隱通道進(jìn)行通信,HAVC系統(tǒng)與互聯(lián)網(wǎng)一旦連接,那么受保護(hù)的物理隔離網(wǎng)絡(luò)間接也會(huì)與互聯(lián)網(wǎng)交疊,攻擊者就可以通過互聯(lián)網(wǎng)間接對(duì)物理隔離網(wǎng)絡(luò)進(jìn)行攻擊。因此,確保物理隔離網(wǎng)絡(luò)安全的最好方式,是把所有與其有交疊的網(wǎng)絡(luò)進(jìn)行物理隔離,完全斷開HVAC系統(tǒng)到互聯(lián)網(wǎng)的鏈接。
第二種,監(jiān)控受保護(hù)物理隔離網(wǎng)絡(luò)的熱學(xué)環(huán)境。在不能將HVAC系統(tǒng)和互聯(lián)網(wǎng)斷開的情況下,可以采用監(jiān)測物理隔離網(wǎng)絡(luò)的熱學(xué)環(huán)境來監(jiān)控基于熱的隱蔽通道,可以通過在房間放置熱傳感器記錄或者監(jiān)控溫度波動(dòng)來實(shí)現(xiàn)。設(shè)定一個(gè)溫度區(qū)間范圍,房間溫度的持續(xù)上升和下降表明可能存在一個(gè)隱蔽的熱通道。但是,這種監(jiān)控方法需要增加額外開銷,需要相應(yīng)協(xié)議和機(jī)器學(xué)習(xí)算法用來監(jiān)控溫度異常情況。
第三種,對(duì)受感染的計(jì)算機(jī)上的惡意軟件進(jìn)行特征識(shí)別。為了使受感染的計(jì)算機(jī)在熱通道上監(jiān)測和接收信息,惡意軟件必須持續(xù)對(duì)可用的熱傳感器進(jìn)行采樣。因此,可以通過對(duì)惡意軟件的代碼進(jìn)行靜態(tài)和動(dòng)態(tài)分析來檢測這類采樣行為,采樣行為可以通過操作系統(tǒng)中熱傳感器對(duì)應(yīng)的軟件接口高頻率訪問來判斷其特征,一旦發(fā)現(xiàn)該特征出現(xiàn),就會(huì)找到采樣行為的代碼,從而發(fā)現(xiàn)隱蔽熱通道。
物理隔離是一種常見的網(wǎng)絡(luò)隔離方法,但容易受到并行的不安全網(wǎng)絡(luò)的攻擊。本文首先展示了一種新的對(duì)抗攻擊模型,攻擊者在一個(gè)隔離網(wǎng)絡(luò)中向受感染的主機(jī)廣播命令,然后提出了一個(gè)攻擊者可以使用該模型時(shí)的合理場景。此外,使用一種新的熱學(xué)線路編碼和相應(yīng)的通信協(xié)議,驗(yàn)證了從空調(diào)向計(jì)算機(jī)發(fā)送信令的可行性。因此,網(wǎng)絡(luò)工程師和安全專家在設(shè)計(jì)物理隔離網(wǎng)絡(luò)時(shí)要考慮這種攻擊的潛在性。下一步,將考慮房間人員因素,因?yàn)槿藛T可能會(huì)導(dǎo)致計(jì)算機(jī)的溫度信號(hào)質(zhì)量發(fā)生變化,也使得基于熱量建立的隱蔽通道更容易被檢測到。