?

面向新攻擊面的物聯網終端固件安全威脅模型

2021-07-26 11:55朱新兵李清寶陳志鋒顧艷陽
計算機工程 2021年7期
關鍵詞:間通信固件進程

朱新兵,李清寶,張 平,陳志鋒,顧艷陽

(1.中國人民解放軍戰略支援部隊信息工程大學網絡空間安全學院,鄭州450003;2.數學工程與先進計算國家重點實驗室,鄭州450003;3.中國人民解放軍河南省軍區數據信息室,鄭州450003)

0 概述

隨著物聯網技術的發展,人類進入了萬物互聯的時代。在全球范圍內,物聯網終端數量高速增長,截至2019年,全球物聯網終端數量達到110 億,據GSMA 預測,到2025年數量將高達250 億[1]。物聯網終端已滲透到人們的日常生活中[2-3],然而也逐漸成為黑客攻擊的主要對象,近年來,由此引發的安全事件頻發。一些不法分子利用物聯網終端自身存在的缺陷或漏洞,對其進行主動攻擊、惡意控制、隱私竊取、數據篡改等行為,對通信網絡的正常運行和應用服務的正常運轉造成嚴重影響[4-6]。2017年2月,美國某大學5 000 多臺物聯網終端遭到惡意軟件感染,并被遠程操控形成僵尸網絡[1]。2017年4月,三星Tizen 操作系統被曝光存在40 多個安全漏洞,共涉及3 000 萬臺智能電視以及1 000 多萬臺智能手機[1]。

物聯網終端最顯著的特點是與外部(物理)世界存在感知與控制[7-8]。終端處理的信息不再只是本身存儲轉發的“內部”數據,還包含來自外部世界的感知數據。感知數據是物聯網終端完成自身所承載業務的起點。但是,傳統的安全威脅分析模型無法準確描述和有效評估感知數據對物聯網終端帶來的潛在危害,而且現有的二進制代碼分析技術大多側重于對單個二進制文件進行分析,忽視了這些數據在多個二進制文件間的傳播交互。如何獲取這些“外部”數據在終端固件中的完整傳播路徑和交互過程,是確保物聯網終端安全的關鍵。

本文通過構建面向新攻擊面的物聯網終端固件安全威脅模型(Firmware Security Threat Model,FSTM),描述物聯網終端固件與物理世界緊耦合、與業務強相關特性。借助進程間的通信方式實現攻擊數據跨二進制進行文件傳播,并結合單二進制文件中控制流驅動的攻擊數據傳播獲得攻擊數據在固件中的完整傳播交互過程。

1 物聯網終端新攻擊面

1.1 物聯網終端結構

物聯網終端存在于各個領域,盡管在功能和結構上各不相同,但大都包含以下3 個模塊:

1)感知/控制模塊。感知/控制是物聯網終端所獨有的模塊[9-11]。如圖1所示,感知/控制模塊通過各種傳感器對物理世界的信息進行感知,將獲取的信息(大都是模擬態信息)轉換成終端固件能處理的數字態信息,并交由終端進行處理,終端還會將處理結果轉換成物理世界能夠識別的信息,通過控制器反作用于物理世界。

圖1 物聯網終端結構示意圖Fig.1 Schematic diagram of IoT terminal structure

2)硬件模塊。硬件模塊是物聯網終端的基礎,包含終端入網和完成終端承載業務所必須的各種硬件設備,如入網板卡、處理器、存儲器、各種通信接口等。

3)固件模塊。固件是終端的“大腦”,是完成終端業務的核心。在物聯網終端固件研究領域,對固件的認識尚未統一[12]。本文認為物聯網終端固件是指運行于物聯網終端上且存儲于終端非易失性存儲器中的程序代碼和數據的組合。

1.2 物聯網終端的新攻擊面

