VibeShift
Un agente de seguridad inteligente que analiza código generado por IA en busca de vulnerabilidades y ayuda con su corrección.
Documentación
VibeShift: El Ingeniero de Seguridad para Codificadores de Vibraciones
VibeShift es un agente de seguridad inteligente diseñado para integrarse sin problemas con asistentes de codificación de IA (como Cursor, GitHub Copilot, Claude Code, etc.). Actúa como tu ingeniero de seguridad automatizado, analizando código generado por IA, identificando vulnerabilidades y facilitando la remediación impulsada por IA antes de que el código inseguro llegue a tu base de código. Aprovecha el MCP (Protocolo de Contexto de Modelo) para una interacción fluida dentro de tu entorno de codificación de IA existente.
El Problema: Los asistentes de codificación de IA aceleran drásticamente el desarrollo, pero también pueden generar código con vulnerabilidades de seguridad sutiles u obvias. Revisar manualmente todo el código generado por IA en busca de fallos de seguridad es lento, propenso a errores y no escala con la velocidad del desarrollo de IA. Este "desarrollo impulsado por vibraciones" puede dejar las aplicaciones expuestas.
La Solución: VibeShift de GroundNG cierra esta brecha crítica de seguridad al permitir que tu asistente de codificación de IA:
- Analice Automáticamente el Código Generado por IA: A medida que un asistente de IA genera o modifica código, VibeShift puede activarse para realizar análisis de seguridad utilizando un conjunto de herramientas (componentes SAST, DAST) y verificaciones impulsadas por IA.
- Identifique Vulnerabilidades de Seguridad: Señala vulnerabilidades comunes y complejas (por ejemplo, XSS, SQLi, configuraciones inseguras, fallos de lógica) dentro de los fragmentos generados por IA o bloques de código más grandes.
- Facilite la Remediación Impulsada por IA: Proporciona comentarios detallados e información sobre vulnerabilidades directamente al asistente de codificación de IA, permitiéndole sugerir o incluso aplicar correcciones automáticamente.
- Cree un Bucle de Retroalimentación de Seguridad: Asegura que los desarrolladores y sus asistentes de IA sean inmediatamente conscientes de los posibles riesgos de seguridad, permitiendo una corrección y aprendizaje rápidos.
Esto crea un paradigma de seguridad "shift-left" para la codificación asistida por IA, integrando la seguridad directamente en el flujo de trabajo de desarrollo y ayudando a enviar código más seguro y más rápido.
Demo (Haz clic para reproducir estos videos)
Características
- Integración MCP: Se integra sin problemas con Cursor/Windsurf/Github Copilot/Roo Code
- Escaneo de Seguridad Automatizado: Se activa con la generación/modificación de código de IA para realizar:
- Análisis Estático de Código (SAST): Integra herramientas como Semgrep para encontrar vulnerabilidades en el código fuente.
- Análisis Dinámico (Primitivas DAST): Puede invocar herramientas como Nuclei o ZAP para verificaciones contra componentes en ejecución (cuando corresponda).
- Grabación de Pruebas Asistida por IA: Genera scripts de prueba basados en Playwright a partir de descripciones en lenguaje natural (en modo automatizado).
- Ejecución de Pruebas Determinista: Ejecuta archivos de prueba JSON grabados de manera confiable usando Playwright.
- Descubrimiento de Pruebas Impulsado por IA: Rastrea sitios web y aprovecha cualquier LLM (en formato compatible con openai) para sugerir pasos de prueba para las páginas descubiertas.
- Pruebas de Regresión: Ejecuta fácilmente suites de pruebas existentes para detectar regresiones.
- Bucle de Retroalimentación Automatizado: Los resultados de ejecución (incluyendo fallos, capturas de pantalla, registros de consola) se devuelven, proporcionando retroalimentación directa al asistente de IA.
- Autocuración: Las pruebas existentes se autocuran en caso de cambios en el código. No es necesario actualizarlas manualmente.
- Pruebas de UI: También se admiten pruebas de UI que Playwright no soporta directamente. Por ejemplo,
Check if the text is overflowing in the div - Pruebas de Regresión Visual: Usando el enfoque tradicional de pixelmatch y LLM de visión.
Cómo Funciona
+-------------+ +-----------------+ +---------------------+ +-----------------+ +-------------+
| User | ----> | AI Coding Agent | ----> | MCP Server | ----> | Scan, test, exec| ----> | Browser |
| (Developer) | | (e.g., Copilot) | | (mcp_server.py) | | (SAST, Record) | | (Playwright)|
+-------------+ +-----------------+ +---------------------+ +-----------------+ +-------------+
^ | | |
|--------------------------------------------------+----------------------------+---------------------+
[Test Results / Feedback]
- Usuario: Solicita a su asistente de codificación de IA (por ejemplo, "Prueba este repositorio en busca de vulnerabilidades de seguridad", "Graba una prueba para el flujo de inicio de sesión", "Ejecuta la prueba de regresión 'test_login.json'").
- Agente de Codificación de IA: Reconoce la intención y usa MCP para llamar a la herramienta apropiada proporcionada por el
MCP Server. - Servidor MCP: Enruta la solicitud a la función correspondiente (
get_security_scan,record_test_flow,run_regression_test,discover_test_flows,list_recorded_tests). - Agente VibeShift:
- Escaneo de Seguridad Tradicional: Invoca Herramientas de Análisis Estático (por ejemplo, Semgrep) en el código.
- Grabación: El
WebAgent(en modo automatizado) interactúa con el LLM para planificar pasos, controla el navegador a través deBrowserController(Playwright), procesa HTML/Visión y guarda los pasos de prueba resultantes en un archivo JSON en el directoriooutput/. - Ejecución: El
TestExecutorcarga el archivo de prueba JSON especificado, usaBrowserControllerpara interactuar con el navegador según los pasos grabados y captura resultados, capturas de pantalla y registros de consola. - Descubrimiento: El
CrawlerAgentusaBrowserControlleryLLMClientpara rastrear páginas y sugerir pasos de prueba.
- Navegador: Playwright impulsa la interacción real con el navegador.
- Bucle de Retroalimentación:
- El informe de seguridad completo (vulnerabilidades, ubicaciones, sugerencias) se devuelve a través del servidor MCP al Agente de Codificación de IA.
- El Agente de Codificación de IA presenta esto al desarrollador y puede usar la información para sugerir o aplicar correcciones.
- El objetivo es un ciclo rápido de generación de código -> escaneo de seguridad -> corrección impulsada por IA -> re-escaneo (opcional).
Comenzando
Requisitos Previos
- Python 3.10+
- Acceso a cualquier LLM (gemini 2.0 flash funciona mejor de forma gratuita en mis pruebas)
- MCP instalado (
pip install mcp[cli]) - Navegadores de Playwright instalados (
patchright install)
Instalación
- Clona el repositorio:
git clone https://github.com/GroundNG/VibeShift cd VibeShift - Crea un entorno virtual (recomendado):
python -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows - Instala las dependencias:
pip install -r requirements.txt - Instala los navegadores de Playwright:
patchright install --with-deps # Installs browsers and OS dependencies
Configuración
- Renombra el archivo .env.example a .env en el directorio raíz del proyecto.
- Agrega tu clave de API de LLM y otros detalles necesarios:
# .env LLM_API_KEY="YOUR_LLM_API_KEY"- Reemplaza
YOUR_LLM_API_KEYcon tu clave real.
- Reemplaza
Agregando el Servidor MCP
Agrega esto a tu configuración de mcp:
{
"mcpServers": {
"VibeShift":{
"command": "uv",
"args": ["--directory","path/to/cloned_repo", "run", "mcp_server.py"]
}
}
}
Mantén este servidor en ejecución mientras interactúas con tu asistente de codificación de IA.
Uso
Interactúa con el agente a través de tu asistente de codificación de IA habilitado para MCP usando lenguaje natural.
Ejemplos:
-
Análisis de Seguridad:
- Automático (Preferido): VibeShift analiza automáticamente los fragmentos de código generados o modificados significativamente por el asistente de IA.
- Comandos Explícitos:
"VibeShift, analiza esta función en busca de vulnerabilidades de seguridad." "Pídele a VibeShift que verifique el código Python que Copilot acaba de escribir para detectar inyección SQL." "Asegura el código generado con VibeShift antes de hacer commit."
-
Graba una Prueba:
"Graba una prueba: ve a https://practicetestautomation.com/practice-test-login/,, escribe 'student' en el campo de nombre de usuario, escribe 'Password123' en el campo de contraseña, haz clic en el botón de enviar y verifica que el texto 'Congratulations student' sea visible."
- (El agente realizará estas acciones automáticamente y guardará un archivo
test_....jsonenoutput/)
- (El agente realizará estas acciones automáticamente y guardará un archivo
-
Ejecuta una Prueba:
"Ejecuta la prueba de regresión
output/test_practice_test_login_20231105_103000.json"- (El agente ejecutará los pasos en el archivo especificado e informará el estado APROBADO/REPROBADO con errores y detalles.)
-
Descubre Pasos de Prueba:
"Descubre posibles pasos de prueba comenzando desde https://practicetestautomation.com/practice/"
- (El agente rastreará el sitio, analizará las páginas y devolverá pasos de prueba sugeridos para cada una.)
-
Lista de Pruebas Grabadas:
"Lista las pruebas web grabadas disponibles."
- (El agente devolverá una lista de archivos
.jsonencontrados en el directoriooutput/.)
- (El agente devolverá una lista de archivos
Salida:
- Informes de Seguridad: Devueltos al asistente de codificación de IA, detallando:
- Tipo de vulnerabilidad (por ejemplo, CWE, categoría OWASP)
- Ubicación en el código
- Severidad
- Evidencia / Explicación
- Remediaciones sugeridas (a menudo para que la IA las ejecute)
- Pruebas Grabadas: Guardadas como archivos JSON en el directorio
output/(consultatest_schema.mdpara el formato). - Resultados de Ejecución: Devueltos como un objeto JSON que resume la ejecución (estado, errores, rutas de evidencia). Los resultados completos también se guardan en
output/execution_result_....json. - Resultados de Descubrimiento: Devueltos como un objeto JSON con URLs descubiertas y pasos sugeridos. Los resultados completos se guardan en
output/discovery_results_....json.
Inspiración
- Browser Use: La generación del árbol de contexto DOM está fuertemente inspirada en ellos y se modifica para acomodar elementos estáticos/dinámicos/visuales. Agradecimiento especial a ellos por su contribución al código abierto.
- Semgrep: Una poderosa herramienta de análisis estático de código abierto que aprovechamos.
- Nuclei: Para capacidades de escaneo dinámico basadas en plantillas.
Contribuciones
¡Damos la bienvenida a las contribuciones! Consulta CONTRIBUTING.md para obtener detalles sobre cómo comenzar, informar problemas y enviar solicitudes de extracción. Estamos particularmente interesados en:
- Nuevas integraciones de analizadores de seguridad.
Licencia
Este proyecto está licenciado bajo la APACHE-2.0.

