国产91在线无码_少妇人妻无码高清_91人妻中文字幕无码专区在线_国产福利在线播放_免费 无码 国产成年视频网站

關(guān)于軟件物料清單(SBOM),你所需要了解的一切(軟件物料清單 bom)

在此前的多篇文章中,我們已經(jīng)詳細地介紹了軟件物料清單(SBOM)對于保障軟件供應(yīng)鏈安全的重要性以及一些注意事項。在本文中,我們將會更深入地介紹SBOM,包括最低要求元素、格式、使用場景以及如何對其進行管理等。

SBOM所包含的元素

2021年年中,NTIA發(fā)布了軟件物料清單(SBOM)的最少必需元素。這些元素包含以下三類:

  • 數(shù)據(jù)字段:每個軟件組件的基本信息
  • 自動化支持:能夠自動生成機器可讀格式的SBOM
  • 實踐和流程:SBOM 應(yīng)該如何及何時生成和分發(fā)

所需元素的目的是為 SBOM 使用者提供他們所需的信息,以管理漏洞、清點軟件組件,并監(jiān)管許可證合規(guī)性。

數(shù)據(jù)字段

根據(jù)NTIA的說法,這一字段是為了“充分識別這些組件以在整個軟件供應(yīng)鏈中跟蹤它們,并將它們映射到其他相關(guān)的數(shù)據(jù)來源,如漏洞數(shù)據(jù)庫或許可證數(shù)據(jù)庫”。

7個必要的數(shù)據(jù)字段如下:

  • 供應(yīng)商名稱: 開發(fā)該軟件組件的個人或組織
  • 組件名稱: 給一組軟件命名,通常由供應(yīng)商決定
  • 組件版本: 一個標識符,指定軟件與以前版本的變化。同樣,這是由供應(yīng)商決定的
  • 其他獨特標識符: 像Software Identification (SWID)標簽、Package Uniform Resource Locators (PURL)、Common Platform Enumeration(CPE)或類似的標識符,可以幫助SBOM 消費者在關(guān)鍵數(shù)據(jù)庫中找到組件
  • 依賴項關(guān)系: 表示軟件組件是如何結(jié)合在一起的,如,某個上游組件包含在某個軟件中
  • SBOM數(shù)據(jù)的作者: 生成SBOM元數(shù)據(jù)的實體,可能是軟件供應(yīng)商或其他個人、團體
  • 時間戳: SBOM 生成的日期和時間

自動化支持

下一組最低要求元素是指 SBOM 數(shù)據(jù)在整個軟件生態(tài)系統(tǒng)內(nèi)部以及跨組織通信的方式。這一要求的目標是為了確保 SBOM 數(shù)據(jù)真正可用——不僅僅是機器可讀,還能夠讓人直接閱讀,而且它的傳輸格式是可互操作的。

要達到這一目標,NTIA 認證了3個交付格式來生成和消費 SBOM。至關(guān)重要的是,向聯(lián)邦政府銷售軟件的組織必須以這三種格式之一傳送 SBOM,以符合網(wǎng)絡(luò)安全行政命令的要求。

這3個格式是:

  • Software Package Data Exchange (SPDX)
  • Software Identification (SWID) Tags
  • CycloneDX

在后面一節(jié),我們將會對這3個格式進行詳細介紹。

實踐和流程