物聯網“云-管-端”的3 層體系架構[13]有時也被稱做“應用層-網絡層-感知層”,與傳統架構相比,物聯網結構的最大不同就在于“端”側。由于要完成對物理世界的感知/控制,“端”側引入了感知/控制模塊,進入物聯網終端的數據不再僅僅是信息世界的01 代碼,而是與物理世界中真實狀態相映射的能量信息。

如圖2所示,物聯網終端處于物理世界與信息世界的交匯處,面臨來自末端傳感和控制的新攻擊面。傳統的攻擊面來自物聯網“云端”與IoT 終端之間的數據交互,包括基于“云端”對終端的配置管理、命令控制、數據上傳等,這些數據交互過程一般都是通過有線和無線網絡通道來完成的,即“管道”。而新的攻擊面則是由和物聯網終端實際業務應用相關的末端傳感與控制引起的,終端設備與傳感器/控制器通過網絡或其他物理信道(如RS485、Bluetooth、Zigbee、CAN/FlexRay、Infrared 等)進行通信[12]。傳感模塊將對物理世界的感知傳遞給終端,并轉換成固件代碼能夠識別的數據信息供終端進行處理。感知信息經終端處理后,控制模塊再將相應的反饋數據轉換成物理世界能夠識別的信號,然后反作用于物理世界。

圖2 物聯網終端新攻擊面示意圖Fig.2 Schematic diagram of new attack surface of IoT terminal

在物聯網安全研究領域對新攻擊面的理解有不同的描述。有研究者將物聯網中面臨的新的安全威脅,如物聯網終端的泛在化、智能化、參差不齊的安全防護水平等,都稱為新攻擊面。而本文是從物聯網終端對外部(物理)世界的感知控制的角度對新攻擊面進行理解。

目前,針對物聯網終端新攻擊面的已有研究大都集中在2 個方面:1)對轉換器靠近物理世界的情況進行研究,它們主要從模擬態信息的擬合欺騙或側信道攻擊著手;2)對轉換器靠近數字世界的情況展開研究,主要對運行于物聯網終端上的固件進行安全性檢測。后者也是本文的主要研究內容。

1.3 新攻擊面對物聯網終端固件的影響

新攻擊面對物聯網終端固件帶來的安全威脅主要由以下4 個原因造成:

1)物聯網終端固件接收的感知數據與物理世界真實輸入信息存在一致性問題。物理世界的模擬態信息經轉換器轉換后傳給物聯網終端固件進行處理,這些數字態信息是物聯網終端完成相應任務的邏輯起點,這些數據如果不能真實反映物理世界的真實狀態,而是被攻擊者進行篡改,則終端將無法實現預期功能。

2)物聯網終端固件反作用于物理世界的控制信息與信息世界真實輸出存在一致性問題。信息世界的數字態信息經轉換器轉換后反作用于物理世界,這些數字態信息是物聯網終端固件根據感知數據得出的反饋,如果反饋不能真實反映物理世界,而是被攻擊者進行篡改,這樣的輸出不僅無法實現預期功能,還會給物理世界帶來難以估量的危害。

3)物聯網終端固件運行的基礎環境資源有限與驗證2 個一致性所需資源不相符的矛盾。由于物聯網終端資源有限,加之重業務輕安全的設計理念,終端固件中大都沒有部署類似于“冗余互判”的措施[14]來驗證上述2 個一致性問題。

4)以業務為導向的物聯網終端固件安全與傳統網絡威脅分析模型不適應的矛盾。從近年來發生的有關物聯網終端安全的事件來看,以業務為導向的安全威脅越來越明顯,許多看似“友好”的固件代碼從傳統分析角度來看毫無惡意,可一旦與終端具體業務流程相結合,其惡意性就會顯露,而且這種固件代碼的破壞性往往難以估量。例如“震網”病毒[15],被篡改后的固件按照非預期業務流程控制離心機轉速,但僅從代碼分析的角度,分析者無法斷定這種惡意性。

1.4 物聯網終端固件分類

如圖3所示,根據分析的難易程度可將物聯網終端固件分為淺嵌入式固件和深嵌入式固件兩類。

