Firebreak

Servidor MCP de seguridad que convierte tu IA en un probador de penetración.

Documentación

Firebreak

El servidor MCP de seguridad que convierte tu IA en un probador de penetración.

Inicio Rápido · Cómo Funciona · Referencia de Herramientas · Contribuciones · Licencia

CI License Rust MCP Protocol 20 Tools 32 Checks 47 VCVD Patterns


Conecta Firebreak a Claude, Cursor o cualquier cliente compatible con MCP. Luego solo pregunta:

You:    "Is my app secure?"
Claude: [calls firebreak tools] Found 6 vulnerabilities. 1 high (CORS misconfiguration),
        5 medium (missing security headers). Security score: B. Want me to fix them?

Sin CLI que aprender. Sin informes que leer. La IA ejecuta los escaneos, interpreta los resultados y te guía en las correcciones.


Por qué Firebreak

El código generado por IA viene con vulnerabilidades predecibles: middleware de autenticación inconsistente, políticas RLS permisivas, IDOR en cada endpoint, secretos en el bundle de JavaScript. Los desarrolladores que usan IA para construir no siempre saben cómo probar lo que construye.

Firebreak invierte el problema. En lugar de esperar que los desarrolladores aprendan herramientas de seguridad, le da a la IA las herramientas de seguridad. La misma IA que escribió el código ahora puede probarlo, encontrar los agujeros y corregirlos.

Qué lo hace diferente:

  • Nativo de MCP — no es un envoltorio de CLI. Construido desde cero para la llamada de herramientas de IA.
  • VCVD — 47 patrones de vulnerabilidad específicos del código generado por IA que los escáneres tradicionales pasan por alto.
  • Prueba sobre teoría — cada hallazgo incluye la solicitud/respuesta HTTP real que demuestra la vulnerabilidad.
  • Seguro por diseño — con límite de velocidad, bloqueo de alcance y no destructivo. No puede eliminar tu base de datos por accidente.

Inicio Rápido

Opción 1: Compilar desde el código fuente

git clone https://github.com/protonese3/Firebreak.git
cd Firebreak
cargo build --release
./target/release/firebreak

Opción 2: Docker

git clone https://github.com/protonese3/Firebreak.git
cd Firebreak
docker compose up -d

De cualquier manera, Firebreak se inicia en el puerto 9090.

Conectar a Claude Desktop

Agrega esto a tu claude_desktop_config.json:

{
  "mcpServers": {
    "firebreak": {
      "url": "http://localhost:9090/mcp"
    }
  }
}

Reinicia Claude Desktop. Ahora tienes 20 herramientas de seguridad disponibles.

Conectar a Cursor / Windsurf / Cualquier Cliente MCP

Apunta la configuración MCP de tu cliente a http://localhost:9090/mcp. El servidor habla MCP estándar (JSON-RPC 2.0 sobre HTTP).

Verificar que funciona

Pregunta a tu IA: "¿Qué herramientas de seguridad tienes disponibles?"

Debería listar las herramientas de Firebreak. Luego intenta: "Escanea https://httpbin.org en busca de problemas de seguridad"


Cómo Funciona

How Firebreak Works

La IA es la orquestadora. Firebreak no decide qué probar — proporciona las herramientas. La IA elige la estrategia según lo que el usuario pide y lo que encuentra en el camino.

Flujo típico

1. User: "Test my app at https://myapp.com"

2. AI calls firebreak_scan_quick({ target_url: "https://myapp.com" })
   └── Firebreak probes headers, paths, CORS, TLS
   └── Returns: 4 findings, score B

3. AI explains results in plain language
   └── "Found a CORS misconfiguration and 3 missing headers..."

4. User: "Fix the CORS issue"

5. AI calls firebreak_finding_fix({ finding_id: "...", framework: "express" })
   └── Returns: before/after code diff for Express

6. User applies fix

