專欄特輯丨懸鏡淺談開源風險治理之SBOM與SCA

隨著容器、微服務等新技術日新月異,開源軟件成為業界主流形態,軟件行業快速發展。但同時,軟件供應鏈也越來越趨于復雜化和多樣化,軟件供應鏈安全風險不斷加劇。

軟件供應鏈安全主要包括軟件開發生命周期和軟件生存運營周期,且與軟件開發過程中的開發人員、環境、工具等因素密切相關。推進針對軟件生命周期進行全流程安全管控的落地實踐,有助于從軟件生命周期的源頭保障軟件供應鏈安全。

一、戰略抉擇驅動:始于對關鍵環節可見性的持續構建

軟件供應鏈安全始于對關鍵環節的可見性,企業需要為每個應用程序持續構建詳細的SBOM(軟件物料清單),從而全面洞察每個應用軟件的組件情況。SBOM是描述軟件包依賴樹的一系列元數據,包括供應商、版本號和組件名稱等多項關鍵信息,這些信息在分析軟件安全漏洞時發揮著重要作用。

表1是一份軟件物料清單示例,其中SPDX(軟件包數據交換)和SWID(軟件標識)是兩種國際通用的SBOM字段標準。

SPDX用于交流軟件物料清單信息,包括組件、許可證、版權等信息,通過為公司和社區共享重要數據提供通用格式來減少冗余工作,從而簡化流程并提高合規性。

SWID標簽旨在為組織提供一種透明的方式來跟蹤在他們的托管設備商安裝的軟件,該標簽文件包含有關軟件產品特定版本詳盡的描述性信息。除表格中的兩種應用最為廣泛的SBOM字段標準外,還有CycloneDX、CoSWID、CPE、Grafeas等其他較為常見的標準,各標準應用場景存在一定區別。

DSDX協議的組成要素


DSDX(Digital Supply-chain Data Exchange)SBOM格式由OpenSCA社區主導發起,匯聚開源中國、電信研究院、中興通訊等權威研究機構、甲方用戶、安全廠商多方力量,共同適配中國企業實戰化應用實踐場景。

作為國內的數字供應鏈安全SBOM格式,DSDX目標是成為數字供應鏈安全治理與運營的核心技術抓手,以助力行業及產業從軟件供應鏈安全向數字供應鏈安全過渡升級,使每個軟件公司都可以將SBOM 附加到每個可交付成果,并且每個人都可以完全了解軟件中使用的組件,并確切地知道哪些漏洞正在影響該軟件。

DSDX規范文檔由基本信息、項目信息、對象信息、代碼片段信息及依賴信息這幾部分構成:

1)SBOM 清單信息:清單名稱、ID、創建者、清單版本、創建階段、創建時間等

2)項目基本信息:項目名稱、宿主環境信息、運行時環境信息、EAR 信息等

3)組件信息:組件名稱、ID、廠商、組件來源、組件類型、置信度、校驗碼、語言、依賴關系、依賴數量、依賴路徑等

4)代碼文件信息:名稱、ID、校驗碼、路徑、相似文件來源、相似度

5)代碼片段信息:ID、來源文件 ID、校驗碼、代碼片段位置、相似代碼片段來源、相似度

6)依賴樹信息:以 K-V 形式保存的項目完整依賴關系圖(在任何情況下,SBOM 都應該捕獲多級依賴關系)

7)備注信息:其他備注信息。

DSDX兼容SPDX、CycloneDX、SWID國際標準和國內標準,但不止于主流規范,在最小元素集基礎上擴展其他元素。DSDX重點引入了運行環境信息、創建階段和供應鏈流轉信息,加強了清單間的互相引用,并實現最小集/擴展集的靈活應用,深度支持代碼片段信息的存儲及追蹤,為企業用戶提供整個數字供應鏈基礎設施視角的落地治理實踐。