圖3 物聯網終端固件分類Fig.3 Classification of IoT terminal firmware

1)淺嵌入式固件,該類物聯網終端固件具有劃分明確的軟件體系結構和完整的文件系統,包含已知的通用操作系統,如Android、嵌入式linux 等[12]。操作系統及其相關的各類公開函數庫為這類固件分析提供了豐富的語義信息,便于結合基于API 函數的分析方法分析固件程序的功能結構與文件屬性。

2)深嵌入式固件,擁有該類固件的物聯網終端大多屬于傳統的嵌入式設備,該類終端固件將剪裁后的操作系統(或者沒有)、應用程序和配置數據全部編譯為一個整體,有研究者將其稱為BLOB 固件[12]。深嵌入式固件沒有顯式的文件系統,缺乏輔助解讀的符號信息及庫函數信息,針對該類固件的分析難度較高。

隨著網絡技術的發展,物聯網終端的設計成本壓力得到極大緩解。為了完成更復雜的功能并向用戶提供更好的體驗,越來越多的設備采用淺嵌入式固件,且大都基于Linux。本文將著重于這類固件分析。

2 攻擊數據

2.1 攻擊數據的定義

FSTM 通過對新攻擊面引入的攻擊數據在固件中的傳播交互進行建模,以揭示其對終端固件安全帶來的潛在威脅。因此,在模型定義中,本文僅將終端固件接收的來自于外部(物理)世界的感知數據作為攻擊數據。

定義1(攻擊數據集)攻擊數據集D是一個非空集合,表示由新攻擊面引入、物聯網終端固件可識別、來自物理世界的感知數據所構成的集合。?d∈D,d表示攻擊數據集D中的一個攻擊數據實例。

定義2(攻擊數據)攻擊數據d由一個二元組表示,d=(id,value),id 表示該攻擊數據的描述符,其唯一標識攻擊數據d,value 表示該數據的數據值。

2.2 攻擊數據的傳播

攻擊數據在固件中存在如下2 種傳播方式:

1)在單個二進制文件中傳播。在這種傳播方式中,攻擊數據在單個二進制文件中隨著一條條指令或一個個基本塊的執行而傳播,這種傳播方式也是傳統分析工具的主要研究對象,其靠控制流驅動。

定義3(攻擊數據引入點)攻擊數據引入點是指固件代碼中獲取物理世界感知信息的程序點,即將攻擊數據d引入固件代碼中的程序點,用ap=(f_name,loc,d)來表示,其中,f_name 為包含該引入點的二進制文件,loc 為該引入點在二進制文件中的位置,d為引入的攻擊數據。

定義4(攻擊數據引入點集合)攻擊數據引入點集合表示固件代碼中所有攻擊數據引入點的集合,本文用AP 表示,AP={ap|ap=(f_name,loc,d)}。

對于每個ap,從包含它的函數入口點st_add 開始,st_add=Get_Function_Add(f_name,loc),進行路徑探索Explore(f_name,st_add)[16-17]。在探索路徑中遇到的每個基本塊都對其進行3 項操作:

(1)檢查該基本塊是否對ap.d施加了約束Is_con(d),如果為真,則收集約束c=c∪Collect_con(d),更新攻擊數據d=Con(d);如果為否,c=c,d=d。

(2)檢測該基本塊內是否包含相對于d的威脅斷言(詳見3.3 節)。

(3)檢查該基本塊內是否存在進程間通信[18],如果存在,則轉為分析跨二進制文件間的攻擊數據傳播。

2)跨二進制文件間傳播。由于多二進制文件之間不存在控制流,且相互有獨立的地址空間,因此它們之間的攻擊數據交互與單二進制文件內的傳播存在很大不同。在Linux 中,每個進程有其單獨的地址空間,數據對于其他進程而言是受保護的。對于2 個進程(進程A 和進程B),在進程A 中聲明的數據對于進程B 是不可用的,如果進程A 和進程B 要通過共享數據來配合完成某個任務,必須要在2 個進程間建立某種通信方式,使得一個進程可以訪問另外一個進程的數據,即進程間通信(Interprocess Communication,IPC)[18]。不同進程間的通信有著多種方式,但用于數據傳輸的進程間通信方式卻是有限的,而且研究發現,為了能在不同進程間傳輸數據,在數據傳輸之前,參與傳輸的雙方就要做好準備,比如都要事先知道攻擊數據的傳輸載體具體是什么,這些信息往往作為硬編碼被嵌入在固件代碼中。