7. AI calls firebreak_replay({ finding_id: "..." })
   └── Returns: "Fixed. Server no longer reflects arbitrary origins."

Referencia de Herramientas

Herramientas de Conocimiento

Estas no acceden a ningún servicio externo. Consultan la base de conocimiento de seguridad integrada de Firebreak.

HerramientaDescripciónEjemplo
firebreak_best_practiceMejores prácticas de seguridad para un tema{ topic: "jwt-auth" }
firebreak_check_patternEscanear código en busca de patrones inseguros{ code: "...", language: "javascript" }
firebreak_explain_vulnExplicar un tipo de vulnerabilidad{ vuln_id: "IDOR" }
firebreak_security_checklistGenerar una lista de verificación de seguridad{ stack: ["nextjs", "supabase"] }
firebreak_owasp_checkMapear un hallazgo al OWASP Top 10{ description: "SQL injection in login" }
firebreak_analyze_rlsAnalizar SQL para problemas de políticas RLS{ sql: "CREATE POLICY..." }

Herramientas de Escaneo

Estas hacen solicitudes HTTP al objetivo. Con límite de velocidad y bloqueo de alcance.

HerramientaDescripciónEjemplo
firebreak_scan_quickEscaneo rápido, solo crítico+alto (2-3 min){ target_url: "https://myapp.com" }
firebreak_scan_fullPrueba de penetración completa (caja negra/gris/blanca){ target_url: "...", mode: "gray", credentials: [...] }
firebreak_scan_targetEscaneo enfocado en un área{ target_url: "...", focus: "auth" }
firebreak_scan_statusVerificar el progreso de un escaneo en ejecución{ scan_id: "..." }
firebreak_scan_stopDetener un escaneo, conservar resultados parciales{ scan_id: "..." }

Herramientas de Análisis

Estas trabajan con resultados de escaneo almacenados. Sin solicitudes externas.

HerramientaDescripción
firebreak_resultsResumen del escaneo con puntuación de seguridad (A-F)
firebreak_finding_detailEvidencia completa para un hallazgo específico
firebreak_finding_fixGenerar código de corrección para un hallazgo
firebreak_replayRe-probar un hallazgo para verificar que está corregido
firebreak_compareComparar dos escaneos (corregido / nuevo / sin cambios)
firebreak_scan_historyListar escaneos anteriores para un objetivo
firebreak_attack_chainCadenas de ataque de múltiples pasos
firebreak_report_generateExportar informe (JSON, Markdown, HTML)
firebreak_report_executiveResumen ejecutivo no técnico

Verificaciones de Escaneo — 32 Verificaciones de Seguridad

Cada escaneo ejecuta un subconjunto de estas verificaciones según el tipo de escaneo (rápido, completo, dirigido). Cada verificación produce hallazgos con evidencia HTTP completa.

Encabezados y TLS

VerificaciónQué prueba
Encabezados de seguridadHSTS, X-Content-Type-Options, X-Frame-Options, presencia de CSP
Análisis de calidad de CSPunsafe-inline, unsafe-eval, fuentes comodín
Permissions-PolicyPresencia y configuración del encabezado de política de características
Divulgación de versión del servidorEncabezados Server, X-Powered-By, X-AspNet-Version
Fugas de información en encabezadosX-Debug-Token, X-Backend-Server, Via, X-Request-ID
Aplicación de HTTPSAnálisis de la cadena de redirección HTTP a HTTPS
Calidad de HSTSValor de max-age, includeSubDomains, directivas de precarga
Encabezados avanzadosCross-Origin-Opener-Policy, Cross-Origin-Resource-Policy, Cross-Origin-Embedder-Policy

Autenticación y Sesión

