多样性开源监测

Synopsys 的 Black Duck 多样的开源扫描技术确保您最全面准确地了解自己应用程序和容器中的开源。我们的开源监测结合了构建过程监控和文件系统扫描,以跟踪所有在用的开源,包括大多数解决方案遗漏的组件。

构建过程监控

跟踪在包清单中明确声明的组件和在构建期间动态解析的其他依赖项

文件系统扫描

分析文件和目录元数据以及 SHA 文件签名“代码指纹”,以发现未声明、已修改和部分开源的组件

代码片段匹配

识别代码中嵌入的开源的“代码片段”,以揭示暗含的版权和许可义务

为什么只有包声明是不够的

其他解决方案大多仅是依赖包管理器声明来识别开源组件。但是这些解决方案遗漏了许多可能出现在代码中的开源,包括:

  • 开发人员添加到代码但不在包清单中声明的开源
  • 不使用包管理器的 C 和 C ++ 等语言中的开源
  • 容器内置的不使用包管理器的开源

此外,如果包声明未指定包含在构建中的单个版本,则这些解决方案通常会为传递性依赖关系和组件提供不准确的结果。

通过将文件系统信息与构建过程监视相结合,Black Duck 针对包管理器未跟踪的开源组件,以及动态和传递依赖性的组件和版本验证,提供可见性。

便于集成到 CI/CD 流水线

Black Duck Detect 是我们的开源 Discovery 客户端,可以轻松地将开源监测集成到现有的开发工具和流程中。它会自动识别您正在使用的语言和包管理器,为 Discovery 配置适当的集成,并找到可分析代码的最有效方法。

 

深入了解 Black Duck 集成