通過分析物聯網終端固件中進程間的數據傳播,發現進程間攻擊數據傳輸方式主要有以下4 種:

1)文件。不同進程間通過文件進行數據傳輸,如進程A 打開文件,向文件中寫入數據,而進程B 從中讀取數據。此時,文件就是攻擊數據的傳輸載體,用文件名表示。

2)環境變量。環境變量也是常用的進程間通信傳輸載體,使用環境變量名表示。如進程A 在其環境中設置一定的變量,進程B 通過這些變量接收攻擊數據值。

3)共享內存。共享內存是最快的IPC 方式,它允許2 個或多個進程共享一個給定的存儲區,這一段存儲區可以被2 個或2 個以上的進程映射至自身的地址空間中。共享內存既可以通過普通文件提供的內存映射,也可以使用特殊文件提供的匿名內存映射。對于前者,文件就是攻擊數據的傳輸載體,用文件名表示。對于后者,共享內存頁就是攻擊數據的傳輸載體,用共享內存頁的虛擬地址表示。

4)套接字(Socket)。套接字是更為一般的進程間通信機制,用套接字名來表示。與其他通信機制不同,套接字不但可用于不同進程間通信,還可用于不同機器之間的進程間通信。一個套接字可以看作進程間通信的端點(endpoint),每個套接字的名字都是唯一的,其他進程可以發現、連接并且與之通信。

定義5(進程間通信實例)一個進程間通信實例ipc=(identifier,ipc_name,data,role),其中,identifier 表示該ipc 實例的數據傳輸載體描述符,ipc_name 表示該ipc 實例的進程間通信方式,data 表示該ipc 實例傳播的攻擊數據,role 表示該進程在ipc實例中的角色,即是攻擊數據的生產者還是攻擊數據的消費者。

定義6(進程間通信實例集)進程間通信實例集表示固件代碼中所有進程間通信實例的集合,用IPC表示,IPC={ipc|ipc=(identifier,ipc_name,data,role)}。

定義7(進程間通信點)進程間通信點是指固件中發生進程間通信的程序點,用cp 表示,cp=(f_name,loc,ipc)。

定義8(進程間通信點集合)進程間通信點集合表示固件代碼中所有進程間通信點的集合,用CP表示,CP={cp|cp=(f_name,loc,ipc)}。

如果在探索路徑的過程中發現基本塊內存在進程間通信,則判斷通信所傳送的數據是否為攻擊數據,如果不是,則繼續探索路徑;如果是,則進行攻擊數據跨二進制文件的傳播分析。

如前文所述,對于不同進程間通信,通信雙方首先都要知道攻擊數據的通信載體,這些信息往往作為硬編碼嵌入在固件代碼中。攻擊數據跨二進制文件的傳播分析正是以此為依據,通過ipc.identifier 識別互相通信的2 個進程,其次根據ipc.role 確定攻擊數據的傳播方向,從而將單個二進制文件中攻擊數據傳播分析探索出的傳播路徑相連通,形成攻擊數據在固件代碼中的完整傳播路徑。

3 物聯網終端固件安全威脅模型

3.1 傳統威脅模型存在的問題