VerificaciónQué prueba
Seguridad de cookiesBanderas HttpOnly, Secure, SameSite en cookies de sesión
Autenticación faltante en endpoints de APIAcceso no autenticado a rutas protegidas
Detección de límite de velocidadLimitación de inicio de sesión y endpoints de API
Enumeración de métodos HTTPTRACE, PUT, DELETE habilitados en endpoints que no deberían permitirlos
Inyección de encabezado HostEncabezado Host manipulado reflejado en respuestas o redirecciones

Datos y API

VerificaciónQué prueba
Descubrimiento de API no autenticadaRutas de API comunes accesibles sin credenciales
Detección de ID secuencialRiesgo de IDOR por identificadores de recursos predecibles
Configuración incorrecta de CORSReflexión de origen, aceptación de origen nulo, comodín con credenciales
Prueba de redirección abiertaParámetros de redirección no validados en URLs

Contenido y Frontend

VerificaciónQué prueba
Huella de tecnologíaDetección de CMS, identificación de frameworks, software de servidor
Bibliotecas JS vulnerablesjQuery, Angular, Bootstrap, Lodash con CVEs conocidos
Exposición de mapas de origenArchivos .map accesibles en producción
Secretos en bundles JSClaves de API, tokens, credenciales en JavaScript del lado del cliente
Detección de contenido mixtoRecursos HTTP cargados en páginas HTTPS
Análisis de CSRF en formulariosFormularios sin tokens CSRF o que usan GET para cambios de estado

Reconocimiento y Descubrimiento

VerificaciónQué prueba
Rastreador webEnlaces HTML, endpoints JS, sitemap, robots.txt (profundidad recursiva 3)
Sondeo de rutas sensiblesPaneles de administración, archivos de configuración, copias de seguridad (con validación de contenido para eliminar falsos positivos)
robots.txt / sitemap.xmlAnálisis de rutas prohibidas y endpoints del sitemap
security.txtCumplimiento de RFC 9116 e información de contacto
Divulgación en páginas de errorTrazas de pila, información de depuración, rutas internas en respuestas de error
Descubrimiento de referencias a subdominiosSubdominios referenciados en HTML, JS y encabezados
Seguridad de encabezados de cachéCache-Control, Pragma, Expires en respuestas sensibles

VCVD — Base de Datos de Vulnerabilidades de Vibe Coding

47 patrones de vulnerabilidad que el código generado por IA falla. Los escáneres tradicionales no buscan estos porque son específicos de cómo los LLM escriben código.

Autenticación e Identidad

IDPatrónSeveridad
VC-AUTH-001Middleware de autenticación inconsistente — la IA aplica autenticación a algunas rutas pero no a otrasCRÍTICO
VC-AUTH-002Validación solo en el cliente — las verificaciones de roles existen en React pero no en la APICRÍTICO
VC-AUTH-003JWT decodificado sin verificación — jwt.decode() en lugar de jwt.verify()CRÍTICO
VC-AUTH-004Clave de servicio en código de cliente — clave service_role de Supabase en el bundle JSCRÍTICO
VC-AUTH-005Expiración de token >30 días — "por conveniencia"ALTO
VC-AUTH-006OAuth sin parámetro de estadoALTO
VC-AUTH-007Contraseña en la cadena de consulta de la URLALTO
VC-AUTH-008Sesión no regenerada después del inicio de sesiónMEDIO

Acceso a Datos

IDPatrónSeveridad
VC-DATA-001IDOR — IDs secuenciales sin verificación de propiedadCRÍTICO
VC-DATA-002USING (true) en RLS — la política "temporal" de la IA que llega a producciónCRÍTICO
VC-DATA-003Tabla creada sin habilitar RLSCRÍTICO
VC-DATA-004SELECT * exponiendo hashes de contraseñas y PIIALTO
VC-DATA-005...req.body extendido en inserción de base de datos sin lista blanca de camposALTO
VC-DATA-006Introspección de GraphQL habilitada en producciónMEDIO
VC-DATA-007Consultas N+1 sin límite como vector de DoSMEDIO
VC-DATA-008Consultas multi-tenant sin filtro de tenant_idCRÍTICO