最后一組SBOM最低要求元素涉及生成和申請SBOM的具體操作。具體而言,實踐和流程部分包括以下6個方面的要求:

  • 頻率(Frequency): NTIA規(guī)定,“如果軟件組件隨著新的構(gòu)建或發(fā)布而更新”,企業(yè)應(yīng)該生成新的SBOM。此外,供應(yīng)商在以下情況下也需要生成新的SBOM:
    1)需要糾正原始版本中的錯誤
    2)了解有關(guān)軟件組件的新細節(jié)
  • 深度(Depth): 合規(guī)的SBOM需要包含:
    1)所有頂層組件
    2)所有間接依賴關(guān)系。如果SBOM作者不能包含所有間接依賴關(guān)系,則需要囊括足夠的信息,使消費者可以遞歸地找到他們。
  • 已知的未知因素(Known Unknowns): 在SBOM作者沒有提供完整的依賴關(guān)系圖的情況下,他們需要說明這是因為:
    1)該組件沒有進一步的依賴關(guān)系,或者
    2)不知道是否存在其他的依賴關(guān)系。
  • 分發(fā)和交付: 這一部分分為幾個環(huán)節(jié),都是關(guān)于確保SBOM以可消化的格式快速交付。首先,SBOM被要求以“及時”的方式提供(盡管沒有設(shè)定天數(shù)或周數(shù))。其次,他們必須有“適當?shù)摹苯巧驮L問權(quán)限。最后,SBOM可以與產(chǎn)品的每個實例一起分發(fā)或者以其他可訪問的方式提供,如公開的網(wǎng)站。
  • 訪問控制: 如果供應(yīng)商想將SBOM數(shù)據(jù)的訪問限制在某些客戶或用戶,他們需要提供這種訪問控制的條款。此外,供應(yīng)商需要提供 “具體的允許和便利”,以便SBOM消費者能夠?qū)?shù)據(jù)納入其安全工具。
  • 容錯程度: 網(wǎng)絡(luò)安全行政命令和指導(dǎo)SBOM創(chuàng)建的法規(guī)目前尚不成熟,因此,各組織被指示要對(無意的)錯誤或遺漏給予理解。

SBOM交付格式及規(guī)范

企業(yè)可以通過各種不同的格式創(chuàng)建和發(fā)布軟件物料清單(SBOM)。對于一個想要在其網(wǎng)站發(fā)布 SBOM 的企業(yè)來說,HTML 是一個合理的選擇。如果 SBOM 中包含了文檔或者源代碼,那么純文本也許是更佳選項。此外,還有 Markdown、PDF、CSV等格式可供使用。

除了這些常見的格式外,還有幾種專門為交付SBOM而設(shè)計的格式,如 SPDX(軟件包數(shù)據(jù)交換),SWID Tags(軟件識別)以及Cyclone DX。

SPDX

SPDX是由 Linux 基金會運營的項目,旨在標準化企業(yè)共享和使用SBOM中信息的方式。SPDX 捕捉與provenance、許可證和安全相關(guān)的數(shù)據(jù),下圖展示了 SPDX 文檔中所包含的數(shù)據(jù):

關(guān)于軟件物料清單(SBOM),你所需要了解的一切(軟件物料清單 bom)


該格式支持以下文件類型:

  • YAML
  • JSON(你可以在 GitHub 上找到SPDX的JSON schema:https://github.com/spdx/spdx-spec/tree/development/v2.2.1/schemas)
  • RDF/XML
  • tag:value flat text file
  • .xls 電子表格

Seal 軟件供應(yīng)鏈防火墻可以直接生成SPDX格式的SBOM文件,歡迎訪問下方鏈接申請產(chǎn)品試用:seal.io/trail

SWID Tags

SWID 是一個標準化的 XML 格式,可以識別軟件產(chǎn)品的組成部分并將其與上下文結(jié)合。4種類型的 SWID Tags 在軟件開發(fā)生命周期中:

  • Corpus Tags: 識別和描述在安裝前階段的軟件成分。根據(jù) NIST 給出的定義,corpus tags 是指“軟件安裝工具和流程的輸入”
  • Primary Tags: 在軟件產(chǎn)品安裝后對其進行識別和關(guān)聯(lián)
  • Patch Tags: 顧名思義,patch tags 可以識別和描述補?。ǘ皇?span id="t5ttttt" class="candidate-entity-word" data-gid="15027706">核心產(chǎn)品本身)。此外,patch tags 包含了補丁和其他產(chǎn)品或補丁之間的上下文關(guān)系信息。
  • Supplemental Tags: SWID 格式僅允許 tag 創(chuàng)建者修改 corpus、primary和patch tags。但是 Supplemental Tags 可以讓軟件用戶及軟件管理工具在本地添加有益的上下文信息,如許可證密鑰以及相關(guān)方的聯(lián)系信息。

在決定將哪些標簽和具體的數(shù)據(jù)元素納入其產(chǎn)品時,各企業(yè)有一定程度的靈活性。在SWID規(guī)范中,除了幾個必須的字段外,其他的元素和屬性都是可選的。

