Skip to main content
Glama

VibeShift:Vibe Coders 的安全工程师

VibeShift是一款智能安全代理,旨在与 AI 编码助手(例如 Cursor、GitHub Copilot、Claude Code 等)无缝集成。它充当您的自动化安全工程师,分析 AI 生成的代码,识别漏洞,并在不安全代码进入您的代码库*之前,*协助 AI 驱动的修复。它利用**MCP(模型上下文协议)**与您现有的 AI 编码环境顺畅交互。

Twitter 关注 Twitter 关注

问题: AI 编程助手虽然能显著加速开发速度,但它们生成的代码也可能存在隐蔽或明显的安全漏洞。手动审查所有 AI 生成的代码是否存在安全漏洞,速度缓慢、容易出错,而且无法跟上 AI 开发的速度。这种“氛围驱动型开发”可能会让应用程序暴露在风险之中。

解决方案:GroundNG 的 VibeShift通过使您的 AI 编码助手能够执行以下操作来弥补这一关键的安全漏洞:

  1. **自动分析 AI 生成的代码:**当 AI 助手生成或修改代码时,可以触发 VibeShift 使用一套工具(SAST、DAST 组件)和 AI 驱动的检查执行安全分析。

  2. **识别安全漏洞:**找出 AI 生成的代码片段或更大的代码块中的常见和复杂漏洞(例如 XSS、SQLi、不安全配置、逻辑缺陷)。

  3. **促进人工智能驱动的补救:**直接向人工智能编码助手提供详细的反馈和漏洞信息,使其能够建议甚至自动应用修复。

  4. **创建安全反馈循环:**确保开发人员及其人工智能助手立即意识到潜在的安全风险,从而能够快速纠正和学习。

这为人工智能辅助编码创建了一个“左移”安全范式,将安全性直接嵌入到开发工作流程中,并有助于更快地交付更安全的代码。

演示(点击播放这些视频)

演示 点击播放

特征

  • **MCP 集成:**与 Cursor/Windsurf/Github Copilot/Roo Code 无缝集成

  • **自动安全扫描:**触发 AI 代码生成/修改来执行:

    • **静态代码分析 (SAST):**集成 Semgrep 等工具来查找源代码中的漏洞。

    • **动态分析(DAST 原语):**可以调用 Nuclei 或 ZAP 等工具来检查正在运行的组件(如果适用)。

  • **人工智能辅助测试记录:**根据自然语言描述生成基于 Playwright 的测试脚本(自动模式)。

  • **确定性测试执行:**使用 Playwright 可靠地运行记录的 JSON 测试文件。

  • **人工智能测试发现:**抓取网站并利用任何 LLM(符合 openai 格式)为发现的页面建议测试步骤。

  • **回归测试:**轻松运行现有的测试套件来捕捉回归。

  • **自动反馈循环:**返回执行结果(包括失败、屏幕截图、控制台日志),向AI助手提供直接反馈。

  • **自我修复:**现有测试可在代码变更时自我修复。无需手动更新。

  • UI 测试: Playwright 不直接支持的 UI 测试也支持。例如, Check if the text is overflowing in the div

  • 视觉回归测试:使用传统的像素匹配和视觉 LLM 方法。

Related MCP server: Deep Research MCP Server

工作原理

+-------------+ +-----------------+ +---------------------+ +-----------------+ +-------------+ | User | ----> | AI Coding Agent | ----> | MCP Server | ----> | Scan, test, exec| ----> | Browser | | (Developer) | | (e.g., Copilot) | | (mcp_server.py) | | (SAST, Record) | | (Playwright)| +-------------+ +-----------------+ +---------------------+ +-----------------+ +-------------+ ^ | | | |--------------------------------------------------+----------------------------+---------------------+ [Test Results / Feedback]
  1. **用户:**提示他们的 AI 编码助手(例如,“测试此存储库的安全漏洞”、“记录登录流程的测试”、“运行回归测试‘test_login.json’”)。

  2. **AI编码代理:**识别意图并使用MCP调用MCP Server提供的相应工具。

  3. **MCP 服务器:**将请求路由到相应的函数( get_security_scanrecord_test_flowrun_regression_testdiscover_test_flowslist_recorded_tests )。

  4. VibeShift 代理:

    • 传统安全扫描:(例如,Semgrep)。

    • 记录: WebAgent (自动模式)与 LLM 交互以规划步骤,通过BrowserController (Playwright)控制浏览器,处理 HTML/Vision,并将生成的测试步骤保存到output/目录中的 JSON 文件中。

    • 执行: TestExecutor加载指定的JSON测试文件,根据记录的步骤使用BrowserController与浏览器交互,并捕获结果、截图和控制台日志。

    • 发现: CrawlerAgent使用BrowserControllerLLMClient来抓取页面并建议测试步骤。

  5. 浏览器: Playwright 驱动实际的浏览器交互。

  6. 反馈回路:

    • 综合安全报告(漏洞、位置、建议)通过MCP服务器返回给AI编码代理

    • AI 编码代理将此信息呈现给开发人员,并可以使用该信息来建议或应用修复

    • 目标是代码生成->安全扫描->人工智能驱动修复->重新扫描(可选)的快速循环。

