利用STM32MP1和STM32MP2在嵌入式Linux平臺上部署有效的安全保護(hù)機制
上個世紀(jì)60年代之后上市的汽車與保護(hù)嵌入式Linux系統(tǒng)安全有哪些共同之處呢?在2015年Linux安全峰會的一次演講上,Linux基金會協(xié)作項目IT團(tuán)隊的系統(tǒng)管理員Konstantin Ryabitsev曾經(jīng)用汽車比喻信息技術(shù)安全。他解釋道:到上世紀(jì)末,汽車已具有較高的可靠性,在運送乘客時,車輛本身很少發(fā)生故障。然而,當(dāng)時的汽車設(shè)計并未考慮人為誤操作因素導(dǎo)致的意外事故,如果汽車發(fā)生碰撞事故,駕駛員獲得的安全保護(hù)很有限。今天,汽車廠商為汽車配備了安全氣囊、緊急停車、防側(cè)滑系統(tǒng)、潰縮式轉(zhuǎn)向柱、碰撞檢測、預(yù)制動系統(tǒng)等多項安全措施。同樣,當(dāng)今的信息技術(shù)安全現(xiàn)狀很像上個世紀(jì)60年代的汽車,系統(tǒng)本身可靠,但尚未考慮人為失誤的影響。
本文引用地址:http://2s4d.com/article/202503/468460.htmRyabitsev的演講主要針對的是Linux服務(wù)器安全,雖然具體內(nèi)容較少直接適用于嵌入式系統(tǒng),但是,他談到的安全原則對于嵌入式系統(tǒng)同樣具有重要意義。當(dāng)前,仍有太多的企業(yè)在產(chǎn)品設(shè)計中忽視安全這個重要因素:工程師著力于提升產(chǎn)品質(zhì)量和功能安全,卻未能制定信息安全事故應(yīng)急方案,甚至有些團(tuán)隊不重視數(shù)據(jù)的價值,在設(shè)計中沒有縝密考慮信息安全,存在亡羊補牢的思想,這導(dǎo)致多數(shù)企業(yè)看不到人為錯誤或新型攻擊向量對用戶或企業(yè)造成的嚴(yán)重?fù)p害或損失。為此,我們發(fā)布了一份技術(shù)白皮書,這樣,在STM32MP1和STM32MP2上運行的嵌入式系統(tǒng)可以像今天的汽車一樣安全,即使出了問題,仍能安然無虞。
攻擊類型
物理攻擊
在《嵌入式系統(tǒng)設(shè)計原理》(Design Principles for Embedded Systems1)一書中,作者KCS Murti將安全攻擊分為物理攻擊和邏輯攻擊兩大類。物理攻擊可能具有侵入性,例如,攻擊者侵入芯片內(nèi)部或干擾芯片正常工作;物理攻擊也可以采取"非侵入式"方式,最常見的是側(cè)信道攻擊攻擊。在此類攻擊中,攻擊者可能利用時鐘與內(nèi)存參數(shù)攻擊系統(tǒng),或通過分析功耗特征推導(dǎo)特定功能。意法半導(dǎo)體很早就開始設(shè)法提高行業(yè)的安全意識,因此,STM32MP1和STM32MP2微處理器為客戶提供了重要的物理攻擊防護(hù)措施,犯罪分子試圖通過物理攻擊方法入侵芯片的風(fēng)險很低。
邏輯攻擊
當(dāng)企業(yè)提及嵌入式系統(tǒng)安全時,通常情況下指的是防范邏輯攻擊的安全措施。簡而言之,邏輯攻擊的意圖是竊取數(shù)據(jù)或者非法獲取惡意軟件的運行權(quán)限,泄露數(shù)據(jù)信息,導(dǎo)致系統(tǒng)以及相連系統(tǒng)崩潰。當(dāng)大眾媒體報道網(wǎng)絡(luò)安全問題時,主要談?wù)摰氖沁壿嫻?。邏輯攻擊是最常見的網(wǎng)絡(luò)攻擊方式,因為實施容易,成本低,通常利用程序漏洞或缺陷即可發(fā)動攻擊。
邏輯攻擊同樣可能攻擊硬件功能或安全系統(tǒng)。例如,當(dāng)Spectre和Meltdown 漏洞首次曝光時,引發(fā)行業(yè)震動:這個兩個漏洞可讓程序從內(nèi)存竊取敏感數(shù)據(jù)或繞過安全防護(hù)機制入侵系統(tǒng)。根據(jù) Arm的報告,STM32MP1的Cortex-M4和Cortex-A7架構(gòu)及STM32MP2的Cortex-M33和Cortex-A35架構(gòu)均不存在這兩個漏洞。另一相似的典型案例是OpenSSL的Heartbleed 漏洞,該缺陷讓攻擊者有機會竊取原本應(yīng)受保護(hù)的信息,迫使開發(fā)者不得不緊急檢查軟件代碼,修補漏洞,否則后果嚴(yán)重。意法半導(dǎo)體的OpenSTLinux平臺的OpenSSL沒有該漏洞風(fēng)險。
人為錯誤
上述案例是無法預(yù)測的事件,我們應(yīng)從中汲取經(jīng)驗教訓(xùn)。開發(fā)團(tuán)隊需要預(yù)判這些無法預(yù)測的風(fēng)險,制定完善的漏洞審查計劃,并確保補丁能夠得到快速部署。這就是意法半導(dǎo)體白皮書闡述主要概念并幫助管理人員理解基礎(chǔ)安全知識的原因所在。因為在大多數(shù)情況下,黑客甚至無需利用明顯的漏洞,大多數(shù)攻擊都依賴于人為失誤或社會工程學(xué)手段。打開調(diào)試端口并保持開放狀態(tài),執(zhí)行錯誤的加密運算,或泄露管理員密碼,這些情況很容易出現(xiàn)。打個比方,醫(yī)學(xué)領(lǐng)域經(jīng)常告誡從業(yè)者,當(dāng)聽到馬蹄聲時,首先應(yīng)該想到的是馬,而不是斑馬。在信息技術(shù)安全領(lǐng)域也是如此,當(dāng)發(fā)生數(shù)據(jù)泄露事件時,首先應(yīng)該考慮是不是常見情況。
STM32Trust及其安全解決方案
嵌入式系統(tǒng)的安全也會因開發(fā)者生態(tài)系統(tǒng)的存在而變得更加穩(wěn)固。 意法半導(dǎo)體向上游貢獻(xiàn)驅(qū)動補丁,與開源社區(qū)緊密合作,因此,我們可以快速修補漏洞,并使用標(biāo)準(zhǔn)化工具開發(fā)軟件,提高安全功能的普惠性。我們還通過創(chuàng)建一些項目,例如,STM32Trust 或ST Partner Program幫助客戶開發(fā)關(guān)鍵的安全功能。例如,OpenSTLinux發(fā)行版已集成實施安全引導(dǎo)所需的工具與安全固件更新基礎(chǔ)架構(gòu)。此外,有些客戶想要把安全功能開發(fā)外包給第三方,這時,他們可以委托ST 合作伙伴,例如, Witekio 及其FullMetalUpdate ,以提高開發(fā)項目的可靠性和效率。最后,這份白皮書向決策者和行業(yè)專家保證,他們并不是在孤軍奮戰(zhàn)。
1.構(gòu)建、維護(hù)和推行可信技術(shù)
可信計算是什么概念?
ST可信基礎(chǔ)架構(gòu)——STM32MP1引導(dǎo)鏈順序(信任鏈)參考設(shè)計
為了讓信息技術(shù) (IT) 更加可靠,尤其是在應(yīng)對人為失誤的情況下,企業(yè)必須建立一條由可信設(shè)備系統(tǒng)構(gòu)成的可信鏈。如果應(yīng)用層不安全,用戶就無法獲得安全保障;同理,如果操作系統(tǒng)不值得信任,開發(fā)者很難創(chuàng)建安全的應(yīng)用。由此可見,可信計算概念是信息技術(shù)安全的基礎(chǔ)。根據(jù)Murti的理論定義2,可信是軟硬件件"強制實施既定安全策略"的可靠保證。例如,操作系統(tǒng)必須確保普通用戶僅具備部分權(quán)限,且無法取得管理權(quán);同理,應(yīng)用程序不得越權(quán)訪問安全策略規(guī)定的不得訪問的資源。
可信鏈(CoT)是什么概念?
在信息技術(shù)安全領(lǐng)域存在一個公理:如果底層不可信,上層就不可能真正安全。例如,如果操作系統(tǒng)不可信,應(yīng)用程序就會變得不安全。即便已采集的數(shù)據(jù)被軟件加密,但是,只要操作系統(tǒng)不可信,用戶仍無法得到?jīng)]有黑客入侵系統(tǒng)和竊取數(shù)據(jù)、密鑰等信息的保證。同理,若硬件平臺不可信,操作系統(tǒng)將不會很安全。真正安全的嵌入系統(tǒng)依賴于業(yè)界稱之為可信鏈(CoT)的逐層完整性驗證。
在傳統(tǒng)意義上,可信鏈(CoT)表示一個從最下面的硬件層到最上面的應(yīng)用層構(gòu)成的可信層工作流程。但是,管理者需認(rèn)識到,一條真正的可信鏈不應(yīng)局限于系統(tǒng)本身,應(yīng)延伸到系統(tǒng)以外的更遠(yuǎn)處。開發(fā)者必須保護(hù)自己的開發(fā)成果,制定風(fēng)控指引,并預(yù)判意外事件。假如秘鑰被心懷不滿的員工竊取,那么密鑰還有什么用?同理,企業(yè)須確保交付給OEM廠商的固件是安全的,企業(yè)耗費心力保護(hù)軟件安全,必須獲得惡意攻擊者無法竊取源碼的保證。真正的信息技術(shù)安全必須考慮到所有人為因素,并提前做好應(yīng)急備案。
因此,業(yè)界采用數(shù)學(xué)算法加密標(biāo)準(zhǔn)保護(hù)數(shù)據(jù)安全,這些加密系統(tǒng)假設(shè)攻擊者熟悉這些算法?,F(xiàn)在,安全專家不再依靠開發(fā)者隱藏訪問權(quán)限,而是預(yù)料到黑客知道他們在做什么。但是,因為成本太高,計算量太大,破解算法變得不切實際。因此,有很多公司選擇 RSA合AES密碼加密算法或CRYSTALS-Dilithium 等新后量子加密算法標(biāo)準(zhǔn)。盡管攻擊者很熟悉這些算法,但是,如果實施方法正確,這些算法是無法破解的。隨著能夠加快加密算法運算的硬件 IP 引擎的問世,運行加密算法而不影響處理性能的設(shè)想變?yōu)榱爽F(xiàn)實。
什么是可信根 (RoT)?
根據(jù)UEFI Forum,硬件可信根是計算機系統(tǒng)可信鏈的起點。硬件可信根是保證系統(tǒng)底層值得信賴的安全機制,因為引導(dǎo)加載軟件代碼是經(jīng)過多項驗證與認(rèn)證。簡而言之,可信根提供若干個保證:確保沒有人啟用新的調(diào)試接口或篡改固件配置等操作??尚鸥褂貌豢勺兊母荑€驗證代碼完整性,并采用安全的引導(dǎo)加載程序。密鑰位于硬件內(nèi)部這一事實還可有效防止黑客克隆系統(tǒng)。
鑒于固件在建立可信根方面的重要性,許多人開始使用加密固件。簡而言之,在MCU或 MPU上加載的代碼是無法讀取的,必須先在主控制器內(nèi)部用安全方法解密,這意味著沒有人眼可以窺視解密后的代碼,然后,主控制器運行檢查工具,驗證固件的完整性。STM32MP13 和 STM32MP25 微處理器具有專門的內(nèi)存保護(hù)機制和安全功能,盡管增加了解密步驟,但仍可保證強大的處理性能。加密固件還確保工業(yè)間諜無法訪問源代碼。
安全引導(dǎo)、安全固件安裝、安全模塊部署是什么意思?
建立一條可信鏈,工程師和管理人員可能無從下手。因此,白皮書列出了創(chuàng)建一個可靠的可信鏈所需的主要模塊。例如,白皮書解釋了 STM32MP1和 STM32MP2環(huán)境如何有一個基于可信根的參考引導(dǎo)順序,安全啟動使用 TF-A 軟件,安全操作系統(tǒng)采用OP-TEE軟件,在外存 RAM 中進(jìn)行Linux 內(nèi)核初始化時,第二階段引導(dǎo)加載程序使用U-Boot軟件。我們還有一個 wiki 知識庫,幫助開發(fā)人員開發(fā)所有這些模塊。因此,白皮書是一個幫助項目經(jīng)理啟動項目的助力踏板。
ST 還提供安全固件安裝機制,例如,安全秘鑰配置。開發(fā)人員在硬件安全模塊 (HSM) 上給密鑰加密,OEM廠商安裝的是加密數(shù)據(jù)和加密信息,MPU 通過 HSM模塊在內(nèi)部對加密的數(shù)據(jù)信息進(jìn)行解密處理。因此,沒有人能夠運行不受保護(hù)的引導(dǎo)加載程序或訪問敏感數(shù)據(jù),客戶還可以跟蹤 OEM廠商向多少臺設(shè)備燒錄了代碼。因此,保證可信鏈延伸到引導(dǎo)加載程序或軟件層以外的更高的層次,而且還是一個完善的產(chǎn)品設(shè)計制造方法,具有很重要的意義。
2.事件檢測、預(yù)測和響應(yīng)
為何審查日志、網(wǎng)關(guān)和代碼?
審查系統(tǒng)的重要性
嵌入式系統(tǒng)行業(yè)再也不能忽視其他行業(yè)積累的信息安全實踐經(jīng)驗。幾年前,企業(yè)很少審查自己的嵌入式系統(tǒng),因為他們沒有看到其中的價值。在許多情況下,數(shù)據(jù)仍保留在本地設(shè)備上,并且沒有敏感信息。然而,在下一個自動化時代,互聯(lián)互通的嵌入式設(shè)備越來越多,智能化水平也越來越高。因此,公司必須審查操作日志,定期檢查軟件執(zhí)行情況,并監(jiān)控流量以防入侵。像今天的汽車一樣,只有能夠預(yù)測即將發(fā)生碰撞或險情,才能有效地保護(hù)駕乘者的安全,因此,工程師必須緊跟最新的安全技術(shù)發(fā)展趨勢3。
安全認(rèn)證的興起是另一個新趨勢。監(jiān)管機構(gòu)等組織機構(gòu)正在創(chuàng)建認(rèn)證標(biāo)準(zhǔn)規(guī)范,以保證網(wǎng)絡(luò)安全解決方案可靠穩(wěn)健。例如,STM32MP1 和 STM32MP2 的真隨機數(shù)發(fā)生器已經(jīng)通過了 NIST SP 800-90B 等安全標(biāo)準(zhǔn)測試,可以幫助客戶順利通過 SESIP 3 級認(rèn)證。因此,需要獲得 FIPS 140-3 認(rèn)證的管理者可以二次使用我們的 SP 800-90B 證書,將產(chǎn)品更快地推向市場。同樣,STM32MP135 和 STM32MP25的預(yù)認(rèn)證方法還能大幅降低銀行應(yīng)用開發(fā)者取得要求嚴(yán)格的 POS PCI-PTS認(rèn)證的難度。
應(yīng)急計劃和FLUOTA是什么意思?
遠(yuǎn)程服務(wù)器
此外,企業(yè)必須制定應(yīng)急計劃,以便在發(fā)現(xiàn)漏洞或入侵事件后迅速做出反應(yīng)。部署應(yīng)急響應(yīng)計劃可以節(jié)省寶貴的時間,并極大地輔助決策過程,同時還可以避免在緊張和壓力之下做出倉促的決策。團(tuán)隊可以從網(wǎng)上各種資源中汲取靈感。例如,美國網(wǎng)絡(luò)安全和基礎(chǔ)設(shè)施安全局的《網(wǎng)絡(luò)安全事件和漏洞響應(yīng)手冊》就是一個很好的參考樣本。該手冊主張創(chuàng)建兩個手冊:一個處理事件,另一個處理漏洞。該手冊并非每個方面都適用于嵌入式系統(tǒng)或私營企業(yè),但仍具有重要參考價值。
在嵌入式系統(tǒng)中引入固件無線更新 (FUOTA) 機制也很重要。遠(yuǎn)程修補系統(tǒng)在處理危機的時候至關(guān)重要,但是,F(xiàn)UOTA實施起來特別復(fù)雜。在《物聯(lián)網(wǎng)》雜志最近發(fā)表的一篇文章中,法國研究人員分析了 FUOTA 背后的挑戰(zhàn),包括資源限制、網(wǎng)絡(luò)拓?fù)洹⒃O(shè)備管理、安全性。實現(xiàn)FUOTA要求在嵌入式系統(tǒng)與遠(yuǎn)程服務(wù)器端必須有多個組件協(xié)同運行。實際上, FUOTA的實施在很多情況下比人們想象的更容易,選擇外包服務(wù)通常是最具成本效益的解決方案。
3.投資、協(xié)助和支持開源社區(qū)和可信合作伙伴
采用開源技術(shù)思路
意法半導(dǎo)體已將芯片板級支持包(BSP)整合進(jìn)入Linux內(nèi)核主線版本
目前有一個明顯的向開源社區(qū)靠攏的趨勢。隨著 STM32MP1的推出,意法半導(dǎo)體承諾將繼續(xù)執(zhí)行貢獻(xiàn)驅(qū)動程序補丁的政策,繼續(xù)開發(fā)支持OpenSTLinux操作系統(tǒng)。除了已經(jīng)談到的優(yōu)勢外,使用開源軟件還可以簡化工作流程。使用開放的主流工具意味更容易招募英才和項目交接。在許多情況下,與專有解決方案相比,開放軟件有更多的支持資源和知識經(jīng)驗。加入社區(qū)往往會提振士氣。在知道項目有更大的用途后,工程師們更愿意接手項目。例如,貢獻(xiàn)上游驅(qū)動補丁,如果被很多業(yè)界同仁采用,將會提升個人成就感。
因為許可協(xié)議的為題,有些企業(yè)不愿意采用開源技術(shù)。對于在Linux系統(tǒng)上運行專有應(yīng)用程序和按照GPL(通用公共許可證)使用工具,業(yè)界存在認(rèn)知誤區(qū)。事實恰恰相反,TF-A、OP-TEE、U-Boot等開源軟件允許企業(yè)在自身系統(tǒng)架構(gòu)上搭建商用解決方案,而無需擔(dān)憂法律風(fēng)險。根據(jù)沃頓商學(xué)院2004年的研究論文預(yù)測,開源平臺完全具備賺錢潛力,未來許可協(xié)議將有助于厘清相關(guān)法律爭議。意法半導(dǎo)體的技術(shù)白皮書可以幫助企業(yè)管理層更好地厘清這個問題,以正確的心態(tài)開始他們的項目。
加強合作的必要性
合作的重要性
美國總統(tǒng)于2021年5月簽署的《關(guān)于加強國家網(wǎng)絡(luò)安全的行政令》建議服務(wù)提供商在信息技術(shù)安全方面加強合作。目前,該行業(yè)正在進(jìn)入一個新的時代,對嵌入式系統(tǒng)的要求要更加嚴(yán)格。數(shù)據(jù)越來越寶貴,即使是消費級系統(tǒng)也成為關(guān)鍵業(yè)務(wù)節(jié)點,保護(hù)信息不再是可有可無的事情。通過吸取白皮書中講述的經(jīng)驗教訓(xùn),并與開源社區(qū)和 ST 合作伙伴計劃的成員合作,企業(yè)可以改變現(xiàn)有安全文化。信息安全不該是亡羊補牢,而是引導(dǎo)公司創(chuàng)建的強大的嵌入式系統(tǒng),即使在面臨安全挑戰(zhàn)時,也能蓬勃發(fā)展。
評論