网站首页 > 产业研究 >
新思科技:采用开源审计以降低许可证冲突风险
发布时间:2023-04-19 22:11:52 · 赵法彬

代码审计是可以用来验证代码的成熟度、可信性和可维护性等。在企业的软件安全计划,尤其是在收购过程的尽职调查或内部报告时,采用审计可以帮助企业获得开源、法务、安全以及质量风险的评估,以避免对软件资产的价值产生重大负面影响。近年来,开源审计的关注度持续攀升。

QQ截图20230419221704

开源代码已经深深扎根在现代软件开发之中,甚至代码拥有者通常都不知道其软件中包含哪些开源组件。因此,开源审计的重要性日益凸显。其中,开源许可证冲突问题受到越来越多的关注。新思科技指出, 凭借开源审计,企业可以获得开源和第三方软件的完整、准确的软件物料清单 (SBOM)。这可以为开发人员提供关于许可证、漏洞和各种组件活力的信息分析依据。


新思科技Black Duck审计服务团队分析了对并购交易中涉及的商业和专有代码库的 1,700 多项审计结果,并发布了《2023年开源安全和风险分析》报告(OSSRA)。被审计的代码库中有96%含有开源代码,54%的代码库包含许可证冲突。

QQ截图20230419221729

新思科技中国区软件应用安全技术总监付红勋说:“除了建立全面的SBOM之外,Black Duck审计服务团队还负责识别许可证并确定组件的优先级,以进行法律审查。法律审查不用投入太多时间在常见的标准宽松开源许可证上,许可证冲突则需要优先审查。然而,许可证冲突并不是唯一需要法律审查的项目,企业还需要研究开源许可证及变体版本的细则。”


自定义开源许可证及变体版本


在新思科技审计的大约30%的代码库(以及70%的并购交易)中,发现代码具有一次性许可证、标准许可证的自定义变体或根本没有许可证。在本可以识别组件的来源——存储库或网站——但在该位置或代码中却找不到任何许可或使用条款时,这些组件将被标记为“未经许可”。


标准许可证的变体可能会很棘手,因为可能被认为是MIT或BSD许可证等。但仔细检查后,通常会发现开发人员自作主张,在标准中加入了自己的想法。


JSON 许可证


最常见的变体是JSON许可证,即MIT许可证添加上“该款软件严禁用于恶意用途,仅限用于善意用途”的注释。由于此类条款含糊不清,Apache软件基金会暂停使用JSON许可的代码。


JSON许可证甚至还有变体。在此变体中,许可证中添加了以下注释:“如果有人以书面形式通知您没有遵守行为规范,您需要在30天内采取相应行动以继续使用该许可证;否则您的许可证将被立即终止。”


Commons Clause许可证变体


Commons Clause 是一种变体,旨在修改标准开源许可证以限制软件的商业用途。摘录内容如下:“……许可证并未授予您销售软件的权利。”乍看之下,在 Apache 许可证等许可范围内的软件可能会因本条款而变得完全无法使用。


专有和商业许可证


代码库包含来自第三方商业软件公司的内容并不罕见。开源审计经常发现来自Adobe、Microsoft、Oracle和其他公司的版权。作为软件尽职调查的一部分,收购方有必要检查是否有适当的许可证并已披露。即使许可是正当的,律师仍将希望确保控制权的变更不会在未来引入任何风险。


双重许可


越来越多的公司正在使用双重许可,这是一种巧妙的商业模式。根据开源许可证向开发人员提供软件,但同时该许可证包含使其难以用于商业目的的义务。


AGPL 许可证经常出现在这种情况下:大多数公司不能在其产品中使用 AGPL 许可的代码 (还有其它许可证更明确地禁止没有商业许可证的商业使用)。如果开发人员使用根据 AGPL 许可的代码,公司需要与供应商就相同的代码签订商业许可证。


当开源审计发现双重许可软件时,工作人员会突出显示这点,以便收购方可以确保目标公司已获得适当许可。


了解代码中的内容


要全面了解代码是否已获得适当许可,需要准确且完整的材料清单,以及分析预期用途与所包含的开源许可之间可能存在的冲突。还有其它超出标准开源的许可问题,需要更深入的研究和更多的法律审查。重要的是,作为软件尽职调查的一部分,开源审计可以追踪到许可证信息,以方便专业的知识产权律师评估其客户特定情况下的风险。


供稿:新思科技

本站部分文章来自互联网,文章版权归原作者所有。如有疑问请联系QQ:1633373438