?

物聯網設備軟件安全綜述

2019-10-11 00:57
關鍵詞:蜜罐固件漏洞

(浙江大學 網絡空間安全學院, 浙江 杭州 310027)

隨著物聯網設備的普及,針對物聯網設備的攻擊也層出不窮.諸如網絡攝像頭、智能家居等物聯網設備由于廠商對安全性的重視不夠導致安全漏洞不斷涌現,設備持續在線的特性又使得漏洞被攻擊利用的概率大大提高.這嚴重威脅了用戶的安全和隱私,甚至威脅整個互聯網的安全性.例如,一些網絡攝像頭使用默認的用戶名和密碼[1](如 admin/admin)或者有隱藏的后門[2],攻擊者可以遠程控制設備窺視用戶隱私.由物聯網設備組成的 Mirai 僵尸網絡對域名解析服務商 Dyn 發動拒絕服務(DDoS)攻擊,導致美國和歐洲很多知名網站如 Netflix、 GitHub 等停止工作,造成了極大的影響[3].

本文從物聯網設備軟件安全的感知、分析和防御角度出發,梳理已有的研究工作,并且對這一領域一些新的研究方向和趨勢進行初步展望.本文主要關注設備的軟件安全方面,對于設備的通信安全、硬件安全等方面則不做探討.

1 物聯網設備安全問題感知

1.1 物聯網蜜罐系統

蜜罐系統作為感知威脅的傳統手段之一,用其感知和捕獲攻擊有著廣泛的應用.近年來出現了一些針對物聯網設備的蜜罐系統.然而由于物聯網設備的特點(硬件和軟件的碎片化),將蜜罐系統使用在物聯網設備中遇到了不小的挑戰.

IoTPOT[4]是用來捕獲對物聯網設備Telnet程序進行攻擊的蜜罐.由于設備中的Telnet服務器會采用弱密碼,攻擊者可以通過預置的密碼字典來登陸服務器.IoTPOT通過模擬不同設備對于Telnet請求的響應同攻擊者進行交互.在交互的過程中記錄下攻擊者的來源、發起的命令等信息.作者將該蜜罐部署在165個IP地址中,并且模擬了29個不同設備的響應.在一個月的數據收集中,總共捕獲到將近5萬次的成功攻擊.對攻擊的進一步分析發現,現實攻擊者在成功登錄設備后,往往會下載載荷(payload)以發起進一步的攻擊.IoTPOT雖然成功捕獲到一些攻擊,但是其缺點在于交互性交叉,而且只能捕獲單一攻擊行為.

SIPHON采用真實的物聯網設備來組成蜜罐系統[5].通過分布在各地的虛擬機接入點(稱為 Wormholes)來接收外來請求并將請求分發到后端真實設備,然后通過分析流量來檢測攻擊.最近的一個系統HoneyCloud通過真實的硬件平臺和軟件模擬器混合的方式來構建蜜罐系統[6].通過近兩年的持續監測,該系統捕獲了八種不同的攻擊行為,比如竊取數據(設備的登錄密鑰)、發起DDoS攻擊等.采用硬件平臺的蜜罐系統雖然交互性較好,但是構建成本高(需要購買不同的真實設備),并且很難對攻擊的過程進行插樁(對真實設備上的軟件進行插樁難度較大).而基于軟件系統的蜜罐(如HoneyCloud中的軟件蜜罐)雖然部署容易,但是交互程度差,對目標系統的模擬完整度不高,容易被攻擊者識別.

為了解決這些問題,提高蜜罐系統的交互性,IoTCandyJar采用了機器學習的方法自動學習物聯網設備的行為[7].具體來說,IoTCandyJar 通過對互聯網上公共的物聯網設備的行為進行學習記錄來不斷完善行為數據庫.當接收到新的網絡請求后,IoTCandyJar 首先判斷該請求是否已經學習過.如果是,則返回之前保存的行為.否則,向互聯網上其他設備發送相同的請求以獲得真實設備的響應數據.圖1是該系統結構圖.該方法能以較低成本獲得物聯網設備的真實交互行為,因此蜜罐系統交互性高.不過該方法只能獲得真實設備中較低層次的響應信息(如 HTTP 響應中的頭信息),不適用于需要多次交互的攻擊場景.同樣由于沒有插樁機制,無法對攻擊的整個過程進行實時監測和記錄.

圖1 IotCandyJar系統結構圖Fig.1 The system architecture of IoTCandyJar

雖然可以通過蜜罐系統來感知針對物聯網設備的威脅,但由于設備的硬件碎片化(采用不同的CPU架構)以及軟件的碎片化(基于多種操作系統平臺),導致目前沒有一個較好的軟件模擬平臺,因此,蜜罐系統的可擴展性和交互性都還比較差.如何設計開發一個交互性好、仿真度高的蜜罐系統仍然是一個具有挑戰的問題.

1.2 物聯網設備僵尸網絡行為分析

