機械製造商的資安
如今的機械出貨時都搭載控制器、顯示器、車載資通訊單元與配套應用程式,其中大多由供應商建置。自 2027 年起,機械法規與 Cyber Resilience Act(CRA)都要求您掌握每台機械上有哪些軟體,並在多年內維持其安全。CRACI 會記錄每一次軟體建置所包含的內容。
兩項法規,同一個問題:機械上有哪些軟體?
自 2027 年起,配備控制器、操作員顯示器或資料連線的機械,將同時受到兩項歐盟法規的規範。兩者都從同一個問題出發:這台機械上逐一版本安裝了哪些軟體,而這些軟體裡面又有什麼。
- Cyber Resilience Act(CRA)對遭積極利用的漏洞與嚴重資安事件的通報義務開始適用。
- 機械法規(Machinery Regulation)(EU) 2023/1230 開始適用,取代機械指令。
- Cyber Resilience Act (EU) 2024/2847 全面適用。
機械法規
附錄 III 的基本健康與安全要求中,有兩項涉及資安:
- 1.1.9,防止竄改與損毀(protection against corruption)。以直接或遠端方式將其他裝置連接到機械,不得導致危險情況。對機械符合基本健康與安全要求至關重要的軟體與資料,必須加以識別,並防止遭到意外或蓄意的竄改與損毀。機械必須能識別其安全運作所需的已安裝軟體,並隨時提供這項資訊。它也必須收集對該軟體或其組態進行合法或非法介入的證據。
- 1.2.1,控制系統的安全性與可靠性。控制系統必須能抵禦可合理預見、會導致危險情況的第三方惡意企圖。依據 1.2.1(f),控制系統必須保存追蹤紀錄,記載機械上市後的介入行為以及所上傳的安全軟體版本,並於上傳後保存五年。
Cyber Resilience Act
具資料連線的機械,或單獨銷售的機械零組件,屬於具數位元素的產品。製造商必須對其整合的第三方元件善盡審慎查核義務、製作至少涵蓋頂層相依套件的 SBOM、在支援期間內處理漏洞(支援期間至少五年,除非產品的預期使用期間較短),並保存技術文件至少十年或至支援期間結束,以較長者為準。
| 要求 | 機械法規 | Cyber Resilience Act | 軟體端需要什麼 |
|---|---|---|---|
| 掌握已安裝的軟體 | 1.1.9:機械隨時識別其安全運作所需的軟體 | 至少涵蓋頂層相依套件的 SBOM | 每個軟體版本中所有元件的紀錄 |
| 防止竄改與損毀 | 1.1.9 與 1.2.1:保護安全軟體,並抵禦惡意企圖 | 產品的基本資安要求 | 已知的元件,以及遭汙染的相依套件無法滲入的建置 |
| 記錄變更與版本 | 1.2.1(f):上市後所上傳安全軟體版本的紀錄 | 已上市產品的技術文件 | 每次建置與每個版本的版本歷史 |
| 處理漏洞 | 未明文規定 | 支援期間內的漏洞處理;自 2026 年 9 月 11 日起負有通報義務 | 針對新的資安公告監控已交付的元件 |
| 保存紀錄 | 追蹤紀錄:每次上傳後保存五年 | 技術文件:至少十年或至支援期間結束 | 將 SBOM 匯出至技術文件 |
符合 CRA 就能涵蓋機械法規嗎?
不會自動涵蓋。Cyber Resilience Act 並未賦予對機械法規的符合性推定。其前言第 53 點指出,符合 CRA 的基本要求,可能有助於符合機械法規中關於防止竄改與損毀,以及控制系統安全性與可靠性的要求。前言同時指出,製造商必須證明這一點,例如在風險評估後採用調和標準,而且兩項法規的符合性評鑑程序仍然各自適用。
正在為 1.1.9 制定的調和標準是 EN 50742《Safety of machinery: Protection against corruption》。截至 2026 年 11 月,它仍是最終草案 FprEN 50742,涵蓋 1.1.9 及 1.2.1 的相關項目;在最終版本刊登於歐盟公報之前,它並不提供符合性推定。它結合 EN ISO 12100 的風險評估與 IEC 62443 的資安概念,並接受一致採用 IEC 62443-4-1、IEC 62443-3-3 與 IEC 62443-4-2,作為達成其防護目標的同等方式。IEC 62443-4-2 依資安能力等級,訂定控制系統元件的技術資安要求。在德國,2026 年 7 月的測試原則 GS-IFA-M25 採用 prEN 50742 的用語,將防止竄改與損毀轉化為 66 項測試準則。其中 T46 要求產品能依要求提供其已安裝的軟體版本與組態。要針對每一種組態回答這個問題,就需要記錄每個軟體版本包含了什麼。
機械法規有其自身的符合性推定,但途徑不同:依據 Cybersecurity Act,即 Regulation (EU) 2019/881 所採行的歐盟資安驗證方案。依此類方案取得的證書或符合性聲明,在其涵蓋 1.1.9 與 1.2.1 要求的範圍內,可推定符合這些要求。
因此,一次風險評估與一套佐證資料可以同時用於兩項法規,但您必須分別證明對各項法規的符合性。如果您的機械具有資料連線,請同時為兩者做好規劃。軟體佐證資料,也就是 SBOM、漏洞紀錄與更新歷史,正是兩者共通的部分。
2026 年 1 月,機械產業協會要求延後 1.1.9 與 1.2.1(f) 的適用,並於 2026 年 3 月要求其改自 CRA 的適用日 2027 年 12 月 11 日起適用。這只是請求,並非法律:截至 2026 年 11 月,並未通過任何延後措施。本頁所列日期均為法規中的日期。
哪些機械與哪些軟體屬於適用範圍
- 營建、物料搬運、採礦與工業機械屬於機械法規的適用範圍;當機械或其零組件具有資料連線時,也適用 CRA。
- 農林用曳引機若屬於 Regulation (EU) No 167/2013 的範圍,則排除於機械法規之外,但安裝在其上的機械除外。CRA 的排除清單並未列出該法規,因此聯網的曳引機可能屬於 CRA 的適用範圍。
- 道路車輛若依 Regulation (EU) 2019/2144 取得型式認證,則排除於 CRA 之外。
- 單獨銷售的零組件。CRA 也適用於單獨上市的軟體與硬體元件。單獨銷售 ECU 或車載資通訊單元的供應商,本身即為 CRA 下的製造商。若該單元僅內建於機械中,則由機械製造商對整台機械承擔義務,並必須對供應商的元件善盡審慎查核義務。
本文為一般性資訊,並非法律意見。請自行確認您產品的分類。
一台機械內的軟體來自不同來源,而只有建置該軟體的團隊,才能可靠地說明其中包含什麼。根據我們從機械製造商聽到的情況,裸機 ECU 所含的開源元件很少,而 Linux、Android 與 Windows 軟體則包含大量開源元件。
| 軟體 | 常見來源 | 開源比例 | 誰能產生可靠的 SBOM | CRACI 的定位 |
|---|---|---|---|---|
| 機械控制器應用程式 | 自行開發或供應商 | 不一 | 建置它的團隊 | 在 Linux 上以 GitHub Actions 建置時適用 |
| ECU 韌體(液壓、轉向、動力) | 供應商 | 通常偏低:專有程式碼與模型產生的程式碼 | 供應商 | 不直接適用:透過加入 CRACI 的供應商 SBOM |
| Linux 顯示器或 HMI 映像檔 | 自行開發或供應商 | 高 | 建置映像檔的團隊 | 適用:Yocto 與其他嵌入式 Linux 建置 |
| 車載資通訊閘道器 | 自行開發或供應商 | 高 | 建置它的團隊 | 以 GitHub Actions 建置時適用 |
| 診斷與配套應用程式 | 自行開發 | 高 | 應用程式團隊 | npm、PyPI、Go 與 Cargo 建置適用;以 Gradle 建置的 Android、iOS 與 Windows 應用程式目前不適用 |
| 雲端後端 | 自行開發 | 高 | 服務團隊 | 以 GitHub Actions 建置時適用 |
為什麼機械比消費性電子產品更困難
少量多樣。一家機械製造商可能有數百個平台在市場上,每個平台每年只賣出少量機台,而且許多機械是依訂單配置。每一種配置都是不同的軟體組合,因此每次建置都有 SBOM,比每條產品線都有 SBOM 更重要。
使用壽命長。機械會服役十年以上,而供應商可能更換或倒閉。軟體版本包含什麼的紀錄必須在建置時就產生,因為多年後無法再重建。
供應商軟體占大宗,而供應商的 SBOM 品質往往不佳。我們聽過的供應商 SBOM 有缺漏元件、沒有 package URL 或 CPE、沒有授權資訊也沒有雜湊值,有些甚至是手寫的,無法通過 schema 驗證。對已燒錄的 ECU 進行二進位分析只是權宜之計:它是在猜測內容,而不是記錄內容。
風險集中在聯網的層級。許多 ECU 邏輯由模型產生,所含的開源元件很少。開源元件與網路暴露面集中在 Linux、連線與應用程式層,因此請先將心力投注在這些地方。
以下是一個示意範例:一個虛構輪式裝載機平台的軟體堆疊,從雲端一路到 ECU。
- 雲端後端與配套應用程式自行開發。大部分為開源,且面向網路。Cyber Resilience Act。
- 車載資通訊閘道器嵌入式 Linux,大部分為開源,連接行動網路。Cyber Resilience Act,以及適用於遠端連線的 1.1.9。
- 操作員顯示器搭載 UI 框架的嵌入式 Linux 映像檔,大部分為開源,連接機械匯流排與維修工具。Cyber Resilience Act 與 1.1.9。
- 機械控制器在供應商平台上執行的自有應用程式,與安全相關。1.1.9 與 1.2.1,以及可透過連線存取時的 Cyber Resilience Act。
- 液壓、轉向與引擎 ECU供應商韌體,專有且由模型產生,開源元件很少,與安全相關。1.1.9 與 1.2.1;Cyber Resilience Act 則經由整台機械適用。
開源元件與網路暴露面位於最上面三層,而這通常也是您自有建置管線所在之處。請從這裡開始。
逐步準備
機械上的軟體識別與介入紀錄等功能,屬於機械設計的一部分。以下步驟涵蓋的是放進機械中的軟體。
- 盤點每個機械平台上的軟體. 列出每個平台與每種配置上的所有軟體,並標示與安全相關的部分。這是 1.1.9 的起點,該條要求機械識別其安全運作所需的軟體。
- 區分自行建置與整合的軟體. 您團隊建置的軟體與來自供應商的軟體,需要不同的佐證途徑。前者由您自行產生紀錄;後者則由您訂定要求,並檢查收到的內容。
- 記錄自有軟體的每一次版本建置. 從每一次版本建置產生 SBOM,依版本保存,並在整個支援期間內針對新漏洞持續監控。
- 訂定供應商 SBOM 的最低標準. 議定您需要的格式與欄位,例如 package URL 或 CPE、授權與雜湊值,驗證每一次交付,未通過時予以退回。了解供應商如何回應客戶的 SBOM 要求。
- 依機械壽命規劃保存期限. CRA 技術文件須保存至少十年或至支援期間結束,以較長者為準;1.2.1(f) 的安全軟體紀錄則須在每次上傳後保存五年。請依機械的使用壽命規劃,而不是依專案的期程。
- 執行漏洞處理與通報. CRA 對遭積極利用的漏洞與嚴重資安事件的通報義務,自 2026 年 9 月 11 日起已經適用。請決定由誰分級研判發現、由誰負責各項修正,以及由誰負責通報。
- 鎖定建置本身. 在隔離的環境中執行每一次建置,且只能連線到所需的來源,讓遭入侵的相依套件無法觸及您的原始碼、機密或發布版本。
CRACI 的定位
CRACI 在自有執行器上執行您的 GitHub Actions 建置,並記錄每次建置包含的內容。對機械製造商而言,這涵蓋了您團隊建置的軟體,以及您收集的供應商 SBOM。
為您建置的機械軟體留下建置紀錄
在 CRACI 的 GitHub Actions 執行器上執行您的控制器服務,以及 Linux 顯示器與車載資通訊映像檔(包括 Yocto 與其他嵌入式 Linux 建置),最高 32 vCPU,支援 x86-64 或原生 ARM64。建置執行期間,CRACI 會記錄它引入的每一個套件與檔案,包括任何 recipe 或 lockfile 都沒有列出的隱藏相依套件,並為每個作業的 SBOM 標示完整度狀態。在一次 core-image-sato 建置中,CRACI 的 SBOM 包含了 Yocto 自身 SBOM 中的每個元件,外加 Yocto 遺漏的 88 個元件,653 個 Rust crate 版本也各自附有 package URL。進一步了解在 CRACI 上建置 Yocto。
供應商 SBOM 與您自己的並列
加入來自 ECU、顯示器與車載資通訊供應商的 SBOM,採購的元件就會與您建置的軟體一併受到監控。當供應商的 Linux 堆疊出現新漏洞時,它會出現在與您自有軟體相同的紀錄中。
技術文件所需的佐證資料
CRACI 提供您技術文件所需的軟體供應鏈佐證資料:以 CycloneDX 或 SPDX 格式匯出的建置時 SBOM,包含遞移相依套件、宣告的授權及其元件中發現的漏洞,另有漏洞紀錄與建置歷史。對於屬於 CRA 適用範圍的機械,CRACI 會準備 CRA 通報的內容,再由貴公司的人員透過 Single Reporting Platform 提交。符合性評鑑、EU 符合性聲明與 CE 標示,仍由身為製造商的您負責。
只能連線到所需來源的建置
每個作業都在各自隔離的虛擬機器中執行,並受對外連線政策約束;政策會在作業開始前驗證,並採取失效即封鎖。採用預設拒絕政策時,建置只能連線到您的套件來源,連線到其他任何主機都會遭到封鎖並發出警示。
給 ECU、顯示器與車載資通訊單元的供應商
機械製造商現在會為所採購的軟體訂定 SBOM 要求,例如 package URL 或 CPE、授權、雜湊值,以及可通過驗證的格式,並退回未通過的檔案。如果您以 GitHub Actions 建置,CRACI 會從建置本身產生 SBOM,因此它列出的是實際進入版本的內容,包括任何 lockfile 都沒有列出的元件,且每個元件都附有 package URL 與宣告的授權。請將匯出的內容與客戶要求的完整欄位清單比對。進一步了解如何回應客戶的 SBOM 要求。
CRACI 不適用的情況
CRACI 適合您自行建置的軟體,但不適合以下情況:
- 不適合只整合供應商 ECU、本身不建置任何軟體的機械製造商。CRACI 記錄的是建置;它無法為他人建置的二進位檔產生 SBOM。如果您幾乎所有的軟體都是燒錄在供應商硬體上交付的,您需要的工具是供應商 SBOM 要求、SBOM 驗證,以及作為權宜之計的二進位分析,而 CRACI 不提供二進位分析(請參閱二進位分析與建置紀錄的比較)。CRACI 能透過您供應商的建置,以及監控他們提供給您的 SBOM 來協助您。
- 不適合在 GitHub Actions 以外建置,或在 Windows 或 macOS 上建置的裸機或 RTOS 韌體。CRACI 目前在 Linux 執行器上執行 GitHub Actions 作業。其他 CI 系統(例如 GitLab CI 與 Jenkins),以及 Windows 與 macOS 執行器,已列入產品藍圖。
- 不適合以 Gradle 建置的 Android 配套應用程式,或 Java 服務。Maven 與 Java 已列入產品藍圖,目前不支援。iOS 應用程式需要 macOS 執行器,同樣已列入產品藍圖。
- 不適合軟體多年前就已建置、目前已在現場運作的機械。CRACI 是在建置執行時記錄。
- 不是機械本身的控制功能。識別機械上已安裝的軟體、收集介入的證據,以及保存追蹤紀錄,都是 1.1.9 與 1.2.1 所要求的機械功能。CRACI 不提供這些功能、不對韌體進行簽章,也不執行符合性評鑑。
- 本身不負責長期封存。建置紀錄依您方案的保存期限保留。請將 SBOM 匯出至您的技術文件,以因應十年的保存期限。
機械資安完整解說
關於機械法規、CRA 與機械上軟體的常見問題
歐盟機械法規何時開始適用?
自 2027 年 1 月 20 日起。Regulation (EU) 2023/1230 將於該日取代機械指令。最初公布的文本記載為 2027 年 1 月 14 日,後經更正為 2027 年 1 月 20 日。自該日起投入歐盟市場的機械,必須符合其基本健康與安全要求,包括附錄 III 中與資安相關的 1.1.9 與 1.2.1。
機械法規中有哪些資安要求?
附錄 III 1.1.9,防止竄改與損毀:連接其他裝置不得造成危險,對安全至關重要的軟體與資料必須受到保護,機械必須隨時識別其與安全相關的軟體,並收集介入的證據。附錄 III 1.2.1:控制系統必須能抵禦可合理預見的惡意企圖,並保存機械上市後所上傳安全軟體版本的追蹤紀錄。
Cyber Resilience Act 適用於機械嗎?
適用,前提是機械或其零組件屬於具數位元素的產品,實務上就是具有資料連線。CRA 並未排除機械。其通報義務自 2026 年 9 月 11 日起已經適用,並將自 2027 年 12 月 11 日起全面適用,比機械法規晚十一個月。
機械符合 CRA,是否也就符合機械法規?
不會自動符合。兩者之間沒有符合性推定。CRA 指出,符合其要求可能有助於符合 1.1.9 與 1.2.1,但製造商必須加以證明,而且兩項符合性評鑑程序都適用。機械法規自身的符合性推定,是透過歐盟資安驗證方案。一套佐證資料可以同時用於兩者。
機械製造商需要 SBOM 嗎?
對於屬於 CRA 適用範圍的機械,需要:CRA 要求製造商製作至少涵蓋頂層相依套件的 SBOM。機械法規並未明文提及 SBOM,但 1.1.9 要求機械識別其安全運作所需的軟體;若沒有每個軟體版本的紀錄,很難在眾多配置之間保持正確。
供應商 ECU 中的軟體由誰負責?
雙方都有責任,但角色不同。單獨將 ECU 投入市場的供應商,就該元件而言是 CRA 下的製造商。機械製造商則對整台機械負責,並必須對其整合的元件善盡審慎查核義務,這正是機械製造商現在要求供應商提供符合既定標準之 SBOM 的原因。
曳引機屬於機械法規還是 CRA 的範圍?
屬於 Regulation (EU) No 167/2013 範圍的農林用曳引機排除於機械法規之外,但安裝在其上的機械除外。CRA 的排除項目並未列出該法規,因此聯網的曳引機可能屬於 CRA 的適用範圍。請自行確認您產品的分類;本文為一般性資訊,並非法律意見。
CRACI 支援哪些 CI 系統與建置機器?
CRACI 在 Linux 執行器上執行 GitHub Actions 作業,支援 x86-64 與 ARM64,從 1 到 32 vCPU。其他 CI 系統(例如 GitLab CI 與 Jenkins),以及 Windows 與 macOS 執行器,已列入產品藍圖。