聊聊CWE 4.14 與 ISA/IEC 62443中,如何保障工業軟件的安全性

本文分享自華爲雲社區《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 個與硬件微架構相關的弱點:

瞬態執行攻擊,也稱爲推測執行攻擊,在過去幾年中引起了人們的極大興趣,因爲它們會導致關鍵數據泄露。自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. 參考

點擊關注,第一時間瞭解華爲雲新鮮技術~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章