PC 域和互聯網域的安全威脅分析模型已具有較為成熟的研究成果。Parker[19]模型建立一個計算機惡意攻擊的通用模型,圍繞攻擊者的IT 技術和知識以及執行攻擊的動機、資源和授權展開,該模型也對后續研究進行了引導,具有較高的參考價值。STRIDE[20]模型是相當知名的威脅分類模型,可以針對系統的重大威脅進行分類。Scheier[21]提出攻擊樹的概念,目的是通過樹形結構來描述系統存在的各種攻擊,為確保系統安全提供一種系統化的形式方法。物聯網域也出現了一些安全模型,如IoTSAT[14]是一個用于物聯網安全分析的形式化框架,基于設備配置、網絡拓撲、用戶策略和特定于IoT 的攻擊面,對系統的一般行為進行形式化建模。文獻[22]構建一個概念模型,以支持決策者對物聯網系統進行安全分析,該模型基于面向體系結構的方法將社會技術概念融入物聯網系統的安全分析中。

針對物聯網終端固件安全威脅的分析模型還較為少見,而且傳統的威脅分析模型在面對物聯網終端的新攻擊面時,也存在2 點不足:1)無法有效描述物聯網終端固件與物理世界的緊耦合性;2)無法有效描述業務導向下的物聯網終端固件安全威脅。

3.2 安全威脅模型的形式化定義

定義9(面向新攻擊面的物聯網終端固件安全威脅模型FSTM)FSTM 是一個有向圖G[23],G=(V,E,D,Ψ,Ρ),其中:

1)V為節點集,表示攻擊數據在固件代碼中傳播路徑上所經歷的所有基本塊的集合,即每一個節點就是一個基本塊。

2)E為有向邊集,E?V×V,節點之間的有向邊表示2 個節點間發生攻擊數據傳播。

3)D為攻擊數據集,?d∈D,d=(id,value)。

4)Ψ為節點與邊之間的關聯函數,將V×D映射到V上。?e∈E,則?vi,vj∈V,且有序對<vi,vj>∈V×V,使得ψ(vi,d)=vj,e稱為vi到vj的邊,ψ表示vi向vj傳播了攻擊數據d,vi是攻擊數據d的生產者,vj是攻擊數據d的消費者。

5)Ρ為節點的約束集,表示固件對攻擊數據施加的約束集合。?vi∈V,則?ρi∈Ρ,使得ρi=Con(vi,d),即節點vi對攻擊數據d施加約束。

從定義9 可以看出:

1)FSTM 是一個非連通有向圖,圖中的每一條路徑代表一個攻擊數據的傳播過程。一條路徑就是一個基本塊序列,由單個二進制文件中的控制流和跨二進制文件間的進程通信共同驅動,表示由新攻擊面引入的攻擊數據在固件中的傳播交互過程。

2)FSTM 中的節點可以劃分成3 個互斥的子集,即攻擊數據引入節點、進程間通信節點和普通節點(進程內節點)。引入節點表示包含引入點的節點,通信節點表示包含通信點的節點,普通節點有可能是威脅節點(3.3 節詳述)。

定義10(路徑可達)給定FSTM 中的一條路徑Pathij=vivi+1…vk-1vkvk+1…vj-1vj,如果存在一個攻擊數據d在該路徑上傳播,稱攻擊數據d對于節點vi到vj是路徑可達的。

3.3 安全威脅的斷言

FSTM 關注的是從物理世界引入的攻擊數據對固件的威脅,結合實際案例分析經驗,本文認為這些威脅主要包括:

1)攻擊數據作為固件中的控制條件使用。在一些物聯網終端固件中,對物理世界的感知數據經常被用作啟動“逆作用”模塊的條件使用。如壓力控制系統中,對外部真實壓力的感知數據被用作觸發加壓模塊或減壓模塊的判斷條件,如果這個條件被攻擊者控制,“逆作用”模塊可能無法正常啟動。因此,本文認為攻擊數據一旦作為控制條件使用,就可能對終端固件安全造成威脅。對于這種威脅的斷言,主要是通過識別控制條件語句中是否包含攻擊數據來完成。

