大咖分享|《企业开源安全风险管控》(下)

 

中兴通讯开源合规与安全治理总监项曙明在安势信息和信通院联合举办的「企业开源风险治理实践」峰会·北京站中发表了《企业开源安全风险管控》主题演讲,他分享了中兴通讯在开源方面的经验和做法,强调了企业进行开源合规与安全治理应该具有内驱力。

 

大咖分享|《企业开源安全风险管控》(上),我们介绍了开源软件面临的风险,企业面对这些复杂的风险如何进行管控?本文将为大家逐一梳理。

 

管好开源软件

 

管好企业的开源软件分两点一线,首先是管好开源软件,把企业引入的开源软件选型做好;其次是管好产品版本,然后在软件的全生命周期中把开源软件和产品版本相互匹配,在企业的整个的生命周期过程中,把合规和安全的问题能够有效的衔接起来。

 

 

构建开源安全管控机制,主要有以下四个层次,企业可以根据自身情况进行考虑:

 

01

 

构建企业级开源软件库

 

对于一个企业而言,管理和使用开源软件是一个复杂的问题。在开源软件库建设方面,需要考虑以下几点:

 

A. 建立开源组件库,将所有的存量开源组件都入库。

B. 寻找合适的商业化软件组件分析(SCA)工具,全面正确的识别开源以及它的使用方式。

C. 建立一个有效的开源引入机制,包括对开源社区的了解和对开发人员的培训,以确保开源软件的正确使用。

D. 建立适合企业的守护机制和拉取方式,确保所有使用的开源软件都经过企业的确认和授权。

E. 对基础漏洞库进行建设,以便企业及时了解和处理基础漏洞。

02

 

开源软件库的治理

 

A. 除了在公共开源社区里面可以公开拉取的那些代码以外,还有很多的第三方的软件,它存在在我们的代码里面,企业也要管理起来。

B. 编程语言中有很多的变异构建工具里面它有很多的依赖,这些依赖有的仅是测试用的,有的是在我们使用的过程中必要的。因此,我们需要对这些依赖进行管理,以确保它们的安全性和可靠性。

C. 在企业中,我们需要根据不同的包管理工具构建制品库的构建环境,以确保这些依赖的安全性。另外,基础镜像也需要进行安全治理,以确保整个系统的安全性。

D. 建设企业开源漏洞库和开源可守护性。

03

 

开源软件库+建设

 

A. 企业需要建立全生命周期的管理工具,以管理开源软件和自己研发的产品版本。在一定的生命周期内,我们可以推荐开源软件给项目组使用,但是达到一定门槛时,需要进行合规和安全的评估,以确保其安全性和可靠性。在开源选型方面,我们需要考虑多方面因素,例如开源社区的信誉、软件的功能和质量、软件的可维护性等。一般来讲,企业应以4年之内的开源组件来进行划分。

B. 针对开源软件的许可证治理、EAR治理。

C. “原生”官网治理、 软件分发周期治理、开源软件同类治理,比如同一个项目会涉及十几个微服务,由多个团队研发,同样一个开源组件,来源、版本都不同,会对开源组件的安全和许可证带来很大挑战。

04

 

可信开源软件库的建设

 

给开源组件库中的开源组件进行分类、打标签,比如哪些属于原生的、哪些属于可信的等等。这其中涉及如下几个方面:

•开源软件守护机制

•内源开发环境建设

•版本可信化管理

•可信编译构建镜像

 

管控好产品版本

 

管好产品版本涉及四个层次:识别产品版本成分、进行基础开源治理、进行高效能开源治理、进行可信开源治理。

 

 

01

 

基础版—识别产品版本成分

 

•完整、正确识别所用开源软件及其使用方式。

•识别所用的第三方软件(包括外包输入的软件、免费的软件)。

•所有所用的开源/第三方必须进入开源库,使得进行开源治理的时候做到上下可追踪。

•输出SBOM,其中涉及选择合适的SCA工具帮助企业进行开源治理(具备代码片段、加密算法等识别能力;在成分分析方面,具备能够体现开源软件在哪条分支、哪个制品引用、通过什么方式的能力)。

02

 

进阶版—基础开源治理

 

进行基础的开源治理,包括如下几个方面,企业可以输出针对不同场景的开源治理方案,经由律师审核之后变成企业开源治理的指导书。

