楊毅宇,周威,趙尚儒,劉聰,張宇輝,王鶴,王文杰,張玉清,,,4
(1.中國(guó)科學(xué)院大學(xué)國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)入侵防范中心,北京 101408;2.西安郵電大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,陜西 西安 710121;3.西安電子科技大學(xué)網(wǎng)絡(luò)與信息安全學(xué)院,陜西 西安 710071;4.海南大學(xué)計(jì)算機(jī)與網(wǎng)絡(luò)空間安全學(xué)院,海南 ???570228)
近5 年來(lái),物聯(lián)網(wǎng)設(shè)備數(shù)量呈爆炸性增長(zhǎng),根據(jù)權(quán)威統(tǒng)計(jì)機(jī)構(gòu)發(fā)布的數(shù)據(jù),全球接入網(wǎng)絡(luò)的物聯(lián)網(wǎng)設(shè)備數(shù)量在2017 年已達(dá)20.35 億臺(tái),并且到2025 年將增長(zhǎng)到超過(guò)75.44 億臺(tái)[1],物聯(lián)網(wǎng)將深刻影響人類生產(chǎn)和生活的各個(gè)方面。然而,在物聯(lián)網(wǎng)蓬勃發(fā)展的過(guò)程中,現(xiàn)有的安全機(jī)制難以應(yīng)對(duì)日益增長(zhǎng)的安全需求,導(dǎo)致各類應(yīng)用場(chǎng)景中的安全問(wèn)題層出不窮[2],大量設(shè)備容易遭受惡意代碼威脅或非法控制,甚至引發(fā)大規(guī)模安全事故。從2016 年著名的Mirai蠕蟲利用物聯(lián)網(wǎng)設(shè)備引發(fā)大規(guī)模拒絕服務(wù)攻擊事件[3],到近期的智能音箱被攻擊者利用來(lái)竊聽用戶隱私[4],物聯(lián)網(wǎng)安全威脅隨著技術(shù)發(fā)展而不斷出現(xiàn)。
及時(shí)檢測(cè)發(fā)現(xiàn)安全威脅或提前采取防御是對(duì)抗威脅的重要手段,但是物聯(lián)網(wǎng)系統(tǒng)的特性[1]決定了對(duì)其實(shí)施完善的安全防護(hù)面臨諸多挑戰(zhàn)。例如,物聯(lián)網(wǎng)平臺(tái)在設(shè)計(jì)開發(fā)、通信交互、訪問(wèn)控制等方面缺乏統(tǒng)一的標(biāo)準(zhǔn),設(shè)備的內(nèi)部和外部運(yùn)行環(huán)境缺乏有效保護(hù),已有的解決方案中存在應(yīng)用面窄、自動(dòng)化不足等缺點(diǎn)。因此,面對(duì)不斷出現(xiàn)的安全威脅,仍需要深入研究更全面可靠的檢測(cè)和防御方案。
本文基于 2016 年—2020 年網(wǎng)絡(luò)安全會(huì)議(ACM CCS、USENIX Security、NDSS、IEEE S&P)中發(fā)表的物聯(lián)網(wǎng)安全相關(guān)文獻(xiàn),以及其他在物聯(lián)網(wǎng)安全研究方面的高水平工作進(jìn)行了總結(jié)分析。從“威脅、檢測(cè)、防御”的角度對(duì)104 篇相關(guān)文獻(xiàn)進(jìn)行分析與整理,并圍繞相應(yīng)主題進(jìn)行深入討論。各類別的文獻(xiàn)數(shù)量統(tǒng)計(jì)結(jié)果如圖1 所示,部分文獻(xiàn)在發(fā)現(xiàn)威脅的同時(shí),建立了有效的檢測(cè)或防御方案,因此同時(shí)計(jì)入2 個(gè)類別中。從圖1 可看出,在威脅方面,近5 年文獻(xiàn)數(shù)量總體持續(xù)增加,說(shuō)明近有新的威脅被不斷發(fā)現(xiàn),本文對(duì)這些威脅進(jìn)行了分類,并分析了它們的成因和危害;在檢測(cè)和防御方面,后3 年數(shù)量較前兩年有顯著增加,說(shuō)明針對(duì)已知威脅有更多的對(duì)抗方案被提出,本文也對(duì)這些檢測(cè)和防御方案的技術(shù)特點(diǎn)進(jìn)行了分析與總結(jié)。
圖1 2016 年—2020 年物聯(lián)網(wǎng)安全代表性研究統(tǒng)計(jì)
雖然當(dāng)前已有面向物聯(lián)網(wǎng)安全的綜述研究[5-7],但是專門對(duì)現(xiàn)有研究工作提出的攻擊和檢測(cè)防御方案的總結(jié)分析較少,本文緊緊圍繞“威脅、檢測(cè)、防御”3 個(gè)主題,覆蓋近5 年物聯(lián)網(wǎng)安全研究工作的主要方向,同時(shí)深入分析各類威脅的成因和危害,以及對(duì)應(yīng)的檢測(cè)和防御機(jī)制的技術(shù)類型和效果。本文的主要貢獻(xiàn)如下:1) 系統(tǒng)總結(jié)近5 年物聯(lián)網(wǎng)安全研究中發(fā)現(xiàn)的主要安全威脅,展示這些威脅產(chǎn)生的成因和危害;2) 深入分析對(duì)抗這些安全威脅的主要檢測(cè)和防御方案,展示這些方案的技術(shù)類型和效果;3) 基于威脅、檢測(cè)和防御3 個(gè)方面的分析來(lái)揭示物聯(lián)網(wǎng)未來(lái)發(fā)展過(guò)程中將面臨的主要安全挑戰(zhàn),并指出物聯(lián)網(wǎng)安全研究下一步的方向。
本節(jié)對(duì)物聯(lián)網(wǎng)系統(tǒng)的基本架構(gòu),以及架構(gòu)各層對(duì)應(yīng)的主要研究對(duì)象進(jìn)行介紹,如圖2 所示。物聯(lián)網(wǎng)系統(tǒng)的一般架構(gòu)主要分為感知層、網(wǎng)絡(luò)層、應(yīng)用層3 個(gè)部分。
圖2 物聯(lián)網(wǎng)系統(tǒng)基本架構(gòu)與研究對(duì)象
感知層對(duì)應(yīng)的是各類物聯(lián)網(wǎng)設(shè)備。設(shè)備通過(guò)傳感器實(shí)時(shí)收集應(yīng)用場(chǎng)景信息并發(fā)送給應(yīng)用層,或接收應(yīng)用層指令并執(zhí)行相應(yīng)動(dòng)作。設(shè)備的內(nèi)部架構(gòu)可以分為硬件層、系統(tǒng)層、用戶層。其中,硬件層包括支持設(shè)備功能的各種硬件模組(如網(wǎng)絡(luò)模組、傳感器模組等)、處理器、外圍電路等;系統(tǒng)層裝載了固件程序,其中包括操作系統(tǒng)和應(yīng)用程序,負(fù)責(zé)設(shè)備功能的實(shí)現(xiàn);用戶層主要向用戶提供展示數(shù)據(jù)和接收輸入的操作接口。
網(wǎng)絡(luò)層對(duì)應(yīng)的是設(shè)備之間,以及設(shè)備、云平臺(tái)、手機(jī)App 這三類實(shí)體之間的通信。設(shè)備之間可以通過(guò)ZigBee、Z-Wave 等輕量級(jí)協(xié)議形成自組網(wǎng)絡(luò)(如工業(yè)設(shè)備網(wǎng)絡(luò)、無(wú)人機(jī)集群);設(shè)備也可以經(jīng)路由器連接后形成局域網(wǎng)(如智能家居網(wǎng)絡(luò))。設(shè)備連接路由器有2 種形式:一是直接通過(guò)Wi-Fi 連接;二是通過(guò)ZigBee、Z-Wave 等協(xié)議與網(wǎng)關(guān)設(shè)備(如hub)連接后,再經(jīng)網(wǎng)關(guān)通過(guò)Wi-Fi 與路由器通信。
實(shí)體之間通信分為3 種類型:1) 設(shè)備與App通信,設(shè)備既可以通過(guò)藍(lán)牙直接連接手機(jī)(如可穿戴設(shè)備、車載系統(tǒng)網(wǎng)絡(luò)),也可以通過(guò)局域網(wǎng)Wi-Fi與手機(jī)通信(如智能家居網(wǎng)絡(luò));2) 設(shè)備與云平臺(tái)通信,設(shè)備依靠路由器轉(zhuǎn)發(fā)請(qǐng)求和接收響應(yīng),而路由器與云平臺(tái)的通信主要由傳統(tǒng)TCP/IP 網(wǎng)絡(luò)架構(gòu)實(shí)現(xiàn);3) 手機(jī)與云平臺(tái)通信:手機(jī)App 可以通過(guò)4G/5G 網(wǎng)絡(luò)或局域網(wǎng)Wi-Fi 連接云平臺(tái)。
應(yīng)用層對(duì)應(yīng)的主要是云平臺(tái)和手機(jī)App。云平臺(tái)主要由廠商在云端部署的各類應(yīng)用服務(wù)組成,負(fù)責(zé)管理設(shè)備和用戶,對(duì)設(shè)備收集的數(shù)據(jù)進(jìn)行處理,或向設(shè)備發(fā)送遠(yuǎn)程控制命令。根據(jù)云平臺(tái)提供的功能,可以將其分為設(shè)備接入平臺(tái)、服務(wù)聯(lián)動(dòng)平臺(tái)、語(yǔ)音助手平臺(tái)3 種。設(shè)備接入平臺(tái)提供了實(shí)際的設(shè)備接入和管理功能,如Samsung SmartThings、Google Home、Philips Hue、小米米家等;服務(wù)聯(lián)動(dòng)平臺(tái)并沒(méi)有連接真實(shí)的設(shè)備,而是將其他平臺(tái)的功能連接起來(lái),提供“條件-動(dòng)作”自動(dòng)執(zhí)行規(guī)則服務(wù),如IFTTT 平臺(tái)等;語(yǔ)音助手平臺(tái)通過(guò)智能音箱向用戶提供語(yǔ)音控制服務(wù),用戶發(fā)出的語(yǔ)音命令經(jīng)語(yǔ)音平臺(tái)處理后可以與其他控制設(shè)備的功能或服務(wù)連接到一起,如Amazon Alexa 等。另外,不同云平臺(tái)之間也可以在授權(quán)后,通過(guò)互相調(diào)用API(application programming interface)執(zhí)行設(shè)備控制。手機(jī)App 可看作云平臺(tái)向用戶提供的控制終端,主要用于向用戶提供設(shè)備相關(guān)的功能界面,可以直觀展示設(shè)備狀態(tài),或者執(zhí)行控制命令。
傳統(tǒng)安全問(wèn)題在物聯(lián)網(wǎng)系統(tǒng)中具有特殊的表現(xiàn)形式,而物聯(lián)網(wǎng)系統(tǒng)由于自身特性也引入了新的威脅類型。本節(jié)進(jìn)一步從云平臺(tái)、通信、設(shè)備等角度將研究發(fā)現(xiàn)的安全威脅歸為8 類,分別闡述了各類安全威脅的漏洞成因和主要危害,分類結(jié)果如表1 所示。
表1 各類安全威脅的漏洞成因和主要危害
3.1.1 云平臺(tái)訪問(wèn)控制缺陷
訪問(wèn)控制是云平臺(tái)正常運(yùn)轉(zhuǎn)的重要前提,物聯(lián)網(wǎng)云平臺(tái)連接了大量與人類緊密聯(lián)系的設(shè)備,如果身份驗(yàn)證或權(quán)限管理出現(xiàn)漏洞,云平臺(tái)將轉(zhuǎn)變成為攻擊者的強(qiáng)大武器?,F(xiàn)有研究顯示,云平臺(tái)的訪問(wèn)控制問(wèn)題突出[8],本節(jié)根據(jù)授權(quán)類型將權(quán)限管理的威脅分為平臺(tái)內(nèi)和平臺(tái)間2 種。
首先,部分平臺(tái)對(duì)內(nèi)部應(yīng)用或服務(wù)的權(quán)限管理設(shè)計(jì)存在漏洞。SmartThings 和IFTTT 是全球范圍內(nèi)廣受歡迎的云平臺(tái),擁有廣大的用戶群體,且連接了海量的設(shè)備和服務(wù),但是Fernandes 等[9-10]發(fā)現(xiàn)這2 家平臺(tái)都對(duì)連接設(shè)備的應(yīng)用或服務(wù)采取了粗粒度的權(quán)限劃分方式,應(yīng)用或服務(wù)可以獲得其申請(qǐng)范圍之外的權(quán)限,導(dǎo)致攻擊者可以利用這種缺陷對(duì)他人的設(shè)備輕易發(fā)起信息監(jiān)聽或越權(quán)控制。
其次,云平臺(tái)之間進(jìn)行相互授權(quán)的過(guò)程中也存在設(shè)計(jì)漏洞。當(dāng)前大部分云平臺(tái)都允許用戶將注冊(cè)在其他廠商平臺(tái)下的設(shè)備,經(jīng)過(guò)“云云授權(quán)”后與自家平臺(tái)聯(lián)接(例如,可以將小京魚平臺(tái)下的設(shè)備聯(lián)接到小米米家平臺(tái),通過(guò)米家App 控制小京魚平臺(tái)的設(shè)備)。然而,在目前缺乏統(tǒng)一的平臺(tái)間授權(quán)標(biāo)準(zhǔn)的情況下,即使廠商在自身范圍內(nèi)做好了安全審核,在權(quán)限交接時(shí)可能會(huì)因?yàn)槠脚_(tái)之間不對(duì)稱的授權(quán)要求而暴露新的漏洞。Yuan 等[11]針對(duì)這類安全問(wèn)題進(jìn)行了系統(tǒng)性研究,在多家全球知名的云平臺(tái)之間的授權(quán)過(guò)程中都發(fā)現(xiàn)了安全漏洞,這些安全漏洞導(dǎo)致攻擊者可以通過(guò)代理平臺(tái)繞過(guò)設(shè)備自身平臺(tái)的保護(hù)機(jī)制,對(duì)設(shè)備發(fā)起非法訪問(wèn)。
3.1.2 云平臺(tái)惡意應(yīng)用
云平臺(tái)提供了面向設(shè)備的各類應(yīng)用,用戶通過(guò)應(yīng)用可以實(shí)現(xiàn)豐富的控制功能。但是,目前云平臺(tái)對(duì)應(yīng)用的安全審查不夠完善,導(dǎo)致惡意應(yīng)用混雜其中,本節(jié)介紹云平臺(tái)惡意應(yīng)用的幾種形式。
部分云平臺(tái)對(duì)用戶來(lái)說(shuō)是完全封閉的,用戶無(wú)法獲取應(yīng)用的邏輯或代碼,只能安裝云平臺(tái)封裝好的應(yīng)用或自動(dòng)執(zhí)行規(guī)則。部分平臺(tái)雖然對(duì)用戶隱藏底層的運(yùn)行機(jī)制,但會(huì)開放一系列基礎(chǔ)設(shè)計(jì)功能(如API 或編程框架)給用戶,用戶可以自己編寫和發(fā)布應(yīng)用。這類平臺(tái)包括SmartThings、IFTTT、Alexa 等,它們雖然提供了更加豐富和靈活的應(yīng)用生態(tài),但是為攻擊者提供了實(shí)現(xiàn)惡意應(yīng)用的機(jī)會(huì)。
關(guān)于SmartThings平臺(tái)的多項(xiàng)研究[9,12-14]都證明該平臺(tái)的應(yīng)用開放特性和不完善的審核機(jī)制極易引入惡意應(yīng)用,已公開發(fā)布的應(yīng)用(如SmartThings中的SmartApp)中,近2/3 都具有泄露設(shè)備隱私的風(fēng)險(xiǎn)[12]。在IFTTT 平臺(tái)中,Bastys 等[15]發(fā)現(xiàn)市場(chǎng)中近30%的服務(wù)(如IFTTT 中的Applet)存在安全隱患,攻擊者在代碼中嵌入的惡意鏈接會(huì)將用戶輸入的隱私信息發(fā)送到攻擊者服務(wù)器。此外,惡意代碼在語(yǔ)音平臺(tái)中的表現(xiàn)形式是帶有惡意意圖的Skill[4],攻擊者可以上傳惡意的Skill[16-17],在用戶不易察覺(jué)的情況下暗中劫持正常的語(yǔ)音命令或替換真實(shí)Skill 的功能。
3.1.3 云平臺(tái)實(shí)體和應(yīng)用交互漏洞
云平臺(tái)、手機(jī)App、設(shè)備三類實(shí)體之間的交互是物聯(lián)網(wǎng)云平臺(tái)區(qū)別于傳統(tǒng)云服務(wù)的重要特性,然而復(fù)雜的交互過(guò)程也帶來(lái)了安全挑戰(zhàn)。本節(jié)將交互漏洞分為實(shí)體間交互和應(yīng)用間交互2 種類型。
在用戶訪問(wèn)設(shè)備的過(guò)程中,設(shè)備可能經(jīng)歷注冊(cè)、綁定、使用、解綁、重置等階段,在各個(gè)階段中,云平臺(tái)、手機(jī)App、設(shè)備這三類實(shí)體需要進(jìn)行信息交互和狀態(tài)轉(zhuǎn)換,并且各實(shí)體的交互和轉(zhuǎn)換次序必須遵照既定模型進(jìn)行,如圖3 所示,任一實(shí)體對(duì)交互模型的違背都會(huì)破壞模型的完整性。
圖3 云平臺(tái)三類實(shí)體交互模型
Zhou 等[18]和Chen 等[19]分別對(duì)多家全球知名廠商平臺(tái)的實(shí)體交互過(guò)程進(jìn)行檢測(cè)后發(fā)現(xiàn),廠商對(duì)功能的實(shí)現(xiàn)并未嚴(yán)格遵守通信模型的規(guī)定,例如,用戶解除云平臺(tái)中的設(shè)備綁定關(guān)系后,設(shè)備不會(huì)回退到初始狀態(tài),而是依然與云平臺(tái)保持連接,所以攻擊者可以在此時(shí)對(duì)該設(shè)備發(fā)起綁定請(qǐng)求實(shí)現(xiàn)遠(yuǎn)程劫持。
云平臺(tái)應(yīng)用或服務(wù)的交互情形有2 種,一是多個(gè)應(yīng)用控制相同的設(shè)備,此時(shí)設(shè)備是應(yīng)用的“交點(diǎn)”;二是多個(gè)應(yīng)用的觸發(fā)條件或執(zhí)行動(dòng)作重合,此時(shí)條件或動(dòng)作是應(yīng)用的“交點(diǎn)”。當(dāng)多個(gè)應(yīng)用在同一場(chǎng)景下被使用時(shí),它們?cè)凇敖稽c(diǎn)”上可能產(chǎn)生不可預(yù)期的執(zhí)行沖突,而這種沖突會(huì)改變應(yīng)用或服務(wù)的執(zhí)行結(jié)果[13-14,20]。例如,智能家居場(chǎng)景中部署了2 條服務(wù),分別為“如果檢測(cè)到煙霧,則打開水閥”和“如果檢測(cè)到漏水,則關(guān)閉水閥”,當(dāng)廚房發(fā)生火災(zāi)時(shí),煙霧傳感器命令水閥打開,同時(shí)開啟屋頂噴水器(第一條服務(wù)生效),但是漏水傳感器檢測(cè)到水流后命令水閥關(guān)閉(第二條服務(wù)生效),最終這種沖突將導(dǎo)致自動(dòng)滅火的規(guī)則失效,引起人身財(cái)產(chǎn)損失。值得注意的是,這種威脅不一定來(lái)自惡意應(yīng)用,也可能是由多個(gè)良性應(yīng)用同時(shí)執(zhí)行產(chǎn)生沖突造成的,由于服務(wù)規(guī)則間交互的復(fù)雜性,云平臺(tái)依靠傳統(tǒng)的審核機(jī)制難以發(fā)現(xiàn)這種問(wèn)題。
3.1.4 通信協(xié)議漏洞
首先是物聯(lián)網(wǎng)常用協(xié)議,如MQTT(message queuing telemetry transport)、CoAP、ZigBee、低功耗藍(lán)牙等。這類協(xié)議雖然不是專門為物聯(lián)網(wǎng)系統(tǒng)定制設(shè)計(jì)的,但是由于其適配于低功耗設(shè)備和低帶寬需求的特性而受到眾多物聯(lián)網(wǎng)系統(tǒng)的青睞,因此在物聯(lián)網(wǎng)系統(tǒng)中有較高的使用率,但是其本身并非為存在對(duì)抗性的應(yīng)用場(chǎng)景所設(shè)計(jì),因此缺乏內(nèi)建的安全機(jī)制,廠商在應(yīng)用和實(shí)現(xiàn)這些協(xié)議時(shí)容易忽略對(duì)安全屬性的考慮。Jia 等[21]在多家全球知名廠商的物聯(lián)網(wǎng)平臺(tái)中,都發(fā)現(xiàn)其對(duì)MQTT 協(xié)議的實(shí)現(xiàn)存在缺陷,被攻擊者利用后可能引發(fā)大規(guī)模分布式拒絕服務(wù)、遠(yuǎn)程設(shè)備劫持、用戶隱私竊取等攻擊。Cao等[22]發(fā)現(xiàn)基于ZigBee 的ghost 攻擊會(huì)造成設(shè)備能量過(guò)度消耗,引發(fā)拒絕服務(wù)和重放攻擊等威脅。低功耗藍(lán)牙是當(dāng)前可穿戴設(shè)備與手機(jī)App 通信的主要渠道,但是該協(xié)議在應(yīng)用過(guò)程中被發(fā)現(xiàn)隱私泄露[23-24]、設(shè)備劫持[25]等威脅。
其次是物聯(lián)網(wǎng)私有協(xié)議。這類協(xié)議是指廠商定制設(shè)計(jì)的協(xié)議類型,通常只適用于其平臺(tái)下設(shè)備的通信,且一般不對(duì)外開放實(shí)現(xiàn)細(xì)節(jié)。但是,攻擊者通過(guò)逆向工程仍可以獲取通信細(xì)節(jié),如果廠商對(duì)私有協(xié)議的設(shè)計(jì)存在缺陷,也可能被攻擊者利用后發(fā)起攻擊。當(dāng)前研究[18-19,26-27]已證明全球多家知名物聯(lián)網(wǎng)廠商的私有協(xié)議在被成功解析后,其關(guān)于設(shè)備認(rèn)證與授權(quán)檢查等方面的漏洞將立即暴露在攻擊者眼前。
3.1.5 通信流量側(cè)信道信息泄露
物聯(lián)網(wǎng)系統(tǒng)中規(guī)模龐大和種類豐富的網(wǎng)絡(luò)流量為側(cè)信道攻擊的實(shí)施提供了可行性條件,同時(shí)物聯(lián)網(wǎng)系統(tǒng)的通信過(guò)程具有區(qū)別于其他系統(tǒng)的內(nèi)在特性,例如,設(shè)備只被分配簡(jiǎn)單的任務(wù)和操作,只能發(fā)起有限的服務(wù)請(qǐng)求,并采用固定的協(xié)議和傳輸模式進(jìn)行通信,所以物聯(lián)網(wǎng)的通信流量具有明顯的可識(shí)別特征。雖然有各類加密機(jī)制應(yīng)用在流量信息保護(hù)中,但是仍然不能防止攻擊者通過(guò)側(cè)信道特征獲得設(shè)備和用戶相關(guān)的敏感信息。
表2 對(duì)幾種側(cè)信道攻擊方法進(jìn)行了對(duì)比。從表2可以看出,協(xié)議頭部特征(如端口號(hào)、負(fù)載大小、DNS 查詢目標(biāo)等)容易提取,但是能獲取的設(shè)備知識(shí)較少,例如,只能得知目標(biāo)設(shè)備或?qū)ο笫欠翊嬖?,或者獲知目標(biāo)設(shè)備類型,在簡(jiǎn)單的交互環(huán)境中可以實(shí)現(xiàn)信息提取。雖然信號(hào)強(qiáng)度、方向、包長(zhǎng)、時(shí)間等特征提取后需要采用特定的統(tǒng)計(jì)學(xué)習(xí)方法進(jìn)行分析,但是可以獲得較多關(guān)于的設(shè)備和活動(dòng)信息。
表2 側(cè)信道攻擊方法對(duì)比
3.1.6 設(shè)備固件漏洞
固件是運(yùn)行在設(shè)備中的二進(jìn)制程序,負(fù)責(zé)管理設(shè)備中的硬件外設(shè)以及實(shí)現(xiàn)設(shè)備的應(yīng)用功能。固件不同于傳統(tǒng)的個(gè)人計(jì)算機(jī)或手機(jī)程序擁有成熟的漏洞檢測(cè)和系統(tǒng)保護(hù)技術(shù),大部分固件所運(yùn)行的實(shí)時(shí)操作系統(tǒng)中缺乏基本的安全保護(hù)措施,如DEP(data execution prevention)、ASLR(address space layout randomization)等。同時(shí),當(dāng)前缺乏對(duì)固件程序進(jìn)行調(diào)試和檢測(cè)的有效工具,導(dǎo)致大量攜帶漏洞的固件存在于實(shí)際產(chǎn)品中,攻擊者利用這些漏洞可以對(duì)設(shè)備進(jìn)行拒絕服務(wù)、非法操作和劫持等攻擊。本節(jié)根據(jù)固件漏洞產(chǎn)生的原因?qū)⑵浞譃閮?nèi)存漏洞和邏輯漏洞2 類。
短裙子女孩約我來(lái)這里干什么呢?和美女單獨(dú)約會(huì)的美夢(mèng)看來(lái)是破滅了。但一種突然而至的神秘感讓我又害怕又亢奮,我決定在這里等下去,等著把這件神秘的事情弄明白。上過(guò)大學(xué)的人都懂的,在大學(xué)里如果你不談戀愛(ài),那么日子會(huì)像白開水一樣沒(méi)滋沒(méi)味,除了教室就是宿舍,除了宿舍就是廁所,三點(diǎn)一線的單調(diào)像只穿了三個(gè)蛋蛋的糖葫蘆。周五晚上學(xué)校還有免費(fèi)電影的,但在我心兒突突亂跳的那一刻,什么都沒(méi)有這份神秘有誘惑力了。
固件內(nèi)存漏洞一般由編碼或設(shè)計(jì)錯(cuò)誤引起,會(huì)導(dǎo)致內(nèi)存非法訪問(wèn)、控制流劫持等攻擊,如堆棧緩沖區(qū)溢出。物聯(lián)網(wǎng)設(shè)備固件主要由底層語(yǔ)言(如C語(yǔ)言)開發(fā),在開發(fā)過(guò)程中會(huì)不可避免地引入編碼缺陷。在硬件層面,設(shè)備的CPU 異構(gòu)性、外設(shè)多樣性等特點(diǎn),使對(duì)固件程序開展規(guī)?;妥詣?dòng)化的漏洞檢測(cè)十分困難。在軟件層面,設(shè)備操作系統(tǒng)呈現(xiàn)碎片化,同時(shí)由于有限的硬件資源導(dǎo)致缺乏必要的動(dòng)態(tài)防御措施,如CFI(control flow integrity)等,導(dǎo)致攻擊者更加容易利用內(nèi)存漏洞。多項(xiàng)研究指出,代碼注入[34-36]、控制流劫持[37-38]、跨二進(jìn)制模塊的調(diào)用[39]是固件內(nèi)存漏洞的主要成因。
固件邏輯漏洞指的是固件在認(rèn)證、授權(quán)、應(yīng)用功能等方面的設(shè)計(jì)或?qū)崿F(xiàn)缺陷。與內(nèi)存漏洞不同,這種漏洞不一定會(huì)引發(fā)系統(tǒng)崩潰,攻擊者利用邏輯設(shè)計(jì)缺陷,構(gòu)造特定的輸入就可以使程序的正常功能發(fā)生偏移。例如,認(rèn)證繞過(guò)漏洞[40]是典型的固件邏輯漏洞類型,攻擊者可以通過(guò)這種漏洞繞過(guò)系統(tǒng)對(duì)特權(quán)指令的權(quán)限檢查;在智能網(wǎng)絡(luò)打印機(jī)固件程序中的功能設(shè)計(jì)缺陷在實(shí)際辦公場(chǎng)景中會(huì)導(dǎo)致任務(wù)篡改、機(jī)密竊取等后果[41]。
3.1.7 基于語(yǔ)音信道的攻擊
語(yǔ)音助手設(shè)備(如智能音箱)在物聯(lián)網(wǎng)系統(tǒng)中處于控制中心的地位,用戶可以通過(guò)語(yǔ)音助手設(shè)備來(lái)控制其他設(shè)備,所以對(duì)語(yǔ)音設(shè)備的攻擊將會(huì)威脅受其控制的所有設(shè)備。
首先,部分攻擊技術(shù)可以在語(yǔ)音信道中藏匿人類無(wú)法察覺(jué)但設(shè)備可以識(shí)別的語(yǔ)音信號(hào)。Carlini 等[42]首先展示了用于構(gòu)造可被語(yǔ)音識(shí)別系統(tǒng)解釋但不被人類發(fā)現(xiàn)的語(yǔ)音命令的幾種方法,同時(shí)證明這些命令會(huì)在暗中窺探用戶隱私和自行打開釣魚網(wǎng)站。之后,多項(xiàng)研究發(fā)現(xiàn)了傳播語(yǔ)音命令的載體,例如,將語(yǔ)音信號(hào)調(diào)制為人類無(wú)法識(shí)別的高頻超聲波信號(hào)[43],或者將語(yǔ)音命令嵌入音樂(lè)中[44];還有研究將承載語(yǔ)音設(shè)備的固體作為媒介,通過(guò)固體震動(dòng)頻率來(lái)傳輸語(yǔ)音命令[45],以上攻擊的共同特點(diǎn)是語(yǔ)音設(shè)備可以正常接收和解釋這種信號(hào),但是人類難以察覺(jué)交互過(guò)程。
另外,隱藏的語(yǔ)音信號(hào)在傳輸過(guò)程中面臨傳播距離和噪聲影響的挑戰(zhàn),但這種困難被證明可以克服。例如,Roy 等[46]通過(guò)多個(gè)揚(yáng)聲器來(lái)分離語(yǔ)音信號(hào)的頻帶,顯著增加了攻擊距離。Chen 等[47]通過(guò)提取硬件結(jié)構(gòu)和信道頻率造成的信號(hào)失真影響因素,以此作為生成語(yǔ)音信號(hào)對(duì)抗樣本的因子之一,可以有效克服傳播中的噪聲影響,提高語(yǔ)音信號(hào)被識(shí)別的成功率。
3.1.8 基于物聯(lián)網(wǎng)設(shè)備的僵尸網(wǎng)絡(luò)
物聯(lián)網(wǎng)系統(tǒng)中的設(shè)備數(shù)量眾多且規(guī)模龐大,其一旦被病毒、木馬等惡意軟件攻擊,就可以組建威力巨大的僵尸網(wǎng)絡(luò)。被病毒劫持的設(shè)備除了無(wú)法正常使用之外,組成的僵尸網(wǎng)絡(luò)還可被攻擊者當(dāng)作其他惡意行為的“跳板”,為后續(xù)的大規(guī)模分布式拒絕服務(wù)攻擊、惡意郵件分發(fā)等攻擊做好準(zhǔn)備。
著名的Mirai 病毒以及由其衍生出的多類變種至今仍然是工控系統(tǒng)設(shè)備的主要威脅[48]。例如,MadIoT[49-50]是一種面向電網(wǎng)系統(tǒng)的新型攻擊,利用被控制的高功率家庭物聯(lián)網(wǎng)設(shè)備組建僵尸網(wǎng)絡(luò),以此操縱電網(wǎng)中的電力需求,進(jìn)而向電網(wǎng)系統(tǒng)發(fā)起攻擊,造成局域或大規(guī)模停電事故。此外,Ronen 等[51]展示了一種利用ZigBee 協(xié)議漏洞可在物聯(lián)網(wǎng)設(shè)備中進(jìn)行大規(guī)模傳播的蠕蟲病毒,該病毒可在鄰近的智能路燈之間進(jìn)行快速傳播并導(dǎo)致設(shè)備接受遠(yuǎn)程控制,攻擊者可接管城市的路燈控制權(quán),從而發(fā)起大規(guī)模分布式拒絕服務(wù)攻擊。
3.1.9 安全威脅小結(jié)
下面對(duì)3.1 節(jié)中關(guān)于安全威脅研究的特點(diǎn)和不足進(jìn)行總結(jié),主要分為以下幾個(gè)方面。
1) 云平臺(tái)威脅影響嚴(yán)重,但是當(dāng)前研究針對(duì)的云平臺(tái)類型有限。物聯(lián)網(wǎng)云平臺(tái)在近幾年中獲得了巨大發(fā)展,與之相關(guān)的安全研究也不斷增多,但是從近5 年的研究來(lái)看,當(dāng)前研究比較依賴于平臺(tái)的“開放”特性,大多數(shù)研究[9-14]都圍繞SmartThings、IFTTT 等可獲取應(yīng)用內(nèi)部邏輯的云平臺(tái),而當(dāng)前更多的云平臺(tái)并不對(duì)外開放內(nèi)部邏輯。在開放平臺(tái)中已發(fā)現(xiàn)的威脅可能在封閉平臺(tái)中同樣存在,因此對(duì)封閉平臺(tái)的類似威脅研究有待探索。
2) 云平臺(tái)更注重系統(tǒng)機(jī)密性的保護(hù),而輕視了系統(tǒng)的完整性和可用性。當(dāng)前大多云平臺(tái)通過(guò)加密機(jī)制對(duì)外隱藏應(yīng)用和通信協(xié)議的實(shí)現(xiàn)作為主要的安全機(jī)制,而對(duì)其他的安全因素疏于維護(hù),如身份和權(quán)限檢查、交互模型維護(hù)等。上述的多項(xiàng)研究[11,18-19,26]表明,在物聯(lián)網(wǎng)系統(tǒng)這種存在對(duì)抗性交互的環(huán)境中,敵手有能力破解加密保護(hù),因此云平臺(tái)在授權(quán)管理、協(xié)議應(yīng)用、實(shí)體交互等過(guò)程中如果存在安全漏洞,將會(huì)被敵手輕易利用,云平臺(tái)一旦受到威脅,其連接的各類設(shè)備將會(huì)被攻擊者全部攻破。
3) 交互邏輯漏洞是物聯(lián)網(wǎng)系統(tǒng)中新出現(xiàn)的威脅類型。物聯(lián)網(wǎng)系統(tǒng)的一個(gè)顯著特點(diǎn)是其中功能實(shí)現(xiàn)過(guò)程涉及用戶、云平臺(tái)、設(shè)備三類實(shí)體的交互,同時(shí)云平臺(tái)面向用戶提供日益豐富的自動(dòng)控制服務(wù),各類服務(wù)在同一個(gè)應(yīng)用場(chǎng)景下也會(huì)存在交互。這些交互在實(shí)現(xiàn)之初難以準(zhǔn)確判定其中是否存在設(shè)計(jì)缺陷,甚至導(dǎo)致安全隱患[13-14,18-20]。隨著物聯(lián)網(wǎng)系統(tǒng)應(yīng)用功能不斷提升,交互類型不斷復(fù)雜化,交互過(guò)程中的邏輯漏洞是值得深入研究的方向。
4) 設(shè)備固件漏洞仍然是設(shè)備遭受威脅的主要因素。由于物聯(lián)網(wǎng)設(shè)備的數(shù)量龐大,固件漏洞被利用后可以快速傳播,造成更大規(guī)模的威脅[3,48]。隨著設(shè)備硬件性能不斷提升,固件包含的功能愈加豐富,內(nèi)存漏洞的影響仍然是設(shè)備面臨的主要安全威脅[34-35,37-39]。但是與內(nèi)存漏洞相比,邏輯漏洞更難發(fā)現(xiàn),而且攻擊者利用邏輯漏洞可以實(shí)現(xiàn)更加隱秘卻更具危害的威脅[40],因此如何進(jìn)一步提升邏輯漏洞檢測(cè)能力是值得后續(xù)研究的方向。
5) 針對(duì)語(yǔ)音設(shè)備的攻擊是物聯(lián)網(wǎng)系統(tǒng)特有的威脅類型?;谡Z(yǔ)音信道的控制方式極大地提升了用戶訪問(wèn)設(shè)備的效率,然而語(yǔ)音信道也引入了新的攻擊,一方面是基于語(yǔ)音平臺(tái)的惡意應(yīng)用[16-17],另一方面是利用語(yǔ)音信號(hào)的敏感性實(shí)施的隱藏語(yǔ)音信號(hào)攻擊[42-44],由于語(yǔ)音助手設(shè)備在應(yīng)用場(chǎng)景中的核心地位,基于語(yǔ)音控制的功能越來(lái)越豐富,針對(duì)這類威脅的研究仍然是研究人員關(guān)注的重點(diǎn)。
由此可見,當(dāng)前物聯(lián)網(wǎng)系統(tǒng)面臨的威脅類型種類繁多,且與物聯(lián)網(wǎng)特性緊密相關(guān),對(duì)這些新型威脅進(jìn)行檢測(cè)和防御是未來(lái)研究的必然趨勢(shì)。
針對(duì)物聯(lián)網(wǎng)應(yīng)用場(chǎng)景中不同類型的安全威脅,部分研究提出了針對(duì)性的檢測(cè)方案。本文對(duì)檢測(cè)的定義是及時(shí)發(fā)現(xiàn)物聯(lián)網(wǎng)系統(tǒng)中潛在或已出現(xiàn)的攻擊,在危害產(chǎn)生或擴(kuò)大之前進(jìn)行分析或處理。本節(jié)根據(jù)檢測(cè)面向的威脅類型和技術(shù)原理,將檢測(cè)方案分為6 種不同的類型,其對(duì)比如表3 所示。
表3 威脅檢測(cè)方案對(duì)比
3.2.1 云平臺(tái)惡意應(yīng)用檢測(cè)
檢測(cè)云平臺(tái)應(yīng)用的主要思想是提供一種獨(dú)立于平臺(tái)審核機(jī)制的方法,判斷發(fā)布在市場(chǎng)中的應(yīng)用是否會(huì)出現(xiàn)有威脅的運(yùn)行狀態(tài),或者出現(xiàn)功能聲明之外的運(yùn)行結(jié)果,從而判定該應(yīng)用是否具有“惡意”性質(zhì)。
首先,對(duì)于SmartThings 和IFTTT 平臺(tái)來(lái)說(shuō),其中惡意應(yīng)用或服務(wù)引發(fā)的典型后果之一是隱私信息泄露,而且這2 種平臺(tái)都可以獲得應(yīng)用代碼或API 權(quán)限,因此對(duì)這2 種平臺(tái)可以采用基于數(shù)據(jù)流分析的檢測(cè)方案,即追蹤敏感數(shù)據(jù)在應(yīng)用中的傳遞過(guò)程來(lái)識(shí)別應(yīng)用是否將攜帶敏感信息的數(shù)據(jù)在未經(jīng)用戶授權(quán)的情況下發(fā)送給外部不可信的目標(biāo)[12,15,52-53]。例如,在SmartThings 平臺(tái)中,Celik等[12]在應(yīng)用中自動(dòng)定位從產(chǎn)生敏感數(shù)據(jù)的函數(shù)到網(wǎng)絡(luò)接口函數(shù)的數(shù)據(jù)流,識(shí)別應(yīng)用是否將敏感數(shù)據(jù)通過(guò)網(wǎng)絡(luò)向外發(fā)送。在IFTTT 平臺(tái)中,Bastys 等[15]對(duì)每個(gè)應(yīng)用的Trigger 和Action 打上敏感標(biāo)簽,然后檢查每個(gè)Applet 的Trigger-Action 序列是否違背隱私約束規(guī)則。
其次,對(duì)于語(yǔ)音平臺(tái),由于無(wú)法獲取Skill 功能的實(shí)現(xiàn)細(xì)節(jié),因此當(dāng)前研究主要采用黑盒測(cè)試方案,即通過(guò)構(gòu)造不同形式的Skill 語(yǔ)音命令輸入,來(lái)檢查執(zhí)行結(jié)果是否產(chǎn)生偏離正常功能的行為。這種方案面臨的首要挑戰(zhàn)是如何自動(dòng)構(gòu)造語(yǔ)音命令輸入,Zhang 等[16]通過(guò)將Skill 名稱轉(zhuǎn)換為語(yǔ)音表達(dá)形式,然后對(duì)比不同Skill 的名稱是否具有相似的發(fā)音形式來(lái)查找可能引起語(yǔ)音劫持攻擊的惡意Skill;Guo 等[4]進(jìn)一步提出了一種基于語(yǔ)法和語(yǔ)義理解技術(shù),可以自動(dòng)與平臺(tái)進(jìn)行語(yǔ)音交互。此外,對(duì)于平臺(tái)返回的命令執(zhí)行結(jié)果,Guo 等[4]的方案是基于安全策略檢測(cè)其中是否包含侵犯用戶隱私的行為;Zhang 等[54]設(shè)計(jì)了一種針對(duì)語(yǔ)音識(shí)別系統(tǒng)中的NLU(natural language understanding)模塊的檢測(cè)方案,可以發(fā)現(xiàn)具有不良意圖的Skill 命令。
3.2.2 云平臺(tái)實(shí)體和應(yīng)用交互漏洞檢測(cè)
當(dāng)前研究中對(duì)交互漏洞的檢測(cè)大多基于模型檢測(cè)的方法,主要思想是先對(duì)實(shí)體或應(yīng)用的交互過(guò)程建模,然后將正常模型和實(shí)際運(yùn)行狀態(tài)進(jìn)行對(duì)比,檢測(cè)其中出現(xiàn)的異常。
首先是對(duì)實(shí)體交互漏洞的檢測(cè),采用的模型主要是有限狀態(tài)機(jī),主要通過(guò)逆向分析實(shí)體的交互過(guò)程得到各實(shí)體狀態(tài)的正常轉(zhuǎn)換流程,及其組合而成的三元組狀態(tài)集合,由此構(gòu)成了實(shí)體的正常交互模型。由于攻擊將導(dǎo)致實(shí)體出現(xiàn)異常狀態(tài)轉(zhuǎn)換,或出現(xiàn)異常的三元組集合,因此可根據(jù)標(biāo)準(zhǔn)交互模型與實(shí)體的實(shí)時(shí)狀態(tài)進(jìn)行對(duì)比來(lái)檢測(cè)是否出現(xiàn)異常的交互。Zhou 等[18]和Chen 等[19]采用了上述的思路,通過(guò)對(duì)多家全球知名物聯(lián)網(wǎng)云平臺(tái)的三方交互過(guò)程建立實(shí)體交互模型和檢測(cè),最終在多家平臺(tái)中驗(yàn)證了漏洞的存在,該漏洞可影響上億臺(tái)設(shè)備。
其次是對(duì)應(yīng)用或服務(wù)交互漏洞的檢測(cè),由于云平臺(tái)應(yīng)用具有不同的實(shí)現(xiàn)方式,所以建立的模型也有不同的特點(diǎn),表4 對(duì)部分方案的建模方式和檢測(cè)效果等進(jìn)行了對(duì)比。
表4 應(yīng)用或服務(wù)交互漏洞檢測(cè)方案對(duì)比
3.2.3 基于靜態(tài)分析的固件漏洞檢測(cè)
固件靜態(tài)分析是指不運(yùn)行固件程序,通過(guò)符號(hào)執(zhí)行、污點(diǎn)分析等技術(shù)分析二進(jìn)制文件的代碼結(jié)構(gòu)或邏輯關(guān)系,檢測(cè)其中存在的內(nèi)存漏洞或邏輯漏洞。
符號(hào)執(zhí)行是固件分析中常用的技術(shù)[56-57],核心思想是將程序輸入變成符號(hào),程序執(zhí)行結(jié)束后可以得到與每條執(zhí)行路徑對(duì)應(yīng)的符號(hào)表達(dá)式和約束條件,對(duì)約束條件進(jìn)行求解即可得到滿足路徑需求的輸入值。例如,Subramanyan 等[56]采用了一種專門的形式來(lái)描述固件中關(guān)于機(jī)密性和完整性的信息流屬性,然后通過(guò)符號(hào)執(zhí)行檢查固件中的執(zhí)行路徑是否違背了屬性的安全約定。污點(diǎn)分析的主要思想是在程序中建立數(shù)據(jù)依賴關(guān)系圖,通過(guò)污點(diǎn)傳播算法追蹤從敏感數(shù)據(jù)源到數(shù)據(jù)聚集點(diǎn)的路徑,并檢測(cè)路徑中是否存在安全問(wèn)題[39-40,58]。例如,Karonte[39]基于二進(jìn)制文件之間交互通常通過(guò)一組有限的進(jìn)程間通信模式集合進(jìn)行的思想,通過(guò)追蹤進(jìn)程間通信的數(shù)據(jù)傳播過(guò)程實(shí)現(xiàn)了跨文件的污點(diǎn)分析?;诙M(jìn)制相似性檢測(cè)的思想是提取已知漏洞在二進(jìn)制文件中的特征,然后在新的二進(jìn)制文件中進(jìn)行匹配查找以定位漏洞[35,59-60]。例如,F(xiàn)eng 等[60]借鑒了計(jì)算機(jī)視覺(jué)技術(shù)對(duì)圖像處理的思路,將提取到的程序控制流圖轉(zhuǎn)換為數(shù)字特征向量,從而大大降低了特征維度,提高了匹配算法的效率。
3.2.4 基于動(dòng)態(tài)分析的固件漏洞檢測(cè)
固件動(dòng)態(tài)分析通過(guò)獲取程序運(yùn)行的實(shí)時(shí)狀態(tài)可以更加準(zhǔn)確地發(fā)現(xiàn)漏洞,當(dāng)前研究大多通過(guò)將固件程序加載到QEMU 等仿真軟件中,在脫離硬件的情況下模擬固件的功能運(yùn)行,再結(jié)合模糊測(cè)試等技術(shù)檢測(cè)漏洞。
這種方法對(duì)基于Linux 內(nèi)核且具有完整操作系統(tǒng)功能的固件類型進(jìn)行仿真運(yùn)行的成功率較高。例如,F(xiàn)IRMADYNE[61]和FIRM-AFL[62]可以對(duì)大部分基于Linux 內(nèi)核的固件進(jìn)行全系統(tǒng)仿真運(yùn)行。但是對(duì)于其他基于實(shí)時(shí)操作系統(tǒng)的固件,或沒(méi)有操作系統(tǒng)的“裸機(jī)”固件(即應(yīng)用程序直接與硬件交互而不需要中間的操作系統(tǒng))來(lái)說(shuō),這種方案難以應(yīng)用。主要原因是:這種固件沒(méi)有統(tǒng)一的文件格式導(dǎo)致難以加載,部分固件被加密導(dǎo)致難以提取核心代碼,各種硬件組件和外設(shè)的輸入輸出信息難以獲取。
基于以上挑戰(zhàn),部分研究實(shí)現(xiàn)了固件部分仿真[40,63-64],主要思想是從固件中分離出與檢測(cè)目標(biāo)相關(guān)的代碼執(zhí)行路徑,只對(duì)這部分路徑進(jìn)行仿真執(zhí)行。例如,F(xiàn)IoT[63]從容易觸發(fā)內(nèi)存越界訪問(wèn)的匯聚點(diǎn)函數(shù)出發(fā),采用反向程序切片方法得到從數(shù)據(jù)輸入源到達(dá)匯聚點(diǎn)函數(shù)的路徑,結(jié)合符號(hào)執(zhí)行和模糊測(cè)試檢測(cè)該路徑執(zhí)行過(guò)程中是否存在內(nèi)存漏洞。
部分研究克服了設(shè)備硬件與固件的耦合性和底層架構(gòu)的差異性等困難,實(shí)現(xiàn)了固件全仿真[65-68]。例如,uEmu[68]通過(guò)基于符號(hào)執(zhí)行的路徑約束和程序動(dòng)態(tài)運(yùn)行狀態(tài)來(lái)推斷固件運(yùn)行過(guò)程中期望的輸入并形成外設(shè)反饋知識(shí)庫(kù),借助此知識(shí)庫(kù)可動(dòng)態(tài)引導(dǎo)程序執(zhí)行過(guò)程,以此實(shí)現(xiàn)不需要先驗(yàn)知識(shí)和原始硬件環(huán)境,即可對(duì)固件程序進(jìn)行全系統(tǒng)仿真。
3.2.5 基于手機(jī)App 的固件漏洞檢測(cè)
部分物聯(lián)網(wǎng)廠商向用戶提供了手機(jī)App 作為設(shè)備控制終端,App 中包含了與設(shè)備通信和功能相關(guān)的邏輯和數(shù)據(jù)。利用這種App 與設(shè)備之間的關(guān)聯(lián)性,部分研究人員在不分析設(shè)備和固件的前提下,通過(guò)手機(jī)App 來(lái)檢測(cè)固件中的漏洞。
由于現(xiàn)階段實(shí)現(xiàn)物聯(lián)網(wǎng)設(shè)備全系統(tǒng)仿真較困難并且難以直接從設(shè)備端定位數(shù)據(jù)輸入,IoTFuzzer[69]和DIANE[70]轉(zhuǎn)換思路,將App 看作設(shè)備的輸入接口,將發(fā)向設(shè)備的請(qǐng)求參數(shù)看作可變異的種子數(shù)據(jù),首先在App 中自動(dòng)定位參數(shù)的數(shù)據(jù)源或處理函數(shù);然后對(duì)參數(shù)值進(jìn)行變異,通過(guò)App 的原始業(yè)務(wù)邏輯將變異數(shù)據(jù)發(fā)向設(shè)備;最后動(dòng)態(tài)觀察真實(shí)設(shè)備的崩潰信息,以快速檢測(cè)固件中的內(nèi)存漏洞。Zuo 等[71]發(fā)現(xiàn)從App 中可以提取設(shè)備UUID(universally unique identifier)信息,該信息可在藍(lán)牙廣播中識(shí)別設(shè)備,同時(shí)從App 中可以發(fā)現(xiàn)當(dāng)前采用的藍(lán)牙認(rèn)證模式是否存在缺陷,攻擊者結(jié)合以上條件可以通過(guò)分析App 對(duì)周圍的藍(lán)牙設(shè)備發(fā)起攻擊。此外,設(shè)備廠商往往會(huì)復(fù)用相同的開發(fā)組件,因此組件中的漏洞將出現(xiàn)在不同的設(shè)備中,而這種相似性甚至?xí)ㄟ^(guò)App 表現(xiàn)出來(lái),因此通過(guò)比較不同設(shè)備在App 上的相似性就可以檢測(cè)設(shè)備是否存在漏洞[72]。
3.2.6 基于側(cè)信道的設(shè)備異常檢測(cè)
受到攻擊的設(shè)備除了內(nèi)部功能受到影響之外,其外在的各類側(cè)信道特征也會(huì)表現(xiàn)出異常,因此可以利用此特點(diǎn)進(jìn)行設(shè)備的異常檢測(cè)。
首先,設(shè)備與網(wǎng)絡(luò)交互過(guò)程中產(chǎn)生的流量可以反映設(shè)備內(nèi)部的行為,所以可以通過(guò)提取流量特征來(lái)檢測(cè)設(shè)備的狀態(tài)。一方面,可以提取流量中未加密的頭部信息識(shí)別異常設(shè)備[73-75]。例如,Yu 等[74]基于設(shè)備通信中常見的廣播和多播協(xié)議,將協(xié)議特征看作設(shè)備整體特征的一種視圖,然后基于多視圖學(xué)習(xí)算法進(jìn)行設(shè)備簽名,可以在具有大量設(shè)備的復(fù)雜環(huán)境中準(zhǔn)確識(shí)別異常或偽造的設(shè)備。另一方面,可以提取加密流量的統(tǒng)計(jì)特征,如數(shù)據(jù)包長(zhǎng)度、時(shí)間戳等。Zhang 等[75]利用ZigBee 和Z-Wave 協(xié)議的流量特征設(shè)計(jì)了識(shí)別SmartThings 平臺(tái)設(shè)備行為系統(tǒng),可以通過(guò)流量判斷設(shè)備是否出現(xiàn)異常行為。
其次,設(shè)備工作過(guò)程中表現(xiàn)出的外在物理特征,如電量、電壓、速度、重力、方向等,也可以反映設(shè)備的運(yùn)行狀態(tài),部分研究基于物理特征實(shí)現(xiàn)設(shè)備異常檢測(cè)[76-78]。例如,Choi 等[78]對(duì)無(wú)人機(jī)和地面探測(cè)器提取控制時(shí)的設(shè)備參數(shù)、物理運(yùn)動(dòng)數(shù)值、底層控制算法等數(shù)據(jù)作為正常運(yùn)行標(biāo)準(zhǔn),任何偏離標(biāo)準(zhǔn)的微小偏差都被視為異常,以此檢測(cè)來(lái)自物理或網(wǎng)絡(luò)的攻擊。
此外,有部分研究基于鄰近的設(shè)備或傳感器對(duì)于活動(dòng)發(fā)生時(shí)的物理環(huán)境感知應(yīng)具有上下文一致性這一特點(diǎn),將鄰近設(shè)備的狀態(tài)和動(dòng)作數(shù)據(jù)作為特征進(jìn)行惡意行為識(shí)別[79-80]。例如,Birnbach 等[79]基于智能家居環(huán)境中多個(gè)傳感器對(duì)同一事件的感知數(shù)據(jù)集合作為簽名,可以檢測(cè)出由于傳感器故障或攻擊者造成的欺騙事件。
3.2.7 威脅檢測(cè)小結(jié)
下面對(duì)3.2 節(jié)中關(guān)于威脅檢測(cè)研究的特點(diǎn)和不足進(jìn)行總結(jié),主要分為以下幾個(gè)方面。
1) 云平臺(tái)惡意應(yīng)用檢測(cè)方案存在局限性。不難看出,大部分惡意應(yīng)用檢測(cè)[12,15,52-53]都面向SmartThings 和IFTTT 這2 個(gè)平臺(tái)。這些方案雖然獲得了較好的識(shí)別效果,但是實(shí)現(xiàn)方案顯然都要基于平臺(tái)應(yīng)用開發(fā)語(yǔ)言的特性,在其他不開放應(yīng)用邏輯的云平臺(tái)中難以適用。與之相對(duì)的是FlowFence[81],該方案與具體平臺(tái)特性無(wú)關(guān),通過(guò)在平臺(tái)中預(yù)先建立沙箱隔離所有敏感操作,平臺(tái)應(yīng)用必須通過(guò)沙箱定義的接口才能訪問(wèn)敏感數(shù)據(jù),以此隔離應(yīng)用中所有可能產(chǎn)生隱私泄露的行為,但是該方案的應(yīng)用需要高度定制化的系統(tǒng)支持。
2) 交互邏輯漏洞的檢測(cè)仍然面臨挑戰(zhàn)。對(duì)三類實(shí)體交互漏洞檢測(cè)的研究[18-19]探索了面向“黑盒”平臺(tái)進(jìn)行漏洞檢測(cè)的方案,取得了較好的檢測(cè)效果,但是不難看出,其中的建模過(guò)程需要大量人工分析,而且當(dāng)前云平臺(tái)對(duì)通信過(guò)程的保密機(jī)制越來(lái)越嚴(yán)格,例如,雙向證書驗(yàn)證機(jī)制對(duì)研究中采用的解密通信方法帶來(lái)了極大挑戰(zhàn),因此建立有效的交互過(guò)程建模方案是值得探索的方向。
3) 固件分析面臨的共同問(wèn)題是如何獲取固件和加載固件。現(xiàn)有研究中提出了可以通過(guò)網(wǎng)站下載、截獲OTA(over the air)更新、從App 提取、從設(shè)備硬件調(diào)試接口提取等方式獲取固件,但是目前大多數(shù)物聯(lián)網(wǎng)廠商對(duì)固件的保護(hù)越來(lái)越嚴(yán)格,不提供公開下載鏈接,或者消除了硬件調(diào)試接口,或者對(duì)更新的固件進(jìn)行加密,因此可以獲取固件的方式越來(lái)越少。對(duì)于固件加載,部分研究通過(guò)人工分析建立固件格式的數(shù)據(jù)庫(kù),但是此方法難以大規(guī)模擴(kuò)展,而Wen 等[82]提出了一種通過(guò)絕對(duì)指針自動(dòng)定位固件基址的方案,可以有效提高加載效率,但是該方案的加載成功率也會(huì)受到絕對(duì)指針數(shù)量不足的影響。
4) 3 種固件漏洞檢測(cè)方案(靜態(tài)、動(dòng)態(tài)、App)在真實(shí)設(shè)備固件檢測(cè)中各有不足。首先,靜態(tài)分析中常用的符號(hào)執(zhí)行和污點(diǎn)分析技術(shù)分別面臨路徑爆炸和過(guò)污染的挑戰(zhàn),因此在實(shí)際應(yīng)用中需要在使用這些技術(shù)前針對(duì)分析目標(biāo)縮減問(wèn)題的求解空間[56-58]。對(duì)基于二進(jìn)制相似性比較的漏洞檢測(cè)方法來(lái)說(shuō),二進(jìn)制特征的提取嚴(yán)重依賴于構(gòu)建代碼的編譯環(huán)境[59-60],編譯器中不同的優(yōu)化和混淆措施會(huì)對(duì)生成的二進(jìn)制代碼產(chǎn)生影響,從而降低識(shí)別的準(zhǔn)確率。其次,在動(dòng)態(tài)分析中,固件的仿真效果受限于如何處理各種不同類型的硬件組件屬性,以及如何兼容不同的底層架構(gòu)[65-68]。再次,基于App 的固件漏洞檢測(cè)[69-70]要求設(shè)備必須具有對(duì)應(yīng)的App 控制端,App 與設(shè)備的功能實(shí)現(xiàn)具有密切關(guān)系,而且此種方案對(duì)種子數(shù)據(jù)的生成和變異完全依賴于App的內(nèi)部邏輯,因此只能發(fā)現(xiàn)固件是否存在會(huì)引發(fā)系統(tǒng)崩潰的漏洞,對(duì)于漏洞的具體原因和位置還需要人工驗(yàn)證。
5) 基于側(cè)信道特征的檢測(cè)方案的最大優(yōu)點(diǎn)是可以通過(guò)外部手段發(fā)現(xiàn)設(shè)備異常,但其檢測(cè)效果受限于應(yīng)用場(chǎng)景中的特征選擇和采用的學(xué)習(xí)算法,例如,流量特征容易受到信號(hào)強(qiáng)弱[74]、協(xié)議類型和通信模式的影響[75],物理特征嚴(yán)重受限于物理環(huán)境因素[76-77],而上下文特征的提取則要求檢測(cè)目標(biāo)周圍必須存在能夠提供豐富特征的其他設(shè)備[79]。
針對(duì)物聯(lián)網(wǎng)應(yīng)用場(chǎng)景中不同類型的安全威脅,部分研究提出了針對(duì)性的防御方案,本文對(duì)防御的定義是在威脅出現(xiàn)前就實(shí)施阻止措施,直接避免危害產(chǎn)生。本節(jié)根據(jù)防御面向的威脅類型和技術(shù)原理,將威脅防御方案分為5 種不同的類型,其對(duì)比如表5 所示。
表5 不同威脅防御方案對(duì)比
3.3.1 細(xì)粒度的云平臺(tái)訪問(wèn)控制
物聯(lián)網(wǎng)云平臺(tái)訪問(wèn)控制問(wèn)題產(chǎn)生的原因主要是云平臺(tái)實(shí)現(xiàn)功能時(shí)未能遵循最小權(quán)限原則,因此當(dāng)前研究利用云平臺(tái)的特性設(shè)計(jì)了細(xì)粒度的訪問(wèn)控制機(jī)制。
對(duì)于SmartThings 平臺(tái),當(dāng)前研究從SmartApp中提取應(yīng)用運(yùn)行過(guò)程中實(shí)時(shí)的上下文,為當(dāng)前操作是否符合訪問(wèn)控制策略提供細(xì)粒度的參考信息。例如,ContextIoT[83]通過(guò)提取SmartApp 內(nèi)部的執(zhí)行路徑、數(shù)據(jù)依賴關(guān)系、實(shí)時(shí)變量值、環(huán)境參數(shù)等信息來(lái)表示應(yīng)用執(zhí)行操作時(shí)的上下文信息,然后在操作執(zhí)行前主動(dòng)征求用戶授權(quán)許可,只有獲得用戶授權(quán)的操作才可以繼續(xù)執(zhí)行。SmartAuth[84]通過(guò)自然語(yǔ)言處理技術(shù)提取SmartApp 對(duì)功能的文本說(shuō)明中關(guān)于操作的信息,再通過(guò)污點(diǎn)分析技術(shù)在應(yīng)用運(yùn)行時(shí)獲取真實(shí)操作,對(duì)比真實(shí)操作與文本說(shuō)明是否一致,若不一致則主動(dòng)通知用戶以征求授權(quán)。這2 種方案在實(shí)際應(yīng)用中都可以準(zhǔn)確防止惡意應(yīng)用產(chǎn)生的隱私泄露,但是也不可避免地增加了用戶操作。
對(duì)于IFTTT 中基于訪問(wèn)令牌聯(lián)動(dòng)的服務(wù)規(guī)則,F(xiàn)ernandes 等[10]針對(duì)令牌管理模式中存在的問(wèn)題提出了一種權(quán)限管理的優(yōu)化方案,該方案引入應(yīng)用代理方,并使用權(quán)限粒度更小的“規(guī)則令牌”將集中式的權(quán)限管理模式分散為以應(yīng)用代理為單位的分布式管理,可以有效解決集中式管理和粗粒度令牌的問(wèn)題。
此外,還有部分研究面向物聯(lián)網(wǎng)中特殊應(yīng)用場(chǎng)景,基于其他領(lǐng)域的理論,如SDN(software defined network)、智能手機(jī)訪問(wèn)控制等,提出了新的訪問(wèn)控制模型[85-87],但其實(shí)現(xiàn)需要特殊架構(gòu)支持。
3.3.2 安全的通信協(xié)議
為了保障物聯(lián)網(wǎng)系統(tǒng)通信安全,在物聯(lián)網(wǎng)常用協(xié)議中需要增加穩(wěn)健的安全機(jī)制,然而協(xié)議的制定和改進(jìn)是多方參與且長(zhǎng)期演進(jìn)的過(guò)程,因此更重要的是協(xié)議應(yīng)用方必須在業(yè)務(wù)邏輯中對(duì)通信實(shí)體的身份和權(quán)限實(shí)施嚴(yán)格檢查。例如,針對(duì)MQTT 協(xié)議模型中缺失的安全屬性,應(yīng)增加通信會(huì)話的管理機(jī)制、面向消息的訪問(wèn)控制機(jī)制,以及限制通配符的功能范圍[21];針對(duì)ZigBee 協(xié)議的內(nèi)在缺陷,應(yīng)增強(qiáng)設(shè)備在加入網(wǎng)絡(luò)和正常通信這2 個(gè)階段的加密級(jí)別[88]。此外,也有部分研究基于物聯(lián)網(wǎng)系統(tǒng)特性設(shè)計(jì)了安全的通信協(xié)議[89-90]。例如,Alshahrani 等[89]提出了一種基于ZigBee 通信的設(shè)備間進(jìn)行互相認(rèn)證和密鑰交換的模型,可以增強(qiáng)ZigBee 協(xié)議在對(duì)抗性環(huán)境中應(yīng)用時(shí)的穩(wěn)健性。
還有部分研究面向設(shè)備近距離通信設(shè)計(jì)了新型的安全配對(duì)協(xié)議[91-94],可以克服傳統(tǒng)配對(duì)協(xié)議存在密鑰信息易被竊取、需要人工參與等問(wèn)題。例如,Han 等[92]基于鄰近的智能設(shè)備在相同時(shí)間周期內(nèi)對(duì)物理活動(dòng)的感知具有一致性這一特征,利用相同時(shí)間周期內(nèi)的物理感知參數(shù)來(lái)生成對(duì)稱密鑰,可有效對(duì)抗設(shè)備偽裝和中間人攻擊。Jin 等[93]利用射頻信號(hào)噪聲在不同介質(zhì)(如人體表面和空氣)中傳播時(shí)產(chǎn)生的信號(hào)特征具有高度隨機(jī)性和不可預(yù)測(cè)性的特點(diǎn),設(shè)計(jì)了針對(duì)可穿戴設(shè)備的新型配對(duì)方案。
3.3.3 流量特征隱藏
為了應(yīng)對(duì)形式多樣的通信流量側(cè)信道分析,部分研究關(guān)注如何隱藏流量特征。流量特征推理主要是提取流量中的頭部特征和統(tǒng)計(jì)特征,所以對(duì)應(yīng)的防御方案是消除這2 種特征與設(shè)備和活動(dòng)的對(duì)應(yīng)關(guān)系。
對(duì)于頭部特征,主要目標(biāo)是在不影響流量轉(zhuǎn)發(fā)和不改變負(fù)載數(shù)據(jù)的基礎(chǔ)上進(jìn)行頭部信息的再次封裝,令攻擊者無(wú)法獲得有意義的頭部信息。例如,通過(guò)DNS 加密技術(shù)阻止對(duì)網(wǎng)絡(luò)請(qǐng)求目標(biāo)的分析[30];通過(guò)隧道轉(zhuǎn)發(fā)技術(shù)將設(shè)備與云服務(wù)之間的通信轉(zhuǎn)換為VPN 節(jié)點(diǎn)之間的通信,間接阻止了對(duì)設(shè)備的識(shí)別和行為推理[33,75]。對(duì)于統(tǒng)計(jì)特征,主要目標(biāo)是在不破壞正常功能的前提下,改變流量的整體特征。例如,在正常通信過(guò)程中注入欺騙流量妨礙竊聽者對(duì)真實(shí)設(shè)備和活動(dòng)的識(shí)別[32];或采用流量塑形技術(shù),通過(guò)增加發(fā)送時(shí)延或注入無(wú)關(guān)流量來(lái)降低或提高單位時(shí)間內(nèi)的通信速率,改變流量傳輸曲線的形狀,以混淆攻擊者對(duì)行為的提取[32,95-96]。
3.3.4 基于可信計(jì)算的固件安全防護(hù)機(jī)制
物聯(lián)網(wǎng)設(shè)備內(nèi)在的軟硬件資源受限是導(dǎo)致固件漏洞的主要原因之一,因此部分研究關(guān)注如何基于有限條件構(gòu)建可信的固件運(yùn)行環(huán)境。
首先,考慮將傳統(tǒng)安全機(jī)制應(yīng)用于固件程序,增強(qiáng)固件本身的防護(hù)性能。一方面,對(duì)固件程序組件權(quán)限和內(nèi)存地址空間實(shí)行分離機(jī)制。針對(duì)物聯(lián)網(wǎng)設(shè)備的實(shí)時(shí)操作系統(tǒng)或“裸機(jī)”系統(tǒng)中沒(méi)有內(nèi)存或數(shù)據(jù)隔離的缺點(diǎn),部分研究將固件劃分為不同組件以實(shí)施最小權(quán)限隔離,如EPOXY[34]、MINION[97]、ACES(automatic compartments for embedded system)[98]等。另一方面,對(duì)固件程序?qū)嵤┛刂屏魍暾员Wo(hù),確保函數(shù)返回地址完整性,以應(yīng)對(duì)控制流劫持攻擊,如μRAI[37]、Silhouette[38]等。表6 對(duì)幾種固件安全防護(hù)機(jī)制的特點(diǎn)和性能進(jìn)行了對(duì)比。
表6 固件安全防護(hù)機(jī)制對(duì)比
其次,遠(yuǎn)程證明是對(duì)遠(yuǎn)程設(shè)備執(zhí)行狀態(tài)的可信性進(jìn)行認(rèn)證的關(guān)鍵技術(shù),其主要思想是可信的遠(yuǎn)程校驗(yàn)方通過(guò)獲取本地證明方的狀態(tài)信息,來(lái)檢查證明方當(dāng)前是否處于可信狀態(tài)。在物聯(lián)網(wǎng)系統(tǒng)中,遠(yuǎn)程認(rèn)證的主要目標(biāo)是設(shè)備需要提供高時(shí)效且細(xì)粒度的可認(rèn)證信息[99-101]。例如,C-FLAT(control-flow attestation)[99]將證明方的信息細(xì)化到程序的控制流層面上,向校驗(yàn)方提供細(xì)粒度的程序執(zhí)行路徑信息以判斷程序控制流完整性是否被破壞。DIAT(data integrity attestation)[101]設(shè)計(jì)了面向自動(dòng)協(xié)作網(wǎng)絡(luò)(如無(wú)人機(jī)集群)的認(rèn)證方案,將軟件分解為不同模塊,證明方發(fā)送數(shù)據(jù)時(shí)還需發(fā)送數(shù)據(jù)在模塊中的生成和處理過(guò)程信息,校驗(yàn)方以此檢測(cè)數(shù)據(jù)的正確性。
3.3.5 語(yǔ)音攻擊防御
針對(duì)隱藏在語(yǔ)音信道的各種媒介中,且用戶無(wú)法察覺(jué)的惡意語(yǔ)音攻擊樣本,部分研究提出了對(duì)應(yīng)的防御方案,本節(jié)分析了這些方案的原理和不足。
1) 在語(yǔ)音設(shè)備的交互過(guò)程中增加基于安全提示和語(yǔ)音確認(rèn)的交互模式,用戶需要對(duì)敏感操作進(jìn)行主動(dòng)確認(rèn)來(lái)提高安全性[42],但是這種方法會(huì)帶來(lái)額外的可用性開銷,且確認(rèn)操作容易被用戶忽略。2) 通過(guò)添加專用硬件模塊對(duì)具有特殊信號(hào)特征的語(yǔ)音信號(hào)(如高頻超聲波)進(jìn)行過(guò)濾[43],或者物理隔斷語(yǔ)音設(shè)備與桌面等硬件媒介的直接接觸[45],但是前者需要特殊硬件支持,后者為語(yǔ)音設(shè)備的可用性增加了負(fù)擔(dān)。3) 通過(guò)增加噪聲干擾或降低輸入音頻的采樣頻率,影響語(yǔ)音識(shí)別系統(tǒng)對(duì)惡意命令的識(shí)別率[44],但是這種方案也會(huì)影響正常語(yǔ)音的識(shí)別率。4) 通過(guò)機(jī)器學(xué)習(xí)算法實(shí)現(xiàn)聲紋識(shí)別區(qū)分人類和機(jī)器生成的語(yǔ)音[42-43,45],但是這將使語(yǔ)音識(shí)別系統(tǒng)產(chǎn)生額外運(yùn)行開銷。
另外,由于人工生成的語(yǔ)音命令缺少了人類在現(xiàn)場(chǎng)說(shuō)話引起的無(wú)線信號(hào)干擾,因此可以利用這個(gè)特征來(lái)區(qū)分隱藏語(yǔ)音命令。例如,Meng 等[102]利用人類發(fā)音時(shí)引起的Wi-Fi 信道狀態(tài)信息變化模式和語(yǔ)音信號(hào)的關(guān)聯(lián),可以準(zhǔn)確區(qū)分生成的惡意語(yǔ)音信號(hào)與真實(shí)人聲。但是該方案目前依賴Wi-Fi 信號(hào)覆蓋度較強(qiáng)的環(huán)境,且識(shí)別過(guò)程對(duì)信號(hào)波動(dòng)強(qiáng)度敏感,如果發(fā)音者距離信號(hào)接收天線過(guò)遠(yuǎn)則會(huì)由于捕捉不到信號(hào)擾動(dòng)而無(wú)法進(jìn)行識(shí)別。
3.3.6 威脅防御小結(jié)
下面對(duì)3.3 節(jié)中關(guān)于威脅防御研究的特點(diǎn)和不足進(jìn)行總結(jié),主要分為以下幾個(gè)方面。
1) 云平臺(tái)訪問(wèn)控制的適用面有限。相較于傳統(tǒng)的云服務(wù),在物聯(lián)網(wǎng)云平臺(tái)中,用戶訪問(wèn)設(shè)備的過(guò)程具有更加復(fù)雜的關(guān)系,例如,多個(gè)用戶可以對(duì)同一個(gè)設(shè)備進(jìn)行共享或交互,因此需要精準(zhǔn)且高效的訪問(wèn)控制機(jī)制。當(dāng)前研究提出的新型訪問(wèn)控制方案雖然解決了已知的授權(quán)管理問(wèn)題[10,83-84],但目前只能面向有限云平臺(tái)。值得一提的是,Shezan 等[103]基于遷移學(xué)習(xí)思想提出了一種可在不同平臺(tái)之間進(jìn)行權(quán)限知識(shí)遷移的權(quán)限管理模型,在建立新平臺(tái)的權(quán)限模型時(shí),可以直接采用來(lái)自其他平臺(tái)的權(quán)限管理規(guī)則。
2) 保障通信協(xié)議安全仍面臨困難。一方面,在物聯(lián)網(wǎng)系統(tǒng)這種存在對(duì)抗性的環(huán)境中建立安全且適配的通信協(xié)議是一個(gè)需要多方參與且長(zhǎng)期演進(jìn)的過(guò)程,此過(guò)程中更重要的是協(xié)議應(yīng)用方應(yīng)根據(jù)應(yīng)用場(chǎng)景在業(yè)務(wù)邏輯中增加協(xié)議當(dāng)前不具備的安全機(jī)制,以保障通信安全。另一方面,當(dāng)前提出的設(shè)備安全配對(duì)協(xié)議均建立在“物理鄰近即安全”的假設(shè)之上[91-93],而物聯(lián)網(wǎng)中復(fù)雜的設(shè)備應(yīng)用環(huán)境是對(duì)這個(gè)假設(shè)的最大挑戰(zhàn),由于鄰近的設(shè)備也可能是偽裝的惡意設(shè)備,因此對(duì)設(shè)備的認(rèn)證是配對(duì)協(xié)議需要重點(diǎn)考慮的問(wèn)題。
3) 固件的安全防護(hù)機(jī)制需要進(jìn)一步提升。設(shè)備固件受限于物聯(lián)網(wǎng)設(shè)備有限資源的特性而無(wú)法直接應(yīng)用傳統(tǒng)的軟件安全保護(hù)機(jī)制,因此現(xiàn)有研究[37-38,98]通過(guò)一些硬件輔助方案(如MPU 或者最新的ARMv8 TrustZone)來(lái)實(shí)現(xiàn)特殊的系統(tǒng)防御,如數(shù)據(jù)執(zhí)行保護(hù)、控制流完整性保護(hù)等措施。但一方面這些硬件組件在現(xiàn)有設(shè)備上不一定存在,另一方面在現(xiàn)有的程序中配置和使用這些方案也需要投入過(guò)高的人工成本,此外,可能引入過(guò)多的功耗和時(shí)延,而物聯(lián)網(wǎng)設(shè)備往往對(duì)功耗和時(shí)延有著更高的要求,因此這些方案的性能和適用面也需要進(jìn)一步提升。
4) 面向語(yǔ)音攻擊的防御措施不夠完善?,F(xiàn)有的語(yǔ)音攻擊防御方案雖然在實(shí)際研究中被證明有效[42-45],但是不難看出各方案在實(shí)現(xiàn)時(shí)都面臨可用性和設(shè)備性能的額外開銷。綜合來(lái)看,目前對(duì)于藏匿在語(yǔ)音信道中的惡意命令沒(méi)有完善的防御方法,這也使面向語(yǔ)音攻擊的防御成為后續(xù)研究的熱點(diǎn)。
本節(jié)基于第3 節(jié)中對(duì)安全威脅,以及檢測(cè)和防御方案的分析,提出當(dāng)前面臨的研究挑戰(zhàn)和未來(lái)研究機(jī)遇。圖4 中展示了挑戰(zhàn)和機(jī)遇的對(duì)應(yīng)關(guān)系。
圖4 挑戰(zhàn)與機(jī)遇的對(duì)應(yīng)關(guān)系
4.1.1 不完善的隱私保護(hù)
物聯(lián)網(wǎng)設(shè)備與人類生活密切相關(guān),通過(guò)設(shè)備感知的信息可以推斷出人的生活習(xí)慣、行為特征等,而當(dāng)前在物聯(lián)網(wǎng)系統(tǒng)中存在的各類攻擊可能導(dǎo)致設(shè)備收集的信息被竊取。從表1 可以看出,當(dāng)前物聯(lián)網(wǎng)系統(tǒng)中的大部分威脅都會(huì)導(dǎo)致隱私泄露的危害。此外,導(dǎo)致隱私保護(hù)不夠完善的另一個(gè)重要因素是隱私信息理解問(wèn)題[104],即用戶使用設(shè)備前對(duì)設(shè)備的隱私收集和使用方式不能充分了解,或者現(xiàn)行的隱私信息保護(hù)法案不能完全滿足真實(shí)的使用需求。
4.1.2 繁多的應(yīng)用形式
云平臺(tái)提供的應(yīng)用或服務(wù)不僅數(shù)量龐大而且種類繁多,然而當(dāng)前的云平臺(tái)安全審核機(jī)制難以滿足安全需求?,F(xiàn)有研究充分證明,廠商在發(fā)展新應(yīng)用和維護(hù)其安全性之間存在不平衡,依靠靜態(tài)分析應(yīng)用的方式難以發(fā)現(xiàn)其中的動(dòng)態(tài)特性導(dǎo)致的問(wèn)題,而動(dòng)態(tài)分析應(yīng)用安全的方案匱乏,人工審核方式有一定效果,但是耗時(shí)耗力且容易出現(xiàn)疏漏。隨著物聯(lián)網(wǎng)應(yīng)用層生態(tài)的不斷發(fā)展,在發(fā)布大量應(yīng)用的同時(shí),需要高效、準(zhǔn)確、自動(dòng)化的應(yīng)用安全審核機(jī)制。
4.1.3 復(fù)雜的交互模型
物聯(lián)網(wǎng)系統(tǒng)功能提升的同時(shí),系統(tǒng)內(nèi)的交互形式也不斷增多,交互過(guò)程日益復(fù)雜,不僅有應(yīng)用之間的交互、設(shè)備之間的交互,更有跨平臺(tái)的交互,所以對(duì)平臺(tái)或設(shè)備安全性的保護(hù)不能只限于單個(gè)實(shí)體,還要考慮交互過(guò)程可能引入的風(fēng)險(xiǎn),典型的問(wèn)題是即使實(shí)體單獨(dú)運(yùn)行過(guò)程中的安全性得到保障,然而在與其他實(shí)體的交互過(guò)程中原有的保護(hù)機(jī)制很可能被打破。當(dāng)前檢測(cè)和防御方案大多通過(guò)交互行為建模來(lái)檢測(cè)其中的威脅,但是由于交互模式的差異,各類模型方案只能應(yīng)用于特定平臺(tái)或場(chǎng)景,彼此之間難以復(fù)用。
4.1.4 適用性受限的解決方案
當(dāng)前研究提出的威脅檢測(cè)和防御方案大多針對(duì)特定的應(yīng)用類型和場(chǎng)景,或者特定的設(shè)備結(jié)構(gòu)和系統(tǒng)。在云平臺(tái)中,惡意應(yīng)用和交互邏輯漏洞檢測(cè)的大部分方案基于特定平臺(tái)的開發(fā)特性建立分析框架;在設(shè)備固件分析中,固件運(yùn)行依賴的底層架構(gòu)和底層硬件多種多樣,所以只能針對(duì)特定類型的固件進(jìn)行仿真。這些特點(diǎn)使當(dāng)前研究得到的分析方案只能應(yīng)用在特定的領(lǐng)域中,組件之間無(wú)法移植或組合,在出現(xiàn)新的問(wèn)題時(shí)難以達(dá)到預(yù)期的效果。
4.1.5 不統(tǒng)一的通信標(biāo)準(zhǔn)
物聯(lián)網(wǎng)系統(tǒng)的通信具有網(wǎng)絡(luò)類型多且結(jié)構(gòu)差異大的特點(diǎn),由于通信過(guò)程缺乏統(tǒng)一的協(xié)議或授權(quán)標(biāo)準(zhǔn),各類網(wǎng)絡(luò)的安全約束參差不齊。同時(shí),物聯(lián)網(wǎng)設(shè)備有限的資源和對(duì)實(shí)時(shí)性的要求令其更適配計(jì)算量低且邏輯簡(jiǎn)單的輕量級(jí)通信協(xié)議,而當(dāng)前被廣泛使用的各種輕量級(jí)協(xié)議一般缺乏內(nèi)建的安全機(jī)制,設(shè)備廠商應(yīng)用協(xié)議時(shí)容易忽略對(duì)安全機(jī)制的實(shí)現(xiàn),導(dǎo)致引入安全威脅。
4.2.1 隱私保護(hù)和隱私理解
在物聯(lián)網(wǎng)發(fā)展的過(guò)程中,隱私安全問(wèn)題一直是研究關(guān)注的重點(diǎn)。一方面是物聯(lián)網(wǎng)應(yīng)用場(chǎng)景中隱私信息泄露的檢測(cè)和保護(hù)措施[105-106];另一方面是對(duì)隱私理解問(wèn)題的研究,如調(diào)研用戶對(duì)隱私政策的使用和理解現(xiàn)狀[107],或當(dāng)前物聯(lián)網(wǎng)生態(tài)中的各參與方對(duì)隱私保護(hù)措施的合理性[108],以推動(dòng)物聯(lián)網(wǎng)系統(tǒng)中隱私保護(hù)機(jī)制的發(fā)展。
4.2.2 復(fù)雜環(huán)境下的訪問(wèn)控制
物聯(lián)網(wǎng)系統(tǒng)的應(yīng)用環(huán)境復(fù)雜,身份認(rèn)證和授權(quán)管理缺陷導(dǎo)致的安全漏洞體現(xiàn)在多個(gè)方面,當(dāng)前研究提出的訪問(wèn)控制增強(qiáng)方案存在不足。因此,設(shè)計(jì)既滿足物聯(lián)網(wǎng)系統(tǒng)的安全需求,又能夠適應(yīng)物聯(lián)網(wǎng)的低能耗和高實(shí)時(shí)性要求,同時(shí)還具有擴(kuò)展性的訪問(wèn)控制機(jī)制是物聯(lián)網(wǎng)未來(lái)進(jìn)一步發(fā)展的實(shí)際需要。
4.2.3 基于人工智能的檢測(cè)和防御方案
人工智能技術(shù)可以對(duì)設(shè)備收集的信息進(jìn)行深度學(xué)習(xí)和理解,在一定程度上可以彌補(bǔ)現(xiàn)有的檢測(cè)和防御技術(shù)在自動(dòng)化方面的不足。例如,結(jié)合深度學(xué)習(xí)與模糊測(cè)試自動(dòng)進(jìn)行惡意應(yīng)用檢測(cè)[4]或漏洞挖掘[109],借鑒遷移學(xué)習(xí)思想融合不同平臺(tái)的檢測(cè)知識(shí)[103,110]。隨著物聯(lián)網(wǎng)應(yīng)用類型不斷豐富,以及交互場(chǎng)景越來(lái)越復(fù)雜,利用人工智能技術(shù)提升威脅檢測(cè)和防御方案的效果是值得繼續(xù)深入研究的方向。
4.2.4 高效的固件漏洞檢測(cè)方案和可信防御架構(gòu)
由于設(shè)備固件中普遍存在安全漏洞,需要更加有效的方法進(jìn)行檢測(cè)以避免威脅在使用過(guò)程中進(jìn)一步擴(kuò)大。例如,在固件動(dòng)態(tài)分析方面,如何實(shí)現(xiàn)更全面的模擬,以及與其他工具結(jié)合檢測(cè)固件漏洞,仍需要更深入的研究。另外,由于設(shè)備自身硬件和軟件條件的受限,大多數(shù)傳統(tǒng)安全機(jī)制不能直接應(yīng)用,如何克服這種限制在固件中實(shí)施更可信的防御架構(gòu)也是需要研究的問(wèn)題。
4.2.5 安全的通信協(xié)議
通信協(xié)議是物聯(lián)網(wǎng)傳輸層的核心。一方面由于當(dāng)前廠商在應(yīng)用缺乏內(nèi)建安全機(jī)制的輕量級(jí)協(xié)議時(shí)容易忽略對(duì)安全因素的考慮,因此需要高效自動(dòng)的協(xié)議安全分析方案;另一方面可利用物聯(lián)網(wǎng)區(qū)別于其他系統(tǒng)的特性,如三類實(shí)體交互、設(shè)備鄰近等,結(jié)合應(yīng)用場(chǎng)景設(shè)計(jì)專屬物聯(lián)網(wǎng)的安全通信協(xié)議。
物聯(lián)網(wǎng)系統(tǒng)由于應(yīng)用種類多、設(shè)備規(guī)模大、交互過(guò)程復(fù)雜等特性在發(fā)展過(guò)程中不可避免地面臨各類安全威脅,對(duì)威脅的檢測(cè)和防御是促進(jìn)物聯(lián)網(wǎng)正常發(fā)展的關(guān)鍵。本文系統(tǒng)整理了近5 年物聯(lián)網(wǎng)安全研究中的代表性工作,從“威脅、檢測(cè)、防御”的角度分別闡述其中的主要類型,并以此為基礎(chǔ)分析了當(dāng)前面臨的挑戰(zhàn),以及提出未來(lái)研究機(jī)遇。隨著物聯(lián)網(wǎng)技術(shù)不斷發(fā)展,相關(guān)的安全研究也必將不斷深入,成為物聯(lián)網(wǎng)發(fā)展的重要支柱。