近日,微软发布“安全供应链消费框架(SecureSupplyChainConsumptionFramework,简称S2C2F)”1.1版本。该框架已被OpenSSF供应链完整性工作组采用。至此,OpenSSF开源软件评价相关的项目和指南已覆盖使用安全、关键性、基础设施安全、漏洞披露机制等多个方面,它们公布出的相关框架流程、指标条目、实践工具等内容对我国的开源软件安全工作有一定的借鉴作用。
一、S2C2FV1.1解读
S2C2F自年提出后,一直作为微软的一项内部倡议,直至此次被OpenSSF采用,它专注于开发集成人员对开源软件(OSS)使用的安全。与其他开源软件安全框架或指南相比,S2C2F具有三个主要特点:
1、框架实践面向威胁且覆盖使用全过程
S2C2FV1.1共包含8项实践,即引入、扫描、库存、更新、审计、执行、重构建、修复(并通知上游),涵盖了组织在使用OSS过程中各个环节上的治理工作,每个实践又包括若干条具体的“要求”,例如,“扫描”实践的“要求”共有5条,如下表所示。
S2C2F的实践和要求是基于已知OSS安全威胁而设计的,包括战术和技术两方面的威胁,如漏洞、后门、恶意代码植入和欺骗、恶意依赖项、编译器破坏、依赖混淆、包完整性篡改、上游源代码删除、OSS组件停止修复、未按时修复漏洞、包管理器恶意代码上传等。
针对每种威胁类型,框架都列出了相应的可用来缓解的“要求”。例如,针对“构建恶意OSS包欺骗使用者”的威胁,框架建议采用的要求包括:验证OSS的来源(AUD-1)、强制使用策划的OSS入口控制器以增强对OSS的信任(ENF-2)、扫描OSS中的恶意软件(SCA-4)等。
2、成熟度等级便于组织建立进阶路线图
S2C2F是一个成熟度模型,将针对OSS使用安全的25条要求划归4个不同的成熟度等级,组织可以对照评价自己当前所处的等级,并明确未来改进的方向。下表是各等级的主要描述及对应的要求,其中L4被定义为理想级,实现成本较高,估计难以在整个组织中大规模实施,但可以考虑在关键项目中的关键依赖项上应用。
、各条要求对应的工具列表展现实操性
S2C2F还有一大特点是聚焦OSS安全治理的落地,框架针对各成熟度等级中对应的具体实践和每条要求,列出了自动化免费工具和付费工具,供开发集成人员参考。例如,针对L1中的要求SCA-1(需扫描依赖的已知漏洞。选择一款可从更多渠道而不仅仅是CVE获取漏洞的工具,对于确保从多个漏洞来源获得信息非常重要),S2C2F推荐的工具包括:免费工具GitHubDependencyGraph和付费工具SnykOpenSource、MendSCA。
当然,由于微软的背景,S2C2F推荐的工具以美国厂商生产的产品为主。国内用户在参考时可考虑使用相同功能的国产工具,例如,在OSS已知漏洞扫描、许可证风险扫描等方面,UniSCA、CodeAnt等国产工具可提供同等优良的能力。
此外,S2C2F每条要求的制定也充分参考了NISTSP-、SSDF、CIS软件供应链安全指南、OWASPSCVS、SLSA、CNCF软件供应链最佳实践等已有框架指南的内容。
二、OpenSSF开源软件安全评价方法体系介绍
1、开源软件安全评价方法体系
OpenSSF单独或联合其成员发布的项目、指南、框架已覆盖开源软件的使用安全、关键性、基础设施安全、漏洞处理等多个方面,形成了针对开源软件的安全评价方法体系,如下图所示。基础设施安全包括网站、版本控制、构建、加密、包管理器等涉及OSS开发、存储、发布等环节设施的安全。
上述分类仅反映这些项目、指南、框架的侧重点,并不代表它们之间是完全没有交集的。例如,OpenSSF记分卡中有一个指标是“被维护的”,其中重要的一项是考虑OSS项目每周的提交次数,而OpenSSF开源项目关键性评分中也有类似指标。《评估开源软件的简明指南》(以下简称《简明指南》)中也有“持续维护”方面的内容。
2、开源软件的使用安全
作为软件开发中最重要的第三方原材料之一,OSS的使用安全对于使用者来说,无疑是最值得
转载请注明:http://www.0431gb208.com/sjszyzl/6644.html