◆路偉饒 趙 旻 黃金鴿 張子欣 邢匯蕓
?
物聯網監控攝像頭漏洞檢測方法綜述及自動化
◆路偉饒 趙 旻 黃金鴿 張子欣 邢匯蕓
(中國民航大學計算機科學與技術學院 天津 300300)
監控攝像頭是用于家庭或企業中的專業攝像頭設備。近年來,隨著通信技術和物聯網技術快速發展,各大安防廠商將物聯網技術應用到了監控攝像頭領域,這類包含相機和網絡模塊的監控攝像頭稱為物聯網監控攝像頭,而這類設備的廣泛使用,給網絡安全界提出了新的挑戰。本文從物聯網技術的角度,探討了針對物聯網監控攝像頭的自動化漏洞檢測方法,說明了在漏洞檢測中用到的網絡安全技術,以及實現漏洞自動化檢測軟件的思路。這種軟件對提高物聯網安全研究人員的漏洞檢測效率有一定幫助。
物聯網;監控攝像頭;網絡安全;漏洞檢測
物聯網監控攝像頭系統模型由設備、客戶端和云端組成。其中設備是物聯網監控攝像頭本身,設備運行的操作系統軟件稱為固件,固件基于Linux或Android操作系統構建,承載了直播觀看、錄像觀看、監控預警等業務;客戶端是為了使用者和設備交互而設計,面向Windows、Android、iOS等平臺,是運行在這些平臺上的應用程序;云端是為了使用者能通過互聯網遠程訪問設備而設計,是一種位于互聯網上的特殊服務器,由服務器軟件和中間件組成。幾乎所有面向家庭的產品都存在這一部分,也部分存在于面向企業的產品中。這三部分通過計算機網絡相連接,可以實現使用者和攝像機產品的交互。本文將基于這樣的三元系統模型進行討論。
對設備而言,需承載視頻傳輸、視頻存儲、監控報警等業務,設備固件會使用第三方庫和自己編寫的代碼來實現這些業務。所以其安全風險有:第三方庫已知漏洞、命令注入、邏輯漏洞、溢出、釋放后使用等。同時對于操作系統本身,還可能包含舊版本操作系統中的已知漏洞。
對客戶端而言,需承載用戶界面、設備綁定、直播觀看、錄像觀看等業務,客戶端基于各系統平臺的SDK進行開發,也會引入一些第三方庫。所以,其安全風險有:平臺使用不當、代碼未受保護、命令注入、邏輯漏洞、溢出、第三方庫已知漏洞等。
對云端而言,其保存了所有使用者和設備的關聯信息,還需通過互聯網轉發客戶端請求給設備,返回設備數據給客戶端,云端大多會基于中間件進行開發。所以其安全風險有:注入、邏輯漏洞、拒絕服務、遠程代碼執行等。
對于實現三個部分之間通信的協議,通常使用HTTP、MQTT等公開協議或私有協議來實現。所以其安全風險有:明文或弱加密協議、證書弱校驗、密鑰硬編碼、私有協議缺陷等。
針對設備的安全風險,欲進行漏洞檢測,首先需獲取到設備的固件,主要方法有廠商網站下載、升級流量捕獲、調試接口獲取和拆解Flash芯片獲取。然后需要使用固件分析工具對得到固件文件進行分析和提取,最終得到設備操作系統的整個文件系統。這樣就可以應用Linux或Android安全研究的手段,對具體的第三方庫、自己編寫的二進制程序和腳本進行分析。例如可以獲取第三方庫的版本,由于在物聯網產品中往往不會使用最新的版本,所以可以前往開發者的網站查看每次更新中修復的漏洞、以及漏洞庫中公開的漏洞,以確定當前版本的第三方庫中有哪些已知的漏洞,將其作為安全風險輸出。還可以對二進制程序和動態鏈接庫進行靜態逆向分析,了解其功能和通信的實現方式,找出其中的代碼安全風險和協議安全風險。最后還可以使用虛擬化技術,將固件放入ARM或MIPS的虛擬機中運行,同時使用調試器進行動態代碼檢測或進行模糊測試,以發現更深層次的漏洞。
針對客戶端的安全風險,首先要先獲取到其應用安裝包,然后再根據其面向的平臺,應用該平臺應用程序的安全研究方法進行漏洞檢測。這里以Android平臺為例,首先可以通過應用商店取到APK文件,然后對其中的Java代碼和NDK動態鏈接庫進行分析。首先可以確定該應用程序向系統請求了哪些權限、使用了哪些系統組件,以確定是否正確使用了這些平臺功能。然后可以分析應用程序的代碼,了解其功能和通信的實現方式,找出其中的代碼安全風險和協議安全風險。最后可以對應用程序進行動態調試或模糊測試,以發現更深層次的漏洞。
針對云端的安全風險,首先要確定云端服務器的類型和使用的中間件技術,對于Web服務器,可以按照Web滲透測試的流程進行,但是因物聯網監控攝像頭服務器是雙機交互,并非人機交互,所以滲透測試的側重點也有所不同。對于傳統的TCP服務器,則需分析其私有協議,如果沒有服務器代碼而進行黑盒測試,是較為困難的,這時就要結合客戶端和設備中的代碼進行分析。
針對協議方面的安全風險,則多使用流量捕獲的方式進行分析,并和客戶端、設備代碼分析相結合進行。
漏洞自動化檢測系統分為固件漏洞檢測、客戶端漏洞檢測、云端漏洞檢測和流量分析四個模塊。固件漏洞檢測模塊接受固件文件輸入,首先匹配固件類型并進行提取,然后分為幾種主要的操作系統類型進行分析,根據數據庫中預定義的風險模型進行匹配,最后輸出安全風險列表;客戶端漏洞檢測和傳統客戶端自動化漏洞檢測類似,輸入應用程序軟件包,然后對其進行靜態分析和基于沙盒技術的動態分析,同時模擬用戶不同的輸入對應用程序進行模糊測試,根據數據庫中預定義的風險模型進行匹配,最后輸出安全風險列表;云端漏洞檢測模塊和傳統Web漏洞檢測模塊類似,通過Web滲透測試的方式,根據數據庫中預定義的風險模型進行匹配,最后輸出安全風險列表;流量分析模塊主要應用模糊測試技術,對系統正常使用的流量以及模糊測試時的流量進行流量捕獲分析,分析其中傳輸的內容,根據數據庫中預定義的風險模型進行匹配,最后輸出安全風險列表;最后將各模塊的輸出進行整合,輸出最終的安全風險報告。
在三元系統模型中,雖然設備、客戶端和云端這三個部分各具特點,但其仍為一個完整系統,三部分之間有千絲萬縷的聯系。所以在單獨應用各類安全技術手段進行漏洞檢測的同時,也不可將其割裂開完全獨立地分析,而必須分析各部分的關聯,才能保證漏洞檢測的全面性。同時因為物聯網監控攝像頭系統中各部分這樣的聯系,所以自動化檢測的程度以及檢測水平都有限,仍需大量依賴人的經驗進行分析,這是其不足之處。不過我們可以肯定地說,隨著網絡安全技術的發展和研發人員安全意識的增強,物聯網監控攝像頭和其他的物聯網產品一定會蓬勃發展,把數字世界帶入每個人、每個家庭、每個組織,構建一個萬物互聯的智能世界。
[1]吳翰清.白帽子講Web安全[M].電子工業出版社,2014.
[2]段鋼.加密與解密[M].電子工業出版社,2018.
[3]周圣韜. Android安全技術揭秘與防范[M].人民郵電出版社,2015.
[4]Yogeesh Seralathan, Tae (Tom) Oh等. IoT Security Vulnerability: A Case Study of a Web Camera [R]. ICACT, 2018.
[5]騰訊科恩實驗室.2018年IoT安全白皮書[EB/OL]. 2019.
[6]華為技術有限公司.物聯網安全技術白皮書2018 [EB/OL]. 2018.