江澤鑫
(廣州邦訊信息系統(tǒng)有限公司,廣東 廣州 510000)
近年來隨著物聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展和物聯(lián)網(wǎng)產(chǎn)品的廣泛應(yīng)用,物聯(lián)網(wǎng)信息安全問題越來越突出。2016年,美國由于部署在互聯(lián)網(wǎng)上的海量物聯(lián)網(wǎng)終端產(chǎn)品存在漏洞,被黑客用以實施DDoS攻擊,最終導(dǎo)致全國大面積斷網(wǎng)。物聯(lián)網(wǎng)產(chǎn)品由于具有獨特的系統(tǒng)架構(gòu)和應(yīng)用場景特點,其信息安全風(fēng)險與防御對措皆與傳統(tǒng)IT系統(tǒng)有較大的差異。在2019年國家發(fā)布的信息安全等級保護2.0標(biāo)準[1-3]中,針對物聯(lián)網(wǎng)場景提出了專項安全擴展要求。物聯(lián)網(wǎng)安全主要增加了四方面的擴展要求:
(1)感知節(jié)點設(shè)備物理防護;
(2)感知節(jié)點的安全邊界防護;
(3)感知節(jié)點和網(wǎng)關(guān)節(jié)點設(shè)備本體的安全;
(4)感知節(jié)點的安全運維管理。
可見,物聯(lián)網(wǎng)的安全主要是在通用要求的基礎(chǔ)上,增加感知節(jié)點和網(wǎng)關(guān)節(jié)點的安全性,特別是設(shè)備本體的安全。這是因為物聯(lián)網(wǎng)終端產(chǎn)品往往部署在戶外或無人值守區(qū)域,譬如基站動力環(huán)境監(jiān)控系統(tǒng)、配電網(wǎng)監(jiān)控系統(tǒng)、雪亮工程系統(tǒng)等,所以極容易遭受雷擊、停電、高溫高濕、鹽霧、物理破壞、物理接近、設(shè)備盜竊等破壞,并可能導(dǎo)致進一步的破解破譯攻擊。
物聯(lián)網(wǎng)信息安全是一個系統(tǒng)化工程,物聯(lián)網(wǎng)產(chǎn)品設(shè)備本體安全是物聯(lián)網(wǎng)安全的基石,本文重點研究物聯(lián)網(wǎng)終端產(chǎn)品本體的安全設(shè)計和安全測試。
以某工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)產(chǎn)品研制過程為例,如圖1所示,使用風(fēng)險分析方法對該物聯(lián)網(wǎng)網(wǎng)關(guān)產(chǎn)品在應(yīng)用場景下進行威脅識別和風(fēng)險分析。
該工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)產(chǎn)品部署在無人值守的站點,通過RS485對傳感器數(shù)據(jù)進行采集、協(xié)議解析、告警生成、數(shù)據(jù)上送云平臺,同時提供設(shè)備本體的配置管理功能,于是,該產(chǎn)品的每個接口通道存在的威脅如下。
圖1 物聯(lián)網(wǎng)系統(tǒng)典型架構(gòu)示意圖
(1)設(shè)備被盜竊和被破壞。物聯(lián)網(wǎng)網(wǎng)關(guān)產(chǎn)品部署在無人值守的區(qū)域,缺乏物理安全控制,有可能被盜竊或破壞。
(2)篡改和仿冒設(shè)備。設(shè)備部署在戶外、分散安裝、易被接觸,導(dǎo)致物理攻擊、篡改和仿冒[4]。
(3)系統(tǒng)漏洞攻擊。該產(chǎn)品使用的操作系統(tǒng)軟件過時,漏洞無法及時修復(fù)。
(4)繞過認證機制。設(shè)備無認證或認證采用默認密碼、弱密碼。
(5)竊取敏感信息。敏感信息存儲在設(shè)備中,上行業(yè)務(wù)通信數(shù)據(jù)明文傳輸,易被竊取。
(6)遠程控制。設(shè)備設(shè)計了測試調(diào)試接口,容易遺留遠程控制風(fēng)險。
(7)拒絕服務(wù)攻擊。病毒或黑客發(fā)起DDoS攻擊。
該物聯(lián)網(wǎng)終端產(chǎn)品包括四個接口(IF0~IF3),每個接口可能面臨的威脅來源如圖2所示。
圖2 物聯(lián)網(wǎng)網(wǎng)關(guān)產(chǎn)品接口威脅示意圖
根據(jù)多年的物聯(lián)網(wǎng)安全產(chǎn)品設(shè)計實踐經(jīng)驗,總結(jié)設(shè)計了物聯(lián)網(wǎng)終端產(chǎn)品安全防護由外往里的四道防線如圖3所示。
圖3 物聯(lián)網(wǎng)終端產(chǎn)品安全四道防線設(shè)計示意圖
第一道防線,物聯(lián)網(wǎng)設(shè)備與外部交互過程的安全防護,主要包括與物聯(lián)網(wǎng)平臺上行業(yè)務(wù)通道(IF1)的安全防護和設(shè)備配置管理通道(IF2)的安全防護。這一道防線可以采用傳輸加密、身份認證、報文檢測、實體鑒別、雙因素認證、登錄失敗策略控制、慢哈希等措施進行防護。第一道防線主要用于防范設(shè)備與外部設(shè)備通信過程中的黑客竊聽、掃描、重放、偽造等通信層面攻擊。
第二道防線,物聯(lián)網(wǎng)設(shè)備邏輯邊界防護,這一防線在上行業(yè)務(wù)通道(IF1)和設(shè)備配置管理通道(IF2)上可以使用端口白名單、協(xié)議白名單、訪問IP地址白名單等白名單機制進行設(shè)備防護。第二道防線主要用于防范黑客對設(shè)備的掃描和非法訪問。
第三道防線,物聯(lián)網(wǎng)設(shè)備系統(tǒng)內(nèi)部安全性檢測,這一防線采用安全操作系統(tǒng)、設(shè)備內(nèi)部程序/固件完整性檢測、隨機數(shù)檢測、設(shè)備配置文件和證書文件的完整性檢測等手段進行防護,同時特別注意升級固件包的完整性和真實性驗證。這些防護手段分別在設(shè)備上電時,資源使用前和使用中進行周期檢測。第三道防線主要用于防范黑客若入侵系統(tǒng)后對系統(tǒng)的重要程序或配置參數(shù)進行篡改。
第四道防線,物聯(lián)網(wǎng)終端設(shè)備內(nèi)部的密鑰防護,特別是對私鑰的保護。這一防線主要包括物聯(lián)網(wǎng)終端產(chǎn)品的非法拆卸檢測和密鑰應(yīng)急銷毀聯(lián)動機制,和物聯(lián)網(wǎng)終端設(shè)備內(nèi)部所有密鑰從生成、導(dǎo)出、存儲、備份、更新、使用、銷毀等全生命周期安全管理和保護。第四道防線主要用于在黑客入侵設(shè)備并獲得系統(tǒng)超級管理員權(quán)限后,使其無法獲得密鑰信息,或者黑客通過物理拆卸和側(cè)信道攻擊無法獲得密鑰信息。
如圖4所示,在業(yè)務(wù)通道(IF1)上使用基于X509證書認證的IPSec VPN方式實現(xiàn)。在設(shè)備配置管理通道(IF2),使用USBKEY實體鑒別和SM2密鑰交換方式實現(xiàn)。
圖4 第一道防線示意圖
依據(jù)《IPSec VPN技術(shù)規(guī)范》[5],物聯(lián)網(wǎng)終端與物聯(lián)網(wǎng)平臺邊界網(wǎng)關(guān)之間先使用基于SM2算法的公鑰密碼算法進行身份認證,然后進行通信密鑰協(xié)商,最后基于協(xié)商的臨時密鑰進行加密通信。其臨時會話密鑰協(xié)商過程如圖5所示。
圖5 IPSec密鑰協(xié)商示意圖
密鑰協(xié)商主要包括兩個階段,其中第一階段是IKE SA協(xié)商,該階段采用主模式,包括6個交互操作,主要是進行證書交換、身份認證、以及工作密鑰協(xié)商,該工作密鑰用于保護第二階段的會話密鑰協(xié)商過程。第二階段是IPSec SA協(xié)商,采用快速模式,包括3個交互操作,主要是協(xié)商出會話密鑰,用于數(shù)據(jù)的加密傳輸。
對于設(shè)備配置管理通道(IF2),在物聯(lián)網(wǎng)安全實踐中常有使用預(yù)設(shè)賬號密碼/設(shè)備token方式或使用非對稱密碼算法/數(shù)字證書方式進行身份真實性的鑒別認證。身份認證之后,為保證傳輸機密性,通過安全的方式生成會話密鑰,目前常見的方式主要有DH方法、數(shù)字信封方法、和SM2密鑰交換[6]方法。SM2密鑰交換協(xié)議是一種同時實現(xiàn)身份認證和會話密鑰生成的協(xié)議,可以應(yīng)用于基于SM2非對稱密碼算法的物聯(lián)網(wǎng)設(shè)備之間的身份認證和會話密鑰生成,其流程如圖6所示。
圖6 SM2密鑰交換流程圖
此外,通過設(shè)備配置管理通道(IF2)的物聯(lián)網(wǎng)配置管理軟件功能應(yīng)按照“三權(quán)分立”方式進行功能設(shè)計。其中至少分為安全管理員、審計管理員和系統(tǒng)管理員,每個角色具有不同的配置管理權(quán)限。
第二道防線涉及物聯(lián)網(wǎng)產(chǎn)品的邏輯邊界大門,同樣涉及IF1~IF3三個接口,這一防線主要采用“白名單”策略進行防護,如圖7所示。
圖7 第二道防線示意圖
對于上行業(yè)務(wù)通道(IF1),該產(chǎn)品使用iptables配置,僅允許密鑰協(xié)商包和ESP加密包通過。
對于設(shè)備配置管理通道(IF2),僅允許固定IP(如192.168.1.100)地址訪問物聯(lián)網(wǎng)產(chǎn)品指定端口,并且配置管理會話建立前要求雙因素認證以及最大登錄失敗次數(shù)限制和處理。
對于數(shù)據(jù)采集通道(IF3),應(yīng)傳感器的通信規(guī)約進行約束(如MODBUS協(xié)議格式對應(yīng)字段的地址值進行限制)。特別需要關(guān)注采集數(shù)據(jù)的協(xié)議解析、數(shù)據(jù)處理和存儲過程,降低通過該接口的注入和溢出風(fēng)險。
此外,還需特別注意在產(chǎn)品正式量產(chǎn)時應(yīng)關(guān)閉所有的臨時調(diào)測試通道。
第三道防線是指物聯(lián)網(wǎng)產(chǎn)品內(nèi)部的功能模塊完整性檢查和異常安全檢測,包括:關(guān)鍵功能檢查、程序完整性檢查、隨機數(shù)檢測、內(nèi)部協(xié)議異常處理、登錄異常處理和物理拆機檢測等。這些內(nèi)部安全檢查檢測從設(shè)備運行角度主要是:
(1)上電自檢
在物聯(lián)網(wǎng)終端產(chǎn)品上電時進行安全自檢,包括密碼算法功能是否正常的自檢、隨機數(shù)自檢、密鑰完整性檢查、關(guān)鍵程序完整性自檢、驅(qū)動程序、配置文件(含數(shù)字證書)進行完整性自檢。
其中隨機數(shù)的自檢,主要使用單比特頻數(shù)檢測、塊內(nèi)頻數(shù)檢測、撲克檢測、重疊子序列檢測、游程總數(shù)檢測、游程分布檢測、塊內(nèi)最大“1”游程檢測、二元推導(dǎo)檢測、自相關(guān)檢測、矩陣秩檢測、累加和檢測、近似熵檢測、線性復(fù)雜度檢測、Maurer通用統(tǒng)計檢測、離散傅里葉檢測等隨機數(shù)檢測方法和物聯(lián)網(wǎng)終端產(chǎn)品本身CPU算力情況進行選擇若干項進行綜合檢查。
(2)異常檢測
物聯(lián)網(wǎng)產(chǎn)品所有的功能模塊的輸入輸出異常檢測,上位機管理軟件登錄物聯(lián)網(wǎng)產(chǎn)品的登錄失敗處理,業(yè)務(wù)通道身份認證、加密異常等情況的日志記錄。
(3)拆機檢測
設(shè)計通過電磁開關(guān)或接觸開關(guān)實現(xiàn)拆機檢測,并與物聯(lián)網(wǎng)產(chǎn)品內(nèi)部密鑰應(yīng)急銷毀程序聯(lián)動。拆機檢測重點需要考慮物聯(lián)網(wǎng)產(chǎn)品未上電情況下的拆機檢測和應(yīng)急銷毀程序執(zhí)行。
(4)固件升級檢測
物聯(lián)網(wǎng)產(chǎn)品固件升級應(yīng)采用HASH算法對固件進行消息摘要計算及發(fā)布者數(shù)字簽名,物聯(lián)網(wǎng)產(chǎn)品接收到固件升級包升級前應(yīng)對固件的HASH值進行校驗,然后使用發(fā)布者公鑰對數(shù)字簽名進行驗簽。此外,還應(yīng)特別注意相關(guān)程序文件的讀寫執(zhí)行權(quán)限配置。
第四道防線是指物聯(lián)網(wǎng)產(chǎn)品內(nèi)部密鑰安全管理,產(chǎn)品可能涉及很多方面的密鑰,包括根公鑰、產(chǎn)品自身的設(shè)備公私鑰對、保護密鑰的密鑰、會話密鑰、工作密鑰、臨時密鑰等。
所有密鑰的安全管理都應(yīng)從每一個密鑰的生成、導(dǎo)出、存儲、使用、更新、銷毀全生命周期過程進行考慮。以最少化暴露原則進行密碼功能的開發(fā),最佳的是將這些功能封裝在密碼芯片內(nèi)部實現(xiàn),并且將限制私鑰的任何導(dǎo)出查看功能。
這些常見的密碼功能包括:隨機數(shù)生成功能、證書請求功能、簽名功能、驗簽功能、公鑰加密功能、私鑰解密功能、加密私鑰導(dǎo)入、散列計算功能等。
對于密鑰的存儲,一般不要將保護密鑰的密碼/口令寫入程序固件或配置文件。所有用于對稱加密的密鑰應(yīng)動態(tài)生成并存放在于易失性存儲器中,并且應(yīng)定期協(xié)商更新。設(shè)備的私鑰保護要著重考慮禁止任何可能暴露私鑰的功能開發(fā)。對于一些物聯(lián)網(wǎng)產(chǎn)品需要外部導(dǎo)入公私鑰對的情況,可以采用GM/T 0009-2014《SM2密碼》里的“私鑰保護結(jié)構(gòu)”進行封裝,其“私鑰保護結(jié)構(gòu)”的ASN.1定義為:
SM2EnvelopedKey::=SEQUENCE
{
symAlgID AlgorithmIdentifier, ∥對稱密碼算法標(biāo)識
symEncryptedKey SM2Cipher, ∥對稱密鑰密文
Sm2PublicKey SM2PublicKey, ∥加密密鑰公鑰
Sm2EncryptedPrivateKey BITSTRING
∥加密密鑰私鑰密文
}
在產(chǎn)品安全性測試環(huán)節(jié),根據(jù)本文作者的實踐,物聯(lián)網(wǎng)終端產(chǎn)品的安全性可以從以下幾方面進行考慮:
(1)端口掃描:對于涉及IP協(xié)議的產(chǎn)品,應(yīng)采用系統(tǒng)端口包括1~65 535所有端口的UDP和TCP方式掃描。
(2)系統(tǒng)漏洞掃描:在端口掃描的基礎(chǔ)上,進行系統(tǒng)漏洞掃描,掃描前應(yīng)將漏洞庫升級至最新版本。
(3)模糊測試:對所有自定義的通信協(xié)議進行fuzzing模糊測試。特別對于物聯(lián)網(wǎng)RS232/RS485等接口進行特別的測試,包括異常字符包測試,超大數(shù)據(jù)包、小包高頻等方面的測試。
(4)Web掃描:對于需要使用Web配置管理的產(chǎn)品,應(yīng)進行Web漏洞掃描。
(5)源代碼漏洞掃描:將產(chǎn)品的所有源代碼進行代碼審計,避免高風(fēng)險漏洞。
(6)病毒掃描:將產(chǎn)品涉及的所有源代碼、開源組件和第三方軟件進行病毒掃描,并且應(yīng)采用多款防病毒軟件進行掃描。
(7)安全基線核查:需要針對產(chǎn)品的具體情況,設(shè)計安全基線,對所有功能進行安全基線核查。特別是所有功能輸入輸出的安全測試(包括注入、溢出、繞過、越權(quán)等)。
(8)其他測試:產(chǎn)品安規(guī)測試、電磁抗擾度測試(包括EMS和EMI)、射頻性能、高溫低測試、機械振動測試、168穩(wěn)定性測試等。
本文從物聯(lián)網(wǎng)終端與外部業(yè)務(wù)通道、產(chǎn)品邏輯邊界、產(chǎn)品內(nèi)部安全檢測和密鑰保護四個層次設(shè)計了物聯(lián)網(wǎng)終端產(chǎn)品的“四道防線”安全設(shè)計,并總結(jié)了物聯(lián)網(wǎng)終端產(chǎn)品安全測試,對于安全性要求較高的物聯(lián)網(wǎng)場景具有參考意義。