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