5G C-IoT終端安全測評體系和技術研究

【摘 要】 本文提出了構建C-IoT終端安全防護能力和方案的建設技術和思路,強調安全是保證設備安全入網的關鍵環節,並在闡述C-IoT終端安全總體框架和方法的基礎上,總結並提出瞭如何依照“等保2.0”要求開展C-IoT終端安全測評的建議。

【關鍵詞】 等保2.0 新特性 C-IoT 終端安全 安全風險

【中圖分類號】 TP391 【文獻標識碼】 A

1 引言

蜂窩物聯網(Celluar Internet of Things,C-IoT)即基於蜂窩無線通信系統的物聯網技術,是一種將物理設備(如傳感器)與互聯網連接起來的方式,它將物理設備(如傳感器)與智能手機搭載在同一個移動網絡上。因其基礎設施簡單,在5G出現後,C-IoT正逐漸成爲連接領域的一個強有力的參與者。

C-IoT終端是蜂窩物聯網數據的入口,所以在一定程度上,我們可以認爲C-IoT終端安全就是整個蜂窩物聯網安全的源頭。當前,C-IoT相關技術已經滲透並深入應用到智慧城市、智慧農業、智慧糧庫、智慧能源、智慧海洋、智慧醫療等領域,涉及關鍵信息基礎設施的各個方面,C-IoT的安全問題成爲了關鍵信息基礎保護的重中之重。

2 C-IoT終端安全風險體系分析

《等保2.0要求》第四部分“物聯網擴展安全要求”中包括技術要求和管理要求2個部分,技術要求包括4個部分:物理和環境安全、網絡和通信安全、設備和計算安全、應用和數據安全。結合等保2.0擴展安全要求的技術要求和C-IoT終端本身的技術架構,我們可以將C-IoT終端安全威脅分析體系模型分爲4個部分,如圖1所示,具體爲硬件和物理安全風險、系統和訪問控制安全風險、應用安全風險、數據安全風險。

硬件和物理安全風險。首先,市面上主流芯片的技術規格及開發規範可以通過互聯網輕鬆找到,黑客可以從官網或者直接從芯片上獲取固件後進行分析,找到漏洞並利用。其次,很多設備的開發接口,如UART,TTL,SPI等,編程接口在出廠時未禁用,這些暴露的接口可能被黑客利用來破解設備運行機制和替換非法固件,從而引發系統安全問題。

系統和訪問控制安全風險。由於部分C-IoT終端硬件資源受限,傳統的系統安全防禦技術很可能會因此無法使用,研究人員通過分析大量嵌入式設備系統固件,發現其主要存在3個問題:終端系統安全設計的缺失、原有安全機制的直接沿用、沒有充分利用自身硬件架構特性。現有C-IoT終端系統在設計之初,普遍只關注其功能要求,大多並沒有考慮對系統安全進行額外的設計,即使像ARM的mbed操作系統在設計時將安全考慮在內,但其對於操作系統本身也並沒有採取有效的保護措施,僅僅是爲了保護通信安全添加了如SSL功能,啓動代碼沒有進行合法性、完整性驗證,系統和預置應用組件等漏洞未及時修補,系統權限開放過多或權限限制不嚴格等問題普遍存在。

應用安全風險。由於C-IoT終端受制於成本控制,導致設備廠商會偏向於採用現有方案,所以絕大多數廠商會選擇開源的軟硬件方案。大面積開源方案的採用也導致了軟件供應鏈的安全成爲設備廠商盲區,如果產品大量部署後,某個開源方案或者組件被發現漏洞,那麼因這個漏洞被黑客利用而造成的後果將很可能不亞於Mirai病毒事件的影響。

數據安全風險。首先,如上文所述,C-IoT終端是蜂窩物聯網數據的源頭,而每個終端以及終端之間的交互通常都會涉及大量個人隱私信息或者其他業務數據,當前,在成本控制的前提下傳統數據安全保護機制無法引入,敏感數據缺少保護機制。其次,沒有統一的規範來明確數據採集、傳輸和訪問控制範圍,很多設備存在未經用戶允許,設備擅自採集大量的用戶隱私信息的行爲。除此以外,隱私信息存儲位置不安全或者未加密,數據訪問控制權限過高等缺陷將會帶來嚴重的數據泄露風險,這些數據很有可能被攻擊者直接篡改或者加以利用。

3 C-IoT終端安全

爲了加強C-IoT終端安全的管理,針對各產品類型的C-IoT終端安全水平進行客觀、綜合評價,保證蜂窩物聯網終端發展與信息安全措施同步規劃、同步建設、同步運行,提升蜂窩物聯網終端安全整體水平,更好地貫徹和落實國家網絡安全法和等保2.0的相關安全要求,切實保護國家利益,進行安全評估是行之有效且必需的安全方案。

