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通过其尖端的开源挖掘网络实现了这一令人印象深刻的壮举,该网络完全无人运行,并在新软件版本和组件发布时实时跟踪它们。
若想了解更多关于SCANOSS的细节,可以参阅如下官方文档:
- ScanOSS_Whitepaper_StandardizingOpenSourceInventorying_2021.pdf (访问密码: 6277,共 10 页)
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
推荐阅读:
- 安全工具 | Burp Suite专业版本安装配置及使用指导
- 安全工具 | Nessus漏洞扫描工具安装、使用技巧及注意事项
- 安全工具 | AWVS漏洞扫描工具安装、使用技巧及注意事项(附工具下载链接)
- 「 CodeQL从入门到精通系列 」02.CodeQL安装指导及使用方式
- 如何通过沉浸式翻译插件来高效阅读英文技术网站、英文文献
- MacOS环境下Kali Linux安装及使用指导
- Mac环境下Parallels Desktop 19的安装和使用