使用 JFrog CLI 和 Xray 扫描源代码中的依赖项

应尽早发现安全漏洞和许可证违规,并且在SDLC中越早越好。

作为安全“左移”的一部分,JFrog CLI 和 Xray 现在允许使用简单的命令直接从源码中按需扫描依赖项。

此增强功能可确保开发团队仅将扫描过的和无违规的二进制文件上传到 Artifactory,从而帮助组织遵守其安全策略和标准。

源代码中的依赖项扫描作为 JFrog CLI 新 v2 版本的一部分提供,源代码扫描支持Maven、Gradle 和 npm 包。Go 和 Pip 包的支持即将推出!

你知道吗?JFrog CLI是一个灵活且智能的客户端,可与 Artifactory、Xray、Distribution 和 Mission Control 配合使用,以可读和可靠的方式为您的自动化脚本提供强大的功能。

在你开始之前,你需要:

已安装 JFrog CLI(版本 2.1.0 或更高版本)。使用您选择的安装程序获取 JFrog CLI。

安装JFrog Artifactory 和 Xray(Xray 版本 3.29.0 或以上)

Maven、Gradlenpm安装,对应于扫描的源。


扫描步骤

可以通过以下两种方式之一进行扫描。在部署阶段之前,直接对源进行单独扫描,或作为构建的一部分进行扫描。在这两种情况下,我们都将从在 JFrog CLI 上配置您的 JFrog 平台开始。

使用 JFrog CLI 配置服务器

在您机器上的任何位置运行$ jfrog c add以配置您的平台详细信息。

运行$ jfrog rt ping 以验证您的连接。

选项 1:运行扫描命令

按需扫描源代码,而不是作为构建的一部分。从包含源文件的顶级目录运行审计命令。每个受支持的包管理器都有自己的审计命令。例如,要扫描源代码中的 Maven 项目并报告所有漏洞:

$ jfrog xr audit-mvn

Gradle 和 npm 对应的命令是:

$ jfrog xr audit-gradle 或 $ jfrog xr audit-npm。

默认情况下,扫描会返回在所有依赖项中找到的漏洞数据。要使用特定的Watch配置、存储库路径或项目检索违规数据,您需要使用以下命令选项之一:

–watches – 后跟逗号分隔的 Xray watch列表

–repo-path – 后跟目标 repo 路径

–project – 后跟一个项目键

请注意,如果您使用这些命令选项之一运行扫描,则扫描结果将仅显示违规数据而不显示漏洞数据。要查看漏洞数据,请在没有这些选项的情况下运行扫描。

默认情况下,结果将以表格格式显示。

出于自动化目的,可以以 JSON 格式返回结果。要修改格式类型,请提供格式选项:–format=json。

通过在终端中提供–help选项查看其他选项,或阅读JFrog CLI 文档中的可用命令。

选项 2:条件上传 - Maven 和 Gradle

在这种方法中,作为使用 JFrog CLI 构建过程的一部分,在上传之前在本地系统上扫描所有文件。如果发现任何文件易受攻击,则会跳过上传。

要为构建配置 JFrog CLI,包括选择解析和部署存储库以及其他构建选项,请使用项目顶级目录中的相应包管理器配置命令:$ jfrog rt mvn-config 或 $ jfrog rt gradle-config。

默认情况下,配置命令将以交互方式运行。将CI=TRUE环境变量设置为非交互式使用。

在此处阅读有关配置和构建命令的信息,或使用–help选项查看。

配置构建后,使用适当的目标/任务和选项运行构建命令,并提供 –scan 选项以使用条件上传。

例如:

$ jfrog rt mvn clean install --scan

$ jfrog rt gradle clean build --scan

JFrog CLI 通过从 Xray 下载索引器组件(仅在第一次使用或更新后发生)来提供与 Xray 的集成。

在请求扫描时,CLI 组装一个层次依赖树并将其提供给索引器,索引器反过来回复漏洞/违规结果。

继续探索

使用 JFrog CLI 可以完成更多工作,请在文档中了解更多信息。您甚至可以开发和分享您自己的插件!

JFrog CLI 项目及其依赖项都是开源的。在该项目的 Github 问题部分提出问题或让我们知道您希望看到的其他功能。

JFrog CLI文档地址:

https://www.jfrog.com/confluence/display/CLI/JFrog+CLI?ivk_sa=1024320u

你可能感兴趣的:(使用 JFrog CLI 和 Xray 扫描源代码中的依赖项)