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

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通过其尖端的开源挖掘网络实现了这一令人印象深刻的壮举,该网络完全无人运行,并在新软件版本和组件发布时实时跟踪它们。

若想了解更多关于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


推荐阅读:

在这里插入图片描述

fortify扫描工具的说明手册,对实际工作有指导作用,讲的比较清晰。 Fortify SCA分析原理 Front-End 3rd party IDE Java Pug-In C/C++ MicrOsoL NET IBM.eclipse Audit workbench PLSQL XML Analysis Engine Semantic fdi/ fpr Gobal Data flow N Control Flow Configuration Structural Fortify Manager NST Rules builder Custom Pre-Packaged FORTIFY Fortify SCA分析过程 SCA Engine Intermediate Scan phase fles Using Analyzers Tt transation (NST) .Rules Analysis Result File -b build id 阶段一:转换阶段( Translation) 阶段二:分析阶段(Scan o sourceanalyzer-b <build-id>-clean o sourceanalyzer -b <build-id> sourceanalyzer-b <build-id> -Xmx1250m-scan-f results fpr FORTIFY Fortify SCA扫描的工作 Visual studio Eclipse, IBM RAD 面 Audit Workbench Java,. Net Fortify Global Build Tool C, C/C++ Analysis JSP Touchless Build Fortify PL/SQL IDE Intermediate FPR TSOL Model Cold Command Line Interface Fusion 运己 Fortify I m Manager Secure Coding Rules Fortify Customized Rules Rules FORTIFY Fortify SCA扫描的五种方式 插件方式: Plug-In(Eclipse, vs WsAd,rad) 命令行方式 Command line ●扫描目录方式: Audit workbench scan Folder 与其他工具集成: Scan with ANt, Makefile ●编译监控器方式: Fortify SCA Build Monitor FORTIFY Fortify SCA扫描的四个步骤 Fortify SCA扫描总共可以分为四个步骤: ●1. Clean:清除阶段: sourceanalyzer -b proName -clean 2. Translation:转换阶段 3.ShoW-fe:查看阶段 sourceanalyzer -b proName -show-files 4.scan:扫描阶段 sourceanalyzer-b proName -Xmx1250m -scan -f proName. fpr FORTIFY Fortify SCA命令行参数说明 查看SCA扫描命令及参数→> sourceanalyzer ca\ C:\VIRDoS\syste32\cd. exe 川 icrosoft Windows XP[版不5.1268g Kc版权所有1985-2 061 Microsoft Gorp :Documents and settings anming >sourceanalyzer --he lp Fortify Source Code Analyze4..日.回153 Copyright (c>2003-2006 Fortify Software Usage Bu⊥1d Java: sourceanalyzer -b <buildid> <files> sourceanalyzer -b <buildid> javac <compiler opts> <files> G/C++: sourceanalyzer -b <buildid> <compiler> <compiler opts> <files> NET: sourceanalyzer -b <buildin> <exe file> scan〓 sourceanalyzer -b <buildid> -scan -f results. fpr Output opt ions -format <fmt> Controls the output format. Valid options are auto, fpr. fvdl, and text. Default is auto for which type will be determined automatically based on file extension 一£<fi1e> The file to which results are written Default is stdout build-pro ject <name> The name of the project being scanned. Will be inc luded in the output bu⊥1d-1abe1<labe1> The1abe1 of the project being scanned.W主工1 be inc luded in the output build-version <version> The version of the project being scanned. wil1RTIFY. e uale OFTWARE Fortify SCA转换源代码 转换Java代码 Java程序命令行语法 JaVa命令行语法例子 转换J2EE应用程序 使用 Find bugs 转换NET源代码 o. NET Versions 1.1 and 2.0 Visual studio. net version 2003 o Visual studio.net version 2005 转换CC++代码 ●转换 PL/SQLITSQL FORTIFY SCA转换JAVA源代码命令 sourceanalyzer -b <build-id> -cp <classpath> <file-list> ●附注参数:-Xmx;- encoding-jdk;- appserver- appserver- veron -appserver-home Table 1: File specifiers File specifier Description darna盈e All files found under the named directory or any subdirectories dx己盈e/古古 Any file named Example. java found under the named Example java directory or any subdirectories dx22盈e/,ava Any file with the extension. j ava found in the named directory dxna盈e吉/古,java Any file wth the extension j ava found under the named directory or any subdirectories d工22a盈e/方/吉 All files found under the named directory or ary subdirectories (same as dirname FORTIFY
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈安全

点赞收藏也是赞赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值