mcpField
S
Snyk CLI

Snyk CLI

官方精选Agent-ready
docs.snyk.io开发者工具5.7ksnyk今天更新
代码仓库访问官网

关于 Snyk CLI

snyk CLI 扫描源代码、依赖项、容器镜像和基础设施即代码配置中的安全漏洞。开发者可以在本地开发、持续集成中识别和修复安全问题,并生成详细的安全报告。

主要功能

  1. 01扫描项目依赖中的已知安全漏洞
  2. 02检查容器镜像中的操作系统和库漏洞
  3. 03分析基础设施即代码配置的安全问题

适用场景

  1. 01在持续集成流程中集成安全漏洞扫描
  2. 02在开发过程中检测和修复依赖和容器漏洞

安装

选择你的系统或包管理器,复制命令到终端运行。

$
npm install -g snyk

安装完成后运行snyk --version确认安装成功。

命令示例

常用命令按使用顺序排列。

01
snyk auth
02
snyk test
03
snyk container test node:20

详细介绍

开始使用 Snyk CLI

Snyk CLI 简介

Snyk 是一款以开发者为先、云原生的安全工具,可扫描和监控软件开发项目中的安全漏洞。Snyk 会扫描多种内容类型,查找安全问题:

  • Snyk Open Source:查找并自动修复开源漏洞
  • Snyk Code:实时查找并修复应用代码中的漏洞
  • Snyk Container:查找并修复容器映像和 Kubernetes 应用中的漏洞
  • Snyk IaC:查找并修复 Terraform 和 Kubernetes 代码中的不安全配置

Snyk CLI 将 Snyk 的功能融入你的开发工作流。你可以在本地通过命令行或 IDE 运行 CLI,也可以在 CI/CD 流水线中运行。以下是 Snyk CLI 测试命令输出示例。

README 配图

Snyk CLI 测试命令输出示例

Snyk CLI 扫描支持多种语言和工具。详情请参阅以下内容:

本页介绍如何安装、进行身份验证并开始使用 CLI 扫描。Snyk 还提供入门向导,引导你完成这些步骤。如需查看演示,请观看开始使用 Snyk:CLI 入门流程概览。

安装 Snyk CLI 并对机器进行身份验证

要使用 CLI,必须先安装它并对机器进行身份验证。请参阅安装或更新 Snyk CLI 和使用你的账户对 CLI 进行身份验证。你可以参阅发行说明,了解各个版本的变更摘要。在扫描代码之前,请查看 Snyk CLI 代码执行警告。

{% hint style="info" %} 使用 CLI 扫描 Open Source 之前,必须先安装包管理器。所需的第三方工具(例如 Gradle 或 Maven)必须位于 PATH 中。 {% endhint %}

你也可以在 IDE 或 CI/CD 环境中安装 CLI。详情请参阅 IDE 和 CI/CD 文档,了解各项集成的说明。

测试安装

完成身份验证后,你可以测试安装是否成功。快速测试可运行 snyk --help。

或者,你可以对一个公共 npm 包进行快速测试,例如 snyk test ionic。

查看终端中的 test 命令报告。该报告会显示 Snyk 在包中发现的漏洞。对于发现的每个问题,Snyk 都会报告其严重性,提供详细说明链接,报告易受攻击模块进入系统的路径,并提供问题修复指南。

扫描开发项目

使用 Snyk CLI 检测开源项目中的漏洞之前,除少数例外情况外,必须先构建项目。详情请参阅必须在测试前构建的开源项目。

此外,根据开源项目所使用的语言,在使用 Snyk CLI 之前可能需要设置语言环境。详情请参阅支持的语言、包管理器和框架。

安装 CLI 并完成机器身份验证后,要扫描开源项目,请使用 cd /my/project/ 将当前目录切换到包含受支持的包清单文件(例如 package.json、pom.xml 或 composer.lock)的文件夹。然后运行 snyk test。系统会列出所有发现的漏洞,包括漏洞路径和修复指导。