Inyección

IDPatrónSeveridad
VC-INJ-001Literales de plantilla en consultas SQLCRÍTICO
VC-INJ-002innerHTML con entrada de usuarioALTO
VC-INJ-003Contenido de usuario almacenado y renderizado sin sanitizaciónCRÍTICO
VC-INJ-004Entrada de usuario en exec() / spawn()CRÍTICO
VC-INJ-005Rutas de archivo construidas desde entrada de usuarioALTO
VC-INJ-006Fetch del lado del servidor con URL proporcionada por el usuario (SSRF)ALTO
VC-INJ-007Entrada de usuario pasada como fuente de plantillaALTO
VC-INJ-008Operadores de MongoDB en entrada JSONALTO

Infraestructura

IDPatrónSeveridad
VC-INFRA-001Modo de depuración / trazas de pila en producciónALTO
VC-INFRA-002Access-Control-Allow-Origin: * con credencialesALTO
VC-INFRA-003Falta de HSTS, X-Frame-Options, CSPMEDIO
VC-INFRA-004Puertos Docker innecesarios expuestosMEDIO
VC-INFRA-005Cargas de usuario almacenadas sin cifradoMEDIO
VC-INFRA-006TLS 1.0/1.1 aún habilitadoMEDIO
VC-INFRA-007Panel de administración accesible desde internet públicoALTO
VC-INFRA-008Credenciales predeterminadas sin cambiarCRÍTICO

Frontend

IDPatrónSeveridad
VC-FE-001Claves de API en el bundle de JavaScriptCRÍTICO
VC-FE-002Guardia de autenticación solo en React Router, no en la APIALTO
VC-FE-003JWT almacenado en localStorageMEDIO
VC-FE-004Formularios sin protección CSRFALTO
VC-FE-005URL de redirección desde parámetro de consulta sin validaciónMEDIO
VC-FE-006Manejador de postMessage sin verificación de origenMEDIO
VC-FE-007Mapas de origen accesibles en producciónBAJO
VC-FE-008Campos sensibles sin autocomplete="off"BAJO

Puntuación de Seguridad

Cada escaneo produce una calificación con letras según lo encontrado:

CalificaciónCriterioInterpretación
ACero críticos o altos. Máximo 2 medios.Despliégalo.
BCero críticos. Algunos altos o medios.Corrige los altos pronto.
CMúltiples problemas de alta severidad.Necesita trabajo antes de producción.
D1-2 críticos o >5 altos.Riesgo significativo. Prioriza las correcciones.
F3+ críticos o una cadena de compromiso completa.No lo despliegues.

Salvaguardas de Seguridad

Firebreak está diseñado solo para pruebas autorizadas.

GuardrailCómo funciona
Límite de tasa10 solicitudes/segundo al objetivo (configurable). Ventana deslizante.
Bloqueo de alcanceSolo ataca la URL objetivo especificada. Sin movimiento lateral, sin enumeración de subdominios.
No destructivoSin solicitudes DELETE, DROP, UPDATE o POST que modifiquen datos. Solo sondeos.
ConsentimientoLa IA pide confirmación antes del primer escaneo.
Registro de auditoríaCada solicitud HTTP se registra con marca de tiempo, objetivo y motivo.

Configuración

Variables de entorno:

VariablePredeterminadoDescripción
FIREBREAK_HOST0.0.0.0Dirección de enlace
FIREBREAK_PORT9090Puerto
RUST_LOGfirebreak=infoNivel de registro

Copia .env.example a .env y edítalo según sea necesario.


Estructura del Proyecto