2)攻擊數據被強制設置成某個常量。攻擊數據經常被用作固件內某個函數的參數使用,這個參數根據物理世界的實際狀態變化而變化。例如“震網”病毒中[15],離心機的真實轉速已發生異常,而警報系統中感知的轉速仍然是一個正常值,以至于物理世界多元的模擬態信息映射到信息世界就變成了單一的數字信息,無法真實反映這種映射關系。因此,本文認為攻擊數據一旦被強制設置成某個常量,就有可能對終端固件安全造成威脅。對于這種威脅的斷言,主要是通過識別是否有針對攻擊數據的常量化賦值語句來完成。

3)攻擊數據的使用造成內存出現異常。由于物聯網終端固件運行環境資源有限、安全措施薄弱,攻擊者經常通過構造不符合使用規范的攻擊數據,引發內存損壞和系統崩潰,如常見的緩沖區溢出等。因此,本文認為攻擊數據的使用一旦不符合規范,就有可能對終端固件安全造成威脅。對于這種威脅的斷言,主要是通過識別攻擊數據的大小、長度和類型是否符合使用規范來完成。

4)攻擊數據作為反饋輸出給物理世界。反作用于物理世界的輸出是否正確,是確保物理世界和信息世界這2 個世界安全的最后防線。本文考察的輸出是根據攻擊數據生成的,分析者結合具體的業務流程對其進行分析,對終端固件的安全檢測意義重大。因此,本文認為攻擊數據一旦作為反饋反作用于物理世界,就有可能對終端固件安全造成威脅。對于這種威脅的斷言,主要是通過識別包含攻擊數據輸出程序點所在的文件是否為一個邊界文件(用來和物理世界交互的文件)來完成。

對于上述4種安全威脅斷言,使用Ti(i=1,2,3,4)來表示,對某一節點進行威脅斷言,使用assert(Ti)來表示,如果assert(Ti)為真,則表示該節點包含該種威脅。在攻擊數據傳播的路徑探索過程中,一旦存在所定義的安全威脅,就將該節點置為威脅節點,這一點在以FSTM為指導的實際固件安全檢測中至關重要。

定理1FSTM 中存在關于d的安全威脅Ti,當且僅當攻擊數據d的引入節點vj和包含Ti的威脅節點vk之間存在一條攻擊數據d的傳播路徑。

證明:

1)已知FSTM 中存在關于d的安全威脅Ti。由于包含Ti的節點vk是在對d的路徑探索過程中發現的,該路徑的起始節點為包含引入節點vj的函數的入口位置st_add,因此d對于節點block(st_add)到vk是路徑可達的。由于從節點block(st_add)到vj存在函數控制流驅動,因此d對于節點block(st_add)到vj是路徑可達的。又因為Ti是相對于d的威脅斷言,所以vk必定在攻擊數據引入節點vj之后。綜上可得,攻擊數據引入節點vj和威脅節點vk之間存在一條攻擊數據d的傳播路徑。

2)已知攻擊數據d的引入節點vj和包含Ti的威脅節點vk之間存在一條攻擊數據d的傳播路徑。假設FSTM 中不存在關于d的安全威脅Ti,那么從包含d的引入節點vj的函數的入口位置st_add 開始的路徑探索將無法到達包含Ti的節點vk。而從st_add 到節點vj存在函數控制流驅動,因此,d對于節點block(st_add)到vj是路徑可達的,從而可得出vj到vk是不可達的,這與已知相矛盾,因此,FSTM 中存在關于d的安全威脅Ti。

從定理1 可以看出,如果存在一個攻擊數據引入節點vj和一個威脅節點vk,且在vj和vk之間存在一條攻擊數據d的傳播路徑,本文認為在該固件中觸發一個安全威脅警報,這就是基于FSTM 進行物聯網終端固件安全檢測的理論基礎。

4 模型的實例化描述

4.1 應用場景

本文以圖4所示的一個典型物聯網終端應用場景為例,對FSTM 進行描述,該場景為一個辦公場所物聯網集成感控終端應用,主要包含3 個部分:

圖4 物聯網終端應用場景示意圖Fig.4 Schematic diagram of IoT terminal application scenarios

