在過(guò)去的幾年中,物聯(lián)網(wǎng)(IoT)被吹捧為下一個(gè)大事件以及蹩腳的物聯(lián)網(wǎng)。這兩種描述都是有道理的。保護(hù)不力的物聯(lián)網(wǎng)設(shè)備已被用于許多分布式拒絕服務(wù)(DDoS)攻擊,并且據(jù)稱有用且友好的設(shè)備已侵犯其隱私并暴露其用戶的個(gè)人信息。
我相信這些設(shè)備的開(kāi)發(fā)人員和制造商正在關(guān)注,因此,他們可能會(huì)解決身份驗(yàn)證/授權(quán),不安全的Web界面,不良的網(wǎng)絡(luò)服務(wù)和加密等明顯問(wèn)題,以及在發(fā)現(xiàn)安全性或其他缺陷時(shí)無(wú)法更新軟件。我擔(dān)心的是,他們沒(méi)有對(duì)傳統(tǒng)計(jì)算行業(yè)發(fā)現(xiàn)的艱難發(fā)現(xiàn)給予足夠的關(guān)注。
一旦簡(jiǎn)單而明顯的安全漏洞得到糾正,作惡者將轉(zhuǎn)向其他攻擊面。計(jì)算機(jī)制造商必須處理的這些其他漏洞無(wú)疑將成為物聯(lián)網(wǎng)黑客的下一個(gè)目標(biāo)。本文重點(diǎn)介紹系統(tǒng)啟動(dòng)/固件以及該空間中物聯(lián)網(wǎng)設(shè)備的潛在安全問(wèn)題。最重要的是,如何處理它們。
為什么物聯(lián)網(wǎng)固件是一個(gè)問(wèn)題
物聯(lián)網(wǎng)生態(tài)系統(tǒng)中的許多人似乎認(rèn)為他們的設(shè)備是簡(jiǎn)單,一次性的一次性設(shè)備,例如您運(yùn)送和忘記的基本設(shè)備或嵌入式系統(tǒng)。隨著越來(lái)越多的物聯(lián)網(wǎng)設(shè)備不斷被開(kāi)發(fā),這種看法是有問(wèn)題的。
根據(jù)定義,物聯(lián)網(wǎng)設(shè)備是互聯(lián)網(wǎng)連接的。這意味著網(wǎng)絡(luò)堆棧,通信協(xié)議,設(shè)備和云中的應(yīng)用程序可以利用設(shè)備提供的數(shù)據(jù)以及這種連接所暗示的所有攻擊。這種連接性使這些設(shè)備成為理想的目標(biāo),任何安全漏洞都為攻擊者打開(kāi)了大門。
由于物聯(lián)網(wǎng)設(shè)備的復(fù)雜性和范圍,在大多數(shù)情況下,它們必須在現(xiàn)場(chǎng)進(jìn)行更新。這些設(shè)備的數(shù)量及其使用模式驅(qū)動(dòng)更新功能自動(dòng)和遠(yuǎn)程啟動(dòng)。這為那些改變他們的軟件來(lái)改變他們的行為的人提供了另一個(gè)攻擊媒介。
這種攻擊媒介并不是一個(gè)新現(xiàn)象。自互聯(lián)網(wǎng)出現(xiàn)以來(lái),網(wǎng)絡(luò)連接的計(jì)算機(jī)系統(tǒng)一直在處理它們。問(wèn)題在于,物聯(lián)網(wǎng)設(shè)備的開(kāi)發(fā)人員已經(jīng)將他們的小工具視為簡(jiǎn)單,單一用途的設(shè)備,不易受到惡意行為的影響,因此不容易受到攻擊。好吧,事實(shí)證明恰恰相反。壞人可以竊取用戶的數(shù)據(jù),使用設(shè)備監(jiān)視用戶防火墻內(nèi)的網(wǎng)絡(luò)基礎(chǔ)設(shè)施,或者將設(shè)備用作攻擊其他系統(tǒng)的啟動(dòng)平臺(tái)。
該怎么辦
從根本上說(shuō),物聯(lián)網(wǎng)設(shè)備的軟件/固件必須受到保護(hù),就像在通用計(jì)算機(jī)系統(tǒng)中必須保護(hù)代碼一樣。這包括初始化設(shè)備硬件,加載和啟動(dòng)設(shè)備軟件(系統(tǒng)和應(yīng)用程序)的固件和軟件,以及更新物聯(lián)網(wǎng)設(shè)備固件和軟件的過(guò)程。
平臺(tái)固件和啟動(dòng)安全性
自計(jì)算早期以來(lái),已經(jīng)創(chuàng)建了平臺(tái)固件來(lái)初始化系統(tǒng)硬件并加載初始軟件。對(duì)于傳統(tǒng)計(jì)算平臺(tái),該軟件通常是從磁盤加載的操作系統(tǒng),但即使在沒(méi)有傳統(tǒng)操作系統(tǒng)的嵌入式平臺(tái)上,軟件通常也從緩慢的非易失性存儲(chǔ)加載到更快的RAM內(nèi)存中以進(jìn)行正常操作。當(dāng) IBM 創(chuàng)建他們的 PC 時(shí),他們?yōu)榇巳蝿?wù)開(kāi)發(fā)了稱為 BIOS(基本輸入/輸出系統(tǒng))的固件。這個(gè)原始的BIOS被克隆并在許多平臺(tái)上使用;然而,隨著計(jì)算系統(tǒng)變得越來(lái)越復(fù)雜,處理器很難模仿1970年代PC的行為;一個(gè)新的標(biāo)準(zhǔn)誕生了。雖然簡(jiǎn)單的嵌入式和 SoC 系統(tǒng)轉(zhuǎn)向了 U-Boot 和核心引導(dǎo)等單片解決方案,但大多數(shù)大型和通用系統(tǒng)都遵循 UEFI 標(biāo)準(zhǔn)。
可擴(kuò)展固件接口 (EFI) 設(shè)計(jì)最初是由英特爾為新一代處理器創(chuàng)建的,消除了 BIOS 的大部分架構(gòu)限制。英特爾試圖將EFI作為整個(gè)行業(yè)BIOS的一般替代品,但由于它由單個(gè)主要行業(yè)參與者“擁有”,因此對(duì)這個(gè)想法有一些抵制。相反,英特爾為行業(yè)貢獻(xiàn)了設(shè)計(jì),并幫助建立了統(tǒng)一可擴(kuò)展固件接口(UEFI)論壇來(lái)管理未來(lái)的架構(gòu)。今天,UEFI論壇由300多家公司組成,負(fù)責(zé)UEFI標(biāo)準(zhǔn)的開(kāi)發(fā)和演變。
UEFI論壇采取的舉措之一是系統(tǒng)啟動(dòng)時(shí)的安全性,并且不可避免地需要更新其固件/軟件。已經(jīng)表明,如果攻擊者可以在系統(tǒng)啟動(dòng)和啟動(dòng)過(guò)程中獲得對(duì)系統(tǒng)的控制,他們可以完全“擁有”該系統(tǒng)發(fā)生的情況。最終,攻擊者可以在啟動(dòng)后禁用軟件中提供的保護(hù),并加載他們選擇的任何其他程序。此外,他們甚至可以在啟動(dòng)之前就修改普通軟件以完成其投標(biāo)。如果壞人能夠盡早控制系統(tǒng),那么該系統(tǒng)可能會(huì)完全受到損害。
如果代碼更新過(guò)程遭到破壞,情況也是如此。如果黑客創(chuàng)建自己的代碼并將其與系統(tǒng)制造商最初提供的代碼交換,則上面列出的所有壞事也可以在系統(tǒng)更新受損的系統(tǒng)中完成。
UEFI 規(guī)范提供了標(biāo)準(zhǔn)接口描述和旨在顯著限制此類威脅的體系結(jié)構(gòu)。用于保護(hù)系統(tǒng)免受這些威脅的兩種主要技術(shù)是:
安全啟動(dòng) – 要求對(duì)系統(tǒng)的所有軟件組件進(jìn)行加密簽名,否則將不允許它們運(yùn)行。這可以防止在系統(tǒng)啟動(dòng)期間運(yùn)行受損的組件,從而維護(hù)可以一直延續(xù)到應(yīng)用程序軟件本身的信任根。
膠囊更新 - 這要求所有系統(tǒng)更新都以加密方式簽名,并提供工具以確保系統(tǒng)固件/軟件無(wú)法回滾到安全性較低的版本。
UEFI 是唯一將這些安全功能作為其行業(yè)標(biāo)準(zhǔn)的一部分的固件解決方案。此外,雖然許多安全研究人員和黑客一直在測(cè)試其設(shè)計(jì),但沒(méi)有人能夠發(fā)現(xiàn)安全架構(gòu)中的任何缺陷。一些實(shí)現(xiàn)存在缺陷,但不是設(shè)計(jì)。
UEFI 還提供了更多與安全相關(guān)的功能,但它們超出了本文的范圍。我建議您訪問(wèn) http://www.uefi.org 網(wǎng)站,了解規(guī)格、白皮書(shū)和培訓(xùn)材料。
那么,為什么不是每個(gè)人都使用 UEFI 固件呢?
如果UEFI架構(gòu)為這些安全威脅提供了“解決方案”,為什么不是每個(gè)人都使用它?我相信有幾個(gè)主要原因:
許多物聯(lián)網(wǎng)開(kāi)發(fā)人員來(lái)自嵌入式/SoC領(lǐng)域,其中整體式啟動(dòng)解決方案很普遍。盡管U-Boot和核心引導(dǎo)等解決方案存在局限性,但開(kāi)發(fā)人員傾向于使用他們知道并且感到滿意的內(nèi)容。
關(guān)于UEFI固件存在許多誤解和“替代事實(shí)”,這些事實(shí)限制了它在某些社區(qū)中的接受程度。這些誤解的例子是:它太慢了;它太大了;架構(gòu)太復(fù)雜;它不是“開(kāi)放的”等。這些在 uefi.org 網(wǎng)站上的UEFI白皮書(shū)中在很大程度上被揭穿了。
我該何去何從?
因此,我希望我已經(jīng)說(shuō)服您至少考慮將UEFI作為下一個(gè)物聯(lián)網(wǎng)設(shè)備的固件設(shè)計(jì)替代方案。如何開(kāi)始?
下載最新的 UEFI 規(guī)范并嘗試閱讀封面以涵蓋它可能不是最好的開(kāi)始方式。首先,UEFI 是一個(gè)接口規(guī)范,而不是一個(gè)實(shí)現(xiàn)。該規(guī)范支持許多設(shè)備中可能不需要的功能,并且該規(guī)范的大小乍一看似乎令人生畏(2000 多頁(yè)!只有少數(shù)基本功能需要符合規(guī)范,您可以根據(jù)需要從其他功能中進(jìn)行選擇。uefi.org 網(wǎng)站上有許多教育材料,書(shū)籍和演示文稿。
作為接口規(guī)范,它不驅(qū)動(dòng)所描述的服務(wù)的實(shí)際代碼實(shí)現(xiàn)。Tianocore.org 提供了一個(gè)開(kāi)源示例實(shí)施,以及不錯(cuò)的文檔,其中包括多個(gè)英特爾參考平臺(tái)的完整實(shí)施以及可用于為其他平臺(tái)創(chuàng)建解決方案的代碼。還有針對(duì) ARM 處理器和平臺(tái)的綁定,ARM 人員提供了一個(gè)文檔,描述了基于 ARM 的設(shè)備上對(duì) UEFI 的要求。我甚至聽(tīng)說(shuō)在底層核心引導(dǎo)代碼庫(kù)上分層的UEFI接口的實(shí)現(xiàn)。完全取決于您的實(shí)現(xiàn)是什么樣的,以及需要和實(shí)現(xiàn)哪些功能。
有幾家獨(dú)立的固件供應(yīng)商很樂(lè)意幫助你為設(shè)備創(chuàng)建自定義 UEFI 實(shí)現(xiàn)。
底線
物聯(lián)網(wǎng)設(shè)備是真正的網(wǎng)絡(luò)連接計(jì)算設(shè)備,具有所有伴隨的風(fēng)險(xiǎn)。安全性較弱的物聯(lián)網(wǎng)設(shè)備不僅會(huì)危及設(shè)備本身及其數(shù)據(jù),還會(huì)危及本地網(wǎng)絡(luò)和整個(gè)互聯(lián)網(wǎng)中的其他設(shè)備。隨著這些設(shè)備的創(chuàng)建者修復(fù)了某些設(shè)備顯示的明顯安全限制,壞人將尋找其他攻擊媒介。這些攻擊面將包括攻擊設(shè)備固件和軟件更新機(jī)制。為了讓您的客戶和其他利益相關(guān)者滿意,您應(yīng)該考慮為 IoT 設(shè)備實(shí)現(xiàn) UEFI。
審核編輯:郭婷
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2945文章
47832瀏覽量
415281 -
IOT
+關(guān)注
關(guān)注
190文章
4397瀏覽量
208633
發(fā)布評(píng)論請(qǐng)先 登錄
請(qǐng)問(wèn)CW32L052C8T6這種安全性低功耗MCU的安全固件部分怎么實(shí)現(xiàn)?
Lora基站在物聯(lián)網(wǎng)應(yīng)用的重要性
芯源半導(dǎo)體在物聯(lián)網(wǎng)設(shè)備中具體防護(hù)方案
請(qǐng)問(wèn)如何協(xié)同工作來(lái)保障物聯(lián)網(wǎng)設(shè)備固件安全的?
在物聯(lián)網(wǎng)設(shè)備面臨的多種安全威脅中,數(shù)據(jù)傳輸安全威脅和設(shè)備身份安全威脅有何本質(zhì)區(qū)別?
芯源半導(dǎo)體安全芯片技術(shù)原理
學(xué)習(xí)物聯(lián)網(wǎng)可以做什么工作?
有哪些技術(shù)可以提高邊緣計(jì)算設(shè)備的安全性?
物聯(lián)網(wǎng)設(shè)備的固件安全性
評(píng)論