firebreak/
├── src/
│   ├── main.rs                 # Axum HTTP server, AppState, routing
│   ├── types.rs                # Shared types: Scan, Finding, Evidence, ScanSummary
│   │
│   ├── mcp/                    # MCP protocol implementation
│   │   ├── protocol.rs         #   JSON-RPC 2.0 types
│   │   └── handler.rs          #   Request dispatch (initialize, tools/list, tools/call)
│   │
│   ├── tools/                  # MCP tool implementations
│   │   ├── knowledge/          #   Knowledge tools (best practices, pattern check, OWASP)
│   │   ├── scan.rs             #   Scan tools (quick, full, targeted, status, stop)
│   │   └── analysis.rs         #   Analysis tools (results, fix, replay, compare, reports)
│   │
│   ├── engine/                 # HTTP scanning engine
│   │   ├── mod.rs              #   Scan orchestration (quick/full/targeted/replay)
│   │   └── checks.rs           #   32 security checks (headers, TLS, auth, CORS, cookies, IDOR...)
│   │
│   ├── vcvd/                   # Vibe Coding Vulnerability Database
│   │   └── data.rs             #   47 patterns with descriptions, detection, fixes
│   │
│   ├── store/                  # SQLite persistence
│   │   └── mod.rs              #   CRUD for scans, findings, audit log
│   │
│   ├── safety/                 # Safety guardrails
│   │   └── mod.rs              #   Rate limiter, scope lock, consent, audit trail
│   │
│   ├── rls/                    # RLS policy analyzer
│   │   └── mod.rs              #   SQL parsing with sqlparser-rs
│   │
│   └── report/                 # Report generation
│       └── mod.rs              #   JSON, Markdown, HTML, executive summary
│
├── knowledge/
│   └── best-practices/         # 100 security guides (JWT, RLS, CORS, uploads, CSP...)
│
├── frontend/                   # React dashboard (Vite + TypeScript + Tailwind)
│
├── Dockerfile                  # Multi-stage build, non-root user
├── docker-compose.yml          # Firebreak + headless Chromium
└── .github/workflows/ci.yml   # Build, test, lint, artifacts

Stack Tecnológico

ComponenteTecnologíaPor qué
LenguajeRustBinario único, sin runtime, seguro en memoria, rápido
Servidor HTTPAxumAsync, ecosistema de middleware tower
Cliente HTTPreqwestMaduro, soporte TLS, control de redirecciones
Base de datosSQLite (rusqlite)Cero configuración, embebido, suficiente para escaneos locales
Analizador SQLsqlparser-rsAnálisis de políticas RLS sin base de datos en ejecución
Runtime asíncronotokioEstándar de la industria
Serializaciónserde + serde_jsonRápido, macros derivadas
Panel de controlReact + TypeScript + Vite + TailwindModerno, servidor de desarrollo rápido, CSS utilitario

El binario de lanzamiento es de ~8 MB sin dependencias de runtime.


Contribuciones

Las contribuciones son bienvenidas. Así es como puedes participar:

Para empezar

git clone https://github.com/protonese3/Firebreak.git
cd Firebreak
cargo build
cargo test

El servidor se ejecuta en http://localhost:9090/mcp por defecto.

Áreas donde se necesita ayuda

Nuevos patrones VCVD — ¿Encontraste un patrón de vulnerabilidad que la IA genera consistentemente? Añádelo a src/vcvd/data.rs. Cada patrón necesita un ID, descripción, severidad, pista de detección y corrección.

Comprobaciones del motor de escaneo — Añade nuevas comprobaciones de vulnerabilidad en src/engine/checks.rs. Cada función de comprobación toma un cliente reqwest, URL objetivo y referencia de seguridad. Devuelve un Vec<Finding>.

Guías de mejores prácticas — Añade archivos markdown a knowledge/best-practices/. Luego regístralos en src/tools/knowledge/best_practices.rs.

Correcciones específicas de frameworks — La herramienta finding_fix genera código de corrección. Añade soporte para frameworks en src/tools/analysis.rs dentro de la función framework_fix_example.

Panel de control — El frontend de React vive en frontend/. Ejecuta npm run dev para el servidor de desarrollo.