構建軟件的企業需要維護準確、最新的?SBOM,其中包括第三方和開源組件的清單,以確保其代碼質量高、合規且安全。企業通過要求軟件供應商提供?SBOM,以發現潛在的安全和許可證問題,或者應用程序是否使用過時的庫版本。

當發現此類問題時,管理員可以要求供應商使用較新版本重建應用程序,在等待更新的軟件期間,安全人員有機會采取臨時緩解措施來保護應用程序免受攻擊者利用該漏洞進行攻擊,還可以幫助安全人員在漏洞被披露或核心庫發布新版本時,對應用程序和代碼進行抽查以避免出現安全問題。

二、速度創造價值:SBOM對漏洞風險治理實踐的影響

SBOM的使用可以為軟件供應鏈的漏洞治理節省大量時間。以往,企業在修復已部署系統的漏洞缺陷時往往需要幾個月甚至是數年的時間,其重要原因是企業無法在漏洞出現的第一時間知曉該信息。軟件供應鏈下游的企業需要等待上游軟件供應商完成軟件補丁,才可以進行漏洞修復,在等待的時間內,下游企業往往會面臨無法預知的安全風險。而構建詳細準確的SBOM則可以避免這一現象的發生,允許所有利益相關者在漏洞發現時立即開始評估漏洞,并開始制定相關的補救措施。

受感染的開源組件在軟件中未被修復的每一分鐘都會增加潛在被利用的風險,SBOM?有助于企業在漏洞披露的早期對漏洞進行識別,通過提供受感染開源組件和依賴項的準確位置,為企業在風險分析、漏洞管理和補救過程中節省數百小時至數月的時間。SBOM?有助于揭示整個軟件供應鏈中的漏洞與弱點,提高軟件供應鏈的透明度,減輕軟件供應鏈攻擊的威脅,還可以幫助企業進行漏洞管理、應急響應、資產管理、許可證和授權管理、知識產權管理、合規性管理、基線建立和配置管理等。

三、勤于思、敏于行:基于SCA技術工具及時響應

企業需要謹慎、合理地選擇、獲取和使用第三方閉源組件和開源組件。軟件安全團隊或研發團隊通過必要的技術手段確保所使用的第三方組件的安全性,及時獲取所使用第三方組件和開源組件的漏洞情報,并適時做出響應。

軟件成分分析(SCA)是一種對二進制軟件的組成部分進行識別、分析和追蹤的技術。SCA可以生成完整的SBOM,分析開發人員所使用的各種源碼、模塊、框架和庫,以識別和清點開源軟件的組件及其構成和依賴關系,并精準識別系統中存在的已知安全漏洞或者潛在的許可證授權問題,把這些安全風險排除在軟件的發布上線之前,也適用于軟件運行中的診斷分析。

SCA分為靜態和動態兩種模式。靜態模式是使用工具對目標工程文件進行解壓,識別和分析各個組件的關系;動態模式則是依賴于執行過程,在程序執行的同時收集必要的活動元數據信息,通過數據流跟蹤的方式對目標組件的各個部分之間的關系進行標定。

使用基于多源SCA開源應用安全缺陷檢測技術的安全審查工具,可以精準識別應用開發過程中軟件開發人員有意或違規引用的開源第三方組件,并通過對應用組成進行分析,多維度提取開源組件特征,計算組件指紋信息,深度挖掘組件中潛藏的各類安全漏洞及開源協議風險。

Apache log4j?2漏洞,因其嚴重性和廣泛性的影響而被業界稱為“核彈級”漏洞,同時也使得開源安全及軟件供應鏈安全治理相關話題再次成為熱點。

開源安全作為軟件供應鏈安全的重要環節以及面臨的已知或未知的安全風險,更讓業界意識到開源安全治理已是迫在眉睫。通過引入SCA工具以保證軟件供應鏈安全,在軟件開發的需求階段、編碼階段、構建集成、軟件測試等相應階段使用SCA,將開源組件安全檢測和合規檢測融入到企業開發測試流程中,可以幫助企業以最小代價落地開源安全保障體系,降低軟件安全問題的修復成本,保障開源軟件供應鏈安全。

