现代应用程序中近 80% 的代码都来自开源项目,并受到各种开源许可证的保护。如果不能完全履行每个许可证的义务,则会使您自己的 IP 面临风险。
宽松式
被视为低风险的宽松式许可证包含关于如何修改或重新分发软件的最低要求或限制。示例包括 MIT 许可证和 Apache 许可证。
半宽松式
此类许可证通常被称为有限、弱限制型或限制型,被认为是中等风险许可证,因为如果您修改代码,则必须在同一许可证下发布所修改的部分(而不是整个应用程序)。示例包括 Mozilla 和 Eclipse 公共许可证。
限制式
限制式许可证具有很大的法律风险。如果使用带有此类许可证的组件,您就可能在法律上有义务公开发布您的整个应用程序代码。例如 GNU GPL 和 GNU LGPL。
允许 | 要求 | 禁止 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
商业用途 | 分发 | 修改 | 专利使用 | 私人使用 | 披露来源 | 许可和版权声明 | 相同许可证 | 状态变更 | 责任 | 质保 | 商标使用 | |
GNU AGPLv3 | ||||||||||||
GNU GPLv3 | ||||||||||||
GNU LGPLv3 | ||||||||||||
Mozilla 公共许可证 2.0 | ||||||||||||
Apache 许可证 2.0 | ||||||||||||
MIT 许可证 | ||||||||||||
Boost 软件许可证 1.0 | ||||||||||||
Unlicense 零约束许可证 |
GitHub Copilot 和 ChatGPT 等 AI 编码助手都接受过开源项目训练。这些工具提供不包括许可证上下文的源代码,从而使您面临 IP 侵权风险。
Black Duck 软件组成分析 (SCA) 的代码片段分析可以扫描由开发人员或 AI 编码工具编写的源代码,以识别开源代码的部分片段,将其与源项目匹配,并提供许可证信息和合规指导。
对于识别的每个开源依赖项,Black Duck SCA 都会显示正在使用的确切许可证。这包括明确声明的许可、子许可和嵌入式许可。
与每个许可证相关的要求和限制均以简化视图展示,同时还提供完整的许可证文本和版权信息。
当违反许可证策略或项目许可证与依赖项许可证之间存在冲突时,将发出告警。
自定义策略管理定义了允许使用哪些许可证,发生违规时应触发哪些工作流。
几乎每个开源许可证都需要notice文件,它们是为项目自动或手动生成的,并可通过用户界面和 API 使用。
通过开源和第三方软件审计,全面了解开源许可证义务。Black Duck® 审计是业内最值得信赖的开源尽职调查解决方案,它将领先的 SCA 能力与专业的开源审计服务相结合,提供完整准确的软件物料清单,帮助您自信地做出明智的决策。