本文分享自華為雲社群《CWE 4.14 與 ISA/IEC 62443》,作者:Uncle_Tom。
1. 序言
隨著 5G 的應用,物聯的網發展,越來越多的自動化控制系統、雲服務在工業控制系統被廣泛使用。為了實現生產自動化,很多企業都引入了由 PLC(可程式設計邏輯控制器)控制的自動化生產裝置和相關的自動化生產系統。用來連線各個自動化生產裝置和生產系統的生產網路一般被稱為 OT(Operation Technology)網路。而這些網路互聯的普及與融合造成了 OT 環境系統安全受到威脅。再加上近來不斷升溫的政治衝突、恐怖主義與經濟犯罪,這些都是引發面向產業關鍵基礎設施進行攻擊的動機。
2. CWE 4.14
在 28 年才能一遇的龍年 2 月 29 日,CWE 釋出了新的一個版本 4.14。在這個版本釋出的公告裡,用了“其中包含了許多激動人心的更新(includes a number of exciting updates)”。這些更新主要包括:
- 有 4 個與硬體微架構相關的弱點;
- 1 個新檢視:工業自動化和控制系統的 CWE-1424:ISA/IEC 62443 要求解決的弱點檢視;
- 對觀察和示範示例的更新, 其中包括來自HACK@DAC安全挑戰競賽的 10 個新示範示例。
2.1. 瞬態執行漏洞
新增的 4 個與硬體微架構相關的弱點:
- 1420:在瞬態執行期間暴露敏感資訊;
- 1421:共享微架構在瞬態執行過程中暴露敏感資訊;
- 1422:瞬態執行過程中不正確的資料轉發導致的敏感資訊洩露;
- 1423:共享微架構由預測狀態影響瞬態執行導致的敏感資訊暴露。
瞬態執行攻擊,也稱為推測執行攻擊,在過去幾年中引起了人們的極大興趣,因為它們會導致關鍵資料洩露。自2018年1月首次披露Spectre和Meltdown攻擊以來,已經針對不同的處理器展示了許多新的瞬態執行攻擊型別。
瞬態執行攻擊由兩個主要組成部分組成:瞬態執行本身和用於實際過濾資訊的隱蔽通道。
瞬態執行是現代處理器的基本特徵的結果,這些特徵旨在提高效能和效率,而隱蔽通道是由於微架構元件的時間和空間共享而產生的意外資訊洩漏通道。
在過去的幾十年裡,計算機架構師一直在努力提高計算系統的效能。在各種處理器微架構中引入了不同的最佳化來提高效能,包括流水線、無序執行和分支預測。有些最佳化需要對執行的指令,這導致某些指令的瞬時執行。在指令集體系結構(ISA)級別,當今的處理器執行正常並返回正確的結果。然而,在當今的大多數處理器中,複雜的底層微體系結構狀態在瞬態執行過程中會被修改,即使ISA級別沒有洩漏,資料也可能從這些微體系結構中洩漏。
例如,在等待條件分支被解析的同時,分支預測用於預測該分支是否將被採用,並且處理器在分支的結果已知之前開始沿著預測的控制流路徑推測執行。指令的這種推測性執行導致處理器的微體系結構狀態被修改,即使指令是沿著錯誤推測的控制流路徑執行的。沿著錯誤推測的路徑執行指令被稱為瞬態執行(因為指令是瞬態執行的)。理想情況下,如果存在錯誤推測,應該會消失而沒有副作用。當檢測到錯誤推測時,應該清除體系結構和微體系結構的副作用, 但在當今的大多數處理器中都沒有這樣做,這導致了瞬態執行攻擊。
瞬態執行與隱蔽通道相結合會導致瞬態執行攻擊,從而危及系統的機密性。如圖所示,在這種攻擊過程中,機密(也稱為敏感資料)在瞬態執行期間是可用的——這將瞬態執行攻擊與傳統的隱蔽通道攻擊區分開來,在傳統的隱蔽通道攻擊中,資料被認為總是對傳送方可用,而不僅僅是在瞬態執行過程中。在瞬態執行期間訪問秘密資料後並將其編碼到隱蔽通道中,然後攻擊者可以從隱蔽通道中提取(即解碼)機密資料。
CVE 資訊資料庫中,與英特爾產品資訊的漏洞:
- 在 2018 年 14 個 CVE ID 中,瞬態執行攻擊被分配了 9 個;
- 在 2019 年 9 個 CVE ID 中,瞬態執行攻擊被分配了 4 個。
- 這些攻擊還會影響其他供應商,如 AMD 或 Arm。
2.2. CWE-1424:ISA/IEC 62443 要求解決的弱點檢視
新增的 CWE-1424:ISA/IEC 62443 要求解決的弱點檢視,給出了 ISA/IEC 62443 標準中涉及的弱點,也是我們需要在開發和檢測中需要關注的問題。關於 ISA/IEC 62443 後面我們再做進一步的介紹。這裡先對檢視所涵蓋的弱點做個介紹。
為了更好的分析這個檢視,我們按照 CWE-1400:軟體安全保障綜合分類 中的分類,將所屬的 CWE 進行了分類,如下圖。有關缺陷的分類可以參考 《應用軟體的缺陷分類》 中關於 CWE-1400:軟體安全保障綜合分類的介紹。
CWE-1424:ISA/IEC 62443 要求解決的弱點檢視,並不是透過在 CWE 中 Relationships 節點下增加關聯關係來定義這個檢視的。而是利用 xml 的 xpath 來給出了這個檢視下的關聯 CWE 節點。這個 xpath 的表示式是定義在 CWE 節點的 Filter 節點,CWE-1424:ISA/IEC 62443 要求解決的弱點檢視的節點定義如下。
<View ID="1424" Name="Weaknesses Addressed by ISA/IEC 62443 Requirements" Type="Implicit" Status="Draft"> <Objective>This view (slice) covers weaknesses that are addressed by following requirements in the ISA/IEC 62443 series of standards for industrial automation and control systems (IACS). Members of the CWE ICS/OT SIG analyzed a set of CWEs and mapped them to specific requirements covered by ISA/IEC 62443. These mappings are recorded in Taxonomy_Mapping elements.</Objective> <Filter>/Weakness_Catalog/Weaknesses/Weakness[./Taxonomy_Mappings/Taxonomy_Mapping/@Taxonomy_Name='ISA/IEC 62443']</Filter> <Mapping_Notes> <Usage>Prohibited</Usage> <Rationale>This entry is a View. Views are not weaknesses and therefore inappropriate to describe the root causes of vulnerabilities.</Rationale> <Comments>Use this View or other Views to search and navigate for the appropriate weakness.</Comments> <Reasons> <Reason Type="View"/> </Reasons> </Mapping_Notes> <Notes> <Note Type="Maintenance">The Taxonomy_Mappings to ISA/IEC 62443 were added between CWE 4.9 and CWE 4.14, but some mappings are still under review and might change in future CWE versions. These draft mappings were performed by members of the "Mapping CWE to 62443" subgroup of the CWE ICS/OT Special Interest Group (SIG).</Note> </Notes> </View>
從 Filter 的值
<Filter>/Weakness_Catalog/Weaknesses/Weakness[./Taxonomy_Mappings/Taxonomy_Mapping/@Taxonomy_Name='ISA/IEC 62443']</Filter>
可以看到這些關聯關係是維護在 CWE 節點的 Taxonomy_Mapping 且屬性Taxonomy_Name 值為 ISA/IEC 62443。以CWE-1242:包含未記錄的特徵或雞位(Inclusion of Undocumented Features or Chicken Bits) 為例。
2.3. 有趣的晶片 “chicken bit”
在訪問控制的分類裡, CWE-1242:包含未記錄的特徵或雞位(Inclusion of Undocumented Features or Chicken Bits) 的名字引起了我的好奇心。什麼"chicken bit"?
查了下,原來它是晶片的一種配置位,可用於在晶片內部某些功能塊流片後控制禁用或啟用。有時,設計人員對某些新功能並不完全有信心,或者它們可能尚未在所有角落得到充分驗證。因此,為了降低流片後的錯誤風險,設計中保留了一個配置位,可以切換以禁用新功能,並恢復到遺留功能,可以說是一種補救措施。
通常這些位是一次性可程式設計(one-time-programmable(OTP)),終端使用者無法訪問它們。這些位在晶片測試的生產過程中被程式設計,然後被鎖定以防止進一步修改。
雞
雞,以其受驚和不確定的天性而聞名。因此這個位得到了一個有趣的名字“雞位”(chicken bit), 工程師可以在流片後,處理意外的觀察結果,也是一種自救的逃生通道。這讓我想起了 chicken 在英文的俚語中指“膽小鬼,懦夫”。以及最常用的 cheicken out,這可不是什麼 “雞走了”,“小雞快跑”,而是指 “因膽怯而退縮”。一般都表達那種 “本來計劃好的,卻臨陣脫逃”。除了chicken out,還有許多其他動物的 out。
duck out
指巧妙地逃脫應該做的事,逃避責任,逃稅,逃婚 …。比如 莎士比亞的《羅密歐與朱麗葉》中的臺詞:為了逃脫強制婚姻,朱麗葉飲下毒藥(To duck out of the forced marriage, Juliet swallowed poison)。
fish out
意為“撈出,掏出”。這樣理解你可能會覺得非常地形象:魚都是藏在水裡的,要出來,就得靠“撈”,從包裡“掏出”某物也是類似的動作。比如:他從口袋裡摸出一枚硬幣(He fished out a coin from his pocket)。3. ISA/IEC 62443 工業自動化和控制系統(IACS) 系列標準
3.1. 起源
2005年,國際自動化學會(International Society of Automation(ISA))成立了ISA99 -工業自動化和控制系統安全委員會,負責制定工業自動化和控制系統 (Industry Automation & Control System)的網路安全標準;
2007年,ISA99與國際電工組織委員會(International Electrotechnical Commission(IEC))成立聯合工作組,共同制定並繼續開發ISA/IEC 62443系列標準和技術報告(Technical Report(TR)),並陸續釋出了IEC 62443系列標準;
2018年底,聯合國歐洲經濟委員會(UNECE)在其年會上確認,將把廣泛使用的ISA/IEC 62443系列納入其即將推出的網路安全共同監管框架(CRF)。CRF將作為聯合國在歐洲的官方政策立場宣告,為歐盟貿易市場內的網路安全實踐建立一個共同的立法基礎。IEC 62443 逐漸成為國際通行的工控網路安全標準,並在不同工業行業和領域實現了應用。3.2. 範圍和目的
ISA/IEC 62443 系列的範圍是工業自動化和控制系統( Security of Industrial Automation and Control Systems (IACS)) 的安全。
IACS 定義為:
收集工業過程執行中涉及的人員、硬體、軟體和政策,這些人員、硬體、軟體和政策可能影響或影響其安全、可靠和可靠操作。
目的
ISA/IEC 62443 系列標準定義了實施和維護電子安全工業自動化和控制系統(IACS)的要求和流程。這些標準設定了安全最佳實踐,並提供了一種評估安全效能水平的方法。對應對網路安全挑戰給出了一個整體的方法,彌合了運營和資訊科技之間以及流程安全和網路安全之間的差距。ISA/IEC 62443 系列解決了工業自動化和控制系統 (IACS) 整個生命週期的安全性問題,適用於所有自動化和控制系統,而不僅僅是工業。
ISA/IEC 62443 標準提供的指南包括:- 定義所有負責控制系統網路安全的利益相關者可以使用的通用術語、概念和模型;
- 幫助資產所有者確定滿足其獨特業務和風險需求所需的安全級別;
- 為產品開發人員建立一套通用的要求和網路安全生命週期方法,包括認證產品和供應商開發流程的機制;
- 定義對保護控制系統至關重要的風險評估流程。
3.3. 標準的結構
IEC 62443系列標準的檔案包括四個標準系列:通用、政策和程式、系統、元件。
通用
該類別(IEC 62443-1-x)的部分包括四份檔案。描述了工業自動化和控制系統(IACS)網路安全的通用方面的內容,如術語、概念、模型、縮略語、系統符合性度量及工控裝置的安全生命週期。
- 1-1 部分 - 術語、概念和模型:介紹了整個系列使用的概念和模型。
- 1-2 部分 - 術語表和定義:是整個系列中使用的術語和縮寫的列表。
- 1-3 部分 - 系統安全一致性指標:描述了一種開發從標準中的流程和技術要求派生的定量指標的方法。
- 1-4 部分 - IACS 安全生命週期和用例:提供了對 IACS 安全性底層生命週期的更詳細描述,以及說明各種應用程式的幾個用例。
政策和程式
該類別(IEC 62443-2-x)的部分包括五份檔案。規定了IACS安全管理系統的要求、安全管理系統實施指南、IACS環境中補丁更新管理以及對資產所有者和服務提供商的安全程式(SP)要求。
- 2-1 部分 - 建立 IACS 安全性程式:描述了定義和實施有效的IACS網路安全管理系統所需的內容。
- 2-2 部分 - IACS 安全計劃評級:提供了一種根據 ISA/IEC 62443 系列標準中的要求評估操作 IACS 提供的保護級別的方法。
- 2-3 部分 - IACS 環境中的補丁管理:提供有關 IACS 補丁管理的指導。
- 2-4 部分 - IACS 服務提供商的安全計劃要求:指定了對 IACS 服務提供商(如系統整合商或維護提供商)的要求。
- 2-5 部分:IACS 資產所有者實施指南:提供製定有效的 IACS 網路安全計劃指導。
系統
該類別(IEC 62443-3-x)的部分包括三份檔案。提供了系統安全要求、安全等級和安全風險管理以及系統設計的基本指導和原則。包括將整體工業自動化和控制系統設計分配到各個區域(Zone)和管道 (Conduit) 的方法,以及安全等級(Security Level)的定義和要求。
- 3-1 部分 - IACS 安全技術: 描述了各種安全技術在 IACS 環境中的應用。
- 3-2 部分 - 安全風險評估系統設計: 涉及IACS的網路安全風險評估和系統設計。該標準的輸出是區域和管道模型以及相關的風險評估和目標安全級別。這些都記錄在網路安全要求規範中。該標準主要針對資產所有者和系統整合商。
- 3-3 部分 - 系統安全要求和安全級別: 介紹了基於安全級別的 IACS 系統的要求。主要受眾包括控制系統供應商、系統整合商和資產所有者。
元件
該類別(IEC 62443-4-x)的部分包括兩份檔案。
- 4-1 部分 - 產品安全開發生命週期要求: 描述產品開發人員的安全開發生命週期的要求。主要受眾包括控制系統和元件產品的供應商。
- 4-2 部分 - IACS 元件的技術安全要求: 描述基於安全級別的 IACS 元件的要求。元件包括嵌入式裝置、主機裝置、網路裝置和軟體應用程式。
3.4. ISA/IEC 62443 對應到國家標準
中國也是 ISA/IEC 62443 標準制定的參與者。同時也將 ISA/IEC 62443 標準的大部分對映到國標(GB)中。
3.5. ISA/IEC 62443 與 CWE 的對映
從前面的介紹,可以看到 ISA/IEC 62443 的系列規範是工業自動化和控制系統中保障安全的非常重要的規範。CWE 的"62443 與 CWE 的對映"工作組,這次只發布了研究中的部分成果。
目前對應的 CWE 弱點有 39 個。
按照 CWE-1400:軟體安全保障綜合分類 中的分類彙總如下:
按照 ISA/IEC 62443 系列規範的對應關係如下:
4. 結論
- CWE 4.14 增加了晶片的瞬態執行漏洞;
- CWE 4.14 增加了CWE-1424:ISA/IEC 62443 要求解決的弱點檢視;
- CWE-1424:ISA/IEC 62443 要求解決的弱點檢視的作用:進一步增強了對規範遵從的可度量性;對工業軟體的安全性給出了明確的缺陷檢查指導,提升了安全的防護能力。
5. 參考
- cwe
- 瞬態執行攻擊及其緩解措施綜述(Survey of Transient Execution Attacks and Their Mitigations)
- ISA/IEC 62443 Series of Standards
- Quick Start Guide: An Overview of ISA/IEC 62443 Standards
- 《工業自動化和控制系統網路安全》 九項國家標準介紹 標準雲課-《工業自動化和控制系統網路安全》九項國家標準介紹
- CWE 4.7中的新檢視 – 工業控制系統的安全漏洞類別
點選關注,第一時間瞭解華為雲新鮮技術~