懸鏡安全率先在源鑒SCA商業化產品中集成了DSDX、SPDX、CycloneDX、SWID四種SBOM標準格式的自動化生成能力。在商業化的同時,懸鏡安全更不忘為開源社區、廣大開發者和中小企業賦能,旗下開源數字供應鏈安全社區OpenSCA是目前國內能夠完全自主化、自動化生成DSDX、SPDX格式SBOM清單的開源SCA工具。

問題解答

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80823.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80823.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80823.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

18.Excel數據透視表:第1部分創建數據透視表

一 什么是數據透視表 通過萬花筒可以用不同的方式査看里面畫面圖像,在excel中可以將數據透視表看作是對準數據的萬花筒,用不同角度去觀察數據,也可以旋轉數據,對數據進行重新排列,對大量的數據可以快速的匯總和建立交叉…

商業航天運動控制系統中的高可靠性芯片解決方案:挑戰、策略與應用研究

摘要:隨著商業航天領域的迅速發展,運動控制系統對芯片的可靠性提出了前所未有的挑戰。本文深入探討了商業航天運動控制系統中芯片可靠性面臨的挑戰,包括宇宙輻射效應、極端環境適應性及系統級可靠性保障等。同時,通過案例研究展示…

音視頻學習:使用NDK編譯FFmpeg動態庫

1. 環境 1.1 基礎配置 NDK 22b (r22b)FFmpeg 4.4Ubuntu 22.04 1.2 下載ffmpeg 官網提供了 .tar.xz 包,可以直接下載解壓: wget https://ffmpeg.org/releases/ffmpeg-4.4.tar.xz tar -xvf ffmpeg-4.4.tar.xz cd ffmpeg-4.41.3 安裝基礎工具鏈 sudo …

前端開發避坑指南:React 代理配置常見問題與解決方案

前端開發避坑指南:React 代理配置常見問題與解決方案 一、為什么需要配置代理?二、使用 create-react-app 默認配置代理三、使用 http-proxy-middleware 配置復雜代理四、高級代理配置五、生產環境中的代理配置一、為什么需要配置代理? React 應用在開發過程中經常需要與后端…

用影刀RPA打通內容創作“最后一公里”:CSDN草稿一鍵同步多平臺發布

文章目錄 引言 一、需求場景:多平臺分發的效率困境1. 痛點分析2. 影刀RPA的破局價值 二、影刀RPA是啥?打工人逆襲神器!三、手把手教你造"搬運工"——技術宅的土味開發日記第一步:當個"偷窺狂"——觀察手動操作…

進程與線程:09 進程同步與信號量

課程引入:進程同步與信號量 接下來這節課開始,我們再開始講多進程圖像。講多進程圖像的下一個點,前面我們講清楚了多進程圖像要想實現切換,調度是如何做的。同時,多個進程放在內存中,就會存在多進程合作的…

【愚公系列】《Manus極簡入門》036-物聯網系統架構師:“萬物互聯師”

🌟【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】🌟 📣開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! &#x1f…

MySQL 8.0 OCP 英文題庫解析(四)

Oracle 為慶祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免費考取原價245美元的MySQL OCP 認證。 從今天開始,將英文題庫免費公布出來,并進行解析,幫助大家在一個月之內輕松通過OCP認證。 本期公布試題26~30 試題26:…

什么是原碼和補碼

補碼的本質確實是模運算(Modular Arithmetic),這是理解補碼為何能統一加減法的核心數學原理。下面用最通俗的語言和例子解釋清楚: —### 1. 先理解什么是“模運算”- 模運算就是“周期性計數”,比如鐘表: -…

筆記項目 day02

