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

“企业应该把开源合规和安全治理作为自身经营和合规的必要措施,而不是仅仅因为外部的要求或领导的指示。”
—中兴通讯开源合规与安全治理总监项曙明先生
2023年3月22日,由上海安势信息技术有限公司与中国信息通信研究院联合出品的「开源风险治理实践峰会」在北京隆重召开。会上,中兴通讯开源合规与安全治理总监项曙明先生发表了题为《企业开源安全风险管控》的演讲,他分享了中兴通讯在开源方面的经验和做法,强调了企业进行开源合规与安全治理应该具有内驱力。
在演讲中,项曙明先生提到了企业在开源合规与安全治理方面的挑战和需求。首先,产品的安全和可靠性是企业最重要的考虑因素之一。如何证明产品没有漏洞和后门是一大难题。其次,开源软件使用许可证的合规性也是企业面临的一个难题。比如,欧盟的GDPR生效后,很多企业因为违反隐私条款而停止运营,甚至面临高达4%企业销售额的重罚。国内的个人信息保护法也规定了企业面临高达5%的罚款金额。因此,开源合规与安全治理已成为企业经营生存之道。
项曙明先生指出,企业开源合规与安全治理的内驱力是企业经营和合规的需要。但我们往往看到的情况是,政府罚款之后企业才会认识到开源合规与安全治理的重要性。企业应该转变这种思维模式,把开源合规和安全治理作为自身经营和合规的必要措施,而不是仅仅因为外部的要求或领导的指示。
项曙明先生介绍了中国企业在针对外部环境的变换时,会面临的四大风险:

01
知识产权风险
随着开源软件的广泛使用,许可证的合规性问题越来越受到重视。但是,面对2800多个许可证以及800多个由and和or进行组合的许可证,如何保证开源软件的合规性?
首先,许可证的种类和组合非常多,企业需要对这些许可证进行研究和理解。在许可证的选择和使用方面,企业需要根据自身业务的需求和特点,选择适合自己的许可证。
其次,企业需要注意许可证的规定。一些许可证明确规定了开源软件的使用范围和商业使用的限制,因此企业在使用开源软件时需要遵守这些规定。例如,GPL许可证允许商业使用,但要求在使用时同时开源自己的代码。
-
GPL许可证的主要要求是,如果使用了GPL许可证的软件或代码,则其衍生作品也必须使用GPL许可证,并将其源代码公开。这意味着,如果将GPL许可证的代码包含在自己的软件中,那么软件也必须遵循GPL许可证,这可能会限制公司的商业利益。
-
如果既想使用GPL许可证的软件或代码,但同时又想保护自己的商业利益,可以使用一些技术手段来避免在商业软件中包含GPL许可证的代码。例如,可以将GPL许可证的代码放在一个独立的模块中,并将该模块的源代码公开,但不将其与商业软件整合在一起。这样可以避免商业软件受到GPL许可证的影响,同时仍然能够使用GPL许可证的代码。另外,也可以考虑使用其他类型的开源许可证,例如MIT许可证或Apache许可证,这些许可证对商业利益的限制较少,但这些许可证仍然要求在软件中包含源代码和版权声明。
-
加入Open Invention Network (OIN) 是一个选择,它可以提供一种方式来保护企业的专利免受针对开源技术的侵权指控。但是,加入OIN也需要对企业的专利进行评估和分析,以确保这些专利符合OIN的要求并且可以放入OIN的专利池中。此外,加入OIN也意味着企业必须遵守OIN的条款和条件,这可能需要进行一些变更或调整。
再次,企业需要建立许可证的黑、白、灰名机制。黑名单表示坚决不准使用的许可证,灰名单表示存在风险需要研究后才能使用的许可证,白名单表示明确允许使用的许可证。企业可以根据许可证的规定和自身业务需求,建立自己的黑、白、灰名单。
02
供应链风险
出口管制
出口型公司会面临出口管制方面的压力,特别是来自美国出口管制条例(Export Administration Regulations,EAR),我国虽然在大力建设IT基础设施,但不可避免的,在一些核心或底层技术中依然要依赖西方,尤其是出口型企业,必须要清楚地了解使用的那些开源软件会受到EAR管辖,这样才能更好的应对西方的长臂管辖。
技术垄断、停服、无人维护
在使用某种技术或软件时,如果该技术或软件的提供者出于某些原因停止了其提供,那么就可能会对企业的业务运营产生不良影响。企业还可能会使用过时版本的开源组件,或者使用已经没有人维护的开源软件。他举例,有很多公司的代码库中不乏20年前的开源组件版本,这些开源组件可能甚至都找不到开源社区。其中所涉及的安全与合规问题对企业来说是一个巨大的挑战。
漏洞不公开
美国的漏洞不公开也是一种潜在的风险。当一个漏洞被发现时,如果相关方不公开漏洞信息,那么黑客就有可能利用该漏洞进行攻击。这会给企业带来损失,特别是对那些依赖技术的企业来说。
难以获得源码
很多开源软件是通过依赖/制品的方式引入到我们的软件系统中的,而这些依赖库又可能会包含漏洞或其他安全问题,从而导致整个软件系统存在潜在的安全风险。
03
安全风险
有些开源社区中的开源软件,可能有100多个不同的URL分发地址,如果企业的开发人员不能进行守护,很有可能的情况是,有些恶意木马会被植入,最后导致数据泄露等问题,并且如果漏洞跟踪不及时/不完整,势必会给企业带来很大的损失。我们往往看到的情况是,企业很难通过自己的力量广泛且及时的跟踪漏洞。
04
技术演进复杂性风险
随着云原生和微服务的普及,软件产品的分发变得更加复杂。现在的软件包括了许多依赖项,这些依赖项可能不在代码的SBOM表中显示,但却会影响产品的运行环境和稳定性。这给软件开发和分发带来了新的挑战,也带来了新的风险。现代开发的分发场景更加复杂,与之前的仅仅发布一个可执行文件差异巨大,系统环境、底层的依赖一起分发势必会引入很多依赖项,这些依赖项通常有自己的许可证限制,对企业来说都是巨大的风险。
近些年,欧盟网络弹性法案(EU Cyber Resilience Act)和英国国家网络安全中心(NCSC)等针对供应商的评估要求的不断出现,应该给厂商敲响警钟,对开源安全的关注刻不容缓。

欧盟弹性法案强调了针对所有具有数字元素的产品(其预期和合理可预见的用途包括与设备或网络的直接或间接逻辑或物理数据连接),企业需要提供完整的SBOM和软件开发过程的文件,以便欧盟的第三方政府机构进行审核和备案。这样做的目的是为了保障软件供应链安全和数据保护,以防止恶意软件和其他安全漏洞的出现。如果企业需要在欧盟市场销售产品,那么就必须遵守这些法规,提交相关材料并接受审核,来确保产品符合安全标准,并减少可能出现的责任和风险。
针对以上的四大风险,企业该如何依托工具、流程和组织进行治理?安势信息会在后续的文章中与大家分享,敬请期待!