1)感知模塊(傳感器)。該部分由4 個傳感器組成,分別是煙霧傳感器、光感傳感器、考勤傳感器和溫度傳感器,以對場所內相應物理環境進行實時感知,并將感知數據上傳給終端固件進行處理。

2)處理模塊(固件)。該部分是整個場景的大腦中樞,負責對感知數據的獲取和處理,并依據預先制定的用戶策略生成相應的控制驅動數據并作用于各個控制器。

3)控制模塊(控制器)。該部分與感知模塊相對應,由4 個控制器組成,依據固件生成的控制驅動數據,分別作用于場所內煙霧報警器、可調光光源、考勤統計系統、空調系統等物聯網終端,控制其運行狀態。

4.2 攻擊數據傳播

如圖5所示,本文對圖4 中物聯網終端實例的固件代碼進行簡化說明,該清單中只包含由新攻擊面引入的攻擊數據在固件中的傳播與處理。清單1 對應固件中的感知模塊,清單2 對應固件中的控制模塊,且每個清單都對應一個二進制文件b1 和b2。

圖5 物聯網終端應用場景代碼實例Fig.5 Code examples of IoT terminal application scenario

在清單1 中,分別在b1 的程序點p1、p2、p3 和p4處引入攻擊數據,在程序點p5、p6、p7 和p8 處通過某種進程間通信方式將數據傳遞給控制模塊。

在清單2 中,分別在b2 的程序點p1、p2、p3 和p4處通過進程間通信接收b1 傳遞的攻擊數據,之后在進程內進行傳播處理。對于煙霧傳感器1 引入的攻擊數據ad1,將其作為觸發煙霧報警器的條件使用(程序點p5),即傳感器1 檢測到有煙霧則觸發報警器。對于光感傳感器2 引入的攻擊數據ad2,將其作為可調光光源的參數使用(程序點p6),即根據傳感器2 感應的光強度調節光源的亮度。對于考勤機傳感器3 引入的攻擊數據ad3,將其作為統計報表內容使用(程序點p7)。對于溫度傳感器4 引入的攻擊數據ad4,將其作為生成空調控制溫度的依據使用(程序點p8),即空調溫度控制器根據ad4 生成相應的控制溫度并反作用于空調。

4.3 模型構建與威脅分析

為了方便描述,使用bi_pj 表示二進制文件bi 中包含程序點pj 的基本塊。圖6所示為上述應用場景實例FSTM 示意圖(彩色效果見《計算機工程》官網HTML 版),圖中存在黃色節點代表攻擊數據引入節點,綠色節點代表進程間通信節點,褐色節點代表進程內普通節點,紅色節點代表威脅節點,它們也屬于上述節點之一。

圖6 應用場景實例模型示意圖Fig.6 Schematic diagram of application scenario example model

事實上終端固件中攻擊數據傳播路徑的探索過程本身就是一個NP 難問題[16-17,24],如果想在多項式時間內窮舉所有路徑是不可能的,因此,在FSTM 指導下進行物聯網終端固件安全檢測時要采取多種優化策略,以使探索結果盡可能最優。

對于攻擊數據ad1,其作為報警器開關的控制條件使用,如果該數據被篡改偽造,相應的條件分支將不會被執行,控制模塊生成的控制驅動數據將與期望值不相符,以致煙感報警器不能按照實際情況運行。

對于攻擊數據ad2,其作為可調光光源的參數在固件中使用,該參數應根據環境亮度自適應調整,據此調節屋內光源亮度。如果該數據被設置為一個常數,光源的亮度將不會隨著環境亮度而調整。

對于攻擊數據ad3,其作為顯示屏上統計報表的內容使用,如果其大小超出了內存中存儲該內容的緩沖區大小,將會造成緩沖區溢出,引起系統工作異常甚至崩潰。

對于攻擊數據ad4,其作為空調溫度調節的依據反作用于終端上,如果施加于該數據上的約束集與實際的業務流程不一致,空調的工作模式、溫度、風速及風向等控制驅動數據將與預期結果不一致。