入门

先决条件

  • Python 3.10+

  • 获得任何 LLM 学位(在我的测试中,gemini 2.0 flash 效果最好,免费)

  • MCP 安装( pip install mcp[cli]

  • 安装了 Playwright 浏览器( patchright install

安装

  1. 克隆存储库:

    git clone https://github.com/GroundNG/VibeShift cd VibeShift
  2. 创建虚拟环境(推荐):

    python -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows
  3. 安装依赖项:

    pip install -r requirements.txt
  4. 安装 Playwright 浏览器:

    patchright install --with-deps # Installs browsers and OS dependencies

配置

  1. 将项目根目录中的 .env.example 重命名为 .env 文件。

  2. 添加您的 LLM API 密钥和其他必要的详细信息:

    # .env LLM_API_KEY="YOUR_LLM_API_KEY"
    • 用您的实际密钥替换YOUR_LLM_API_KEY

添加 MCP 服务器

将其添加到您的 mcp 配置中:

{ "mcpServers": { "VibeShift":{ "command": "uv", "args": ["--directory","path/to/cloned_repo", "run", "mcp_server.py"] } } }

当您与 AI 编码助手交互时,请保持此服务器运行。

用法

通过支持 MCP 的 AI 编码助手使用自然语言与代理进行交互。

例子:

  • 安全分析:

    • 自动(首选): VibeShift 自动分析由 AI 助手生成或显著修改的代码片段。

    • 显式命令:

      “VibeShift,分析此函数是否存在安全漏洞。” “请 VibeShift 检查 Copilot 刚刚编写的 Python 代码是否存在 SQL 注入。” “提交之前,请使用 VibeShift 保护生成的代码。”

  • 记录测试:

    “记录测试:转到https://practicetestautomation.com/practice-test-login/ ,在用户名字段中输入‘student’,在密码字段中输入‘Password123’,单击提交按钮,并验证文本‘Congratulations student’是否可见。”

    • (代理将自动执行这些操作并在

  • 执行测试:

    “运行回归测试output/test_practice_test_login_20231105_103000.json

    • (代理将执行指定文件中的步骤并报告 PASS/FAIL 状态以及错误和详细信息。)

  • 发现测试步骤:

    “从https://practicetestautomation.com/practice/开始发现潜在的测试步骤”

    • (代理将抓取网站、分析页面并返回每个页面的建议测试步骤。)

  • 列出已记录的测试:

    “列出可用的已记录的网络测试。”

    • (代理将返回在

输出:

  • **安全报告:**返回给AI编码助手,详情如下:

    • 漏洞类型(例如 CWE、OWASP 类别)

    • 代码中的位置

    • 严重程度

    • 证据/解释

    • 建议的补救措施(通常由人工智能采取行动)

  • **记录的测试:**保存为output/目录中的 JSON 文件(有关格式,请参阅test_schema.md )。

  • **执行结果:**以 JSON 对象形式返回,其中包含运行概要(状态、错误、证据路径)。完整结果也保存到output/execution_result_....json

  • **发现结果:**以 JSON 对象形式返回,其中包含发现的 URL 和建议步骤。完整结果保存在output/discovery_results_....json

灵感

  • 浏览器使用:DOM 上下文树的生成深受他们的启发,并进行了修改以适应静态/动态/可视化元素。特别感谢他们对开源的贡献。

  • Semgrep :我们利用的强大的开源静态分析工具。

  • 细胞核:用于基于模板的动态扫描功能。

贡献

欢迎大家贡献代码!请参阅CONTRIBUTING.md了解如何开始使用、报告问题以及提交 Pull Request。我们尤其欢迎以下人员:

  • 新的安全分析器集成。

执照

该项目根据APACHE-2.0许可。

-
security - not tested
-
license - not tested
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GroundNG/VibeShift'

If you have feedback or need assistance with the MCP directory API, please join our Discord server