美國國家標準與技術研究院NIST SP800-193的《平臺固件彈性指南》
2024-10-17 12:01:48 華邦“物聯網”(IoT)這一術語大約誕生于二十年前,彼時正值網際網絡蓬勃發展時期。當時,專家們設想所有系統或設備可通過互聯網連接功能,提供高級且智能的功能。該術語的提出主要是為了將獨立的聯網設備與相對傳統且需要定期人工維護的計算機和服務器進行區分。網絡安全在那時僅被視為屬于計算機和服務器的考慮范疇;對于其他類型的設備而言,網絡安全的概念鮮少使用或被理解,設備的可用性和創新性才是當時人們的主要關注點。
隨著時間的推移,越來越多的設備開始聯網,包括移動設備、網絡連結、工業控制、家用電器以及始終在線的個人電腦。由于缺乏規范,每個供應商在安全性方面都有自己的舉措,或者有的供應商完全沒有考慮到安全性。隨著連接性的增加,網絡安全風險也隨之增加。功能強大的聯網設備成為黑客遠程攻擊的目標,他們企圖利用這些設備的功能來滿足自己的需求。黑客攻擊可能是簡單的濫用聯網系統,也可能是利用聯網設備進行更復雜的攻擊,或者是通過創建機器人程序在某一日發動大規模的網絡攻擊。
隨著聯網設備的不斷迭代升級,社會經濟發展對于其功能和運行的依賴程度越來越高。曾經的新奇事物現在已成為現代社會的主要支柱,基礎設施、公用事業、家庭和政府機構都依賴聯網設備的正常運行,以維持穩定的日常生活。
這促使美國國家標準與技術研究院 (NIST)于 2018 年 5 月發布了 NIST SP800-193《平臺固件彈性指南》[?1]。該指南面向運行任意類型固件的聯網設備,包括從大型復雜的服務器到小型的嵌入式控制器。本白皮書旨在為讀者介紹該指南涵蓋的內容及原則。
NIST SP800-193(以下簡稱“193”)討論了“恢復力(Resiliency)”的概念,即系統或平臺抵抗惡意攻擊或自發錯誤導致故障的能力。恢復力的基礎包括以下三大原則:
圖一: 華邦安全閃存提供保護、檢測及恢復內存中代碼和關鍵數據遭未授權更改的方法。
保護即確保平臺代碼和數據保持完整狀態。完整狀態并不意味著這些代碼和數據沒有被修改,而是指其處于允許按照供應商、用戶和基礎設施的要求進行正確操作的狀態。對于代碼而言,這意味著正在運行系統的是經過驗證、可信的代碼版本;對于數據而言,則意味著數據僅允許授權實體和進程修改。
檢測即平臺識別代碼和關鍵數據損壞并發出警報的能力。檢測必須由單獨的分層來處理,因為受損代碼無法信賴來自自身或相關數據的測試。
恢復力即系統在代碼和關鍵數據方面恢復到正確工作狀態的能力。
如果系統符合保護、檢測和恢復三大原則,便是值得信賴的系統,亦即表示可以在受到網絡攻擊和各種自發錯誤期間繼續運行。
NIST SP800-193 僅涵蓋固件和關鍵數據的恢復力,并未涉及其他數據的丟失或損壞、或系統硬件的物理損壞。
華邦的安全閃存設備如何根據 NIST SP800-193 指南提供恢復力
華邦的安全閃存設備系列以恢復力為核心進行設計,通過將復雜的邏輯直接內置到閃存設備硬件中,符合NIST SP800-193 指南的三大原則,為處理恢復力提供了所需的單獨層。
1. 信任根
“信任根”是指保持固件處于完整狀態,使其值得信任。用戶和基礎設施可以依靠固件的功能來正確操作系統,并在執行前驗證固件其它部分的真實性和完整性。
2. 加密寫入保護
為實現保護并維持系統固件和關鍵數據的完整性,華邦的安全閃存設備采用了加密寫入保護 (CWP)。加密寫入保護允許平臺設計者保護閃存設備的某些區域免受被擦除或編程操作。如果要進行編程或擦除,唯一的方法是先通過加密認證過程,這個要求可讓使用者了解加密密鑰是被安全地存儲在閃存設備不可訪問的地方。因為密鑰在系統中不以明文形式存在,因此網絡攻擊者無法獲悉這些密鑰。而且每個系統的密鑰均是單獨設計,可以防止在單個實例受到攻擊和破壞時,導致系統大范圍的破壞。
3. 認證更新機制
NIST SP800-193 指南要求及時更新系統固件以修補安全漏洞。指南要求應通過身份驗證的機制來進行更新,以確保更新的真實可靠(來自正確來源)和完整(完整且未經修改)。因此,固件更新必須提供簽名摘要,以便系統確保更新代碼的真實性、完整性且未經修改。然而,這項要求帶來了“先有雞還是先有蛋”的問題。如果更新機制存在漏洞并需要修補怎么辦?如果更新機制存在漏洞,攻擊者就有可能加載危險固件,那么固件是否值得信任?
為解決這個問題,華邦的安全閃存包含了一個內置機制,為固件更新提供身份驗證和完整性保護。除此之外,更新機制還提供回滾保護(Roll-back Protection)和原子操作(Atomic Operation)。這種更新機制允許將新的固件映像逐塊寫入閃存設備,以適應速度較慢或不可靠的網絡。一旦整個更新映像寫入完成,安全閃存即對新映像進行驗證,檢查其是否完整、真實,以及其版本是否比閃存中的現有版本更新。如果所有檢查都成功完成,則安全閃存交換新映像與舊映像,為系統提供真正的更新固件。整個過程都具備失效保護(Fail-safe)功能,防止在更新過程發生系統故障,從而進一步提高了平臺的恢復力。
NIST SP800-193 指南要求系統在執行或使用固件和關鍵數據之前檢測未經授權的更改。一旦檢測到,系統可以啟動恢復過程。
1. 自動完整性檢查
華邦安全閃存在啟動時或可根據用戶要求,對固件區域進行自動完整性檢查。這項檢查會掃描整個固件區域,查找任何未經授權的更改。如果檢測到未經授權的更改,安全閃存將執行下文所述的恢復過程。
自動完整性檢查全程在閃存硬件中實現,因此提供了額外的、單獨的防護層。
2. 固件啟動數據認證
華邦安全閃存還支持專用的硬件認證機制,以驗證關鍵數據。這項機制可由固件隨時啟動,以確保關鍵數據不被破壞。它基于內置的 SHA-256 引擎,無需將數據從閃存移至內存,即可對大型數據集進行超快速驗證。
恢復機制可在檢測到平臺固件和關鍵數據損壞時,將其恢復到有效且授權的狀態。
1. 自動固件回滾防護機制
華邦的安全閃存設備專門分配了回滾防護機制的區域,以支持自動固件恢復。該區域包含了備用固件,當檢測到損壞時,備用固件會自動替換損壞的固件。此備用固件可以是原始固件的真實副本,也可以是專用于從損壞狀態恢復后系統的特殊固件版本。
自動固件回滾防護機制與自動完整性檢查協同工作。在系統啟用期間,閃存會在內部檢查固件的完整性。在此期間,系統將處于重置狀態。如果未能通過完整性檢查,閃存會自動重新映射回滾防護區域而不是損壞的固件區域,并允許系統執行備份固件。
回滾防護固件可以是原始系統固件的副本,也可以支持從本地存儲的副本或通過遠程存儲來恢復固件。
通過使用專用于該區域的唯一密鑰,回滾防護固件受到加密寫入保護。因此,即使其他區域的密鑰受到威脅也不會影響到回滾防護固件,符合NIST SP800-193 指南對恢復機制完整性的要求。
2. 關鍵數據的恢復
華邦的安全閃存允許為每個區域設置多種保護方案。關鍵數據保存在兩個單獨的區域中,每個區域都有唯一的密鑰,從而保護關鍵數據免受損壞或惡意攻擊。因此,數據的安全副本可以被完整保護且保存在本地,并在數據受損時使用該副本。
圖二: 華邦安全閃存在偵測到任何固件代碼或數據完整性遭到黑客攻擊或破壞時,能自動恢復平臺固件。
總結
NIST SP800-193 指南闡述了系統實現恢復力所需滿足的要求,以確保其能夠抵御因固件和關鍵數據遭到惡意攻擊,或發生故障時所導致的損壞。但這些要求只能通過專用的保護層才能實現。鑒于這個保護層需植根于恒定的代碼中,因此實現起來極具挑戰性。
華邦的安全閃存在硬件中提供了專用的保護層,滿足 NIST SP800-193 指南的恢復力要求。此外,華邦的安全閃存與標準NOR 閃存可實現百分百兼容,能夠高效將系統轉換為符合NIST SP800-193標準的恢復力系統,且轉換過程僅需微乎其微的工作量。
圖三: 華邦的安全閃存與標準 NOR 閃存可實現百分百兼容。