對于FSTM 中b2_p5、b2_p6、b2_p7 和b2_p8 這4 個威脅節點,在攻擊數據傳播路徑的探索過程中進行識別。

5 分析與討論

FSTM 是針對由新攻擊面引入的攻擊數據對物聯網終端固件帶來的潛在威脅進行建模的,其目的是為實際的固件安全檢測提供理論指導。但是,在具體的實踐檢測中,需要著重關注以下6 個問題:

1)攻擊數據引入點的識別。由新攻擊面引入的攻擊數據是FSTM 的邏輯起點,FSTM 通過對這些數據在固件中的傳播交互進行建模以分析其對終端固件的安全威脅。因此,攻擊數據引入點的識別是否完備和準確,不僅是FSTM 的基礎,還是在FSTM 指導下進行固件安全檢測的關鍵。

2)單二進制文件內攻擊數據的傳播。單二進制文件內攻擊數據的傳播以固件代碼的控制流為驅動,這方面的研究雖然較為成熟,但也面臨著路徑探索過程中的路徑爆炸問題。

3)跨二進制文件間攻擊數據的傳播。本文通過對真實固件的分析,發現攻擊數據通過進程間通信的方式進行傳播,而且數據的傳輸載體信息已硬編碼在固件代碼中,這為實現跨二進制文件的攻擊數據傳播分析提供了可能。本文僅對文件、環境變量、共享內存和套接字4 種方式進行分析,今后可根據實際情況來擴充攻擊數據的進程間傳播方式。

4)攻擊數據傳播路徑的完備性。攻擊數據在固件中的傳播是FSTM 的建模對象,其路徑是否完備主要取決于2 點:(1)單二進制文件內傳播路徑識別是否完備;(2)多二進制文件間攻擊數據通信識別是否完備。前者是一個NP 難問題,本身只能得到近似求解,對于后者,本文也只分析了文件、環境變量、共享內存和套接字4 種方式,但在今后的研究中將會不斷擴展。

5)威脅斷言的可擴充性和假陽性。本文在威脅斷言部分僅定義了新攻擊面引入的攻擊數據對物聯網終端固件安全的4 種常見威脅,隨著后期研究的深入,可以對其進行添加和更新。FSTM 在面對威脅斷言時,如果滿足條件則只發出警報以供進一步分析,至于威脅是否真的對終端固件或物理世界的安全造成危害,不在FSTM 討論的范疇。

6)業務導向威脅的有限性。傳統的威脅分析模型不能有效描述物聯網終端固件與物理世界的緊耦合性,也不能準確描述物聯網終端固件與業務的強相關性。FSTM 很好地解決了上述2 個問題,新攻擊面引入的攻擊數據是終端對物理世界的真實感知,4 種威脅斷言也是在以業務為導向的分析中提煉而得。但是,由于現實中物聯網終端功能各異,無法從海量業務中抽象出通用的業務模式,因此本文模型僅觸發警報,是真陽性還是假陽性,需要分析者結合其他手段并根據特定的業務流程具體分析。

6 結束語

傳統安全威脅模型無法有效評估來自外部的攻擊數據對物聯網終端固件造成的危害。本文建立一種面向新攻擊面的物聯網終端固件安全威脅模型(FSTM)。分析結果表明,該模型可以有效描述物聯網終端固件與物理世界緊耦合與業務強相關的特性,為分析人員在業務導向下對物聯網終端固件進行安全檢測提供理論指導。下一步將基于FSTM 模型研究物聯網終端固件的安全檢測技術。

猜你喜歡
間通信固件進程
債券市場對外開放的進程與展望
綜合航電分區間通信元模型設計研究
改革開放進程中的國際收支統計
基于固件的遠程身份認證
提取ROM固件中的APP
一種通過USB接口的可靠固件升級技術
社會進程中的新聞學探尋
多路手機固件升級工具設計
基于核間寄存器的多核虛擬機系統中虛擬機間通信研究
俄羅斯現代化進程的阻礙
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合