最終,一個最低限度的有效和符合要求的標簽只需要描述軟件產(chǎn)品(如名稱和標簽ID)和創(chuàng)建它的實體的少數(shù)元素。關(guān)于SWID標簽數(shù)據(jù)元素的最全面和最新的信息,建議查看ISO/IEC 19770-2:2015標準全文:
https://www.iso.org/standard/65666.html

Cyclone DX

Cyclone DX 是一個輕量級軟件物料清單標準,旨在用于應(yīng)用安全上下文和供應(yīng)鏈組件分析。換言之,它旨在實現(xiàn)與SPDX、SWID以及其他所有SBOM交付格式類似的目標——提供構(gòu)成一個應(yīng)用程序的軟件組件的關(guān)鍵信息。

Cyclone DX 支持以下4種類型的數(shù)據(jù):

  • 物料清單元數(shù)據(jù): 關(guān)于應(yīng)用/產(chǎn)品本身的信息——供應(yīng)商、制造商、SBOM所面熟的組件以及用于匯編SBOM的任意工具
  • 組件: 完整的專利清單及開源組件清單,包含許可信息
  • 服務(wù)信息 軟件可能調(diào)用的外部API、終端URI、身份認證要求和信任名單
  • 依賴項: 包含直接依賴項和間接依賴項

誰是SBOM的目標受眾?

歷史上,SBOM主要由合規(guī)團隊用來審計、監(jiān)控許可證以及遵守行業(yè)特定規(guī)范,但隨著軟件供應(yīng)鏈攻擊的上升,包括 SolarWinds 黑客事件和去年年末的 Log4Shell 漏洞,SBOM 的使用擴展到了安全和開發(fā)團隊。

安全團隊

對于安全團隊來說,SBOM扮演著十分重要的角色,特別是需要進行漏洞掃描的時候。因為掃描SBOM庫比從頭開始掃描整個基礎(chǔ)設(shè)施更簡單也更快,在發(fā)生零日事件時,每一分鐘都很重要。此外,安全團隊也會利用 SBOM 所提供的信息(如風(fēng)險所在位置)來確定問題修復(fù)的優(yōu)先級,并針對特定組件創(chuàng)建策略,如供應(yīng)商的選型、可引入的版本或者軟件包類型等。

開發(fā)團隊

開發(fā)團隊可以使用 SBOM 來跟蹤他們所開發(fā)、管理和運維的各個軟件中的組件,包括開源組件、商業(yè)組件和自研組件。并且 SBOM 還能協(xié)助開發(fā)團隊管理依賴項、識別安全問題以減少其重復(fù)的工作,還能確保開發(fā)人員使用的都是經(jīng)過審批的代碼和可信任的源。

SBOM 的應(yīng)用場景

顯然,有許多令人信服的理由推動企業(yè)創(chuàng)建SBOM,并且企業(yè)可以為所有產(chǎn)品創(chuàng)建SBOM,每個新版本都可以更新一版SBOM。此外,在一些特定場景中SBOM會最大限度地發(fā)揮其作用。

  • 融資、并購和IPO: 軟件物料清單是收購、IPO或融資過程中技術(shù)盡調(diào)的重要一環(huán)。相關(guān)利益方會要求獲取文檔以更好地了解產(chǎn)品中的軟件成分以及許可證合規(guī)性、安全性或代碼質(zhì)量風(fēng)險。
  • 客戶要求: 由于全球范圍內(nèi)的企業(yè)都將防止軟件供應(yīng)鏈風(fēng)險的優(yōu)先級提高了,因此未來會有越來越多的企業(yè)要求采購環(huán)節(jié)中需要提供SBOM。
  • 向下兼容: 維護大量舊軟件的公司經(jīng)常需要進行OSS包的更新和升級。當然,如果對這些舊產(chǎn)品中的開放源碼軟件有一個完整的清單,做起來就容易多了。

全面管理 SBOM 的最佳實踐

隨著SBOM被迅速接受,行業(yè)領(lǐng)導(dǎo)者已經(jīng)開始開發(fā)創(chuàng)建、管理和使用SBOM 的方法。這些實踐跨越了軟件生命周期的各個關(guān)鍵階段:

