如何在软件开发生命周期中管理引入的开源软件
如果无法正常显示,请先停止浏览器的去广告插件。
1. 如何在软件开发生命周期中
管理引入的开源组件
朱贤曼
2.
3. 使用开源软件有哪些⻛险
开源软件免费、无采购成本、能缩短产品开发周期,但蕴藏潜在⻛险
安全⻛险
运维⻛险
开源许可证合规⻛险
供应链⻛险
出口管制合规⻛险
专利侵权⻛险
商标侵权⻛险
4. 从哪些方面来管控⻛险
1
2
3
来源可靠
安全合规
规范使用
4 可追溯
5 生命周期管理
5. 基于 SDL 的开源合规治理
STR2 STR3
需求&设计 开发
业务 + 安全 +
法务 + OSPO
SE + 开发
STR4 STR5 STR6
验证 发布 维护
测试 + 开发
PM + SE / 开发
运维PM + 开发
• 开源⻛险评估 • SCA工具扫描及治理 • 开源合规测试 • FSR • 漏洞跟踪和处理
• 选型&入库 • Notice 集成 • Notice 更新 • 开源分发 • 生命周期维护
• 使用申请 • 使用申请更新 • 准出校验 • 应急响应计划 • 应急响应
• BIS 备案
IT基础设施
开源软件库、开源源码库/制品库、DevOps工具链、项目管理系统、PDM产品数据系统、版本控制系统、故障跟踪系统……
6. 需求 & 设计阶段 — 选型评估
建立准入机制,从源头把控⻛险,是安全左移的重要举措,其中开源软件选型是关键活动之一
考
量
因
素
技术生态 开源许可证 • 功能/性能满足程度 • 许可证条款、附加条款 • 已知安全漏洞 • 成立时间
• 架构的高可用性、 • 专利陷阱 • 历史版本漏洞 • Star/Fork/Watching
• 历史诉讼案例 • 历史漏洞处理情况 • 贡献者/PR
先进性和可靠性
• 兼容性
• 易用性
• 行业应用范围
安全
生命周期
• 版本更新频率
7. 开源软件库
开源同源
• 官网同源
• 内网同源
功能
• 版本同源
运营
• 开源软件库、许可证库、
• Owner机制
漏洞库、黑名单、台账
• TMG / 专家评审团
• 入库、使用申请、更新
和退出
• 分级审核机制
• 漏洞推送
开源软件库
8. 需求 & 设计阶段 — ⻛险评估 & 使用申请
开源⻛险评估
依托开源合规库,进行开源⻛险评估
• 输入:开源合规调查问卷
• 输出:⻛险项/合规需求
针对新项目或者新增需求,在需求分析和设计阶段即进行开源⻛险评估,尽早识别⻛险,
并创建相应的⻛险项和合规需求,纳入需求管理系统中进行跟踪。
开源软件使用申请
依托开源软件库,进行使用申请
• 先申请,后使用
• 从开源软件库申请
• 准出条件:所有新项目/新增需求均已完成开源⻛险
评估
使用申请关注的信息
• 基本信息
• 使用信息
9. 开发阶段 — 开源扫描 & 义务履行
规范使用
开源扫描
问题整改
义务履行
• 从开源软件库中引入 • SCA工具扫描 • ⻛险分析、整改计划 • Notice 集成
• 架构解耦 • SBOM生成 • 安全漏洞修复 • 开源分发准备
• 配置解耦 • SCA 工具嵌入到 CI/CD • 合规治理 • 修改说明
• 保留原始版权、许可证
• 禁止故意绕过工具检查
• 禁止代码片段引入
• 整包使用,不修改
• Patch 管理
10. 验证阶段 — 开源测试
测试计划
测试执行
准出校验
• 测试计划 • Notice 集成测试 • 使用申请和 SBOM一致
• 测试用例 • 开源分发准备工作验收 • 高⻛险问题处理完成
• 其它义务履行情况验收 • Notice 集成测试通过
• 漏洞修复情况验收 • 开源分发准备就绪
11. 发布阶段 — 开源发布
执行FSR,审核各项开源合规活动是否已执行完成,做好开源发布准备,并制定应急响应计划
开 源 发 布
主动开源
贡献整个项目
被动开源
主动回馈社区
• 不包含第三方专有代码
• 开源合规治理 • 开源范围
• 确定许可证 • 编译通过
• 其它相关审查 • 其它相关审查
• Notice、分发说明
• 开源范围审核
• 不包含公司商业秘密和其它敏感信息
• 出口管制审查
• 提供符合许可证要求的源码
12. 维护阶段 — 漏洞跟踪和修复
漏洞收集
漏洞跟踪和验证
漏洞修复
• 快速定位
• 内部漏洞库
• 临时紧急措施
• 漏洞验证和分析
• 源码补丁
• SCA工具
• 漏洞分发
• 跟随社区升级
• 产品漏洞预警
• 现网产品漏洞修复支持
建立持续跟踪机制,根据应急响应流程和漏洞修复协作机制,完成漏洞跟踪和修复
13. 维护阶段 — 生命周期管理
及时升级到最新稳定版本
• 定期维护开源软件库
• 及时跟随社区升级
制定明确的退出机制和流程
• 定期维护黑名单
• 及时退出
IT系统支撑和工程能力建设
• 提供完善的IT系统支撑和较强的工程能力
• 溯源及自动化管理
14.
15.