干货分享|开源软件的利弊及风险治理

2023-01-13 15:20

近几年来,由于开源技术的开放共享、易于获得、迭代质量高等特性,开源软件应用受到了各界的广泛青睐与追捧,成为当下社会上软件开发与应用的主流趋势。各行各业都在充分利用开源软件进行企业内部的业务支撑和服务模式的创新,享受开源技术带来的各种生活与商业红利。

开源软件的利弊及风险治理.jpg


与此同时,围绕开源软件带来的风险问题也给企业带来了巨大的挑战,漏洞获取商业数据、GPL传染而导致的商业秘密公开等问题为企业带来不可估量的损失。


对此,小安君对开源网安SCA资深产品经理进行了采访,为大家分享如何构建一套关键治理体系,防范和解决开源软件带来的伴生风险。以下为采访内容集锦,跟我一起来学习吧!





Q1

开源软件为何会成为应用开发的主流趋势呢?换句话说,开源软件有什么优势呢?   


开源技术的“利”,主要体现在从“场景、效率“两方面,有效地助力企业推进科技创新,加快数字科技与产业融合。


为企业项目落地提供丰富的技术选择性


当下,全球开源技术已经覆盖了当前主流的技术领域,基本满足了企业当下业务场景及创新的落地。截止2020年,Github托管仓库已超2亿,2020年新增仓库6000万个;全球开源项目数量持续攀升,连续三年增长率超40%。同时,在一些科技领域包括目前热门的人工智能、物联网、区块链、云计算等开源代码占比平均达到80%,开源技术已经成为企业不可或缺的重要组成部分。


(数据来源:《Github 2021年度报告》、《2020开源安全与风险分析报告》)


企业交付与响应效率提升成为可能


随着企业业务的不断扩大,客户的服务需求多变,需要一套灵活快速的方法以高效满足客户需求。而开源软件具有低成本、易获取、可修改的优势,可以大大缩短软件开发周期,让企业快速迭代与快速交付成为可能。




Q2

以上讲的是开源技术的优点,那么在使用过程中是否有伴随而来的风险呢?


开源技术在为企业带来业务迭代的便利与数字化转型新机遇的同时,不可避免地也会给业界带来各种伴生风险,具体来讲有以下几种:


漏洞安全风险


开源软件本质上也是由开发者进行开发的,随着时间的推移,会因为技术迭代落后及代码测试质量不充分而产生一些安全漏洞,比如去年的Log4J事件;其次由于开源软件开放的特性,攻击者往往更容易获取软件自身漏洞信息来实施攻击,所造成的影响也越大。


知识产权风险


对于开源软件来说,“开源”并不等于完全免费。在使用当前开源软件时,也同样需要遵守相关“合同要求”。在开源领域主要是围绕“开源许可证”进行,如果企业未按照相关要求进行落实,那么很容易引发知识产权风险。


供应链环节的安全风险


开源软件的供应链环节非常复杂,涉及到管理平台类(社区、基金会、遍布世界的开发者等),开发过程类(打包工具、持续集成工具、容器镜像工具等),在这些部分中任何一个环节出现问题都会导致软件供应链的安全风险。由于企业引入开源过程,往往很难发现此类问题,导致了开源软件供应链的风险。




Q3

作为企业,重点会聚焦在自身业务的发展与创新,可以讲讲如何更安全有效地防止与管控新技术带来的问题吗?


如何通过开源治理工作,推进开源技术在企业内部的有效应用是企业最关心的一个话题,在整个治理过程中,体系化落地至关重要。对此,就不得不介绍开源治理环节中的三个重要组成部分:制度、人、工具。在整个治理的体系中,这三者之间的联动决定了企业治理的最终效果。


制度是保障治理工作顺利开展的依据


制度的建立是有效落实治理工作的最佳保障,企业需要在组织内部构建相关的风险管理、组织机制、管理流程,明确相关技术选型、使用、运维、退出等标准体系,从而保障治理工作的“合法性”和“条理性”。


人是落实治理工作核心动力


在整个治理工作中,人是落实治理工作的核心动力。企业需要对组织内员工进行开源治理工作和思想的宣传和赋能,明确集体和个人的开源治理工作目标和范围,推动员工自发认可企业内部相关制度。


工具是提高治理效率的最佳方式


工具在开源治理过程中,是一个不可或缺的重要组成部分。通过使用工具可以提高员工落实治理工作的效率,助力制度与人更加有效地结合与落地。


通过搭建制度、人与工具之间的关系桥梁,明确三者之间的协同机制,对于企业开源治理的开展具有决定性的影响。




Q4

对于化解开源风险,企业在实施过程中具体应该怎么做呢?


成立专项开源治理小组


结合目前的企业落地实践来看,成立专项开源治理小组是必要的,目前国内外针对开源治理小组有个专项的部门:开源治理办公室,该部门主要对开源治理相关工作和效果负责,部门成员可以由以下角色组成:开源治理专家组成员、开源治理管理成员、安全部门成员、合规部成员、研发或者测试人员。该部门可以以虚拟的形式成立团队,为后续相关制度和管理流程的确定奠定基础。


建立流程与制度体系


设计相关开源流程和制度,贯通各个职能之间的工作内容,保障开源治理工作的有效落地。企业在组织内部构建相关的风险管理、组织机制、管理流程等,明确相关技术选型、使用、运维、退出等标准体系,同时结合企业现有研发管理规范和软件生命周期的特点,确保开源技术的合规使用和风险可控。


明确开源治理的目标和范围


和传统的项目管理理念类似,在开展治理过程中,必须明确相关开源治理范围和目标,并进行阶段性复盘总结,回顾治理过程的优点和不足。通过这种循序渐进的方式,提高人员对治理的认可度和成就感、让整个治理工作变得更加清晰透明。


引入开源治理工具-SCA


一款好的SCA工具可以让治理效果事半功倍,通过SCA工具可以快速分析软件成分,同时智能化分析开源组件的相关安全漏洞和合规问题。通过内部资产摸底、自动化集成、卡口规则设定、私服安全保障等机制,建立从设计阶段、研发阶段、持续集成阶段、测试阶段、交付运维、私服安全等全流程安全保障,帮助管理员和治理人员快速形成相关全局视角和治理效果决策。


建立企业内部软件资产物料清单SBOM


结合工具能力和整个制度的落地,企业可以快速构建开源资产的物料清单能力,通过平台搭建完整的企业资产知识图谱,确定企业内部资产关系,结合企业内部安全预警等机制,做好开源治理效果的持续监控和处理。





开源治理工作不是一蹴而就的,需要企业持之以恒,以治理目标为导向,逐步改善各个环节中的开源问题,同时结合治理现状,制定安全管控策略,循序提高企业开源安全,推动开源治理的最佳落地。