文/賈云瀚
ContexIoT:為應用化的IoT平臺提供場景完整性
文/賈云瀚
許多存在于IoT 應用中的訪問控制缺陷,造成大多數的App存在“過度的權限”問題。
如今,物聯網(IoT) 設備已經進入了日常生活中的各個領域,隨著技術的發展,IoT設備市場已經從最初的不同廠家推出圍繞自家硬件的一套封閉的生態系統 (例如飛利浦 Hue 照明系統),發展到了一種被稱為“應用化”(Appified) 的新階段。 在一個Appified 的平臺之上, 任何第三方的開發者被允許為這個平臺開發應用程序(App), 去控制來自不同廠家的IoT設備從而更好地為用戶提供便利的功能。 三星推出的SmartThings 平臺便是其中一例,它支持了來自不同制造商的80多種IoT設備,并且為第三方開發者提供了API去為自己的應用商店開發App。之前無法完成的一些功能,比如用三星生產的運動傳感器(motion sensor) 數據去控制飛利浦生產的燈泡,都可以在SmartThings平臺上實現。
然而,Appified平臺也帶來了一個根本的安全問題——允許不被信任的第三方代碼來控制用戶的設備。2016年IEEE Samp;P 的一篇論文[1]以SmartThings平臺為例,指出許多存在于IoT 應用中的訪問控制(access control)缺陷,造成大多數的App存在“過度的權限”(overprivilege) 問題,從而允許攻擊者危害智能家居(smart home)用戶的安全,例如,用偽裝成監控電池電量的IoT應用去偷取智能門鎖的密碼等。針對現實存在的這一類威脅IoT用戶安全的問題,我們提出了ContexIoT解決方案[2],一個基于情景(Context)的應用權限系統。ContexIoT為應用化IoT平臺的訪問控制提供一種叫做 Contextual integrity 的特性,意即:當用戶允許一種應用的行為時,它實際上允許的是這個應用在當時的Context下進行這種行為,而不是在任何時候。Contextual integrity 被之前的研究者認為是一個理想的權限系統所應該確保的特性[3]。
對于如何去定義在IoT 應用情景下的 Context,文章作者給出了一個比較全面的Context定義。該定義確保了惡意軟件的惡意行為能夠從Context層面上與正常的IoT應用行為區分出來。 ContexIoT 采用了一種為應用商店里的IoT加入安全補丁的方式來確保App運行時的Contextual integrity。 如圖1所示,在一個原始的IoT 應用中存在兩種行為:正常的行為是當檢測到溫度大于一定數值時打開窗戶,而惡意的行為是當發現用戶進入睡眠狀態時打開窗戶。 在原有的App邏輯中,因為App被給予了控制窗戶的權限,這兩種行為都是被允許的。

圖1
ContexIoT 會基于對應用程序靜態分析(static analysis)的結果進行安全補丁的方式來為程序加入安全執行的邏輯。如圖1所示,被ContexIoT進行過補丁的應用邏輯,當要執行到“開窗”這一敏感行為(sensitive action)時,會將當前開窗行為所在的Context報告給一個ContexIoT的負責進行訪問控制的遠程服務,該服務會根據不同的Context來做出訪問控制的決定:當該敏感行為發生的Context和用戶之前允許過的一種Context相符時,該行為被允許; 當某種Context第一次出現時,將它顯示給用于,讓用戶做出決定。在這個例子中,正常行為的Context描述了該開窗行為是被溫度的改變而觸發的,而惡意行為的Context可以告訴用戶該開窗行為是由用戶進入睡眠而觸發的,用戶可以由此做出細粒度的(fine-grained)基于Context的訪問控制決定。
為了評估ContexIoT方法的有效性,作者團隊基于對之前各種IoT智能手機上的惡意軟件技術的系統性調查,針對25種惡意軟件常用的繞過訪問控制系統的技術,寫出了25種針對SmartThings平臺的惡意軟件,來測試ContexIoT是否能夠在運行時檢測并阻止這些惡意軟件中存在的惡意行為,最終結果證明了該方法的有效性。 這些惡意軟件樣本可以從該項目的網站上下載[4]。同時,經過對283個應用商店內的Smart Things應用的測量,發現被加入安全邏輯的應用和原始應用相比只額外增加了約10%的延遲,這在大多數物聯網的應用情景下可以忽略不計。
在此項目中,我們將前人在訪問控制領域提出的一種理想,但難以實現的特性——Contextual integrity,利用IoT應用場景的一些特點進行了實現, 提供了一種能防御絕大多數現在已知的惡意軟件技術的新型的訪問控制系統,我們的實現目前僅基于三星SmartThings平臺,但這種設計適用于目前市面上很多包括Apple HomeKit 在內的應用化的IoT平臺。
(責編:楊潔)
(作者單位為密西根大學)
[1] E.Fernandes, J.Jung, and A.Prakash. Security Analysis of Emerging Smart Home Applications. In Proceedings of the 37th IEEE Symposium on Security and Privacy.
[2] Yunhan Jack Jia, et al. ContexIoT: Towards Providing Contextual Integrity to Appified IoT Platforms. Proceedings of the 24th Network and Distributed System Security Symposium (NDSS’17).
[3] P.Wijesekera, A.Baokar, A.HosseiniE, S.Egelman, D.Wagner, and K.Beznosov. Android permission remystified: A field study on contextual integrity. In Proceedings of the 24th USENIX Security Symposium.
[4] Project website. https://sites.google.com/site/iotcontextualintegrity/home