安全工具 | SCA工具ScanOSS介绍、安装及使用技巧

发布于:2024-05-20 ⋅ 阅读:(190) ⋅ 点赞:(0)

SCANOSS扫描报告界面

1. 概览

SCANOSS是第一个价格合理、完全开源的OSS组件和情报平台,专门为现代DevSecOps和供应链构建,使他们能够为DevSecOps团队及其供应链合作伙伴提供更大的许可证、安全性、质量和来源可见性和控制。通过让开发人员能够专注于编写他们和他们的团队完全信任的优秀、安全和兼容的代码,应用程序可以更早地完成,其质量始终更高,开发成本也大大降低。

开源版本知识库一般按季度更新,如果企业或组织想获取更快的更新,需要购买SCANOSS商业版本。

2. 关键特性

2.1. 识别已声明和未声明的OSS组件

SCANOSS生成软件材料清单(SBOM),提供有关软件应用程序中使用的开源软件组件的全面准确信息,包括Al生成的代码。它通过分析应用程序的源代码并创建所有使用的OSS组件的清单来实现这一点,包括已声明和未声明的组件:

  • 声明的组件是那些在源代码中明确列出的组件;
  • 而未声明的组件则是那些在代码中使用但未列出的组件。

通过使用代码指纹识别和机器学习等先进技术,SCANOSS可以识别这些未声明的组件,从而更全面地了解软件供应链,并降低OSS漏洞未被发现的风险。

2.2. 无与伦比的OSS风险可见性

开源软件(OSS)是现代软件开发不可或缺的一部分,它经常被用来加快开发速度和降低成本。然而,如果管理不当,开放源码软件也可能带来重大风险。通过SCANOSS,DevSecOps团队可以全面了解正在使用的开源组件,包括其许可证、漏洞、交易合规性和其他风险。

通过利用这些情报,团队可以对其软件供应链做出明智的决策,在开发过程的早期识别潜在风险,并采取行动缓解这些风险。这种方法允许更安全、更合规的软件开发,降低了代价高昂且具有破坏性的安全漏洞的可能性。

2.3. 连续组件识别和SBOM

2.4. 异常丰富的开源知识库

SCANOSS拥有市场上最大的开源知识库,拥有1.88亿个开源软件URL、1000亿个文件和超过3万亿行代码。这个广泛的数据库允许检测已声明和未声明的开源组件。SCANOSS通过其尖端的开源挖掘网络实现了这一令人印象深刻的壮举,该网络完全无人运行,并在新软件版本和组件发布时实时跟踪它们。

3. 安装与使用

3.1. 安装使用:针对个人

如果仅是个人使用SCANOSS,最简单的方式是下载SBOM Workbench客户端,通过UI方式创建SCA扫描任务。

3.1.1. 安装

进行SCANOSS下载界面 https://www.softwaretransparency.org/download,根据自己的系统类型下载相应安装包。

3.1.2. 使用

SBOM Workbench使用非常简单,直接新建工程,导入待分析的代码目录或文件即可执行扫描。

扫描完成后可以看到扫描报告,扫描报告中包含了匹配的开源组件,许可证信息、漏洞信息

3.2. 安装使用:针对企业

企业在使用SCANOSS时要求将其集成到CI/CD流水线中,所以建议通过Docker镜像方式安装,安装完成后可以通过镜像方式公开调用CLI。

3.2.1. 安装

为了避免安装一堆依赖软件,破坏当前电脑的开发环境,我们采用docker镜像方式安装SCANOSS。可以通过如下命令拉取ScanOSS镜像:

docker pull ghcr.io/scanoss/scanoss-py:latest

3.2.2. 使用

Python CLI在映像中可公开调用,可以使用以下命令运行:

docker run -it ghcr.io/scanoss/scanoss-py

要扫描当前文件夹,请运行:

docker run -it -v "$(pwd)":"/scanoss" ghcr.io/scanoss/scanoss-py scan .

要将结果输出到文件运行,请执行以下操作(推荐):

docker run -it -v "$(pwd)":"/scanoss" ghcr.io/scanoss/scanoss-py scan -o results.json .

要将输出重定向到文件运行,请执行以下操作:

docker run -i -v "$(pwd)":"/scanoss" ghcr.io/scanoss/scanoss-py scan . > output.json

要扫描相关性并将结果输出到文件运行,请执行以下操作:

docker run -it -v "$(pwd)":"/scanoss" ghcr.io/scanoss/scanoss-py scan -D -o results.json .

执行完扫描后可以在代码目录中找到新生成的结果文件results.json


结果文件中包含了目标代码的所有匹配的开源组件详情,包含了匹配的组件名称、版本及匹配的相似度等信息。

4. 参考

[1] https://www.scanoss.com/
[2] https://www.softwaretransparency.org/osskb
[3] https://github.com/scanoss


推荐阅读:

在这里插入图片描述