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