如何在软件开发生命周期中高效管理开源组件

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 如何在软件开发生命周期中高效管理 开源组件 OPPO / 朱红林
2. 使用开源组件有哪些风险 开源组件免费、缩短软件开发周期、丰富软件产品的功能和业务,但蕴藏很多风险 安全技术风险 开源许可证合规风险 供应链风险 运维风险 专利侵权风险 出口管制合规风险 地缘合规风险
3. 如何管控开源组件的风险 来源可靠 1 安全技术评估 2 规范使用 3 可追溯 4 地缘合规评估 5 生命周期管理 6
4. 如何基于SDL治理开源合规 STR2 STR3 需求&设计 业务 + 安全 + 法务 + OSPO 开发 SE + 开发 STR4 验证 测试 + 开发 STR5 STR6 发布 维护 PM + SE/开发 运维PM + 开发  开源风险评估  SCA工具扫描及治理  开源合规测试  FSR  漏洞跟踪处理  很选型&入库  Notice集成  Notice更新  开源分发  生命周期维护  使用申请  使用申请更新  准出校验  应急响应计划  应急响应  BIS备案 IT基础设施 开源软件库、开源源码库/制品库、DevOps工具链、项目管理系统、PDM产品数据库、版本控制系统、故障跟踪系统......
5. 需求&设计阶段 - 选型评估 建立准入机制,从源头把控风险,是安全左移的重要举措,其中开源软件选型是关键活动之一。 技术生态 开源许可证 安全 • 功能/性能满足程度 考 量 因 素 • 架构的高可用性、 先进性、可靠性 • 兼容性 • 易用性 • 行业应用范围 生命周期 • 成立时间 • 许可证条款 • 已知安全漏洞 • 专利陷阱 • 历史版本漏洞 • 历史诉讼案例 • 历史漏洞处理情况 • Start/Fork/Watch ing • 贡献者/FR • 版本更新频率
6. 开源软件库 开源同源 • 官网同源 • 内网同源 • 版本同源 功能 运营 • 开源软件库、许 可证库、漏洞库、 黑名单、台账 • Owner机制 • TMG/专家评审团 • 入库、使用申请、 更新和推出 • 漏洞推出 • 分级审核机制 开源软件库
7. 需求 & 设计阶段 - 风险评估 & 使用申请 开源风险评估 依托开源合规库,进行开源风险评估 开源软件使用申请 依托开源合规库,进行使用申请 • 输入:开源合规调查 • 先申请,后使用 • 输出:风险项/合规需求 • 从开源软件库申请 • 准出条件:所有项目/新增需求 均已完成开源风险评估 使用申请关注的信息 • 基本信息 • 使用信息
8. 开发阶段 - 开源扫描 & 义务履行 规范使用 • 从开源软件库中引入 • 架构解耦 • 配置解耦 • 保留原始版权、许可证 • 禁止故意绕过工具检查 • 禁止代码片段引入 • 整包使用,不修改 • Patch管理 开源扫描 问题整改 义务履行 • SCA工具扫描 • 风险分析、整改计划 • Notice集成 • SBOM生成 • 安全漏洞修复 • 开源分发准备 • SCA工具嵌入到CI/CD • 合规治理 • 修改说明
9. 验证阶段 - 开源测试 测试计划 • 测试计划 • 测试用例 测试执行 准出校验 • Notice集成测试 • 使用申请和SBOM一致 • 开源分发准备工作验收 • 高风险问题处理完成 • 其他义务履行情况验收 • Notice集成测试通过 • 漏洞修复情况验收 • 开源分发准备就绪
10. 发布阶段 - 开源发布 执行FSR,审核各项开源合规活动是否已执行完成,做好开源发布准备,并制定应急响应计划。 开 源 发 布 主动开源 贡献整个项目 • 开源合规治理 • 确定许可证 • 其它相关审查 • Notice、发布说明 被动开源 主动回馈社区 • 开源范围 • 编译通过 • 其他相关审查 • 开源范围审核 • 不包含第三方专有代码 • 不包含公司商业秘密和其他敏感信息 • 出口管理审查 • 提供符合许可证要求的源码
11. 维护阶段 - 漏洞跟踪和修复 漏洞跟踪和验证 漏洞收集 漏洞修复 • 快速定位 • 内部漏洞库 • SCA工具 • 漏洞验证和分析 • 漏洞分发 • 产品漏洞预警 • 临时紧急措施 • 源码补丁 • 跟随社区升级 • 现网产品漏洞修复支持
12. 维护阶段 - 生命周期管理 及时升级到最新稳定版本 • 定期维护开源软件库 • 及时跟随社区升级 制定明确的推出机制和流程 • 定期维护黑名单 • 及时退出 IT系统支撑和工程能力建设 • 提供完善的IT系统支撑和较强的工 程能力 • 溯源及自动化管理
13. 高效治理开源组件的基本原理 全程可控、闭环 自 动 化 高效治理 的 基本原理 • 开源各阶段实现自动化 • 管理过程做到可视化监控 • 总的目标:全程可控、问题闭环 可 视 化
14. 旧的开源治理方法 当前Kernel开源发布流程 启动 合规 编译 测试 验收 发布 开发整改 CMO编译 开发调试 测试验收 版本发布 软件PM任务 创建 开源分支创建 验收失败 任务结束 痛点:  1、开源流程长,涉及工作领域比较多,人工操作比较多对,比较依赖经验,容易出错。  2、很多安全编码规范和开源规范,没有工具化,开源代码的质量难以得到保障。
15. 新的开源治理方法 软件PM任务创建 分支创建  1、工具自动创建整机分支  2、工具自动下载分支代码  3、工具自动创建编译环境 整改  1、工具自动扫描开源代码仓  2、工具自动修改违规代码  3、工具自动提交修改 编译  1、工具自动搭 建编译环境  2、增量编译验 证 版本发布 测试 验收 验收失败 自动化实现开源过程说明:  1、将“分支创建”、“整改”、“编译”、“版本发布”等步骤实现工具自动化处理。  2、最大化减少人工操作,显著提高Kernel相关代码仓的开源效率和稳定性。  1、工具自动 化push代码 到开源外部 分支 任务结束
16. 增量开源MP版本 前:每个MP版本创 建临时分支,分别全 量整改 MP1版本 MP2版本 创建开源临时分支 创建开源临时分支 MP1整改分支 MP1全量开源Kernel 后:所有MP版本共 用一个临时分支依次 增量整改 MP1版本 创建开源临时分支 MP3版本 MP分支 创建开源临时分支 MP2整改分支 MP3整改分支 MP2全量开源Kernel MP3全量开源Kernel MP2版本 MP3版本 工具对比MP2与MP1差 异,增量部分入库到开 源分支 MP分支 工具对比MP3与MP2差 异,增量部分入库到开 源分支 MP开源分支 MP1全量开源Kernel 增量开源MP2 Kernel 增量开源MP3 Kernel
17.

ホーム - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 00:37
浙ICP备14020137号-1 $お客様$