Snyk 是一款以开发者优先、云原生安全工具,用于扫描并监控软件开发项目中的安全漏洞。Snyk 可扫描多种内容类型以发现安全问题:
Snyk CLI 将 Snyk 的功能带入你的开发工作流。你可以在本地命令行或 IDE 中运行 CLI,也可以在 CI/CD 流水线中运行。下方展示了 Snyk CLI test 命令输出示例。
Snyk CLI test 命令输出示例
Snyk CLI 扫描支持多种语言和工具。详细信息请参阅以下内容:
本页说明如何安装、认证并开始使用 CLI 进行扫描。Snyk 还提供了入门向导来引导你完成这些步骤。如需演示,可观看 Starting with Snyk: an overview of the CLI onboarding flow。
要使用 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 扫描每种内容类型的详细信息,请参阅以下内容:
test 和 monitor 命令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 账户并导航到项目页面,查看最新的快照和扫描结果:
Snyk monitor 快照和扫描结果
更多信息,请参阅定期监控你的项目。
测试限制不适用于公共仓库。如果你注意到与私有仓库相关的测试限制(如适用)被公共仓库的测试占用,可以通过告知 Snyk 被扫描仓库的公共 URL 来解决。这确保 Snyk 不会将公共仓库计入测试限制。
如果开源项目测试次数用尽,请按以下步骤操作:
snyk monitor。运行 snyk help 或查看 CLI 命令和选项摘要。
观看课程 Introduction to the Snyk CLI 以获取快速视频培训。
特别关注以下可能对你有用的选项信息:
--severity-threshold=low|medium|high|critical:仅报告指定级别或更高级别的漏洞。--json:以 JSON 格式输出结果。--all-projects:自动检测工作目录中的所有项目。关于 CLI 的详细信息,请参阅 CLI 文档。
使用 Snyk 支持页面上的资源来获取使用 Snyk CLI 或 Snyk 的通用帮助。请注意,Snyk 支持不会主动监控任何 Snyk 开发项目的 GitHub Issues。
自 2024 年 7 月 22 日起,Snyk CLI 不再接受外部贡献。
由于 CLI 广泛使用且内部结构复杂,即使微小的改动也可能产生不可预见的后果。自从 2024 年 4 月向 CLI 代码引入发布渠道以来,Snyk 一直专注于稳定发布。Snyk 认为这种开源但关闭贡献的模式最能服务于这一目标。
本着对 Snyk 客户和 CLI 用户透明公开的精神,Snyk 将继续公开工作。但今后,Snyk CLI 将关闭贡献。
Snyk 感谢并赞赏 Snyk 社区。
对于任何安全问题或疑虑,请参阅 GitHub 仓库中的 SECURITY.md 文件。