Ripple20
一個小型 TCP/IP 函式庫中的十九個漏洞,CVSS 最高達 10.0,而裝置製造商多年來一直以授權方式使用這個函式庫,且常常是以其他名稱使用。它存在於許多廠商的產品中,其中不少廠商得先弄清楚自己到底有沒有交付它。
您無法修補一個自己不知道有交付的元件。
每一台智慧裝置出貨的韌體,都是由開源套件、晶片廠商 SDK 與建置期間擷取的工具所組成。供應鏈攻擊只需要其中一個。CRACI 執行您的韌體建置、記錄放進去的每個元件,並讓建置無法連到任何它不需要的地方。
連網裝置中的大部分程式碼都是別人寫的:嵌入式 Linux 發行版、晶片廠商提供的板級支援套件、網路協定堆疊、數百個開源函式庫,以及它們底下的 Rust crate。相同的元件會出現在許多品牌的產品中,而裝置會在家庭中使用好幾年,往往在最後一次有人檢視其內容之後還使用很久。
這讓一個脆弱的元件對攻擊者極具價值。共用函式庫或 SDK 中的一個缺陷,就能打開所有交付它的產品;一個遭下毒的版本,則能觸及所有引入它的建置。以下事件說明了這個模式。
一個小型 TCP/IP 函式庫中的十九個漏洞,CVSS 最高達 10.0,而裝置製造商多年來一直以授權方式使用這個函式庫,且常常是以其他名稱使用。它存在於許多廠商的產品中,其中不少廠商得先弄清楚自己到底有沒有交付它。
您無法修補一個自己不知道有交付的元件。
某晶片廠商 SDK 中的缺陷,波及約 65 家製造商的約 200 款裝置型號:路由器、IP 攝影機、智慧照明閘道器、連網玩具。細節公開兩天後,就有 Mirai 殭屍網路在掃描這些裝置。
晶片廠商的程式碼一旦隨您的裝置出貨,就是您的程式碼。
後門被植入上游 xz 專案本身的 5.6.0 與 5.6.1 版中。嵌入式 Linux 映像檔理所當然會引入 xz 這類壓縮函式庫,而且通常沒有人特意挑選它們。
受信任的開源軟體,可能在單一版本中就轉為惡意。
攻擊者使用 ASUS 自己的簽章憑證,簽署其更新工具遭植入後門的版本,並透過官方更新伺服器發送。Kaspersky 估計可能影響超過一百萬名使用者。
有效的簽章只能證明是誰簽署的,無法證明裡面放了什麼。
安全開機、不使用預設密碼與關閉除錯埠等裝置強化措施,保護的是您交付的裝置。以下步驟保護的則是放進裝置的內容。
CRACI 涵蓋這份清單中的建置面:每次建置的 SBOM、供應商 SBOM、持續監控、建置隔離、對外連線控管與政策關卡。簽章與裝置強化則仍由您自己的工具負責。
在 CRACI 的 GitHub Actions 執行器上執行您的 Yocto 與其他嵌入式 Linux 建置,最高 32 vCPU,支援 x86-64 或原生 ARM64。建置執行期間,CRACI 會記錄它引入的每個套件與檔案,包括主機套件、Git 來源、GitHub Actions,以及任何 recipe 或 lockfile 都沒有列出的下載內容。在一次 core-image-sato 建置中,CRACI 的 SBOM 包含了 Yocto 自身 SBOM 中的所有元件,外加 Yocto 漏掉的 88 個,並為 653 個 Rust crate 版本各提供了 package URL,因此全部都能接受漏洞監控。
每個作業都在自己的隔離虛擬機器中執行,並受對外連線(egress)政策約束;該政策會在作業開始前驗證,並且失效即封鎖(fail closed)。在預設拒絕的政策下,建置只能連到您的套件來源,其他一律無法連線。遭入侵的相依套件若試圖將您的簽章資料或權杖傳送到攻擊者的主機,會遭到封鎖並發出警示,即使攻擊是全新的、還沒有人發布相關資安公告也一樣。
加入來自晶片廠商與其他供應商的 SBOM,外購元件就會與您建置的軟體一起受到監控。下一個 SDK 漏洞出現時,廠商的程式碼已經和您的程式碼在同一份紀錄中。
CRACI 會在新漏洞發布時持續重新評估受監控的 SBOM。建置歷程會顯示哪些建置包含有漏洞的相依套件(無論直接或遞移),資產清冊檢視則會顯示哪些軟體版本部署到了哪些產品。資安團隊會研判每個發現項目,並將其指派給負責修正的團隊,政策關卡也能讓特定 CVE 不再出現在之後的任何建置中。
Cyber Resilience Act 下的 CE 標示,是以技術文件與符合性評鑑為基礎。CRACI 提供這些文件所需的供應鏈佐證資料:可匯出為 CycloneDX 或 SPDX 的建置時 SBOM、漏洞紀錄與建置歷程。CRACI 也會為您準備 CRA 漏洞通報的內容,供您提交。符合性評鑑、EU 符合性聲明與 CE 標示,則仍由身為製造商的您負責。
CRACI 不簽署韌體、SBOM 或來源證明,也不會依行為或信譽偵測新的惡意套件:它會在出現附有 CVE 的資安公告後標示惡意版本,在此之前則依靠對外連線政策。它不會為您執行符合性評鑑,也不會為您擬定符合性聲明。它目前在 Linux 執行器上執行 GitHub Actions 作業;GitLab CI、Jenkins,以及 Windows 與 macOS 執行器已列入產品藍圖。
關於保護連網裝置及其軟體供應鏈的常見問題
這是一種不直接攻擊裝置本身,而是透過裝置製造商所依賴之事物入侵裝置的攻擊:有漏洞的開源函式庫、晶片廠商的 SDK、遭下毒的套件版本、遭入侵的建置工具,或遭挾持的更新管道。由於同一個元件會出現在許多產品中,一個弱點就可能同時波及許多品牌的數百萬台裝置。
從您交付的內容開始:為每次韌體建置保留一份 SBOM、追蹤供應商元件,並在新漏洞出現時持續檢查已交付的版本。鎖定建置本身、以政策關卡排除已知的不良版本、保護您的簽章金鑰,並建立分級研判、修正與揭露的流程。安全開機與停用預設密碼等裝置強化措施也很重要,但如果韌體本身已帶有有漏洞的元件,這些措施就無濟於事。
掌握放進映像檔的每個元件,包括建置在您的 recipe 與 lockfile 之外擷取的內容,並依版本保留這份紀錄。在只能連到所需來源的隔離環境中建置,讓惡意相依套件無法將您的機密傳送到任何地方。在裝置的整個支援期間,持續以新漏洞監控已記錄的元件與供應商的 SBOM。
支援。Yocto 與 BitBake 建置可在 CRACI 執行器上執行,CRACI 會在建置執行期間記錄作業的 SBOM。Yocto 自身的 SPDX 輸出仍帶有 CRACI 不會記錄的 recipe 中繼資料,例如已套用的修補程式,以及 recipe 標示為已修正的 CVE,因此如果您依賴這些資訊,請保留 create-spdx。
可以,只要您有它們的 SBOM。您可以將廠商 SBOM 加入 CRACI,這些元件就會與您建置的軟體一起受到監控。您的建置在建置期間從廠商下載的任何內容,也都會記錄在作業的 SBOM 中。
無法依行為或信譽偵測。已發布 CVE 的已知惡意版本(例如 xz 後門)會像其他漏洞一樣被標示,政策關卡也能封鎖包含它的建置。面對新的攻擊,CRACI 的防護是設為預設拒絕的對外連線政策,它會阻止建置連到不需要的主機。
不會。CRACI 不簽署韌體、SBOM 或來源證明。請繼續使用您自己的簽章流程,以及硬體支援的金鑰儲存區來處理版本發布與更新。
Cyber Resilience Act 涵蓋投放於歐盟市場的含數位元素產品,其中包括大多數連網消費性裝置。通報義務自 2026 年 9 月 11 日起適用,法規則自 2027 年 12 月 11 日起全面適用。CRACI 能將 CRA 流程所需的相當大一部分供應鏈可視性與佐證資料自動化;但符合法規仍是製造商自己的流程。
CRACI 在 Linux 執行器上執行 GitHub Actions 作業,支援 x86-64 與 ARM64,規格從 1 到 32 vCPU。GitLab CI 與 Jenkins 等其他 CI 系統已列入產品藍圖,Windows 與 macOS 執行器也是。