Envío de cambios

  1. Haz un fork del repositorio
  2. Crea una rama (git checkout -b add-new-check)
  3. Haz tus cambios
  4. Ejecuta cargo check && cargo clippy -- -D warnings
  5. Abre un pull request con una descripción clara de lo que cambiaste y por qué

Estilo de código

  • Sin comentarios innecesarios. Si el código dice lo que hace, no añadas un comentario.
  • Cláusulas de guarda en lugar de if/else anidados.
  • Sigue el estilo del código existente.
  • Cada hallazgo debe tener evidencia verificable — nada de "esto podría ser vulnerable".

Reportar problemas de seguridad

Si encuentras una vulnerabilidad de seguridad en Firebreak, envía un correo a security@firebreak.dev en lugar de abrir un issue público. Responderemos dentro de 48 horas.


Hoja de ruta

Hecho

  • Servidor MCP con JSON-RPC 2.0 sobre HTTP
  • 20 herramientas MCP (conocimiento, escaneo, análisis, informe)
  • VCVD v1 — 47 patrones de vulnerabilidad
  • Motor de escaneo HTTP con 32 comprobaciones de seguridad
  • Persistencia SQLite
  • Salvaguardas de seguridad
  • Generación de informes (JSON, Markdown, HTML)
  • Analizador de políticas RLS (sqlparser-rs)
  • Soporte Docker
  • Pipeline CI/CD
  • Rastreador web para descubrimiento de endpoints
  • Eliminación de falsos positivos (validación de contenido, comparación de línea base)
  • Huella tecnológica
  • Análisis de seguridad de cookies/sesiones
  • Detección de CSRF en formularios
  • Pruebas de redirección abierta
  • Análisis de calidad de CSP
  • Detección de límite de tasa

Siguiente

  • Panel de control web (React)
  • Escaneo de caja gris con sesiones autenticadas
  • Navegador sin cabeza para aplicaciones renderizadas en frontend
  • Escaneos programados / recurrentes
  • Notificaciones webhook (Slack, Discord)
  • Exportación de informes PDF
  • Opción alojada en la nube (VPS gestionado)
  • Sistema de plugins para comprobaciones personalizadas
  • Contribuciones de la comunidad VCVD vía PR

Preguntas frecuentes

¿Necesito ser un experto en seguridad para usar esto? No. Ese es el punto. La IA maneja la experiencia en seguridad. Solo le dices qué probar.

¿Qué clientes MCP funcionan con Firebreak? Cualquier cliente que soporte MCP sobre HTTP: Claude Desktop, Claude Code, Cursor, Windsurf y otros.

¿Es seguro ejecutarlo contra producción? Firebreak es no destructivo (solo sondeos de lectura), pero siempre deberías probar primero en staging. El límite de tasa está activado por defecto.

¿Puedo añadir mis propias comprobaciones de vulnerabilidad? Sí. Añade funciones de comprobación en src/engine/checks.rs y conéctalas a los métodos de escaneo en src/engine/mod.rs.

¿Por qué Rust? Binario único sin dependencias de runtime. Rápido. Seguro en memoria. Enviamos un archivo y funciona.

¿Por qué AGPL-3.0? Si ejecutas Firebreak como un servicio para otros, debes compartir tus modificaciones. Si lo usas internamente o lo autoalojas para tu propio equipo, no necesitas hacer nada especial.


Licencia

AGPL-3.0

Si construyes un servicio comercial sobre Firebreak, la AGPL requiere que publiques tus modificaciones como código abierto. Para uso interno y autoalojado, no hay restricciones más allá de los términos estándar de AGPL.


20 Herramientas de Seguridad · 100 Guías de Mejores Prácticas · 47 Patrones de Vulnerabilidad · 32 Comprobaciones de Escaneo

FIREBREAK — Porque si no lo pruebas, alguien más lo hará.