導(dǎo)讀:物聯(lián)網(wǎng)系統(tǒng)攻擊事件屢屢登上媒體頭條,不斷揭示網(wǎng)絡(luò)、邊緣節(jié)點(diǎn)、以與門道器存在的安全漏洞。 嵌入式感測系統(tǒng)是工業(yè)物聯(lián)網(wǎng)的重要環(huán)節(jié),一旦聯(lián)網(wǎng)安全風(fēng)險(xiǎn)便大幅提升,但節(jié)點(diǎn)間的溝通有其必要,因此,節(jié)點(diǎn)安全的維護(hù)便格外重要。
物聯(lián)網(wǎng)系統(tǒng)攻擊事件屢屢登上媒體頭條,不斷揭示網(wǎng)絡(luò)、邊緣節(jié)點(diǎn)、以與門道器存在的安全漏洞。 嵌入式感測系統(tǒng)是工業(yè)物聯(lián)網(wǎng)的重要環(huán)節(jié),一旦聯(lián)網(wǎng)安全風(fēng)險(xiǎn)便大幅提升,但節(jié)點(diǎn)間的溝通有其必要,因此,節(jié)點(diǎn)安全的維護(hù)便格外重要。
近期Mirai殭尸網(wǎng)絡(luò)病毒感染超過250萬個(gè)物聯(lián)網(wǎng)節(jié)點(diǎn),利用默認(rèn)密碼從未變更的漏洞,伺機(jī)登入這些執(zhí)行Telnet服務(wù)器的裝置。 Mirai之后還能發(fā)起阻斷服務(wù)攻擊,使得全球很大比例的服務(wù)器網(wǎng)絡(luò)存取被迫中斷。 Reaper殭尸網(wǎng)絡(luò)利用軟件存在的防御漏洞藉此將自己傳染到這些軟件,攻擊超過100萬個(gè)物聯(lián)網(wǎng)裝置。 一個(gè)聯(lián)網(wǎng)魚缸就能讓黑客入侵到賭場的網(wǎng)絡(luò),趁機(jī)竊取10GB的數(shù)據(jù)。 許多黑客更會(huì)利用智能電視從事刺探與監(jiān)視的活動(dòng)。
嵌入式傳感器系統(tǒng)最近才開始搭載聯(lián)網(wǎng)功能,其存取門戶也開始曝露在因特網(wǎng)中。 作為工業(yè)物聯(lián)網(wǎng)(IIoT)的一部分,這些傳感器少了網(wǎng)絡(luò)服務(wù)器過去20年在充斥攻擊的環(huán)境中所經(jīng)歷的演化,因此業(yè)界開始觀察到,1990年代以及更早之前各種常見的攻擊,發(fā)生在這些系統(tǒng)上。 IIoT系統(tǒng)的生命周期通常比傳統(tǒng)計(jì)算機(jī)還要長,有些裝置在部署后會(huì)持續(xù)運(yùn)行數(shù)十年之久,但卻不知道何時(shí)才會(huì)維護(hù)。
服務(wù)器與PC的構(gòu)造夠復(fù)雜,能執(zhí)行安全資源供應(yīng)的動(dòng)作,反觀IIoT節(jié)點(diǎn)其功耗和處理能力通常都偏低,因此很難騰出耗電預(yù)算來執(zhí)行安全措施。 維安本身就是一種取舍,而且還須考慮研發(fā)成本。 雖然工業(yè)物聯(lián)網(wǎng)的成本一般都高于消費(fèi)型物聯(lián)網(wǎng),但在進(jìn)行擴(kuò)充方面仍會(huì)面臨成本的挑戰(zhàn)。 如果忽視安全,產(chǎn)品在部署之后可能因遭受攻擊面臨潛在的沖擊,這些善后成本最終還是會(huì)回到用戶身上,無法避免。
傳感器與致動(dòng)器讓工業(yè)物聯(lián)網(wǎng)裝置能和現(xiàn)實(shí)世界進(jìn)行互動(dòng)。 網(wǎng)絡(luò)攻擊大多數(shù)局限于數(shù)據(jù)流失,然而工業(yè)物聯(lián)網(wǎng)入侵攻擊手段讓黑客比過去更容易滲透到現(xiàn)實(shí)世界領(lǐng)域。
這些攻擊有可能造成實(shí)體的損害。 在工業(yè)物聯(lián)網(wǎng)領(lǐng)域更為顯著,一次故障就可能導(dǎo)致價(jià)值數(shù)百萬美元的工業(yè)制程停擺甚至毀壞,或是導(dǎo)致危及性命的狀況。
聯(lián)網(wǎng)帶來攻擊風(fēng)險(xiǎn) 節(jié)點(diǎn)安全須多考慮
工業(yè)物聯(lián)網(wǎng)裝置大多連到某種網(wǎng)絡(luò),通常會(huì)是因特網(wǎng)。 然而這樣的鏈接卻也讓它們曝露在攻擊的風(fēng)險(xiǎn)下,就像流行病一樣,藉由和其他機(jī)器的接觸發(fā)生傳染,使病毒得以散播。 系統(tǒng)和外部世界進(jìn)行互動(dòng)的途徑,都可能成為攻擊的門路。 攻擊者之所以能和系統(tǒng)互動(dòng),都是因?yàn)樗鼈冇新?lián)網(wǎng)的管道。 因此系統(tǒng)設(shè)計(jì)安全面臨的第一個(gè)問題就是:裝置是否真的有必要連上網(wǎng)絡(luò)? 一旦連上網(wǎng)絡(luò),安全風(fēng)險(xiǎn)就會(huì)直線攀高。
要保護(hù)好系統(tǒng),最好的方法就是避免讓它連到網(wǎng)絡(luò),或限制僅連到封閉式網(wǎng)絡(luò)。 許多任務(wù)業(yè)物聯(lián)網(wǎng)裝置會(huì)連上網(wǎng)絡(luò),僅是因?yàn)樗鼈兙邆渖暇W(wǎng)功能,但上網(wǎng)的背后卻沒有太多目的。 裝置聯(lián)網(wǎng)獲得的利益是否抵得過伴隨而來的安全風(fēng)險(xiǎn)? 此外,任何和這些聯(lián)網(wǎng)裝置有互動(dòng)的舊系統(tǒng),也都會(huì)面臨風(fēng)險(xiǎn)。
在許多情況下,有很多網(wǎng)絡(luò)與節(jié)點(diǎn)若是沒有和外部鏈接就能確保安全無虞,但它們卻有必要和舊的既有網(wǎng)絡(luò)互通并存,不過這些舊網(wǎng)絡(luò)本身的安全性卻遠(yuǎn)不及新系統(tǒng)。
這衍生出一個(gè)新問題,這種防御力最弱的安全風(fēng)險(xiǎn),超出工業(yè)物聯(lián)網(wǎng)系統(tǒng)能夠影響的范圍之外。 在這種情況中,處在網(wǎng)絡(luò)中的工業(yè)物聯(lián)網(wǎng)系統(tǒng)還必須保護(hù)自己。
節(jié)點(diǎn)的安全考慮因素
. 機(jī)密性:
保護(hù)數(shù)據(jù)不會(huì)泄露給未經(jīng)授權(quán)的人士,例如發(fā)動(dòng)欺騙式攻擊的人士。
. 鑒別:
使用數(shù)字證書檢驗(yàn)兩部機(jī)器之間的對應(yīng)身分。
. 安全開機(jī):
ROM開機(jī)程序內(nèi)存放第二階段啟動(dòng)加載程序的驗(yàn)證數(shù)據(jù)。
. 安全韌體更新:
只接受制造商授權(quán)的程序代碼。
. 授權(quán):
只允許真正節(jié)點(diǎn)能存取網(wǎng)絡(luò)。
. 完整性:
保護(hù)數(shù)據(jù)免于被變更。
. 統(tǒng)計(jì):
適當(dāng)?shù)亟y(tǒng)計(jì)數(shù)據(jù)、節(jié)點(diǎn)數(shù)量、以及時(shí)戳,有助于防止有人力存取IIoT網(wǎng)絡(luò)。
. 安全通訊:
各種加密通訊協(xié)議能建置于低功耗節(jié)點(diǎn)內(nèi)。
. 可用性:
確保用戶只在有需要時(shí)進(jìn)行存取。
. 不可拒絕:
確保真實(shí)的通訊要求不能被拒絕。
. 可靠:
即使在充斥干擾的電子環(huán)境,存取作業(yè)仍然可靠。
圖1 偽冒的節(jié)點(diǎn)讓網(wǎng)關(guān)誤以為它是一個(gè)已知節(jié)點(diǎn)
系統(tǒng)隔離阻惡意軟件傳播
將各系統(tǒng)彼此隔開,不僅能減少攻擊的門路,還能限制惡意軟件的傳播。 有些系統(tǒng)不需要和其他曝露在網(wǎng)絡(luò)的系統(tǒng)進(jìn)行鏈接,那么這些系統(tǒng)就能被隔離。 針對高風(fēng)險(xiǎn)系統(tǒng),可以考慮設(shè)定單獨(dú)隔開或嚴(yán)密監(jiān)視的網(wǎng)絡(luò),并將該網(wǎng)絡(luò)和其他網(wǎng)絡(luò)隔開。 在理想的狀況下,關(guān)鍵系統(tǒng)應(yīng)和外界完全隔離開來。
聯(lián)網(wǎng)汽車的信息娛樂系統(tǒng)會(huì)讓車輛曝露在許多從未見過的新型攻擊手法之下。 主引擎控制單元(ECU)和信息娛樂系統(tǒng)完全沒有關(guān)連,因此外界應(yīng)該沒有途徑透過信息娛樂系統(tǒng)來和ECU進(jìn)行互動(dòng)。 雖然一般車輛的設(shè)計(jì)會(huì)用兩個(gè)CAN總線將最關(guān)鍵的系統(tǒng)和其他部分隔離開來,但還是有辦法透過某些方法進(jìn)行鏈接。 外界仍有可能滲透其中一者,然后再取得另一個(gè)系統(tǒng)的控制權(quán)。 如果這些網(wǎng)絡(luò)之間徹底隔離,被滲透的風(fēng)險(xiǎn)就能從可能致命大幅降低至較低的損壞程度。
機(jī)密信息邊緣即處理保安全
許多任務(wù)業(yè)物聯(lián)網(wǎng)系統(tǒng)會(huì)連接到云端服務(wù)器,這些服務(wù)器除了會(huì)處理從裝置送來的信息,還會(huì)管理這些裝置。 由于裝置數(shù)量持續(xù)擴(kuò)增,云端需要應(yīng)付如此龐大裝置也變得越來越吃力。 于是許多系統(tǒng)開始將處理工作向外移到網(wǎng)絡(luò)邊緣的IIoT裝置,藉以減少送至云端的數(shù)據(jù)流量。
我們通常將數(shù)據(jù)看作是資產(chǎn)。 數(shù)據(jù)經(jīng)過挖掘后移轉(zhuǎn),之后再從龐大的數(shù)據(jù)集中找出隱藏其中的模式。 不過,一開始搜集但尚未處理的數(shù)據(jù),通常其用處并不大,但對于黑客而言,這些數(shù)據(jù)卻相當(dāng)有用。 敏感數(shù)據(jù)會(huì)成為黑客的目標(biāo),因而變成一種負(fù)擔(dān)。 搜集來的數(shù)據(jù)應(yīng)先加以過濾,而僅留下有需要的部分,其余的部分則應(yīng)該盡速刪除。 這種作法不僅能提高安全,還會(huì)增加收集數(shù)據(jù)的實(shí)用性。 重要的是,須辨識可能具機(jī)密性的信息,并徹底刪除或限制其儲存量。
在網(wǎng)絡(luò)邊緣立即處理數(shù)據(jù),傳送到云端與暴露在云端上的數(shù)據(jù)其數(shù)量就會(huì)減少。 邊緣產(chǎn)生的數(shù)據(jù)傳送得越多,就越難保持其機(jī)密性。 每多出一個(gè)新節(jié)點(diǎn),就會(huì)多出一個(gè)數(shù)據(jù)外流的潛在漏洞,攻擊門路也會(huì)隨之快速增加。
將敏感的數(shù)據(jù)局限在網(wǎng)絡(luò)邊緣能限制攻擊門路的數(shù)量,機(jī)密數(shù)據(jù)尤其適用。 如果將機(jī)密數(shù)據(jù)圍堵在網(wǎng)絡(luò)邊緣節(jié)點(diǎn)不外傳,被竊取的可能性就會(huì)降低。 舉停車位傳感器為例,它在處理影像后會(huì)透過一個(gè)二進(jìn)制訊號通報(bào)車位已被占用,而不會(huì)回傳串流視訊,如此就不必傳送龐大但沒有必要的影像數(shù)據(jù)。 這種作法能減輕接收服務(wù)器的負(fù)荷,而且黑客也無法藉由截收視訊的方式進(jìn)行監(jiān)視。 類似于消費(fèi)型物聯(lián)網(wǎng)系統(tǒng),工業(yè)物聯(lián)網(wǎng)系統(tǒng)也必須保存涉及專利以及機(jī)密性的信息,其中包括:
. 專利算法
. 嵌入式韌體
. 顧客信息
. 金融信息
. 資產(chǎn)位置
. 設(shè)備使用模式
. 涉及競爭的情報(bào)
. 連接至更大規(guī)模網(wǎng)絡(luò)的管道
有些工業(yè)物聯(lián)網(wǎng)裝置仍缺乏足夠的威力與效能,無法應(yīng)付在網(wǎng)絡(luò)邊緣處理數(shù)據(jù)的需求。 于是另一種拓?fù)渚蛻?yīng)運(yùn)而生,這就是貼近地面的霧運(yùn)算(Fog)模式,其為介于云端與邊緣系統(tǒng)之間的模式。 在Fog模式中,邊緣節(jié)點(diǎn)會(huì)先鏈接到網(wǎng)關(guān),這個(gè)網(wǎng)關(guān)會(huì)接收數(shù)據(jù)并進(jìn)行一些處理作業(yè),然后將結(jié)果傳到云端。 一部網(wǎng)關(guān)可能鏈接多部IIoT裝置。 這種網(wǎng)關(guān)并不一定要采電池供電方式,因此在處理電力方面有更高的用電預(yù)算,而其成本也高于資源受限的IIoT裝置。
Fog模式雖然是因擴(kuò)充問題而崛起,但安全也扮演一定的角色。 網(wǎng)關(guān)裝置能協(xié)助保護(hù)脆弱的邊緣節(jié)點(diǎn),這些節(jié)點(diǎn)資源過于有限無法自我防護(hù),但一定程度的保護(hù)總勝過完全不設(shè)防。 網(wǎng)關(guān)可用來協(xié)助管理底下的所有節(jié)點(diǎn),但不是直接管理每個(gè)節(jié)點(diǎn)。 Fog模式也能配合IIoT的事件響應(yīng),同時(shí)避免服務(wù)受到干擾而中斷。 舉例來說,維安作業(yè)可透過和網(wǎng)關(guān)的互動(dòng)做出反應(yīng),毋須關(guān)掉負(fù)責(zé)關(guān)鍵任務(wù)的生產(chǎn)線。
圖2 可能感染工業(yè)物聯(lián)網(wǎng)系統(tǒng)的各種類型惡意代碼
資源供應(yīng)與部署挑戰(zhàn)險(xiǎn)峻
工業(yè)物聯(lián)網(wǎng)最嚴(yán)峻的挑戰(zhàn)中,包括部署與管理數(shù)量極龐大的裝置。 廣布各處的工業(yè)物聯(lián)網(wǎng)系統(tǒng),最為人詬病的,就是難以布建與設(shè)定。 再加上IIoT極長的生命周期,系統(tǒng)由某個(gè)團(tuán)隊(duì)布建后,經(jīng)過長年的運(yùn)作,然后可能轉(zhuǎn)由另一個(gè)團(tuán)隊(duì)負(fù)責(zé)支持。
IIoT系統(tǒng)在默認(rèn)狀態(tài)下由于驗(yàn)證機(jī)制薄弱,因此安全性欠佳。 正如我們在Mirai強(qiáng)尸網(wǎng)絡(luò)所看到的情況,大多數(shù)用戶從來不會(huì)登入到工業(yè)物聯(lián)網(wǎng)裝置去設(shè)定它們,甚至根本不知道應(yīng)該進(jìn)行設(shè)定。 大多數(shù)IIoT用戶都以為裝置拆箱后就能立即上線使用,系統(tǒng)在默認(rèn)狀態(tài)下原本就應(yīng)安全無虞。 這類應(yīng)該進(jìn)行設(shè)定但用戶從未執(zhí)行設(shè)定的裝置,就從此維持在出廠時(shí)的預(yù)測狀態(tài)。 最常見的錯(cuò)誤就是防護(hù)力極弱的默認(rèn)密碼。
在工業(yè)物聯(lián)網(wǎng)領(lǐng)域,網(wǎng)絡(luò)邊緣得到最多的關(guān)注,但千萬不可忽略云端或是系統(tǒng)中的服務(wù)器。 針對服務(wù)器常見漏洞進(jìn)行測試,像是跨站點(diǎn)的描述指令,SQL注入攻擊、跨站點(diǎn)偽冒等,另外還得研究API找出漏洞,確保在服務(wù)器上運(yùn)行的軟件都能及時(shí)安裝修補(bǔ)程序。
在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)必須妥善保護(hù),否則就可能被攔截并進(jìn)行惡意的竄改。 應(yīng)采用如TLS或SSH這類安全譯密通訊協(xié)議來保護(hù)傳送數(shù)據(jù)。 在理想狀態(tài)下,數(shù)據(jù)應(yīng)受到端對端的全程保護(hù)。
工業(yè)物聯(lián)網(wǎng)的邊界通常很模糊。 IIoT傳感器節(jié)點(diǎn)通常四處分散在網(wǎng)絡(luò)的邊界。 一般的作法是透過一個(gè)固定式網(wǎng)關(guān),作為進(jìn)入更大規(guī)模工業(yè)網(wǎng)絡(luò)的入口。 針對這些連至網(wǎng)絡(luò)的裝置執(zhí)行適當(dāng)?shù)纳矸烛?yàn)證,有助于防范惡意第三方竄改傳送中的數(shù)據(jù)。
要保護(hù)網(wǎng)絡(luò)傳輸數(shù)據(jù),涉及到使用安全通訊協(xié)議。 最好的作法應(yīng)采用已知安全無虞的標(biāo)準(zhǔn)通訊協(xié)議。 我們可利用IEEE 802.1AE MACsec在以太網(wǎng)絡(luò)LAN提供安全機(jī)制。 無線局域網(wǎng)絡(luò)面臨的風(fēng)險(xiǎn)比較高,因?yàn)樗鼈兏菀妆淮嫒∏矣嵦査奶巶鞑ァ?WPA2能為遵循IEEE 802.11標(biāo)準(zhǔn)的無線網(wǎng)絡(luò)提供安全機(jī)制。 無線IIoT解決方案通常采用低功耗IEEE 802.15.4標(biāo)準(zhǔn),此標(biāo)準(zhǔn)本身就提供全套安全通訊協(xié)議。 然而這些都屬于Layer 2通訊協(xié)議,而且僅針對局域網(wǎng)絡(luò)內(nèi)的傳輸流量提供保護(hù)。
受保護(hù)的流量必須轉(zhuǎn)送到LAN以外的環(huán)境,像是透過因特網(wǎng)轉(zhuǎn)送,因此需要更高層的通訊協(xié)議來提供端至端全面覆蓋的安全性。 一般都會(huì)運(yùn)用TLS來保護(hù)因特網(wǎng)上的流量,以及提供端對端的安全防護(hù)。 TLS采用的是TCP技術(shù),而許多物聯(lián)網(wǎng)裝置則是采用UDP協(xié)議進(jìn)行通訊,另外常用的還有DTLS(數(shù)據(jù)元傳輸層安全),則是透過UDP協(xié)議傳送數(shù)據(jù)。 物聯(lián)網(wǎng)裝置在供電與內(nèi)存方面受到限制,但大多數(shù)受限制的應(yīng)用僅需簡單的步驟就能建置TLS。 即使條件更為受限的裝置,IETF也已著手為其制定名為受限應(yīng)用通訊協(xié)議(CoAP)的新通訊協(xié)議。
感測節(jié)點(diǎn)建置防護(hù) 抵御端點(diǎn)裝置安全
保護(hù)傳送中的數(shù)據(jù)不僅重要而且必要,但許多攻擊行動(dòng)卻更常鎖定端點(diǎn)裝置。 連至網(wǎng)絡(luò)的接口必須加強(qiáng)防御以彌補(bǔ)各種防御缺口。 IIoT防御其中一種作法,是直接在傳感器節(jié)點(diǎn)裝置建構(gòu)防護(hù)機(jī)制。 這種方式提供第一層關(guān)鍵防線,因?yàn)檠b置不再依賴企業(yè)防火墻作為其唯一的保護(hù)機(jī)制。 這對企業(yè)行動(dòng)裝置以及部署在偏遠(yuǎn)位置的IIoT傳感器尤其重要。
IIoT裝置的安全解決方案必須提供足夠的保護(hù),以抵御各種網(wǎng)絡(luò)攻擊。 這類解決方案除了必須確保裝置韌體不會(huì)被竄改,還得能保護(hù)裝置內(nèi)儲存的數(shù)據(jù);保護(hù)傳入與傳出的通訊;以及能偵測與回報(bào)任何嘗試滲透的網(wǎng)絡(luò)黑客。 而唯一能達(dá)成上述目標(biāo)的方法,就是在設(shè)計(jì)初期階段便納入安全規(guī)畫。
對于嵌入式裝置而言,永遠(yuǎn)不會(huì)有萬用式的安全解決方案。 市面上的解決方案為OEM廠商提供泛用式框架。 然而,完整的安全框架必須考慮保護(hù)特定裝置、網(wǎng)絡(luò)、以及整個(gè)系統(tǒng)所需的各項(xiàng)核心功能。 它們必須具備足夠的彈性,除了針對任何特定需求對解決方案進(jìn)行客制化設(shè)計(jì),同時(shí)還要確保納入關(guān)鍵的安全功能。
寫保護(hù)模式助系統(tǒng)感染后復(fù)原
在醫(yī)療領(lǐng)域中,手術(shù)工具的消毒至關(guān)重要,除了讓工具能重復(fù)使用,還能避免傳播疾病。 高壓蒸氣滅菌鍋是消毒的標(biāo)準(zhǔn)器材,它在高壓環(huán)境中透過超高溫蒸氣快速對手術(shù)器具進(jìn)行消毒,藉此消滅所有細(xì)菌,讓器材回復(fù)到良好狀態(tài)。 外科醫(yī)生用過的手術(shù)刀經(jīng)過這樣的消毒程序后即可重復(fù)使用。
系統(tǒng)被滲透之后回復(fù)到已知良好狀態(tài),這要比讓系統(tǒng)能抵御所有攻擊還更為重要。 具備復(fù)原能力的系統(tǒng)能快速復(fù)原,并且在充分信心的狀態(tài)下回復(fù)運(yùn)行。
系統(tǒng)一旦被感染后,如何要消除感染? 當(dāng)系統(tǒng)被感染時(shí),系統(tǒng)的狀態(tài)會(huì)經(jīng)由一些不明方式被變更。 從遠(yuǎn)程發(fā)動(dòng)的滲透會(huì)掌控處理器,然后將新的惡意代碼置入到系統(tǒng)。 通常惡意代碼會(huì)竄改或更換韌體,讓系統(tǒng)以不同的方式運(yùn)作。 一旦發(fā)生這種狀況,處理器就不再能被信任。
嵌入式系統(tǒng)通常設(shè)計(jì)成難以從被滲透的狀態(tài)進(jìn)行可靠的復(fù)原。 要對系統(tǒng)消毒,并確定系統(tǒng)徹底無害,唯一的方法就是將所有非揮發(fā)性內(nèi)存內(nèi)的數(shù)據(jù)復(fù)制到外部讀取裝置,之后再和原始韌體的內(nèi)容進(jìn)行比對驗(yàn)證,如果確定沒有被竄改,再以原始內(nèi)容寫入。 大多數(shù)系統(tǒng)的設(shè)計(jì),都無法具備上述的功能。
其中一種保護(hù)系統(tǒng)完整性的方法,就是以機(jī)器開關(guān)的物理方式為非揮發(fā)性內(nèi)存提供寫入保護(hù)。 當(dāng)開關(guān)切換至寫保護(hù)模式,內(nèi)存就透過硬件提供物理性的保護(hù)。 內(nèi)存的控制力移出到處理器以外,如此一來黑客如果無法實(shí)體接觸到裝置就無法從遠(yuǎn)程將長駐型(Permanent)惡意代碼寫到內(nèi)存。 對于只能透過因特網(wǎng)連到裝置但卻無法實(shí)際接觸到裝置的黑客而言,上述這種方法能擋掉大多數(shù)這類型黑客一段很長的時(shí)日。 韌體更新通常很久才會(huì)執(zhí)行一次。 當(dāng)需要更新韌體時(shí),用戶可以將開關(guān)切至允許寫入內(nèi)存模式,授權(quán)更新程序,當(dāng)完成更新后馬上再切換至寫保護(hù)模式。
許多裝置還會(huì)用非揮發(fā)性內(nèi)存來儲存需要覆寫的數(shù)據(jù)。 在高度安全的系統(tǒng)中,會(huì)用另一個(gè)非揮發(fā)性內(nèi)存芯片來儲存數(shù)據(jù),但不會(huì)存放程序。 雖然黑客可能會(huì)攻入系統(tǒng),將惡意數(shù)據(jù)寫入這個(gè)內(nèi)存,并利用軟件的Bug,因此系統(tǒng)應(yīng)事先進(jìn)行徹底分析與測試,不論內(nèi)存內(nèi)存放什么數(shù)據(jù),系統(tǒng)都不會(huì)被攻破。 加裝額外的內(nèi)存芯片會(huì)提高成本,不過市面上已有某些閃存允許用戶將某些區(qū)域設(shè)為防止寫入,其余區(qū)域仍允許寫入數(shù)據(jù)。
圖3 中間人攻擊(Man-in-The-Middle)會(huì)在節(jié)點(diǎn)與網(wǎng)關(guān)之間安插一個(gè)惡意的存取點(diǎn)(Access Point)。
安全開機(jī)程序防止未授權(quán)軟件安裝
安全開機(jī)能防止未經(jīng)授權(quán)的軟件在裝置開機(jī)程序中被加載到裝置。 安全開機(jī)是信任鏈的起點(diǎn)。 安全開機(jī)一開始是第一階段開機(jī)程序(Bootloader),從節(jié)點(diǎn)的只讀式非揮發(fā)性內(nèi)存啟動(dòng)。 這個(gè)開機(jī)時(shí)序唯一工作就是驗(yàn)證第二階段開機(jī)程序的身分真實(shí)性。 第二階段開機(jī)程序通常較為復(fù)雜,可能儲存在可覆寫閃存,重復(fù)執(zhí)行開機(jī)程序。 它會(huì)根據(jù)可信任來源驗(yàn)證操作系統(tǒng)與被加載的程序是否有效。
具備安全開機(jī)與安全韌體更新功能的IIoT節(jié)點(diǎn),可確保裝置運(yùn)行經(jīng)授權(quán)的程序代碼不會(huì)被竄改或注入惡意代碼,這種方式可避免裝置被永久置入惡意軟件或程序。 裝置只會(huì)運(yùn)行未經(jīng)竄改的程序,否則就無法開機(jī)。
安全開機(jī)程序通常依賴數(shù)字簽名來保護(hù)程序代碼的真實(shí)性。 裝置OEM廠商在組裝時(shí)會(huì)使用自己的私有密鑰來簽署程序代碼映像。 程序代碼之后再利用OEM廠商的公開密鑰驗(yàn)證韌體映像的簽章。
另外程序代碼還會(huì)運(yùn)用對稱式譯密機(jī)制,用訊息鑒別碼(MAC)來保護(hù)程序代碼,不過裝置內(nèi)必須存放私有密鑰,但這也會(huì)衍生被竊取的風(fēng)險(xiǎn)。 就運(yùn)算方面而言,使用MAC是比較容易的方法。
雖然安全開機(jī)能增進(jìn)安全,但有時(shí)也會(huì)對終端用戶形成過多限制,因?yàn)樗鼤?huì)讓用戶無法變更在裝置上執(zhí)行的軟件,或是無法執(zhí)行自己的軟件。 依照應(yīng)用的不同,用戶可能需要更多彈性,以及能夠設(shè)定保護(hù)開機(jī)的方式,使其能信任自己的程序代碼。
安全韌體更新,類似安全開機(jī),在升級程序時(shí)會(huì)驗(yàn)證新程序代碼映像是否由OEM廠商簽署。 如果下載的映像無效,程序代碼就會(huì)被棄置,升級程序就會(huì)中止。 這種更新程序只會(huì)接受有效的映像,通過鑒別的韌體會(huì)儲存到裝置的內(nèi)存。
假設(shè)防御漏洞終究會(huì)被發(fā)現(xiàn),那么事先應(yīng)擬好計(jì)劃,設(shè)定好一旦發(fā)現(xiàn)或不幸被滲透時(shí)該如何解決這些漏洞。 通常需要一個(gè)途徑讓軟件更新或修補(bǔ)程序能安裝到裝置,藉以修補(bǔ)漏洞。 更新程序需要妥善執(zhí)行,避免成為另一個(gè)攻擊門路,讓黑客藉此將惡意代碼裝入到裝置。 只是為了安裝修補(bǔ)程序讓外界能透過網(wǎng)絡(luò)存取裝置,其衍生出的風(fēng)險(xiǎn)往往多過規(guī)避掉的風(fēng)險(xiǎn)。
圖4 物理寫入保護(hù)韌體,僅在執(zhí)行更新時(shí)放行,這種方法能有效保護(hù)裝置的完整性。
安全通訊協(xié)議防范竊聽
大多數(shù)工程師將安全聯(lián)想到通訊協(xié)議,像是SSL/TLS、SSH、以及IPsec,因?yàn)榘踩ㄓ嵲缫驯患尤氲皆S多嵌入式裝置。 然而,這只是安全威脅的其中一部分,其他攻擊門路還會(huì)提供新的滲透途徑。 許多IIoT傳感器節(jié)點(diǎn)會(huì)在低功耗組態(tài)下運(yùn)行,然而這類低功耗處理器并無法支持最佳選項(xiàng),像是TLS或IPSec。 對于建構(gòu)安全裝置而言,安全通訊協(xié)議提供一個(gè)很好的起點(diǎn)。 它們設(shè)計(jì)用來防范封包竊聽、中間人攻擊、重送攻擊(Replay Attacks)、以及未經(jīng)授權(quán)人士嘗試與節(jié)點(diǎn)通訊。
小型IIoT邊緣傳感器裝置通常采用如ZigBee、藍(lán)牙低功耗(BLE)、以及其他無線與網(wǎng)狀拓?fù)涞臒o線網(wǎng)絡(luò)協(xié)議。 這些通訊協(xié)議都內(nèi)建一定程度的安全性,但相對而言其防護(hù)力都偏弱。 許多漏洞都公諸于世,老練的黑客都了如指掌。 微型IIoT裝置通常使用極低成本的低功耗處理器,而這類處理器并不支持TLS或IPSec。 對于小型邊緣裝置而言,在UDP協(xié)議上運(yùn)行TLS的DTLS,可用來保護(hù)通訊。
物理攻擊多鎖定前端感測
物理攻擊鎖定的是實(shí)際的網(wǎng)絡(luò)邊緣硬件節(jié)點(diǎn)或IIoT系統(tǒng)的網(wǎng)關(guān),這類攻擊可能包含入侵前端傳感器。 這些攻擊通常需要實(shí)際接觸系統(tǒng),但也可能只是限制IIoT硬件的效率。 黑客會(huì)竄改節(jié)點(diǎn),藉以控制傳感器或IIoT環(huán)境的其他裝置。 得手后他們可能取出機(jī)密數(shù)據(jù),并從來源端將韌體程序代碼寫入到系統(tǒng)。 運(yùn)用注入惡意節(jié)點(diǎn)的策略,黑客可將惡意節(jié)點(diǎn)部署在合法節(jié)點(diǎn)之中,混入到IIoT網(wǎng)絡(luò)內(nèi)。
為協(xié)助防范這些攻擊,許多硬件在設(shè)計(jì)時(shí)間就預(yù)作防備。 透過前導(dǎo)裝置、外露銅導(dǎo)孔或未使用接頭,就能讓任何人輕松進(jìn)行實(shí)體探測,這類的設(shè)計(jì)應(yīng)盡可能少用甚至完全棄用。
硬件表面上的網(wǎng)版印刷經(jīng)常會(huì)列出組件的詳細(xì)信息,讓潛在黑客獲得更多訊息,因此若非真的有必要,否則就應(yīng)移除。 雖然這會(huì)增加系統(tǒng)復(fù)雜度,但符合工業(yè)規(guī)范的涂層不僅會(huì)阻隔硬件與組件的接觸,也會(huì)增加額外的步驟,防止他人直接探測電路板上的電子組件。
任何嵌入式非揮發(fā)性內(nèi)存的內(nèi)容都應(yīng)進(jìn)行加密,以及對組件內(nèi)的內(nèi)容進(jìn)行覆寫保護(hù)。 微控制器與DSP裝置之間的接口應(yīng)設(shè)在PCB的埋入式電路層內(nèi)。 即使須要檢索嵌入式內(nèi)存的內(nèi)容,經(jīng)過加密與驗(yàn)證程序的數(shù)據(jù),也會(huì)讓外流的內(nèi)容無法被解讀。
制造商通常會(huì)在硬件加入除錯(cuò)或測試埠。 這些埠通常是串行或JTAG,能包含;存取與控制大多數(shù)系統(tǒng)。 應(yīng)確保這些鏈接埠在生產(chǎn)時(shí)關(guān)閉功能或加上保護(hù),因?yàn)楣馐遣灰A(yù)留除錯(cuò)接頭(Debug Headers)還不夠,不怕麻煩的人可以自行在針腳焊上鏈接點(diǎn)。 如果需要在生產(chǎn)裝置時(shí)保留這些接口,就須先對這些接口進(jìn)行驗(yàn)證才允許使用。 它們應(yīng)設(shè)有密碼保護(hù),但也要確保讓用戶能設(shè)定高防護(hù)力的密碼。
隨機(jī)數(shù)生成挑戰(zhàn)多
譯密功能通常需要某種類型的隨機(jī)數(shù)生成器(RNG)。 需要透過隨機(jī)隨機(jī)數(shù)讓生產(chǎn)的密鑰難以預(yù)測,或是永遠(yuǎn)不會(huì)重復(fù)。 由于缺少資源與無序狀態(tài)的熵(Entropy),因此對于資源有限的嵌入式系統(tǒng)而言,要生成隨機(jī)數(shù)都會(huì)是極大的挑戰(zhàn)。
許多嵌入式系統(tǒng)面臨熵過低的問題,這可能會(huì)導(dǎo)致災(zāi)難性的滲透,像是臺灣國民ID智能卡。 研究人士發(fā)現(xiàn)由于缺少無序性,許多智能卡會(huì)從相同數(shù)字產(chǎn)生有關(guān)連性的密鑰。 因此,盡管有使用強(qiáng)大的隨機(jī)數(shù)生成器,外界還是能破解密碼。 類似的狀況,在2012年,研究人員發(fā)現(xiàn)公開密鑰服務(wù)器發(fā)布的RSA密鑰使用防御力過弱的隨機(jī)數(shù)生成器,導(dǎo)致他人有辦法破解密碼。
要驗(yàn)證RNG的強(qiáng)度,其難度很高甚至幾乎不可能。 以往的RNG設(shè)計(jì)都極具特殊性,外界對其了解甚少。 不過近幾年來,各界對強(qiáng)健譯密的隨機(jī)數(shù)生成器的設(shè)計(jì)以及正式分析,已經(jīng)累積相當(dāng)?shù)倪M(jìn)展。
目前健全的RNG設(shè)計(jì)通常有三個(gè)階段。 包括一個(gè)熵來源提供原始熵(Raw Entropy);一個(gè)熵?cái)X取器(Entropy Extractor)讓熵呈現(xiàn)均勻分布;以及擴(kuò)充階段,擴(kuò)充小量可用的熵。
第一階段是熵來源,可能是一些實(shí)體噪聲來源,像是頻率抖動(dòng)或熱噪聲。 某些處理器,像是ADI Blackfin DSP,能為硬件提供隨機(jī)數(shù)生成器,可用來產(chǎn)生熵。
用來譯密的隨機(jī)數(shù)必須在統(tǒng)計(jì)上呈現(xiàn)均勻的分布。 所有熵來源的偏差(Bias)量必須一致,而且在進(jìn)行譯密應(yīng)用之前還必須消除這個(gè)偏差。 方法是使用一個(gè)熵?cái)X取器,用高熵(High Entropy)取得非均勻分布的輸入,然后產(chǎn)生高熵的均勻分布輸出。 但這種方法的代價(jià)是一定程度的熵?fù)p失(Entropy Loss),因?yàn)殪財(cái)X取器需要熵的輸入高過輸出。 因此就得從熵來源搜集更多位,然后萃取出較小的高熵?cái)?shù)字,用來作為種子,輸入到譯密安全的虛擬隨機(jī)數(shù)生成器。
利用瑕疵發(fā)動(dòng)滲透
幾乎所有IIoT節(jié)點(diǎn)都必須配合某種類型的嵌入式韌體或算法一起運(yùn)行。 就功能上而言,在執(zhí)行要求時(shí)如果若沒有出現(xiàn)明顯的問題,這種韌體就能順利運(yùn)行。 但所有軟件總是會(huì)存在一定的Bug或缺陷,因此通常會(huì)允許小比例的異常運(yùn)行狀況,但這類狀況可能導(dǎo)致安全上的問題。 舉例來說,99.99%無錯(cuò)率的韌體幾乎很少會(huì)造成任何運(yùn)行上的問題。 但這個(gè)僅0.01%的出錯(cuò)率仍可能被黑客利用,讓特定節(jié)點(diǎn)的運(yùn)作100%完全失效。 許多軟件的Bug因復(fù)雜度而起,然而對于任何執(zhí)行實(shí)用任務(wù)的系統(tǒng)而言,復(fù)雜是必然的特性。 軟件Bug與漏洞在所有系統(tǒng)中都必定存在。
安全必須從系統(tǒng)設(shè)計(jì)一開始就納入考慮。 安全應(yīng)該是設(shè)計(jì)流程的一部分,而不是項(xiàng)目最后才進(jìn)行的工作。 安全不是加入安全功能;而是在于控管風(fēng)險(xiǎn)。 安全設(shè)計(jì)方法對于任何IIoT系統(tǒng)開發(fā)而言都至關(guān)重要。
現(xiàn)有的安全設(shè)計(jì)策略仍然適用。 運(yùn)用威脅模型分析找出各種風(fēng)險(xiǎn),然后選擇適合的風(fēng)險(xiǎn)抑制策略;找出系統(tǒng)的切入點(diǎn),從而發(fā)掘系統(tǒng)中的高風(fēng)險(xiǎn)區(qū)域。 大多數(shù)攻擊門路都是透過外部接口,因此應(yīng)檢討設(shè)計(jì)內(nèi)容發(fā)掘出安全漏洞。 同時(shí)應(yīng)審慎處理未知數(shù)據(jù)與驗(yàn)證所有輸入,驗(yàn)證與安全防護(hù)不應(yīng)局限于切入點(diǎn)。 而深層防御也是至關(guān)重要的,其意味著一旦外部防護(hù)層被攻破,其余每個(gè)防護(hù)層都有其必要性。
許多處理器提供不同層級的權(quán)限。 例如ARM擁有Trustzone以及ADI Blackfin DSP提供用戶層級的封閉模式,以及特權(quán)執(zhí)行模式。 大多數(shù)程序代碼應(yīng)盡量以最低權(quán)限執(zhí)行,藉以讓最重要的程序代碼以特權(quán)模式執(zhí)行。 IIoT裝置的安全需求必須考慮到安全失效的善后成本,像是攻擊的可能性、主要的攻擊門路,以及建置安全解決方案的成本。
圖5 利用小缺陷迫使系統(tǒng)100%時(shí)間失效
安全設(shè)計(jì)流程需求多
這些建議中,有許多不僅彼此沖突,甚至和系統(tǒng)的其他設(shè)計(jì)目標(biāo)相互矛盾。 提供安全通常涉及到某種取舍,通常是在成本、功能、抑或是使用功能之間做取舍。 有些取舍相當(dāng)有效但代價(jià)卻甚低,但有些則是代價(jià)高昂但回報(bào)甚少。 安全需求實(shí)須和設(shè)計(jì)的其他需求取得平衡點(diǎn),在安全設(shè)計(jì)流程中,應(yīng)根據(jù)應(yīng)用的性質(zhì)做出適合的判斷。
為協(xié)助保護(hù)IIoT,ADI已經(jīng)推出多款處理器,提供硬件式安全強(qiáng)化機(jī)制,協(xié)助突破邊緣節(jié)點(diǎn)的功能極限。 ADF7023 RF低功耗收發(fā)器即提供內(nèi)部AES加密功能,能使用ISM頻帶,并支持許多不同的調(diào)變機(jī)制。
ADuCM3029內(nèi)的嵌入式收發(fā)器提供AES與SHA-256硬件加速機(jī)制以及一個(gè)真實(shí)隨機(jī)數(shù)生成器,并配備有多重同位(Multiparity)保護(hù)功能的SRAM內(nèi)存。 ADSP-BF70X Blackfin系列數(shù)字信號處理器則針對安全密鑰儲存以及快速安全開機(jī)提供嵌入式一次程序化內(nèi)存,提供高度保障,確保系統(tǒng)在被滲透后仍能回復(fù)至已知良好狀態(tài)。
Blackfin DSP內(nèi)的回退(Rollback)保護(hù)機(jī)制配合硬件式的純遞增計(jì)數(shù)器,讓韌體能夠進(jìn)行升級,在當(dāng)出現(xiàn)防御漏洞時(shí)可加以修補(bǔ)。 再加上密鑰儲存的不可改變性,讓用戶能建構(gòu)強(qiáng)固且具回復(fù)力的邊緣節(jié)點(diǎn)。 此外,Blackfin DSP還提供譯密硬件加速器;一個(gè)硬件式真實(shí)隨機(jī)數(shù)生成器;隔離的特權(quán)與非特權(quán)程序代碼執(zhí)行模式、內(nèi)存管理單元,以及能限制DMA信道的存取,讓系統(tǒng)以低成本的平行模式運(yùn)行省電且安全的DSP。