共计 4717 个字符,预计需要花费 12 分钟才能阅读完成。
古代软件都是组装的而非纯自研。随着开源组件在数字化利用中的应用比例越来越高,混源开发已成为以后业内支流开发方式。开源组件的引入尽管放慢了软件开发效率,但同时将开源平安问题引入了整个软件供应链。软件组成成分的透明性成为软件供应链平安保障的根底,SBOM(Software Bill of Materials,软件物料清单)作为软件供应链平安治理的重要抓手,其在行业的利用实际速度显著放慢。
软件供应链平安治理
供应链平安概述
供应链(Supply Chain)指生产及流通过程中,波及将产品或服务提供给最终用户流动的上游与上游企业所造成的网链构造,行将产品从商家送到消费者手中整个链条。供应链的流动是指将天然原材料一直组装成消费者须要的成品的过程,描述了产品供应关系。整个供应链零碎波及到人员、组织、资料、数据等。
软件供应链的定义由传统供应链概念扩大而来,指软件生命周期中从需要、设计、开发、构建、打包、公布、洽购、部署、运维、下线到销毁整个链路,通常波及软件生产者(供应商 / 上游)、软件使用者(消费者 / 上游)以及软件运营者(公司或者企业)三个方面。
软件供应链平安则是和针对软件供应链的攻打无关。攻击者通过网络工具、下载投毒、代码净化、破绽利用、受权流氓等伎俩在软件供应链各个流动环节中,对企业业务零碎进行破坏性操作。近几年比较严重的软件供应链安全事件有 SolarWinds(太阳风暴)攻打、Realtek WiFi SDK 破绽、Apache Log4j2 破绽等。
危险治理重点
软件供应链过程危险治理,次要包含软件起源治理、软件平安合规性治理、软件资产治理、服务反对及平安应急响应,目标是晋升软件供应链可追溯性和透视性。其中重点的治理内容,包含软件资产的第三方组件威逼审查、软件平安合规性治理。
图 1 软件供应链治理重点区域
为了帮忙企业无效解决软件供应链平安问题,SBOM 作为软件供应链平安要害的技术工具之一,可能达到对立描述软件资产信息格式、帮助对洽购软件和自研软件危险评估、造成软件供应链流动中传递的软件信息接口标准。
何为 SBOM
晚期 SBOM 的概念源自制造业,其中物料清单 BOM 是用来具体阐明产品中蕴含的所有我的项目的清单。例如在汽车行业,制造商为每辆车提供一份具体的物料清单,列出原始设施制造商制作的部件以及来自第三方供应商的部件。当发现有缺点的部件时,汽车制造商能够精确地晓得哪些车辆受到影响,进而告诉车主培修或更换。软件物料清单 SBOM 则是用来形容软件产品中蕴含的组件物料信息,示例如下:
图 2 SBOM 示例
但随着供应链安全事件的降级,2021 年 7 月 12 日美国在对于改善国家网络安全的行政命令(EO 14028 第 10 节)中将 SBOM 定义为“蕴含构建软件中应用的各种组件的详细信息和供应链关系的正式记录”。软件开发商和供应商通常通过组装现有的开源和商业软件组件来创立产品,新的定义将软件供应链关系纳入记录范畴。
图 3 组件关系图示
SBOM 的元素
图 4 NTIA《The Minimum Elements For a Software Bill of Materials(SBOM)》
美国 NTIA(National Telecommunications and Information Administration,国家电信和信息管理局)2021 年 7 月公布了 SBOM 所蕴含的最小必需元素。这些元素蕴含以下三类:
SBOM 最小必需元素形容了实际过程中须要的元素最小集,相干组织和机构可通过参考以上三类元素,并扩大企业本身须要治理的额定信息,形成适宜本身的规范 SBOM 清单。从国内开源组件治理要求和软件全生命周期危险角度剖析,举荐适宜扩大数据字段如下:
SBOM 的格局
目前 SBOM 次要通过三种格局来进行施行:
1.SPDX
SPDX 是一种国内凋谢规范(ISO/IEC 5962:2021)格局,蕴含与软件包相干的组件、许可证、版权和平安参考信息。SPDX 规范由 Linux 基金会主办的草根开源我的项目开发,目前保护到最新 2.3 版本,特点是对许可证的详细信息反对较好,次要输入文件格式包含 RDF、XLS、SPDX、YAML、JSON。
SPDX Lite 是 SPDX 的轻量级子集,实用于不须要残缺 SPDX 的场景,旨在让没有开源许可常识或教训的人易于应用,用于均衡 SPDX 规范与某些行业工作流程理论需要。
2.CycloneDX
CycloneDX 专为平安环境和供应链组件剖析而构建,是一种轻量级 SBOM 规范,可用于应用程序平安上下文和供应链组件剖析。CycloneDX 源于 OWASP 社区的开源我的项目,由提供策略方向和规范保护的外围团队领导。目前最新保护到 1.4 版本,可扩大格局并集成 SPDX 许可证 ID、pURL 和其余内部标识符,次要输入格局包含 XML、JSON。
3.SWID
SWID 是一个标准化的 XML 格局,能够辨认软件产品的组成部分并将其与上下文联合,记录无关软件组件的惟一信息,如产品名称、版本详细信息等。SWID 标签在 SDLC 公布后增加作为软件产品的一部分,在软件装置时将标签信息增加到零碎终端,并在产品卸载后主动删除。
SBOM 应用场景
1)从狭义的分类上看,SBOM 有三种不同的应用场景:
〇 软件生产商应用 SBOM 来帮助构建和保护他们提供的软件;
〇 软件采购商应用 SBOM 来进行洽购前参考、协商折扣和制订洽购策略;
〇 软件运营商应用 SBOM 为破绽治理和资产治理提供信息,治理许可和合规性,并疾速辨认软件和组件依赖关系以及供应链危险。
2)从企业角色类型来看,对 SBOM 有不同的应用需要:
〇 我的项目团队:用于管理软件资产,在开发晚期即可评估平安危险,筛选适宜的组件 / 软件,并继续更新 SBOM;
〇 平安团队:通过提交的 SBOM 剖析软件危险,并通过对立治理进行继续监控,及时响应安全事件;
〇 法务团队:核查软件受权问题,防止后续公司业务本身权利受到侵害。
图 5 企业治理角色 SBOM 应用需要
如何应用 SBOM
抉择 SBOM 工具
企业级 SBOM 为便于对立治理,应该应用统一的格局,如前文所述的 SPDX、SWID 和 OWASP CycloneDX。美国 2021 公布的行政命令并未强制要求企业应用 SBOM 的哪种特定格局。到目前为止,并没有比照出这三者中哪一种格局是最好的,也没有确定的行业标准限定肯定应用哪种格局。大多数 SBOM 工具,会捆绑代码平安扫描程序和其余程序,企业须要依据本身需要选型。以下提供对于抉择 SBOM 工具的一些倡议。
Gartner 倡议了生成 SBOM 的工具该当具备的能力:
〇 可融入构建过程,可主动创立 SBOM;
〇 可剖析源代码和二进制文件(如容器镜像);
〇 对检测的组件进行 SCA 检测生成 SBOM;
〇 可对生成的 SBOM 进行编辑;
〇 以可读的格局查看、比拟、导入和验证 SBOM;
〇 可合并多个 SBOM 的内容,并可将其从一种格局或文件类型转换为另一种格局或文件类型;
〇 反对通过 API 和库让其余工具应用 SBOM 并进行操作。
在 SDLC 中实现 SBOM
当 SBOM 被从新定义后,SBOM 具备更高的透明度、具体起源和流传效率,企业机构在肯定条件下通过 SBOM 即可辨认和修复破绽危险。且 SBOM 还能够领导开发人员或供应商在整个 SDLC 中进行利用平安软件开发实际。以下阐明了 SBOM 如何在 SDLC 中实现组装的过程,供实际人员进行参考:
图 6《软件生命周期和物料清单装配线的阐明示例》
注:物料(Material)、元数据(Metadata)、援用(Reference)、供应商(Supplier)、应用方(Consumer)、Example Bom fragment(片段示例)
SDLC 各阶段 SBOM 拆卸内容及形式阐明:
SBOM 拆卸过程通过人为保护工作量较为微小,建设元数据信息库,并借助 SCA 检测工具将拆卸融入 CI/CD 流程中,可大大降低施行难度。
SBOM 与危险情报关联
SBOM 记录了软件的组件组成信息,供应商或开发者能够通过提供 SBOM 清单至组件破绽信息剖析平台,获取最新破绽危险情报从而进行修复和更新 SBOM。并且平安经营人员可通过保护 SBOM 清单库,在有破绽情报推送或供应链安全事件产生时,疾速反向定位存在危险的软件,从而减速了供应链攻打事件应急响应速度。
图 7 应用 SBOM 生成软件危险信息
围绕 SBOM 建设治理流程
在确定了 SBOM 的格局与对应的工具后,可围绕 SBOM 对立平安评估规范建设软件生命周期威逼卡口。治理流程由企业平安流程治理团队对立制订,并受权软件供应链平安评测团队进行平安评估测试,输入评估后果。其通用治理流程框架如下:
图 8 围绕 SBOM 建设平安治理流程
1. 建设基线
依据已盘点的资产,进行白名单、黑名单组件基线建设,领导后续组件选用;
2. 平安设计评估
在我的项目进行需要设计时、平安评审阶段,对选用的第三方组件进行危险评估,并根据白名单、黑名单组件基线选用平安组件;
3. 利用平安测试
除了对组件危险进行管控外,在利用上线、公布过程中,对利用零碎进行利用平安测试,发现存在的利用破绽威逼;
4.CI/CD 缺点修复 & 跟踪
将发现的危险接入 CI/CD 缺点修复 & 跟踪平台,如 Jira、禅道等,提前修复缺点并更新 SBOM 中利用破绽危险信息;
5. 产品制品公布
公布产品制品时,同时生成 SBOM。通过平安治理流程对软件和软件 SBOM 进行平安评测,出具平安测试报告。
对于 SBOM 的思考
随着供应链攻打检测要求退出 HW 攻打演练评分中,软件供应链平安建设愈发受到重视。以后软件供应链平安治理的落地次要思考第三方开源组件的治理,次要通过 SCA 工具及相干治理方法,对软件引入的第三方开源组件进行威逼检测和治理。狭义上的软件供应链平安治理则须要扩大治理范畴至残缺软件生命周期、供营商治理、自动化流程建设,且具备继续运维监控、应急响应能力等。
SBOM 次要价值在于帮忙企业组织进步软件透明性,并且造成在软件供应链环节中便于替换传递的接口标准,同时可能描述软件资产信息。在解决软件资产治理“看不清”和“跟不上”的次要痛点上,将 SBOM 作为软件资产治理能力根底,围绕 SBOM 建设较为欠缺的软件供应链治理体系。成熟的 SCA 工具该当兼容多种 SBOM 格局,可导入不同供应商提供的不同格局 SBOM,并对不同格局 SBOM 进行转换和集中管理,且便于融入到自动化流程。悬镜源鉴 SCA 在满足以上 SBOM 能力需要的根底上,也在开源 OpenSCA 提供了公开 SBOM 生成工具,不便软件生产商主动生成 SBOM 清单。
网络安全的实质是危险与信赖的均衡,软件供应链平安治理的实质则是平安可信的继续传递。悬镜平安在“用开源的形式做开源危险治理”理念的领导下,凭借多年积淀的“All In One”智能代码疫苗技术,为宽广数字化利用提供威逼免疫平安基因,并通过旗下寰球极客开源平安社区 OpenSCA 及其商业版源鉴 SCA、灵脉 IAST 等软件供应链平安外围产品,从源头追踪软件供应链在开发、测试、部署、经营等关键环节面临的利用平安危险与未知内部威逼,帮忙企业用户逐渐构筑一套适应本身业务弹性倒退、面向麻利业务交付并引领将来架构演进的共生踊跃进攻体系。
感激每一位开源社区成员对 OpenSCA 的反对和奉献。
OpenSCA 的代码会在 GitHub 和 Gitee 继续迭代,欢送 Star 和 PR,成为咱们的开源贡献者,也可提交问题或倡议至 Issues。咱们会参考大家的倡议不断完善 OpenSCA 开源我的项目,敬请期待更多功能的反对。
OpenSCA 官网:
https://opensca.xmirror.cn/
GitHub:
https://github.com/XmirrorSec…
Gitee:
https://gitee.com/XmirrorSecu…