•许可证治理

•EAR治理

•开源安全治理:片段使用治理、安全守护治理

•版本分发的合规

•安全治理

03

 

高级版—高效能开源治理

 

•官网引用:一个开源组件可能有多个来源,如何确定哪个组件是“官网”组件。

•官网同源:通过SCA工具和OpenSSF类的组织进行最佳实践的建设。

•“最新”版本同源:4年内的版本同源。

•开源使用方式治理。

•安全快速响应方式治理、漏洞守护:对于已经分发的产品,随时都有可能出现新的安全漏洞,比如GDPR之类的法规规定,如果导致了个人信息的泄露,运营的公司、厂家都要受到牵连。

04

 

终极版—可信开源治理

 

Google提供了SLSA 1-4级针对可信软件供应链的框架,企业要尽量减少使用的开源软件数量,建立多种形态的开源软件守护机制:

•可信同源构建

•可信同源分发

•可信SBOM输出

 

构建管控保证机制

 

01

 

机制建设

 

•获得高层领导关注和支持。

•OSPO建设、多领域协同。

•引入切实有效开源引入到消亡的全生命周期模型。

•输出与组织研发流程匹配的开源软件合规&安全管理规范:要固化流程才能不让这套机制打折扣。

•构建全公司一体化的管控能力&机制:开源软件治理“你中有我”、“我中有你”,很难孤立的去完成。

02

 

管理工具建设

 

•能完整、正确识别开源软件及其使用方式,有助于进行许可证、EAR合规和安全管控的 SCA工具。

•开源软件全生命周期管理工具。

•与产品生产和运维结合的策略设置、自动化提醒、策略管控和跟踪的工具流建设:可以及时提示项目组所选开源组件陈旧、包含潜在漏洞、涉及EAR的风险等等,设立分发的门槛

03

 

开源治理工程能力建设

 

•“开源入库模型”和“项目开源选择模型”建设及工具落地:通过自动化的模型选择,分数达到标准的开源软件才可以入库。

•组织级的“开源许可证解读及合规使用指导”建设。

•有效的产品/项目管理、上下追踪和可信SBOM能力建设,最终目标是可以等效重构。

•组织级漏洞库建设,切合组织商业环境的安全漏洞等级模型建设:结合CVSS分数和企业内部场景进行重新分级。

04

 

驱动力和DevSecOps

 

•KPI机制驱动

•度量展示的内驱力建设

•等效重构可信SBOM机制建设

•组织级编程语言、包管理工具、 编译构建环境的统一建设

•内源机制和环境建设

•可信同源构建

开源有效守护能力和机制建设

 

如何应对企业的内外部环境?

 

在企业运营中,外部环境和内部环境都是非常重要的考虑因素。外部环境包括法规环境和标准要求,而内部环境包括法务、安全和技术管理。如何应对这些因素呢?

 

首先,企业应该收集外部的法规和标准要求,并通过内部构建管控能力,将这些外部要求与企业的产品经营相适应。此外,企业还应当关注开源软件漏洞的问题。许多代码中使用的开源软件都存在漏洞,因此,企业需要对这些漏洞进行分类分级,并关闭关键的漏洞。

 

其次,企业应该构建一套有效的流程,将外部法规和标准要求融入到企业的研发流程中。例如,在研发流程的立项、设计、测试开发、发布、交付和运维等节点中,都应当考虑法规和标准要求,以确保企业的产品经营符合要求。

 

最后,企业应该配备好工具,以帮助应对外部和内部环境的挑战。例如,企业可以使用SCA工具来识别开源软件中的漏洞,以及使用CVE的漏洞库来比对漏洞,并采用适合企业的分级模型来进行漏洞分级和关闭关键漏洞。

 

总之,企业应该认真关注外部和内部环境的变化,并采取相应的措施来应对这些变化。通过构建有效的流程和配备好的工具,企业可以更好地应对外部和内部环境的挑战,从而实现更好的产品经营。

 

项曙明总监的演讲为企业开源合规与安全治理提供了有益的思路和实践经验。企业应该认识到开源合规与安全治理的内驱力,积极采取措施,提高开源软件的安全性和可靠性,为企业的发展和合规奠定基础。

 

 

行业资讯

专业的开源安全与合规治理供应商