一、用戶登錄接口 請求參數: 用loginDTO來封裝請求參數,要加上RequestBody注解 響應參數: 由于data里內容較多,考慮將其封裝到一個LoginUser的實體中,用戶登陸后,需要生成jwtToken并返回給前端。 登錄功…

2025年土木建筑與水利工程國際會議(ICCHE 2025)

2025 International Conference on Civil and Hydraulic Engineering (ICCHE 2025) (一)會議信息 會議簡稱:ICCHE 2025 大會地點:中國銀川 投稿郵箱:icchesub-paper.com 收錄檢索:提交Ei Compendex,CPCI,C…

運行Spark程序-在shell中運行1

(一)分布式計算要處理的問題 【老師提問:分布式計算要面臨什么問題?】 【老師總結】 分布式計算需要做到: 1.分區控制。把大的數據拆成一小份一小份的(分區,分片)讓多臺設備同時計算…

一文理清人工智能,機器學習,深度學習的概念

目錄 一、人工智能的起源與核心范疇(1950-1980) 1.1 智能機器的最初構想 1.2 核心范疇的初步分化 二、機器學習的興起與技術分化(1980-2010) 2.1 統計學習的黃金時代 2.2 神經網絡的復興與子集定位 2.3 技術生態的形成與AI…

《Effective Python》第1章 Pythonic 思維總結——編寫優雅、高效的 Python 代碼

《Effective Python》第1章 Pythonic 思維總結——編寫優雅、高效的 Python 代碼 在編程的世界里,每個語言都有其獨特的風格和最佳實踐。對于 Python 而言,“Pythonic”已經成為描述遵循 Python 特定風格的代碼的代名詞。這種風格不僅讓代碼更易讀、更簡…

MySQL 事務(二)

文章目錄 事務隔離性理論理解隔離性隔離級別 事務隔離級別的設置和查看事務隔離級別讀未提交讀提交(不可重復讀) 事務隔離性理論 理解隔離性 MySQL服務可能會同時被多個客戶端進程(線程)訪問,訪問的方式以事務方式進行一個事務可能由多條SQL…

代碼倉提交分支規范

以下是我部門開發時用的分支規范,參考于Linux社區 Tips 分支命名通常遵循一些最佳實踐和規則,以便使分支的用途和內容清晰易懂,就在寫一個文檔的主題一樣。 功能分支 (Feature Branches) 用于開發新功能。 命名格式:feature/功能名…

Google Earth Engine(GEE) 代碼詳解:批量計算_年 NDVI 并導出(附 Landsat 8 數據處理全流程)

一、代碼整體目標 基于 Landsat 8 衛星數據,批量計算 2013-2020 年研究區的 NDVI(歸一化植被指數),實現去云處理、數據合成、可視化及批量導出為 GeoTIFF 格式,適用于植被動態監測、生態環境評估等場景。 二、代碼分步解析(含核心原理與易錯點) 1. 加載并顯示研究區邊…

Maven 處理依賴沖突

Maven處理依賴沖突 什么是依賴沖突?如何解決?Maven自動處理依賴沖突的規則路徑優先原則第一聲明優先原則注意 子模塊覆蓋父模塊父模塊聲明dependency子模塊覆蓋dependency父模塊聲明dependencyManagement 子模塊覆蓋dependency父模塊聲明dependencyManag…

docker 安裝 sqlserver2022 和注意點

一、前言 1、可以直接參考微軟官方文檔 快速入門:使用 Docker 運行 SQL Server Linux 容器映像,這里主要是說一些注意點和坑 二、安裝 1、拉取鏡像 docker pull mcr.microsoft.com/mssql/server:2022-latest2、創建掛載目錄,這里只是比官方…

Dagster Pipes系列-1:調用外部Python腳本

本文是"Dagster Pipes教程"的第一部分,介紹如何通過Dagster資產調用外部Python腳本并集成到數據管道中。首先,創建Dagster資產subprocess_asset,利用PipesSubprocessClient資源執行外部腳本external_code.py,實現跨進程…