>> 中国信通院-软件物料清单实践指南-230228
| 上传日期: |
2023/2/28 |
大小: |
2739KB |
| 格式: |
pdf 共65页 |
来源: |
中国信通院 |
| 评级: |
-- |
作者: |
-- |
| 下载权限: |
无限制-登录即可下载 |
|
|
研究报告全文:软件物料清单实践指南中国信息通信研究院20230201总体介绍05生命周期11诞生背景06常见问答12代表工作07知产与保密13定义内涵08选择与决策02价值与用例09行业实践03组成要素10发展趋势04格式与工具2诞生背景上世纪以来物料清单在提高透明度中的作用愈发重要已惠及汽车业食品业传统制造业等形成的基本理论和原则于2013年开始应用于现代软件开发并于近5年取得长足进步年月日美国国家电信和信息管理局2018719工作重点NTIA召开了多部门利益相关者会议讨论增强软件透明度的一项提案目的是建立定义和完善SBOM规范一个通用框架以在软件产品中描述组件框架工作组推动广泛可扩展的采用NTIA多利益相关方流程计划意识和采用将SBOM推广为一种理NTIA工作组念一种实践SoftwareComponentTransparency格式和工具自动化SBOM的生成和工作组使用格信促所支式息进有持证明SBOM的成功应用构共实行活医疗保健概念为其他行业提供参考建享践业动验证工作组3代表工作自SBOM诞生以来美西方多个组织机构积极开展研究多个行业已开始推进SBOM的应用使得SBOM理论发展不断完善并开始在实践中丰富内涵20209BSA联ISOIEC52302020高盟安全软件框架质量开源许可证合规20222NIST安全20192021软件开发框架20207大西洋理事会202011ENISA确保物联BreakingTrust报告网安全的准则20224FDA售前准则2020美国国家公路交通安全管理局现代车辆安全的网络安全最佳实践20191JSP20211荷兰政府的国家网络安全联合安全计划中心使用SBOM增强网络安全202220193MUD制造商202020182021MITRE使用说明交付无碍项目CISQ可信系统宣言OWASP组件分析项目SWHID软件遗产项目为组件提供唯一标识符4定义内涵随着SBOM研究的不断深入其理论体系已基本搭建完成并通过行业实践不断完善包含有供应商作者消费者等术语体系SBOM供应商SBOM是一份正式规范且机器可读的软件组件商业软件发布者合同约定的提供可交付软件清单清单中包含这些组件的依赖关系层次的软件开发人员免费开源软件供应商在开关系以及相关信息特定SBOM中包含的组件源代码存储库中维护源代码以及在包管理器中信息的数量和类型可能会根据行业部门维护二进制文件SBOM消费者的需求等方面而有所不同根供应商组件软件中不包含上游组件的供应商由供应商或作者定义的软件单位一个产品即一个组件库单个文件组件的集合也是组作者件上下游视角中产品中间产品最终产SBOM的创建者不一定是供应商品均可被视为组件5定义内涵随着SBOM研究的不断深入其理论体系已基本搭建完成并通过行业实践不断完善包含有供应商作者消费者等术语体系消费者最小元素从供应商处获得第三方软件的商业或非商业实支持基础SBOM功能的必要部分体数据字段属性包括供应商组件名称组件版本其它唯一标识符依赖关系SBOM数据作者以及时间戳等元素的信息组件SBOM的特征或相关信息主要用于识结构别组件包括基线属性和其他属性自动化支持通过自动生成和机器可读性来扩展至软件生态系统条目SBOM实践流程SBOM条目指组件及其关联属性在SBOM表中定义SBOM请求生成和使用的操作包括频率一行即为一个条目深度已知的未知分发和交付访问控制和容错等601总体介绍05生命周期02价值与用例06常见问答21提高软件透明度的价值07知产与保密22构建SBOM的价值08选择与决策23SBOM用例09行业实践03组成要素10发展趋势04格式与工具721价值提高软件透明度如果缺乏对软件系统组件和功能的全局可见性将大大增加网络安全风险及软件开发采购和维护的成本随着全球互联程度日益增加这些风险和成本不仅会影响到个人用户和相关组织还会影响到公共安全和国家安全等集体利益提高软件透明度的方法意义提高识别易受攻击的软件组件的能力降低网络安全风险减少因复杂上下游关系导致的计划外低效率的工作提高信任度和可信度对支持透明度的供应商予以支持降低开发采购和维护使用通用的标准化格式以减少重复性工作数字化基础设施的成本协助识别可疑的或假冒的软件组件822价值SBOM软件生产者SBOM可以识别已知漏洞并及时应对SBOM的应用场景可以管理针对漏洞的缓解措施对可以协助构建和维护包括对新漏洞的补丁与补偿控制软件供应商其软件包括知晓软件的上游组件成分及软件运营者可以量化并管理许可证对应属性可以识别安全性检查许可证的合规要求和可以向漏洞管理和资消费者软件购买者产管理提供信息管可以提高效率降低工作量理许可证及产品合规从而降低运营成本性并快速识别软件的好处或组件的依赖关系与可以告知购买者关于风险可以量化软件包中已存在的风险预购买保证协议协商折扣或计划实施策略有助于用户理创建SBOM可以提高供应商自身竞争力解软件生态系统923价值用例SBOM可以降低成本减少安全风险许可风险和合规风险具体价值因生产选择和操作软件的利益相关者而异SBOM用例包括软件开发改进漏洞管理资产管理采购管理和高可信流程其中需要注意的是漏洞管理和VEX知识产权和高可信流程三类用例漏洞管理和VEX软件组件安全性检查流程使用工具分析漏洞的危险性和可利用性需要漏洞信息源如CVE和NVD软件成分分析SCA即漏洞可用性交流VEX需要漏洞到组件的映射如NVD中使用的CPE需要传达漏洞或可利用性状态的方法如VEX难点基于有限信息如版本字符串协议标语或其他试探法可能无法准确检测到漏洞分析开输出分析源组件SBOM漏洞1023价值用例VEX主要用来判断有关产品是否受到特定漏洞的影响如果产品受到影响是否已建议采取补救措施确定是否存在其他防护手段保证此漏洞无法有效利用等软件包括一个漏洞组件为减少用户在漏洞确认方面所花精力软件厂商发现漏洞不会影响编译软件厂商可以发布VEX以判断漏洞的状态例如有关代码没有包含在编译器里不受影响无需对此漏洞进行补救受影响建议采取措施来修复或解决此例如存在相关代码但没有使用或漏洞暴露已修复表示这些产品版本包含针对漏厂商提交一个VEX声明组件不受洞的修复影响不需要采取行动调查中尚不清楚这些产品版本是否受客户把SBOM数据漏洞数据VEX到漏洞影响将在以后的版本中提供更数据集成到一起做出基于风险的决策新1123价值用例许可管理和授权信息传送高可信流程需要将不同的许可证和许可证类型与组件关许可证联起来需要需要有关组件的谱系和出处的信息需要一种方法来评估由具有不同许可证的不同组件合成的组装商品的实际效果有关信息包括但不限于如何构建和打包组件谁创建和修改了组件常见用例1管理所包含组件的软件许可包括对使用或重新分发的限制组件的监管链常见用例跟踪授权允许使用组件的副本SPDX需要相关组件不同的关系类型和2SWID或功能可能不同的供应商信息的附加属性软件组成分析工具确定组件内容以确定许可证要求二进制分析工具1201总体介绍05生命周期02价值与用例06常见问答03组成要素07知产与保密31数据字段08选择与决策32自动化支持09行业实践33实践流程10发展趋势04格式与工具1331组成要素数据字段基线属性SBOM的主要目的唯一且明确地识别软件组件及其依赖关系SBOM基线属性SBOM系统的必要元素作者不一定是供应商作者许可证姓名时间戳时间戳即SBOM最后一次更新的日期和时间信息供应商名称也可为其标识符其他组供应商件关系姓名组件名称由供应商或作者定义SBOM建议使用语义版本控制版本字符串生命基线属性组件周期名称组件哈希值是组件的固有标识符可由数字签名代替组件版本唯一标识符CPEURLPURLUUIDSWHID和组件哈希值字符串哈希值唯一关系标识符默认的关系类型是包含includes1431组成要素数据字段其他属性除了基线信息SBOM还会包含其他未确定属性附加元素等其他信息未确定属性附加元素和组件属性原因除了基线属性外SBOM可能还需要附加元素和组件属性缺乏有关组件组成的第一手知识当的作者不是软SBOM以支持不同的用例并不是所有附加元素或属性都支持每件组件的供应商时作者可能缺乏生成某些属性所需的信个用例所需的具体信息取决于用例的具体情况息或可见性创建SBOM和组件的时间点不同大致为预构建构建或打包时以及构建后以三大用例为例附加元素和组件属性包括但不限于组件的使用寿命结束日期或技术支持结束日期应对显示组件实施或支持技术的能力总是提供所有的基线属性但需明确定义区分无断言对组件进行分组的机制可能是通过生产线或已实现的技noassertation即数据缺失和没有值novalue即该属性不适用于此特定的SBOM术进行分组一组可以被视为一种特殊类型的上游组件或者SBOM格式可以允许缺少基线属性并将缺失某几项属性视为默认值例如无断言或没有值1531组成要素数据字段SBOM格式除了基线属性之外作者还应该遵守其选择的SBOM格式的规范SBOM有三种格式分别是SPDXCycloneDX和SWID下表为将基线组件信息对应到现有格式属性SPDXCycloneDXSWIDEntityrole作者姓名CreatormetadataauthorsauthortagCreatorname时间戳CreatedmetadatatimestampMetaSupplierEntityrole供应商名称PackageSupplierpublishersoftwareCreatorpublishername组件名称PackageNamenamesoftwareIdentityname版本字符串PackageVersionversionsoftwareIdentityversionPackageChecksumHashPayloadFile组件哈希值PackageVerificationCodealghash-algorithmhashSPDXDocumentNamespacebomserialNumber唯一标识符softwareIdentitytagIDSPDXIDcomponentbom-refInherentinRelationshipDESCRIBESLinkrelhref关系nestedassemblysubassemblyandorCONTAINSdependencygraphs1631组成要素数据字段组件关系理想情况下每个供应商都将为其组件创建并提供SBOM所有消费者都将获得这些权威SBOM的完整链对于每个组件作者姓名即供应商名称当供应商未提供SBOM需要SBOM作者收集并提供相关信息时作者可能想要对作者不是供应商的组件做出非权威的声明或断言关系断言属性开发SBOM的第一步是列举供应商直接列入主要未知默认值表示目前还没有任何关于上游组件的声组件中的一级组件SBOM需要捕获组件之间已明知识或断言可能当前的上游组件目前还未知的嵌套关系知因此未列出或者可能没有任何上游组件基线关系属性定义了一种单一类型的关系包含无表示没有直接的上游关系根据供应商的定义该组件没有上游组件或包含于上游组件通常称为依赖项包含在下游组件中部分表示至少有一个直接的上游关系已知可能是也可能不是其他关系已知关系会列出来其他类型的关系可能是必要的或是有用的而现已知表示已知并列出了完整的直接上游关系集有的SBOM格式支持不同类型的关系1731组成要素数据字段组件关系下面提供一个SBOM示例来进一步说明上一节中描述的关系SBOM概念图具有上游关系断言的SBOM概念图供应商版本供应商版本哈希组件名称作者UID关系关系断言组件名称名称字符串作者哈希值UID关系名称字符串值ApplicationAcme11Acme0x123234主要ApplicationAcme11Acme0x123234主要已知--BrowserBob21Bob0x223334包含于--BrowserBob21Bob0x223334包含于部分已知--Compression--CompressionCarol31Acme0x323434包含于无EngineCarol31Acme0x323434包含于Engine--BufferBingo22Acme0x423534包含于--BufferBingo22Acme0x423534包含于未知1832组成要素自动化支持自动化支持包括自动化生成和机器可读性允许跨软件生态系统进行扩展特别是跨组织边界使用SBOM数据则需要使用可预测的实现工具和数据格式自动化支持SPDXSoftwarePackageDataeXchange用于生成并使用CycloneDX某些机构希望将SBOM集成到现SBOM的数据格式有的漏洞管理实践中某些机构希望能够实时审计安全SWIDSoftwareIdentification策略的合规性当出现可与现有格式兼容的新标国际参与机器可读准考虑将其纳入自动化支持中当某种格式不再兼容或不再得公开制定人类可读到主动维护则将其剔除通用句法互操作性1933组成要素实践流程SBOM不仅是结构性数据集在将其集成到安全开发生命周期时组织机构应遵循SBOM使用机制的实践流程在任何要求提供SBOM的策略合同或约定中都应当明确提出多个元素访问控制频率已知的未知当软件组件以新版本或发布的形式更对于在SBOM中未列举出完整依赖项的实例必须指定相关术语包括将SBOM数据集成新那么必须创建新的SBOM来体现SBOM作者必须明确识别出已知的未知到用户安全工具中的费用和空间可通过该软件的新版本其中包括集成已更即明确区分不含其它依赖项的组件和所含依赖项未许可合约或其它现有机制来约束软件本新组件或依赖项的软件版本知及不完整的组件参见关系断言身的使用和权益深度分发和交付容错空间及时地向所需方提供SBOM并设置恰当的访问权SBOM应当包含所有主要顶层SBOM客户应当明确容忍偶然的无心之限共享SBOM数据可分为如何获悉SBOM的存组件并列出其中包含的所有传过允许遗漏和错误以此鼓励SBOM在和可用性宣传或发现SBOM是如何被具有递依赖项数据更新权限访问的人员检索或获得20
|
|