Presentación del taller: ¿Es segura tu app hecha con vibe coding?

Flechas para avanzar. F para pantalla completa. N para las notas del ponente.

¿Es segura tu app hecha con vibe coding?

Un taller práctico de Vibe para quienes construyen con IA

vibe1 / 24

Tu IA escribe el código. Tú respondes de las consecuencias.

vibe2 / 24

¿Quién les va a contar a los vibe coders lo de...?

Rate limiting · Idempotency · Row-level security · Timeouts · Webhooks · Secretos · Rollbacks · Backups · Prompt injection · y 102 más

vibe3 / 24

Las pruebas

  • Alrededor del 44% de las tareas de generación de código con IA introdujeron una vulnerabilidad conocida (Veracode, 2026)
  • 170+ apps expuestas por una sola política de base de datos ausente (CVE-2025-48757)
  • 1 agente de IA borró una base de datos de producción en plena congelación de código (julio de 2025)
vibe4 / 24

Parte 1. La mentalidad

20 minutos

vibe5 / 24

El código de IA falla de formas predecibles

  • Comprueba quién eres, pero no qué es tuyo
  • Pone los secretos donde le resulta cómodo
  • Escribe el happy path y se traga los errores
  • Hace consultas dentro de bucles
  • Se inventa paquetes que no existen
  • Dice "listo, pasan todos los tests" sin haber ejecutado nada
vibe6 / 24

Las cinco lentes

  1. Adversario. ¿Y si el usuario es un atacante?
  2. Escala. ¿Y si 1,000 personas hacen esto a la vez?
  3. Fallo. ¿Y si lo que llamo va lento o está caído?
  4. Cambio. ¿Cómo lo despliego y lo deshago con seguridad?
  5. Visibilidad. ¿Cómo me enteraría siquiera de que se ha roto?
vibe7 / 24

Radio de impacto

  • A. Reversible y privado: despliega sin miedo
  • B. Toca datos de usuarios: control de acceso y backups
  • C. Dinero o identidad: idempotency, auditoría, tests
  • D. Acciones irreversibles o externas: aprobación humana y un kill switch
vibe8 / 24

Parte 2. Te presentamos Ledgerly

La especificación de una app real con 14 tests de seguridad. 10 minutos

vibe9 / 24

Preparación

cd vibe-starter
npm install
npm run score

Resultado esperado: 0 / 14 passing

vibe10 / 24

Las reglas

  • Usa tu asistente de IA para construir cada funcionalidad
  • Lee cada diff antes de aceptarlo
  • Nunca edites los tests
  • Pide a tu IA que explique el test que falla antes de escribir nada
vibe11 / 24

Parte 3. ¿Quién puede ver qué?

Control de acceso, inyección, secretos. 50 minutos

vibe12 / 24

El control de acceso roto es el riesgo número uno

OWASP Top 10:2025, A01. La app comprueba que has iniciado sesión, no que la factura sea tuya.

Pruébalo: pide a tu IA que construya el endpoint de facturas. Inicia sesión como Bob y cambia el ID de la factura. ¿De quién es la factura que ves?

vibe13 / 24

Los secretos no pintan nada en el navegador

Todo lo que va en el bundle del frontend es público. Abre las dev tools y busca sk_.

Si se filtra una clave, rótala. Borrar el archivo no borra el historial de git.

vibe14 / 24

Lab: pasa los tests 01 a 07

Control de acceso, SQL injection, secretos, XSS, rate limiting, hashing de contraseñas, N+1

Puntuación objetivo: 7 / 14

vibe15 / 24

Pausa

15 minutos

vibe16 / 24

Parte 4. Cuando las cosas salen mal

Timeouts, webhooks, race conditions. 40 minutos

vibe17 / 24

Las redes fallan a medias

  • Toda llamada saliente necesita un timeout
  • Los reintentos necesitan idempotency, o a los clientes se les cobra dos veces
  • Los webhooks necesitan verificación de firma y deduplicación
  • Comprobar y luego actuar exige una actualización atómica
vibe18 / 24

Parte 5. Cuando la entrada es el ataque

SSRF y prompt injection. 40 minutos

vibe19 / 24

La combinación letal

Un agente de IA es peligroso cuando tiene las tres cosas:

  1. Acceso a datos privados
  2. Exposición a contenido no confiable
  3. Una forma de actuar o de enviar datos fuera

Quita una pata en cada tarea.

vibe20 / 24

Lab: pasa los tests 08 a 14

Puntuación objetivo: 14 / 14

vibe21 / 24

Parte 6. Para llevar a casa

20 minutos

vibe22 / 24

Tus próximos 7 días

  1. Haz un escaneo de secretos en tu app real y rota todo lo que encuentres
  2. Activa row-level security y pruébala con una segunda cuenta
  3. Pon límites de gasto a todas las API keys de pago
  4. Añade un timeout a cada llamada saliente
  5. Haz una restauración de backup y cronométrala
vibe23 / 24

Conserva la vibe. Suma las pruebas.

vibe.jayren.ai

vibe24 / 24

Notas del ponente