(1) 开源组件级别开源组成分析工具
这类开源组成分析工具主要是对开源组件进行检测,代表工具有Black Duck、CAST Highlight和Sonatype Nexus。Black Duck是一家美国公司推出的同名软件产品,于2002年上市,主要提供全面的软件组件分析(SCA)解决方案,用于管理在应用程序和容器中使用开源和第三方代码所带来的安全、质量和许可证合规性风险。Black Duck可以集成到整个应用程序生命周期,也可以作为单独一款开源软件组成分析工具来使用;CAST Highlight是一家法国公司于2017年推出的开源软件组成分析工具,提供软件组件分析解决方案,其在分析开源软件的安全、许可证的风险之外还有单独一项功能是用于分析代码质量的,专注于分析编写代码的规范、语句等质量问题;Sonatype Nexus是2008年由以色列开发的一款开源组成分析工具,该工具帮助软件开发团队安全使用开源,分析开源项目中的成分,可以使开发团队更快地发现并自动控制风险,该工具做到了自动化检测,不需要人工干预,并且关注整个开发运维流程。
(2) 开源文件及代码片段级别开源组成分析工具
这类开源组成分析工具主要是对开源文件或代码片段进行检测,代表工具有Fossid、Fossology。Fossid于2016年在瑞典诞生,区别于前三款工具,Fossid对开源代码片段进行比对和识别,可以帮助展示开源软件中的开源许可证以及相关的合规性,也能够发现并展示出开源软件存在的安全漏洞。Fossid拥有一个知识库,包含了超过3700万的开源项目、超过70亿的代码文件,设计安全漏洞的开源项目超过8000个;Fossology是2017年托管在Linux基金会安全与合规9个项目下的一个子项目,是一个开源的许可证扫描工具。用户可上传单个文件或者整个软件包作为一个工具包,通过自定义规则进行软件扫描,进行开源许可证识别,可用在对软件的开源许可证清点上。
国内工具:
清源SCA(CleanSource SCA)
国外工具:
Black Duck/Fossid/Fossology