社区供应链安全治理
为保障 OpenHarmony 开源项目的完整性、安全性与合规性,社区建立了一套贯穿软件全生命周期的供应链安全治理框架。该框架通过对 来源安全、社区内部作业活动安全 和 发布安全 三个核心阶段进行严格管控,并以 SBOM(软件物料清单)数据底座 作为统一的技术支撑,实现对软件供应链的端到端安全保障。
graph TB %% 定义样式 classDef processBox fill:#90e0ef,color:#000,stroke:#0096c7,stroke-width:2px classDef subBox fill:#caf0f8,color:#000,stroke:#0096c7,stroke-width:1px,stroke-dasharray: 5 5 classDef greenBox fill:#52b788,color:#fff,stroke:#2d6a4f,stroke-width:2px classDef lightGreen fill:#d8f3dc,color:#000,stroke:#52b788,stroke-width:2px classDef sbomStyle fill:#2d6a4f,color:#fff,stroke:#1b4332,stroke-width:3px
%% 来源安全区域 subgraph SG1["来源安全"] direction TB S1["二进制"]:::subBox S2["开源软件"]:::subBox S3["开源许可证管理"]:::greenBox S4["开源引入管理<br/>License合规检查"]:::subBox
S1 -->|二进制来源安全| S4 S2 -->|开源软件来源安全| S3 S3 -->|生命周期检查| S4 end
%% 社区内部作业活动安全区域 subgraph SG2["社区内部作业活动安全"] direction TB
subgraph SG2_1["构建系统"] C1["社区代码仓"]:::greenBox C2["封闭构建<br/>构建工程代码化<br/>构建过程自动化"]:::subBox end
subgraph SG2_2["开发环境"] C3["代码提交"]:::greenBox C3_1["入仓签名"]:::subBox C3_2["片段引用检查"]:::subBox end
subgraph SG2_3["归档"] C4["调用自动化<br/>版本签名"]:::subBox end
C3 --> C3_1 C3_1 --> C1 C3 --> C3_2 C3_2 --> C1 C1 --> C2 C2 --> C4 end
%% 发布安全区域 subgraph SG3["发布安全"] direction TB
R1["版本归档"]:::lightGreen R2["配套Docker编译环境"]:::lightGreen R3["版本打tag"]:::lightGreen R4["Release分支"]:::lightGreen
R5["镜像服务器"]:::processBox R6["镜像托管服务器"]:::processBox R7["HPM包管理器"]:::processBox R8["发布部件包和发行版<br/>发布签名归档<br/>发布历史归溯"]:::processBox
R1 --> R5 R2 --> R6 R3 --> R7 R4 --> R8
R5 --> R9["社区发布"] R6 --> R9 R7 --> R9 R8 --> R9 end
%% SBOM数据底座 SBOM["SBOM数据底座 设计树/构建树"]:::sbomStyle
%% 主流程连接 S4 -->|自动化建仓| C3 S4 --> SBOM C2 --> R1 C2 --> R2 C2 --> R3 C2 --> R4 C1 --> SBOM
%% 设置子图样式 style SG1 fill:#e3f2fd,stroke:#00b4d8,stroke-width:3px style SG2 fill:#e3f2fd,stroke:#00b4d8,stroke-width:3px style SG3 fill:#e3f2fd,stroke:#00b4d8,stroke-width:3px style SG2_1 stroke:#999,stroke-width:1px,stroke-dasharray: 5 5,fill:none style SG2_2 stroke:#999,stroke-width:1px,stroke-dasharray: 5 5,fill:none style SG2_3 stroke:#999,stroke-width:1px,stroke-dasharray: 5 5,fill:none治理流程详解
Section titled “治理流程详解”1. 来源安全
Section titled “1. 来源安全”来源安全是供应链的第一道防线,旨在确保所有进入社区代码仓的软件组件和代码都是可信且合规的。
- 第三方开源软件引入:所有计划引入的第三方组件,都必须经过严格的准入审查,包括漏洞扫描、社区健康度评估以及许可证合规性分析。
- 社区贡献者代码:来自社区贡献者的代码提交,需通过自动化的代码审查和安全扫描流程,确保代码质量与安全。
- 开源许可证管理:社区设有专门的许可证管理机制,对所有引入的组件进行合规性检查,并将结果记录到 SBOM 数据底座,以防范法律风险。
2. 社区内部作业活动安全
Section titled “2. 社区内部作业活动安全”代码进入社区后,通过自动化的安全工具链和流程,对开发和构建过程进行持续监控,及时发现并修复风险。
- 社区代码仓:作为可信代码的存储库,所有代码变更都将被记录和追溯。
- 自动化安全门禁:代码在集成过程中会触发一系列自动化扫描,形成安全门禁:
- 静态代码扫描:检查源代码中的潜在安全缺陷。
- 软件成分分析 (SCANOSS):识别项目中的所有直接和间接依赖,分析其来源、版本和许可证。
- 漏洞扫描:将识别出的开源组件与已知的漏洞数据库进行比对,发现潜在安全漏洞。
- 风险数据沉淀:所有扫描结果都将汇集到 SBOM 数据底座,用于持续的风险评估和监控。
3. 发布安全 (Release Security)
Section titled “3. 发布安全 (Release Security)”发布安全是交付可信软件给最终用户的最后一道关卡,确保发布的产物是完整、可追溯且未被篡改的。
- 版本归档:通过安全审计的构建产物将被安全地归档到制品仓库中。
- 配套 Docker 编译环境:为每个正式版本提供配套的 Docker 编译环境,确保构建过程的可复现性,便于安全审计和问题排查。
- 版本标识与追溯:通过对发布版本打上明确的 Git Tag 和创建专属的 Release 分支,建立从二进制产物到源代码的精确追溯链。
- 安全分发:最终的发行版通过官方、可信的渠道分发给用户。
4. SBOM 数据底座
Section titled “4. SBOM 数据底座”SBOM 数据底座是整个供应链安全治理框架的核心,它提供了全面的软件透明度,是实现持续风险监控和快速应急响应的基础。
- 核心作用:作为一个动态更新的数据库,它记录了 OpenHarmony 项目中所有软件组件的详细信息,包括其来源、版本、许可证、依赖关系和已知漏洞。
- 设计树与构建树:SBOM 底座同时管理“设计树”(开发阶段计划引入的组件)和“构建树”(最终构建产物中实际包含的组件),通过比对两者差异,可精确识别供应链中的潜在风险。
- 数据驱动安全:通过对 SBOM 数据的持续分析,社区能够快速定位受新曝出漏洞影响的组件,并高效地组织修复和版本更新工作。