冯才效,SEAL 安全工程师,拥有6年云计算领域经验,先后参与 Rancher, Harvester 等开源项目。现致力于编写开发者友好型的软件供应链安全检修工具。
开源软件运动兴起于上个世纪,近几年在国内愈发活跃,各类开源项目如雨后春笋般涌现。与此同时,大部分企业开始拥抱开源。开源软件的使用避免重复造轮子,提升了产品研发效率,但同时也可能会带来隐藏的风险。
开源软件合规风险
知识产权纠纷
开源软件并不意味着用户可以自由使用,而是通过许可证规定使用者使用、修改和发布软件的权利。大多数现代软件都集成了大量的开源组件,它们使用的许可证在具体的条款上存在差异,不遵守许可证规定使用,将可能造成侵权,严重时可能会面临法律诉讼,产品召回等风险。
许可证冲突
私有软件开源
在引入使用了传染型许可证的开源软件时,依据该许可证的要求,可能使得私有软件必须也继承该许可证,进而被要求公开私有源代码。
企业如何进行合规检查?
制定开源合规策略
开源合规策略是基于开源软件许可证的基础条款、现行政策并结合使用者自身情况,制定的一系列使用开源软件的条件。构建开源合规策略是合规检查的基础。
梳理开源软件常用许可证相关条款,构建易读快捷查询的手册。
对常用许可证进行分组。自由使用许可证组,需要审查许可证组,禁止使用许可证组。初级的分类支持开发人员快速做出选择,避免合规问题同时兼顾开发效率。
许可证兼容性是指许可证间是否兼容。实际开发中,会使用大量开源软件,可以参考许可证兼容性矩阵构建许可证兼容性策略,检查同一个项目中集成的组件之间是否存在许可证冲突。
许可证的兼容矩阵
制定合规的软件开发流程
一个软件的生命周期包括需求分析、设计、实现、测试、部署、运维7个阶段,将开源合规流程纳入软件开发生命周期管理,能有效避免合规风险。
总结
开源在软件领域已经势不可挡,随之而来的风险也不容忽视。企业在采用开源软件的同时,也应时刻注意悬在头顶上方的达摩克利斯之剑,积极制定开源合规策略和流程,定期进行合规检查,在享受开源带来的便利的同时,规避其风险。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!