1、在統(tǒng)一的存儲庫中存儲和管理 SBOM
雖然單個開發(fā)或應(yīng)用團隊可以將SBOM與他們的代碼構(gòu)件一起存儲在存儲庫中,但安全團隊必須在所有應(yīng)用和開發(fā)團隊中維護一個統(tǒng)一的SBOM存儲庫。當新的漏洞或安全事件出現(xiàn)時,安全團隊和CISO需要快速查詢所有軟件的SBOM并即時評估影響,而不是分別從每個團隊中獲得單獨的評估報告,或者不得不浪費事件從頭開始查找和重新掃描他們所有的應(yīng)用程序。此外,滿足監(jiān)管要求或合規(guī)標準也需要一個集中的存儲庫,用于生成報告和其他的合規(guī)活動。

2、要求所有進入供應(yīng)鏈的軟件提供SBOM
企業(yè)如果需要對所使用的軟件保有可見性,那么收集 SBOM 信息以分析軟件成分或應(yīng)用是十分重要的。如果是第三方商業(yè)軟件,那么軟件供應(yīng)商應(yīng)該提供必要的 SBOM,并將其納入你的 SBOM 資源庫。

當使用的是開源組件來構(gòu)建自定義軟件時,在將其引入開發(fā)流程前企業(yè)應(yīng)該直接掃描開源構(gòu)件(如容器鏡像)或者開源代碼倉庫。在某些情況下,開源項目可能會提供一個簽名的 SBOM,這可以讓企業(yè)將他們生成的 SBOM 與社區(qū)提供的 SBOM 進行比較來進行驗證。

3、為每個開發(fā)環(huán)節(jié)和構(gòu)建生成SBOM
各行各業(yè)的企業(yè)正在定制軟件以迎合其獨特的市場需求。大部分軟件都由大量的開源代碼組成(根據(jù)不同的應(yīng)用程序,開源代碼的占比在50—90%之間)以及內(nèi)部開發(fā)的代碼和第三方庫。由于在構(gòu)建階段開源代碼常常會引入額外的依賴項,因此在開發(fā)流程中的每一步及每一次構(gòu)建軟件時都掃描您的軟件是至關(guān)重要的。這可以讓您檢測出意料之外的SBOM變更,這些變更可能由新依賴項或代碼修改導(dǎo)致的。這些 SBOM 需要標記為特殊組件或他們所代表的應(yīng)用程序。

4、為你所部署或交付的每個軟件版本創(chuàng)建綜合的SBOM
無論您是將軟件交付給客戶,還是幫助客戶、員工、合作伙伴進行部署,您應(yīng)該創(chuàng)建一個綜合的SBOM,并標記為該版本軟件的變更。這提供了一個追蹤機制,可以讓企業(yè)快速評他們生產(chǎn)的應(yīng)用或組件的安全狀況,同時評估新漏洞對此前開發(fā)的影響。對于將軟件售賣或提供給外部用戶的企業(yè),您也可以提供必要的可見性和“信任報告”給軟件的下游用戶。

5、 將自動化應(yīng)用于策略執(zhí)行和告警

借助中心化的SBOM倉庫和有效的SBOM管理能力,企業(yè)可以利用一個自動的策略引擎來應(yīng)用策略規(guī)則,如同步特殊的監(jiān)管要求或合規(guī)標準。同時,還可以應(yīng)用任意內(nèi)部要求。自動告警可以提醒您新漏洞或違反策略的行為,如此,受影響的團隊可以快速修正重要問題并阻止受影響的鏡像被部署。

借助工具生成SBOM

可以肯定的是,軟件物料清單將在業(yè)務(wù)開展方式中發(fā)揮越來越重要的作用。但是,考慮到制作SBOM所需的數(shù)據(jù)量,僅通過人工將這些碎片組合在一起是相當具有挑戰(zhàn)性的。Seal 軟件供應(yīng)鏈防火墻可以生成SBOM數(shù)據(jù),并可以跟蹤SBOM的變化以進行漏洞匹配,及時發(fā)現(xiàn)軟件供應(yīng)鏈中的安全風(fēng)險。

關(guān)于軟件物料清單(SBOM),你所需要了解的一切(軟件物料清單 bom)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2023年3月25日 上午10:27
下一篇 2023年3月25日 上午10:43

相關(guān)推薦