除了主動通過蜜罐系統捕獲攻擊意外,研究人員也對目前由物聯網設備組成的僵尸網絡進行了測量和行為分析.比較典型的工作是對于Mirai[3]和Hajime[8]的分析.Mirai是第一個引起公眾注意的物聯網僵尸網絡.它第一次出現在2016年年中,在長達半年的過程中,衍生出很多的變種.該網絡高峰期感染了將近60萬臺設備.圖2顯示了Mirai僵尸網絡感染主機數量隨著時間遷移圖.通過對DNS服務器發起DDoS攻擊,導致了很多知名網站的癱瘓.研究顯示物聯網設備的安全狀態不容樂觀,一個基于字典的簡單攻擊就可以感染成千上萬臺物聯網設備.Hajime是一個新的僵尸網絡,雖然其目標很多與Mirai相同,但在設計和操作上有很大差異.Hajime使用公共點對點網絡作為其命令和控制(C&C)的基礎設施,并定期引入新的攻擊,從而提高其可恢復性.

圖2 Mirai僵尸網絡感染主機數量示意圖[3]Fig.2 The number of infected hosts by Mirai[3]

圖2的不同深淺線條表示通過不同的端口進行掃描和感染的主機數量.從圖2可見,該網絡使用了不同的協議和端口來實施感染行為.

Cetin等[9]研究了如何清除Mirai僵尸網絡中受感染的機器.研究表明,ISP在僵尸網絡節點清理方面扮演著至關重要的角色,ISP可以通過建立隔離網絡的方式來清除僵尸網絡;其次,對感染用戶進行主動通知是可行的,盡管目前基于用戶通知和清理建議的可用性比較低.不過筆者也發現,ISP目前并沒有太高的積極性對僵尸網絡進行主動的清理.如何從經濟和法律的層面來促使ISP擔負起相關的責任需要進一步的探討.

2 物聯網設備安全分析

針對物聯網設備碎片化的特點,研究人員通過靜態大規模分析尋找設備安全性問題,開發動態分析平臺分析設備固件安全,以及使用模糊測試進行漏洞挖掘.

Costin等[10]在 2014 年發布了第一個大規模物聯網固件安全性的研究報告,該研究收集了超過3萬個物聯網設備的固件,然后使用工具對固件進行分析.他們的研究發現了多個之前沒有被報道的零日漏洞,如私鑰沒有被正確保護等.他們的后續工作則從固件的 Web 服務器入手,分析其中潛在的安全威脅[11].Firmalice利用二進制分析的方法,尋找固件中一類特殊的安全漏洞[12]:廠商預留的后門.這里的后門不一定是具有惡意的,也可能是廠商為了調試方便而預置在固件中.不過攻擊者仍然可以利用這樣的后門來獲得設備的控制權.Firmalice使用符號執行等技術自動檢測固件中隱藏的后門并能獲取登錄的密鑰.不過由于該系統是一個靜態分析系統,不能對發現的安全問題進行自動化的測試和確認.

靜態分析雖然能快速發現問題,然而靜態分析的誤報率比較高,并且很難對設備的安全問題做動態行為監控和確認.為了解決這個局限性,研究人員開發了不同的動態分析系統.Firmadyne是第一個能大規模地動態分析設備固件的系統[13].它通過使用軟件模擬器(QEMU)對物聯網設備的動態進行仿真和分析.其利用修改過的Linux內核啟動固件的用戶態程序,并且自動化生成設備網絡配置.針對超過2萬個固件的實驗表面,FIRMADYNE能對已知的攻擊行為進行分析并且能發現未知的漏洞.Avatar[14]和Avatar2[15]通過混合使用硬件真實執行和軟件模擬執行來分析設備固件.它可以選擇性地在真實設備和虛擬機平臺之間進行切換,并且結合S2E進行符號執行和浮點分析來分析固件行為.雖然系統的分析完整度較高,但是其依賴JTAG硬件調試端口導致很難大規模使用該分析平臺.

近年來的研究表明,模糊測試在發現漏洞方面具有非常好的效果.因此,研究人員也嘗試將模糊測試引入到物聯網設備安全中.IoTFuzzer在無法訪問固件的情況下,可以自動化發現物聯網設備中的內存破壞(memory corruption)漏洞[16].他們分析物聯網設備通常是可以通過官方的應用來進行控制的.因此,可以通過分析應用和設備之間的交互協議,識別和重用特定的程序的邏輯(如加密)來改變測試用例(特別是消息字段),自動生成通信數據.然后觀察設備的返回值,從而檢測設備固件的軟件漏洞.該方法的缺點在于只能作用于有官方控制應用的物聯網設備,適用度不高.Muench等[17]對物聯網設備和內存錯誤漏洞的影響進行分類.研究在不同種類的設備中所存在的內存錯誤漏洞后,評估了應對這些漏洞的方法,然后提出了一個基于Avatar和Panda的模糊測試系統.該系統使用了6種不同的現存部分仿真或全部仿真的啟發式分析方法.通過對這個系統一系列的實驗,得出結論,這6種分析方法可以有效提高對嵌入式設備的模糊測試效率.該系統能分析的設備固件種類受限,并且分析的速度也有待提高.Firm-AFL將用在桌面系統上的AFL移植到物聯網設備中[18],通過將進程級別分析平臺同全系統分析平臺Firmadyne結合,使用不同的模糊測試用例策略來自動化發現系統固件中的安全問題.采用進程級別的分析可以大幅度提高系統的分析效率.實驗結果表明,該平臺能重現舊的安全威脅和發現新的漏洞.

