Webinar en inglésWebinar con Jason Lee, mié, 14 octYour newest insider is an AI agent.Jason LeeFormer CISO, Zoom & SplunkInscríbete

Guardrails para Windsurf, hechos con tus propias reglas.

Las reglas de tu empresa llegan a Windsurf antes de que escriba en un archivo. Una escritura que las incumple no llega a producirse.

npx -y @cybedefend/vibedefend@latest install

Crear una cuenta gratisCualquier versión reciente de WindsurfLeer la documentación

WindsurfWindsurf está escribiendobilling/refund.ts

export async function refund(req: Request) {
  const { id, amount } = await req.json();
  const invoice = await db.invoices.find({
    id, tenant: req.tenant,
  });
  if (amount > 500)
    await approvals.second(invoice);
  return payments.refund(invoice, amount);
}

Cada consulta se limita al tenant.

rules/data-access.md

Los reembolsos de más de 500 € necesitan un segundo aprobador.

Aprobada una vez por Sofia M.

Revisado antes del commit: limpio

Listo en cuatro pasos.

  1. Ejecuta un comandoEn cualquier terminal, en macOS, Linux o Windows. Node 18.17 o posterior.
  2. Elige la región e inicia sesiónUE o EE. UU. Tu navegador se abre para iniciar sesión, sin clave que pegar.
  3. Marca WindsurfEl instalador encuentra los agentes de tu equipo y los marca por ti.
  4. Programa como siempreAbre Windsurf: VibeDefend funciona a su lado.

Compruébalo cuando quieras: vibedefend status

Lo que VibeDefend añade a Windsurf.

Reglas servidas

Solo escrituras

Solo escrituras de archivos: pre_write_code es el momento que expone Windsurf.

WindsurfWindsurf está escribiendosrc/billing/cart-checkout.ts

const total = new Decimal128(cart.sum);
const rows = await db.query(
  "SELECT * FROM carts WHERE id = $1", [id]
);

Los importes usan Decimal128, nunca Number.

Extraída de src/billing.ts:14

Toda consulta que mezcla datos del usuario va parametrizada.

OWASP Top 10

Servidas antes de la edición

Hallazgos en vivo

Los hallazgos de SAST, SCA, secretos, IaC y CI/CD, en vivo en la sesión.

WindsurfWindsurf

  1. SASTsrc/db/users.repo.ts:42

    SQL injection

  2. SCApackage.json

    lodash 4.17.20, CVE-2021-23337

  3. Secretsconfig/prod.yml

    AWS access key

  4. IaCinfra/main.tf

    S3 bucket public-read

  5. CI/CD.github/workflows/deploy.yml

    pull_request_target

En el contexto del agente, en vivo

Límites en Windsurf

  • Protección de secretosLas lecturas no se bloquean de forma estricta: un fragmento de .windsurfrules pide a Windsurf que las verifique antes.Con .windsurfrules
  • Control de accionesLas escrituras de archivos se bloquean de forma estricta. Los comandos de shell dependen de que Windsurf siga .windsurfrules.Solo escrituras

Preguntas frecuentes.

¿VibeDefend modifica mi configuración de Windsurf?
Añade sus hooks y registra el servidor MCP cybedefend, en ~/.codeium/windsurf/hooks.json, ~/.codeium/windsurf/mcp_config.json, .windsurfrules. Tus propios hooks se mantienen: volver a ejecutar el instalador solo sustituye las entradas de VibeDefend.
¿Qué sale de mi máquina?
El análisis se ejecuta en la región que elegiste al instalar, UE o EE. UU. La decisión de bloquear una acción se toma en tu máquina. Antes de una edición, el hook envía la parte del archivo que se está escribiendo, para encontrar las reglas que se aplican. La revisión de fin de sesión envía los archivos que se modificaron durante la sesión. Tu token de inicio de sesión se queda en el llavero de tu sistema operativo.
¿Qué versión de Windsurf necesito?
Una versión reciente de Windsurf, y Node 18.17 o posterior. El instalador funciona en macOS, Linux y Windows.
¿Tengo que vincular cada repositorio?
No en los proyectos importados desde GitHub o GitLab: VibeDefend lee el origin del repositorio y encuentra el proyecto. Para cualquier otro repositorio, ejecuta vibedefend link una vez. El comando escribe .cybedefend/config.json con el ID del proyecto.
¿Cómo lo desinstalo?
Ejecuta vibedefend uninstall: elimina todos los archivos que instaló VibeDefend. Si instalaste el paquete de forma global, ejecuta después npm uninstall -g @cybedefend/vibedefend.
¿Por qué los Action Guards tienen límites en Windsurf?
El hook pre_write_code de Windsurf puede bloquear escrituras de archivos, pero no lecturas, comandos de shell ni peticiones de red. Para esos casos, VibeDefend añade a .windsurfrules un fragmento que pide al agente que llame antes a cybe_guards_check por MCP. Se cumple siempre que el modelo siga su archivo de reglas.
Detalles técnicos para Windsurf
Servidor MCP
Disponible~/.codeium/windsurf/mcp_config.json
Reglas antes de cada edición
Solo escrituraspre_write_codeSolo escrituras de archivos: pre_write_code es el momento que expone Windsurf.
Acciones peligrosas bloqueadas
Solo escrituraspre_write_code.windsurfrulesLas escrituras se bloquean en firme. Para lecturas, comandos de shell y peticiones de red, un fragmento de .windsurfrules pide al agente que llame antes a cybe_guards_check: se cumple siempre que el modelo siga su archivo de reglas.
Reglas cargadas al inicio
En cada promptpre_user_promptWindsurf no tiene evento de arranque de sesión. VibeDefend usa pre_user_prompt, que se dispara en cada turno; la comprobación es ligera y responde al instante cuando no hay nada pendiente.
Revisión al final de la sesión
Disponiblepost_cascade_responseSe ejecuta al final de cada respuesta, una vez superado el umbral de ediciones.
Revisión de las sesiones largas
No disponibleSin equivalenteWindsurf no tiene ningún evento previo a la compactación.
Recordatorio en cada prompt
No disponibleSin equivalenteNo disponible en Windsurf.

Lo que escribe para Windsurf

  • ~/.codeium/windsurf/hooks.json
  • ~/.codeium/windsurf/mcp_config.json
  • .windsurfrules

Además, el runner de los hooks en ~/.cybedefend/. Tus propios hooks se mantienen: volver a ejecutar el instalador solo sustituye las entradas de VibeDefend.

Ejecuta el instalador desde la raíz de tu repositorio: el fragmento de .windsurfrules se escribe en la carpeta desde la que lo ejecutas.

Windsurf expone menos momentos que los demás agentes. Las escrituras de archivos se bloquean en firme; las demás acciones dependen de que el agente siga .windsurfrules.

¿Algo no va bien? vibedefend status da un informe de solo lectura, y vibedefend doctor repara lo que puede.