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 等)使用的 代理技能。然后它会检查这些组件是否存在已知威胁,例如提示注入、工具投毒、隐藏恶意软件载荷、硬编码秘密和其他危险行为。
工作原理(高层级)
- 发现 – 工具会遍历文件系统(系统范围、每个用户、项目和外挂程序位置),并自动查找受支持代理的配置文件。它知道每个代理在 macOS、Linux 和 Windows 上存储其 MCP 定义和技能文件的位置。
- 选择性同意 – 对于以本地命令运行或联系远程 URL 的 MCP 服务器,CLI 会要求您批准每个连接(除非您使用
--dangerously-run-mcp-servers标志)。 - 分析 – 发现的组件(已移除秘密)会发送至 Snyk 的云端分析 API,该 API 会根据 14-15 种安全风险的目录进行评估。
- 报告 – 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 监控整个机群的代理相关风险。
快速入门(快速步骤)
- 创建 Snyk 账户并复制您的 API 令牌。
- 导出令牌:
export SNYK_TOKEN=your‑api‑token。 - 运行扫描器 – 任选其一:
或从 GitHub 发布版页面下载二进制文件并执行。# 使用 uv(推荐) uvx snyk-agent-scan@latest # 整台机器 uvx snyk-agent-scan@latest ~/.vscode/mcp.json # 特定配置 - 审阅同意提示,针对任何会被联系的 MCP 服务器。
- 阅读生成的报告;高评分风险表示您可能需要修补、移除或重新配置的组件。
限制与注意事项
- 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;未推断任何其他功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目