使用开源组件虽然具有免费、缩短开发周期、丰富功能和业务等优势,但也存在多种风险,包括安全技术风险、开源许可证合规风险、专利侵权风险、运维风险、供应链风险、出口管制合规风险和地缘合规风险等。
在IT基础设施中,开源软件广泛应用于软件库、源码库/制品库、DevOps工具链、项目管理系统、PDM产品数据库、版本控制系统、故障跟踪系统等。
开源组件治理需贯穿需求&设计、验证、发布、维护等阶段:
- 需求&设计阶段:建立准入机制,从源头把控风险,关键活动是开源软件选型,需维护开源软件库。
- 验证阶段:制定测试计划,确保使用申请与SBOM一致、高风险问题处理完成、Notice集成测试通过、开源分发准备就绪。
- 发布阶段:执行FSR,审核开源合规活动,做好发布准备,并制定应急响应计划。
- 维护阶段:漏洞跟踪和修复,包括漏洞收集、快速定位、验证分析、分发、产品预警;漏洞修复采用临时措施、源码补丁、社区升级、现网修复支持;漏洞管理通过内部漏洞库和SCA工具实现;生命周期管理包括及时升级到最新稳定版本、定期维护开源软件库和黑名单、制定退出机制。
高效治理开源组件的基本原理是全程自动化实现开源过程,管理过程可视化监控,目标是全程可控、问题闭环。
旧的开源治理方法存在流程长、人工操作多、依赖经验易出错、安全编码和开源规范未工具化等问题。新的开源治理方法通过自动化实现“分支创建”、“整改”、“编译”、“版本发布”等步骤,减少人工操作,显著提高Kernel相关代码仓的开源效率和稳定性。