要扫描源代码,请运行 snyk code test。

例如,运行以下命令即可根据 Docker 镜像标签扫描镜像:snyk container test ubuntu:18.04。

要扫描 Kubernetes(K8s)文件,请运行以下命令:
snyk iac test /path/to/kubernetes_file.yaml

有关使用 Snyk CLI 扫描各类内容的详情,请参阅:

使用 AI Agent 扫描

如果你是 AI 编码 Agent,请使用 Agent 模式:snyk agent test --experimental。该命令会一次性运行 Open Source、Code 和 Secrets 扫描,并返回为 Agent 打造的精简、节省令牌的输出。此命令为实验性功能,可能会发生变更。运行 snyk agent --help 查看详情。

监控开源或容器项目

Snyk 可以定期监控已集成 SCM 的开源或容器项目,并在发现新漏洞时向你发出提醒。要设置项目监控,请运行 snyk monitor 或 snyk container monitor。

这会创建当前依赖项的快照,以便 Snyk 定期扫描代码。之后,当披露新漏洞,或有此前不可用的补丁或升级路径时,Snyk 会向你发出提醒。以下代码展示了 snyk monitor 命令输出的示例。

> snyk monitor
Monitoring /project (project-name)...

Explore this snapshot at
https://app.snyk.io/org/my-org/project/29361c2c-9005-4692
-8df4-88f1c040fa7c/history/e1c994b3-de5d-482b-9281-eab4236c851e

Notifications about newly disclosed issues related to these
dependencies will be emailed to you.

你可以登录 Snyk 账户并前往 Projects 页面,查看最新快照和扫描结果:

README 配图

Snyk monitor 快照和扫描结果

更多信息请参阅定期监控项目。

测试次数用尽

公开仓库不受测试次数限制。如果您发现,针对私有仓库的测试次数限制(如适用)被公开仓库上的测试占用,可以将 Snyk CLI 正在扫描的仓库公开 URL 告知 Snyk 来解决此问题。这样可确保 Snyk 不会将公开仓库计入测试次数限制。

如果开源 Project 的测试次数用尽,请按以下步骤操作:

  • 运行 snyk monitor。
  • 在 Snyk Web UI 中,转到 Project 的 Settings。
  • 在 Git remote URL 下输入开源仓库的 URL。

关于 Snyk CLI 的其他信息

运行 snyk help,或查看 CLI 命令和选项摘要。

观看课程 Snyk CLI 简介,快速了解相关视频教程。

Snyk 还提供了一份速查表(博客文章)。

您可能会发现以下选项的信息尤其有用:

  • --severity-threshold=low|medium|high|critical:仅报告达到指定级别或更高级别的漏洞。
  • --json:以 JSON 格式输出结果。
  • --all-projects:自动检测工作目录中的所有 Project。

如需详细了解 CLI,请参阅 CLI 文档。

获取 Snyk CLI 支持

使用 Snyk 支持页面上的资源,寻求有关使用 Snyk CLI 或 Snyk 的帮助。请注意,Snyk 支持团队不会主动关注任何 Snyk 开发项目中的 GitHub Issues。

Snyk CLI 不再接受贡献

自 2024 年 7 月 22 日起,Snyk CLI 不再接受外部贡献。

由于 CLI 用途广泛且结构复杂,即使是细微的修改也可能造成意想不到的后果。自 2024 年 4 月在 CLI 代码中引入发布渠道以来,Snyk 一直致力于稳定版本。Snyk 认为,这种开源但不接受贡献的模式最有助于实现这一目标。

本着对 Snyk 客户和 CLI 用户保持透明的原则,Snyk 将继续公开开展工作。不过,从现在起,Snyk CLI 不再接受贡献。

Snyk 感谢并向 Snyk 社区致以谢意。

安全

如有任何安全问题或疑虑,请参阅 GitHub 仓库中的 SECURITY.md 文件。

评论

支持 Markdown