3.1 C-IoT終端安全體系架構

通過研究等保2.0要求第四部分物聯網擴展安全要求(以下簡稱等保2.0擴展要求),同時結合上文提出的C-IoT終端安全威脅分析模型,我們可以將C-IoT終端安全模型也分爲4個部分,如圖2所示。具體包括了設備的物理訪問控制、身份鑑別、系統權限限制、系統更新安全機制、內置應用安全、數據傳輸、數據存儲及日誌安全等方面。

3.2 硬件安全技術

硬件安全的重點其實就是硬件(硬件接口和芯片管腳)的分析和調試,與軟件的接口(Application Program Interface,API)一樣,硬件也有很多種接口,不同接口使用不同的通信協議,由於硬件產品經常是多種硬件協同工作,它們之間的信息交互正是通過這些硬件接口實現的。同樣,通過嗅探這些接口,我們就可以獲取這些交互數據,對應等保2.0擴展要求驗證交互數據,從而達到硬件安全的目的。

硬件的第一步是獲取設備元器件的電路圖。取下設備的外殼後,對應等保2.0擴展要求,驗證相關物理安全要求,之後去除集成電路芯片上的物理保護塗層,就可以進行集成電路芯片的識別了,基本所有IC芯片都可以通過搜索引擎找到配套的數據手冊,而數據手冊中就包含了零件包裝、電器特性、管腳圖等重要信息。硬件的第二步是硬件調試,而硬件調試又分爲總線調試和接口調試。

3.2.1 總線調試技術

對於總線調試來說,與網絡數據傳輸不同,硬件間總線傳輸的數據往往沒有進行保護,因此較爲容易被執行數據攔截、重放等操作來進行調試。要對硬件設備總線進行調試,需要將探針連接到不同芯片的管腳上,然後調整邏輯分析儀的頻率,隨後通過邏輯分析儀記錄下總線傳輸的0、1信號並進行數據解碼。通過觀察解碼後的數據,我們可以對等保2.0擴展要求中數據源認證、感知設備訪問控制以及設備安全等相關安全要求進行驗證。

3.2.2 接口調試技術

獲取總線上的數據有時非常容易,但有時候又會無比困難,而這時我們就可以使用接口調試來對C-IoT終端進行硬件安全測試。通常來說,C-IoT終端爲了出場的測試或者後期的維護,都會設有調試接口,如通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter,UART)、聯合測試工作組接口(Joint Test Action Group,JTAG)、串行外設接口(Serial Peripheral Interface,SPI)等。和總線一樣,嗅探這些接口同樣可以獲得硬件交互數據。

UART,即通常所說的TTL電平的串口,是筆者接觸到的C-IoT終端中,最爲廣泛的調試接口,通常用於與嵌入式系統調試通信,如圖3所示。這種接口通常會對應一個虛擬控制檯(TeleTYpe,TTY)設備,一旦登陸成功便很可能會獲得管理員權限(root shell),這時對應等保2.0的安全需求,我們可以直接通過命令行或者檢測腳本進行密碼規則(包含密碼有效期、密碼格式、密碼長度等)、賬戶權限分配、終端狀態(內存、端口、處理器佔用情況等)等安全要求的合規性驗證。

3.3 固件安全技術

多數C-IoT終端需要一些定製化的固件才能正常工作,通過研究這些固件可以獲得大量的設備信息,包括默認口令、管理端口或者調試接口等。在等保2.0中,很大一部分的入侵防範安全要求、身份鑑別安全要求以及資源控制安全要求是可以通過固件安全進行驗證的,所以固件安全是C-IoT終端安全的重要一環。

3.3.1 固件提取

想要進行固件安全分析,第一步要進行固件的提取,一般來說固件提取的方式分爲兩類。

第一類,編程器讀取法。通過飛線將固件芯片管腳接出,如圖4所示,連接好固件芯片的管腳,通過夾具連接芯片到編程器,再通過專用編程器軟件,對該芯片進行讀取。除飛線外,也可以將固件芯片拆除後直接放到編程器讀取。

第二類,命令行導出。如果終端使用的是嵌入式Linux,那麼通常存儲的固件會被掛載到/dev/mtd。此時我們便可以通過命令行導出mtd0的內容,從而實現終端固件的導出。

3.3.2 固件

固件安全目標包括固件漏洞驗證、賬戶安全、系統配置安全、系統升級安全等,通過對C-IoT終端固件的信息檢測、第三方組件檢測,發現與等保2.0相關要求不符合的內容,其主要的方式是通過靜態和動態兩種方式進行。

