Revisar de forma segura el código generado por IA

Los asistentes de IA escriben código muy rápido. Cómo mantener la revisión de seguridad, las pruebas y la responsabilidad en el proceso.

Uso asistentes de programación con IA a diario. Refactorizan, explican código antiguo, escriben pruebas y encuentran errores más rápido que yo. Incluso usé uno para auditar y limpiar mis propias webs antiguas. Pero la velocidad cambia la economía de la seguridad: si el código se produce diez veces más rápido, la revisión se convierte en el cuello de botella, y las revisiones que se saltan se convierten en vulnerabilidades.

La regla que sigo es sencilla: la IA escribe, una persona se hace responsable. Esto es lo que significa en la práctica.

Riesgos típicos del código generado por IA

  • Patrones verosímiles pero inseguros. SQL construido concatenando cadenas, salida sin codificar, aleatoriedad débil, comprobación de certificados desactivada "para que funcione".
  • Conocimiento desfasado. Sugerencias basadas en API obsoletas o en versiones antiguas de bibliotecas con vulnerabilidades conocidas.
  • Dependencias inventadas. Un nombre de paquete sugerido que no existe puede registrarlo un atacante. A veces se le llama "slopsquatting".
  • Secretos en las peticiones y en el código. Claves de API pegadas en un chat, o credenciales de ejemplo que acaban en producción.
  • Permisos excesivos. Agentes de IA que pueden ejecutar comandos, cambiar infraestructura o publicar en producción sin límites.

Salvaguardas que funcionan

Trata el resultado de la IA como el pull request de un compañero nuevo

Brillante, rápido y sin conocer tu modelo de amenazas. Revísalo con el mismo nivel de exigencia: ¿valida la entrada, codifica la salida, gestiona los errores de forma segura y sigue tu arquitectura?

Automatiza las comprobaciones aburridas

Análisis estático (SAST), análisis de dependencias y licencias (SCA), detección de secretos y pruebas en cada cambio, lo haya escrito quien lo haya escrito. La automatización escala con la IA; la atención humana, no.

Verifica cada dependencia nueva

Comprueba que el paquete existe, que se mantiene y que es el que crees. Fija las versiones y usa un archivo de bloqueo (lock file).

Deja los secretos fuera de la conversación

Usa marcadores de posición en las peticiones y un gestor de secretos en el código. Configura tus herramientas para que los archivos de credenciales nunca se envíen al modelo.

Limita lo que pueden hacer los agentes

Los agentes deben trabajar sobre una copia, preguntar antes de cualquier acción irreversible y nunca publicar en producción por su cuenta. Aplica el mínimo privilegio, igual que con una cuenta de servicio.

Pide a la IA que ataque su propio código

Un hábito útil: después de generar código, pide al asistente que lo revise como un atacante frente al OWASP Top 10. A menudo encuentra sus propios errores. No sustituye a la revisión humana, pero mejora lo que llega a ella.

La responsabilidad no cambia

Si un código generado por IA provoca una brecha de datos, "lo escribió el asistente" no es una respuesta que vayan a aceptar el regulador, el cliente ni la persona afectada. La persona que integra el código y la organización que lo publica siguen siendo responsables. Usada con esa mentalidad, la IA es una de las mejores herramientas de seguridad que hemos tenido nunca.