另外,最近的一些研究嘗試通過代碼相似度的方法來進行固件安全性分析.該方面的基本思想是如何快速準確地通過已經有的漏洞模式,快速判斷一個新的固件中是否也存在類似的漏洞.這里的挑戰在于往往要分析的固件沒有源代碼,并且代碼的架構、編譯器工具、編譯選項等都有不同.這給相似度分析帶來了比較大的挑戰.Pewny等[19]提出了基于輸入和輸出的賦值表達式的方法來表達一個程序中基本塊的語義,然后通過I/O的行為來尋找和漏洞代碼具有相似模式的代碼路徑.另外,David等[20]發現,在通過相似度進行漏洞匹配的時候,基于函數級別的相似度往往不能準確進行匹配,還需要配合函數周圍的信息,其提出的FirmUp系統能對不同體系架構中的固件中的漏洞進行快速準確的匹配.另外,研究人員還嘗試基于神經網絡對跨體系架構的固件進行代碼相似度分析[21].

3 物聯網設備軟件安全性的增強

對于設備軟件安全性增強的工作主要集中在提供新的安全原語,基于編譯器對于軟件進行安全加固,實現新的輕量級的保護方案等.

Dominance是一個新的物聯網系統的可信計算原語[22],它可以保證在短時間內對被攻擊的物聯網設備進行恢復,即使攻擊者已經控制了這些設備.并且它可以對設備進行強制的安全固件升級.C-FLAT通過在設備上使用控制流完整性來進行安全性保證[23].具體來說,該系統首先計算合法的控制流圖,然后通過在運行時計算控制流信息,并且采用遠程認證的方式將控制流信息發送到認證服務器進行驗證.一旦有非法的控制流跳轉發生,認證服務器能感知到威脅并采取行動.C-FLAT的缺點在于其計算控制流跳轉哈希值的開銷過大,并且也不能保證數據流完整性.EPOXY通過權限覆蓋(Privilege Overlaying)的方式對代碼進行權限分割[24].也就是說只有需要執行特權操作的代碼才需要運行在特權態,其他的代碼只需要運行在普通的特權等級即可.系統通過編譯器對軟件代碼進行自動分析并且自動對代碼進行特權分割.圖3顯示了一個典型的系統的內存映射.EPOXY通過對代碼的特權分割,規定哪一些代碼可以訪問哪一些具體的內存地址.Abbasi等[25]分析了現有的嵌入式操作系統中采用的安全措施,然后提出了μArmor系統.它基于編譯器將現有的軟件安全措施應用到操作系統中,對軟件代碼進行加固.

圖3 一個典型的基于ARM Cortex-M芯片的系統內存映射圖

Fig.3 A typical memory mapping for systems based on the ARM Cortex-M architecture

4 物聯網設備軟件安全研究展望

針對設備軟件安全研究越來越受到重視,從近年來的安全會議上可見收錄的相關文章逐漸增多.本文對一些新的研究方向提出初步的展望.

(1)新的威脅感知方法.雖然通過蜜罐系統可以感知到針對物聯網設備的攻擊,但是目前的蜜罐系統交互性和仿真性還比較差.如何設計出一個比較好的物聯網設備蜜罐系統是需要研究的問題.另外,還可以通過對網絡中多維的數據信息進行融合分析來感知威脅,如融合DNS數據、ISP網絡流量數據以及設備固件中提取訪問模式,從而能感知可疑和未知的威脅.

(2)新的靜態分析工具和方法.目前的靜態分析方法在擴展性和準確度方面還有比較大的提升空間.特別是目前的物聯網設備軟件多基于ARM和MIPS架構,而目前的靜態分析工具對于這兩類架構支持程度不高.初期研究表明現有的反編譯工具在分析ARM代碼方面準確度比較低,對于代碼/數據,函數邊界識別還需要很大提升空間.因此,如何提出新的靜態分析的工具和方法也是將來可以進行研究的方向之一.

(3)新的動態分析平臺.FIRMADYNE作為為數不多的動態分析平臺[13],對固件分析成功率比較低.實驗結果表明,FIRMADYNE只能成功運行約30%的基于Linux操作系統的物聯網設備固件.因此,如何能提高運行的成功率,自動化尋找失敗的原因并且進行修復是值得探索的方向.同時,對于非Linux軟件平臺如何去進行動態分析,也是目前還沒有解決的難題.

猜你喜歡
蜜罐固件漏洞
漏洞
蜜罐蟻
被自己撐死的蜜罐蟻
基于博弈的蜜罐和入侵檢測系統最優配置策略
基于SHA1的SCADA系統PLC固件完整性驗證方法
哈密瓜:鄉間蜜罐
三明:“兩票制”堵住加價漏洞
基于UEFI固件的攻擊驗證技術研究*
漏洞在哪兒
基于固件的遠程身份認證
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合