靜態手段包括但不限於代碼分析、代碼審查、質量度量等。靜態分析不必運行被測系統代碼,而是藉助專用的軟件工具對源程序進行分析,主要分析固件文件的接口數據部分和表達式部分。接口數據分析涉及子程序以及函數之間的接口一致性,包括檢查參與實參類型、個數、維數、順序的一致性;而表達式分析則是找出其可能存在不正確使用括號造成的錯誤、數組下標越界造成的錯誤、除數爲零造成的錯誤、對負數開平方的錯誤,其中最複雜的一類表達式分析是對浮點數計算的誤差進行檢查。

動態包括但不限於數據流分析、控制流分析、接口分析、表達式分析等。數據流分析通常是用數據流圖來分析數據處理的異常現象,這些異常包括初始化、賦值或引用數據等。對數據流的分析主要包括對過程或函數調用信息的分析以及對數據流的反常分析。主要集中關注定義/引用異常的缺陷(定義的變量沒有使用,使用的變量沒有定義)。而通過控制流分析可發現以下錯誤:無條件跳轉的使用、不適當的循環嵌套和分支嵌套、死循環、轉向不存在的語句標號、調用不存在的子程序、未使用的變量、子程序定義、不可達語句等。

3.4 應用安全技術

應用安全目的是進行應用漏洞分析、應用配置安全評估、確保業務安全等。手段主要是動靜態結合的分析方式,通過靜態反編譯應用軟件或者利用虛擬環境動態運行應用文件監聽應用行爲軌跡,從而分析出應用漏洞及異常,這個過程需要藉助應用模擬器、二進制分析工具等。

導致應用程序漏洞的最主要原因是開發階段導致的錯誤,因此保證開發中的應用沒有任何嚴重的安全問題至關重要。根據等保的要求,應用在上線前,應由內部安全團隊或者外部專業安全公司進行一次全面的應用安全評估。在模擬真實運行環境中對應用進行動態分析或者對應用的二進制包進行逆向靜態分析,這是較爲通用的做法,這裡不重複贅述。

3.5 數據安全技術

數據安全的目的是對C-IoT終端的數據存儲和數據傳輸進行安全保障,其中數據主要指的是固件數據、終端隱私數據(賬號密碼、日誌、剩餘信息、業務交互數據)等信息。在等保2.0中,數據可用性、數據完整性等安全要求就可以通過這一部分內容的安全性進行驗證。

3.5.1 數據存儲安全技術

數據存儲安全技術主要涉及硬件層和系統層,通過硬件工具和技術手段將芯片中的固件和文件系統導出,從而提取出設備中的二進制數據,我們重點關注的是這些二進制文件中包含的固件文件系統存儲的用戶名密碼、系統配置文件、日誌等數據。

通常來說,我們將測試分爲3個部分,包括數據完整性、數據訪問控制、數據安全隔離。數據完整性驗證是指對C-IoT終端數據進行讀取操作時的完整性檢測,驗證終端是否具備可以發現數據的完整性被破壞,以及防止未授權實體對數據進行篡改、刪除和插入等操作的能力;數據訪問控制驗證是指當非授權實體訪問終端數據時,驗證終端系統是否具備終止非授權的訪問行爲並提供告警信息的能力;數據安全隔離驗證是指當通過設備外部接口進行設備訪問時,終端是否具備將系統配置數據、用戶數據等按賬戶或其他區分原則進行安全隔離的能力。

3.5.2 數據傳輸安全技術

C-IoT終端傳輸技術主要基於無線傳輸,通常無線傳輸是基於系統層功能實現的。通過以下安全技術可以對Wi-Fi、藍牙和ZigBee等協議進行通用的安全保護。安全技術包括通信嗅探(Sniffing)技術、重放攻擊技術、加密密鑰的安全性和獲取的容易程度、通過無線電波控制智能硬件設備、協議自身的安全評估等。

在等保2.0中,數據傳輸安全的測評主要包括保密性、完整性、抗干擾性和抗抵賴性。我們可以通過一系列的嗅探技術來驗證終端數據在傳輸時是否滿足等保的安全要求。

4 結語

隨着C-IoT終端深入人們的生活,人與C-IoT終端的關係越來越密切,而C-IoT終端上所承載的隱私數據也越來越多,C-IoT終端受到的攻擊越來越多,影響也越來越大。C-IoT的發展離不開穩定的C-IoT生態環境,大量針對C-IoT的攻擊不僅會打擊消費者對產業的信心、興趣以及從業者的熱情,情況惡化之後甚至會影響國計民生。而等保2.0的發佈對於C-IoT安全產業來說是一針強心劑,如果企業貫徹落實等保2.0的安全要求,機構認真踏實地做好測評服務,這將爲建設綠色C-IoT生態環境起到至關重要的作用。

(原載於《保密科學技術》雜誌2021年2月刊)