返回市场
振动切换

振动切换

作者:GroundNG62 星标更新:2025-05-19

项目介绍

VibeShift:Vibe Coders的安全工程师

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

<a href="https://www.producthunt.com/posts/vibeshift-mcp?embed=true&utm_source=badge-featured&utm_medium=badge&utm_source=badge-vibeshift&#0045;mcp" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=966186&theme=light&t=1747654611925" alt="VibeShift&#0032;MCP - Get&#0032;secure&#0044;&#0032;working&#0032;code&#0032;in&#0032;1&#0032;shot | Product Hunt" style="width: 115px; height: 25px;" width="250" height="54" /></a> Twitter Follow Twitter Follow

问题: AI编码助手极大地加速了开发过程,但它们也可能生成具有微妙或明显的安全漏洞的代码。手动审查所有AI生成的代码以查找安全缺陷是缓慢、容易出错且无法与AI开发速度同步扩展的。这种“情绪驱动的开发”可能会使应用程序暴露于风险之中。

解决方案:GroundNG的VibeShift 通过以下方式弥合这一关键的安全缺口,使您的AI编码助手能够:

  1. 自动分析AI生成的代码: 当代码由AI助手生成或修改时,可以触发VibeShift使用一系列工具(SAST、DAST组件)和AI驱动的检查来进行安全分析。
  2. 识别安全漏洞: 指出常见和复杂的漏洞(例如,XSS、SQL注入、不安全的配置、逻辑错误)在AI生成的代码片段或较大的代码块中。
  3. 促进AI驱动的修复: 向AI编码助手提供详细的反馈和漏洞信息,使其能够建议甚至自动应用修复。
  4. 创建安全反馈循环: 确保开发人员及其AI助手立即意识到潜在的安全风险,从而允许快速纠正和学习。

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

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

演示 点击播放

功能

  • MCP集成: 无缝集成到Cursor/Windsurf/GitHub Copilot/Roo Code中
  • 自动化安全扫描: 在AI代码生成或修改时触发,执行:
    • 静态代码分析(SAST): 集成工具如Semgrep来查找源代码中的漏洞。
    • 动态分析(DAST基础): 可调用工具如Nuclei或ZAP对运行中的组件进行检查(适用情况下)。
  • AI辅助测试记录: 从自然语言描述自动生成基于Playwright的测试脚本(自动化模式)。
  • 确定性测试执行: 使用Playwright可靠地运行录制的JSON测试文件。
  • AI驱动的测试发现: 爬取网站并利用任何LLM(符合openai格式)来建议发现页面的测试步骤。
  • 回归测试: 轻松运行现有测试套件以捕获回归。
  • 自动化反馈循环: 执行结果(包括失败、截图、控制台日志)返回,直接反馈给AI助手。
  • 自我修复: 现有测试在代码更改时自我修复。无需手动更新。
  • UI测试: 不被Playwright直接支持的UI测试也得到支持。例如,“检查div中的文本是否溢出”。
  • 视觉回归测试: 使用传统的pixelmatch和vision LLM方法。

工作原理

+-------------+       +-----------------+       +---------------------+       +-----------------+       +-------------+
|    用户     | ----> | AI编码助手       | ----> |     MCP服务器       | ----> | 扫描、测试、执行| ----> | 浏览器       |
| (开发者)    |       | (例如,Copilot)  |       | (mcp_server.py)     |       | (SAST, 记录)    |       | (Playwright) |
+-------------+       +-----------------+       +---------------------+       +-----------------+       +-------------+
      ^                                                  |                            |                     |
      |--------------------------------------------------+----------------------------+---------------------+
                                      [测试结果/反馈]
  1. 用户: 提示他们的AI编码助手(例如,“测试这个仓库的安全漏洞”,“记录登录流程的测试”,“运行回归测试'test_login.json'”)。
  2. AI编码助手: 识别意图并通过MCP调用由MCP服务器提供的适当工具。
  3. MCP服务器: 将请求路由到相应的函数(get_security_scanrecord_test_flowrun_regression_testdiscover_test_flowslist_recorded_tests)。
  4. VibeShift代理:
    • 传统安全扫描: 对代码调用静态分析工具(例如,Semgrep)。
    • 记录: WebAgent(自动化模式)与LLM互动以规划步骤,通过BrowserController(Playwright)控制浏览器,处理HTML/视觉内容,并将生成的测试步骤保存到output/目录下的JSON文件中。
    • 执行: TestExecutor加载指定的JSON测试文件,使用BrowserController根据录制的步骤与浏览器互动,并捕获结果、截图和控制台日志。
    • 发现: CrawlerAgent使用BrowserControllerLLMClient爬取页面并建议测试步骤。
  5. 浏览器: Playwright驱动实际的浏览器交互。
  6. 反馈循环:
    • 综合安全报告(漏洞类型、位置、建议)通过MCP服务器返回给AI编码助手
    • AI编码助手将此信息呈现给开发人员,并可使用该信息建议或应用修复
    • 目标是快速循环:代码生成 -> 安全扫描 -> AI驱动的修复 -> 再次扫描(可选)。

开始使用

先决条件

  • Python 3.10+
  • 访问任何LLM(gemini 2.0闪存在我测试中免费效果最佳)
  • 安装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 # 安装浏览器和操作系统依赖项
    

配置

  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编码助手使用自然语言与代理互动。

示例:

输出:

  • 安全报告: 返回给AI编码助手,详细说明:
    • 漏洞类型(例如,CWE,OWASP类别)
    • 代码中的位置
    • 严重程度
    • 证据/解释
    • 建议的修复措施(通常供AI执行)
  • 已录制的测试: 作为JSON文件保存在output/目录下(参见test_schema.md格式)
  • 执行结果: 作为JSON对象总结运行情况(状态、错误、证据路径)。完整的运行结果也保存到output/execution_result_....json
  • 发现结果: 作为JSON对象返回,包含发现的URL和建议的步骤。完整的发现结果保存到output/discovery_results_....json

启发

  • 浏览器使用:DOM上下文树生成受到他们的启发,并进行了修改以适应静态/动态/视觉元素。特别感谢他们对开源的贡献。
  • Semgrep:我们利用的强大开源静态分析工具。
  • Nuclei:用于模板驱动的动态扫描能力。

贡献

我们欢迎贡献!请参阅CONTRIBUTING.md了解如何开始、报告问题和提交拉取请求的详细信息。我们特别感兴趣的是:

  • 新的安全分析器集成。

许可证

本项目根据APACHE-2.0许可。