snyk/agent-scan

Security scanner for AI agents, MCP servers and agent skills.

什么是 Snyk Agent Scan?

Snyk Agent Scan 是一个命令行安全扫描器,用于查找计算机上的 代理 组件,例如 MCP(模型控制协议)服务器、代理工具,以及 AI 助手(如 Claude、Cursor、GitHub Copilot、Gemini CLI 等)使用的 代理技能。然后它会检查这些组件是否存在已知威胁,例如提示注入、工具投毒、隐藏恶意软件载荷、硬编码秘密和其他危险行为。


工作原理(高层级)

  1. 发现 – 工具会遍历文件系统(系统范围、每个用户、项目和外挂程序位置),并自动查找受支持代理的配置文件。它知道每个代理在 macOS、Linux 和 Windows 上存储其 MCP 定义和技能文件的位置。
  2. 选择性同意 – 对于以本地命令运行或联系远程 URL 的 MCP 服务器,CLI 会要求您批准每个连接(除非您使用 --dangerously-run-mcp-servers 标志)。
  3. 分析 – 发现的组件(已移除秘密)会发送至 Snyk 的云端分析 API,该 API 会根据 14-15 种安全风险的目录进行评估。
  4. 报告 – CLI 会打印人类可读的报告(或 JSON),对每个风险进行评分并列出受影响的组件。输出格式从 v0.5 的“问题代码”变更为 v0.6 的风险评分系统。

主要功能

功能 说明
自动发现 查找多种代理(Claude、Cursor、VS Code、Copilot、Gemini、Windsurf 等)的 MCP 配置、工具和技能文件,跨操作系统。
风险目录 检测提示注入、不受信任的内容、私人数据暴露、破坏性功能、恶意代码、秘密泄露、可疑下载等。
两种输出样式 v0.5 – 问题代码列表(计划弃用)。v0.6+ – 带有数值评分的风险指标。
独立二进制文件和 uvx 安装 无 npm 包;通过基于 Python 的 uvx 运行器或下载预构建的二进制文件运行。
后台/MDM 模式 可企业级部署,定期运行并将结果推送到 Snyk Evo。
安全警告 对 MCP 服务器明确同意、沙箱建议,以及网络地址过滤以避免云元数据端点。
验证 提供 GPG 签署的发布版校验和和 SBOM,以确保二进制文件完整性。

谁应该使用?

  • 安全团队,需要了解员工机器上 AI 代理供应链的可见性。
  • 开发人员,构建或维护自定义代理技能,并希望在发布前在本地验证。
  • 企业,使用 Snyk Evo 监控整个机群的代理相关风险。

快速入门(快速步骤)

  1. 创建 Snyk 账户并复制您的 API 令牌。
  2. 导出令牌:export SNYK_TOKEN=your‑api‑token。
  3. 运行扫描器 – 任选其一:
    # 使用 uv(推荐)
    uvx snyk-agent-scan@latest               # 整台机器
    uvx snyk-agent-scan@latest ~/.vscode/mcp.json   # 特定配置
    
    或从 GitHub 发布版页面下载二进制文件并执行。
  4. 审阅同意提示,针对任何会被联系的 MCP 服务器。
  5. 阅读生成的报告;高评分风险表示您可能需要修补、移除或重新配置的组件。

限制与注意事项

  • CLI 输出是实验性的;Snyk 不保证字段名称或风险评分在版本之间的稳定性。
  • 扫描 MCP 配置可能执行命令或进行对外网络调用 – 请在沙箱中运行不受信任的扫描。
  • 仅支持发现表中列出的代理;新代理需要明确添加。
  • 后台扫描会自动联系远程 MCP 服务器;--dangerously-run-mcp-servers 标志仅应在受信任的环境中使用。

进一步了解

  • 技术报告,关于代理技能威胁:.github/reports/skills-report.pdf。
  • CLI 参考:docs/cli-reference.md。
  • 风险定义:docs/risks.md(v0.6+)和 docs/issue-codes.md(v0.5)。
  • 二进制文件验证指南位于 README 中的 Verifying Standalone Binaries 部分。

以上所有信息直接取自项目的 README;未推断任何其他功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目