继续+Snyk MCP:安全扫描和修补
使用开源AI编码助手Continue将Snyk的安全扫描功能直接集成到您的开发工作流程中的指南。
┌─────────────────────────────────────────────────────────────────┐
│ Your Development Environment │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────┐ ┌────────────────────┐ │
│ │ Continue IDE │ │ Your Project / │ │
│ │ (VS Code / JetBrains) │ │ PyGoat │ │
│ │ │ │ (code to scan) │ │
│ │ ┌────────────────────┐ │ └────────────────────┘ │
│ │ │ Agent Chat Panel │ │ │
│ │ │ (MCP enabled) │ │ │
│ │ └─────────┬──────────┘ │ │
│ │ │ │ │
│ │ "Scan project" │ │
│ └────────────┼─────────────┘ │
│ │ │
│ │ Calls MCP Tools │
│ ▼ │
│ ┌──────────────────────────────────────────────┐ │
│ │ Snyk MCP Server (.continue/mcpServers/) │ │
│ │ (Bridge between Continue and Snyk CLI) │ │
│ └──────────────┬───────────────────────────────┘ │
│ │ │
│ Invokes │
│ │ │
│ ▼ │
│ ┌──────────────────────────┐ │
│ │ Snyk CLI │ │
│ │ (snyk mcp -t stdio) │ │
│ │ │ │
│ │ Requires: snyk auth │ │
│ │ (API token stored) │ │
│ └──────────────┬───────────┘ │
│ │ │
│ Scans │
│ │ │
│ └──────────► Project Files (line by line) │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Vulnerability Detection Results │ │
│ ├──────────────────────────────────────────────────────────┤ │
│ │ • SQL Injection (high) • Hardcoded Secrets │ │
│ │ • XSS Vulnerabilities • Weak Cryptography │ │
│ │ • Path Traversal • Insecure Defaults │ │
│ └─────────────┬────────────────────────────────────────────┘ │
│ │ │
│ Returns via MCP │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Continue Agent (LLM) │ │
│ ├──────────────────────────────────────────────────────────┤ │
│ │ • Summarizes findings by severity │ │
│ │ • Suggests fixes (parameterized queries, input val.) │ │
│ │ • Applies patches to code │ │
│ │ • Re-scans to verify fix │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Results in Continue Chat │ │
│ │ ✓ Vulnerability fixed and verified │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘数据流:您要求继续→ MCP调用Snyk CLI→ 扫描代码 → 返回调查结果→ 继续LLM分析→ 建议/应用修复 → 重新扫描以验证
为什么继续?
Continue与闭源AI编码助手有着根本的不同:
- 开源和透明:看看你的代码到底发生了什么;无供应商锁定
- 模型不可知:选择自己的法学硕士(OpenAI、Anthropic、当地Ollama等)
- 隐私第一:如果愿意,可以使用本地型号完全脱机运行
- IDE本机:作为轻量级的VS Code或JetBrains扩展(不是分叉或替换)
- 可扩展:生成自定义命令、上下文源和工具
快速开始
1.安装继续
- VS Code:从安装 Visual Studio市场
- 捷脑:从插件库安装(IntelliJ IDEA、PyCharm、WebStorm)
- 终端:使用安装Continue CLI
npm i -g @continuedev/cli
2.配置您的模型
安装后,单击代理选择器下拉列表并选择您的首选提供商:
- 云:OpenAI、Anthropic(克劳德)、OpenRouter
- 当地人:Olama,ggml
- 自定义:任何兼容的API端点
3.安装Snyk CLI
# Install via npm
npm install -g snyk
# Or download from https://docs.snyk.io/developer-tools/snyk-cli/install-or-update-the-snyk-cli使用您的Snyk帐户进行身份验证:
snyk auth添加Snyk MCP服务器
通过继续UI
- 单击侧边栏上的继续图标
- 选择聊天输入顶部的“配置工具”
- 单击“MCP服务器”旁边的“+”图标
- 这创造了一个新的
.continue/mcpServers/new-mcp-server.yaml文件
YAML文件的手动配置
您可以将创建的文件重命名为 .continue/mcpServers/snyk-mcp.yaml (在您的项目根目录中)。它应该包含:
使用npx(始终是最新版本):
name: Snyk Security Scanner
version: 0.0.1
schema: v1
mcpServers:
- name: Snyk
command: npx
args:
- "-y"
- "snyk@latest"
- "mcp"
- "-t"
- "stdio"
env: {}使用本地Snyk安装:
name: Snyk Security Scanner
version: 0.0.1
schema: v1
mcpServers:
- name: Snyk
command: /path/to/snyk # from `which snyk` on Linux, for example
args:
- "mcp"
- "-t"
- "stdio"
env: {}使用PyGoat进行测试
本次研讨会参考 adeyosemanputra的故意易受攻击的测试应用程序,用于学习和演示目的。
克隆PyGoat
将故意易受攻击的Django应用程序克隆到子目录中:
git clone https://github.com/adeyosemanputra/pygoat.gitPyGoat是什么?
PyGoat是一个OWASP项目教育应用程序,旨在教授安全漏洞。它包含不同严重级别的详细记录的漏洞,包括:
- SQL注入
- 路径遍历
- 代码注入
- 命令注入
- 硬编码的秘密
- 反序列化缺陷
- XXE注射
- 还有更多
这使得它非常适合在不影响生产代码的情况下测试您的安全扫描和修复工作流程。
使用继续扫描和修补漏洞
启用代理模式
MCP工具仅在代理模式下可用。单击代理选择器下拉列表并确保其处于活动状态。
扫描您的项目
在继续聊天(代理模式)中,询问:
Please run a Snyk code scan on the current project.继续将:
- 使用Snyk MCP工具执行扫描
- 按严重程度对发现进行分类(严重、高、中、低)
- 突出显示漏洞类型(SQL注入、XSS、硬编码秘密等)
- 显示文件路径和行号
修复漏洞
提供具体的漏洞详细信息以继续:
The scan found a High severity SQL Injection vulnerability at:
Path: introduction/views.py, line 871
Issue: Unsanitized input from an HTTP parameter flows into
a raw SQL query.
Can you fix this vulnerability and then re-scan to verify it's fixed?Continue的代理人将:
- 阅读并理解易受攻击的代码
- 应用修复(通常使用参数化查询、输入验证等)
- 自动重新扫描以验证漏洞是否已解决
- 显示前后比较
全局配置与项目特定配置
基于工作空间的配置 (.continue/mcpServers/)
- 特定于项目的MCP服务器
- 仅在该工作空间内处于活动状态
- 非常适合项目特定工具
全局配置 (~/.continue/config.yaml)
- MCP服务器可用于所有项目
- 非常适合您在任何地方都想要的Snyk等工具
- 在下面定义
mcpServers块
MCP配置迁移
如果您从Cursor、Cline或Claude Desktop迁移,请将它们的JSON MCP配置直接复制到 .continue/mcpServers/ Continue将自动检测它们。
继续CLI(终端使用)
对于主要在终端工作的开发人员:
# Install globally
npm i -g @continuedev/cli
# Launch interactive mode
cn
# Resume previous conversation
cn --resume
# Use specific configuration
cn --config ~/.continue/config.yaml对文件上下文和斜线命令使用与IDE扩展名相同的@和/语法。CLI还支持CI/CD自动化的无头模式。
是什么让这个工作流程变得强大
- 安全左移:在开发过程中发现漏洞,而不是在代码审查中发现漏洞
- 人工智能辅助修复:LLM处理例程、易于理解的补丁(SQL注入、XSS、硬编码秘密)
- 以人为本:开发人员可以专注于需要架构思维的新安全挑战
- 无供应商锁定:根据您的需求切换型号、主机或工具
- 完全可扩展:根据需要构建自定义MCP服务器或斜线命令
后续步骤
随着MCP采用率的增长,Continue代理可以:
- 生成安全测试以防止回归
- 自动更新安全修复程序的文档
- 创建详细的工单,以便手动审查复杂问题
- 与CI/CD管道集成,以获得合并前的安全反馈
- 在计划作业中通过CLI运行自动安全扫描
资源
- 继续文档: https://docs.continue.dev
- Snyk文档: https://docs.snyk.io
- MCP协议: https://modelcontextprotocol.io
- 车间存储库: https://github.com/chipper-teapot/continue-snyk-mcp
