“GitHub Copilot, el asistente de codificación con inteligencia artificial de GitHub, puede sugerir código inseguro cuando la base de código existente de un usuario contiene problemas de seguridad”, advirtió Snyk. “GitHub Copilot puede reproducir problemas de seguridad existentes en el código”, dijo Snyk en una publicación de blog publicada el 22 de febrero. “Esto significa que la deuda de seguridad existente en un proyecto puede hacer que los desarrolladores con código poco seguro envíen código aún menos seguro cuando usan Copilot”, agregó la compañía. Sin embargo, la probabilidad de que GitHub Copilot sugiera código inseguro en proyectos sin problemas de seguridad es menor porque el contexto del código del que extrae el asistente es menos incierto.

“Los asistentes de codificación basados ​​en IA generativa como GitHub Copilot, Amazon CodeWhisperer y ChatGPT representan un gran avance en términos de productividad y eficiencia del código”, dijo Snyk. Pero estas herramientas no entienden la semántica del código, por lo que no pueden juzgar su calidad. GitHub Copilot genera fragmentos de código basados ​​en patrones y estructuras que ha aprendido de un gran repositorio de código existente. “Si bien este enfoque tiene sus ventajas, también puede tener un inconveniente evidente en el contexto de la seguridad”, agregó Snyk.

40 vulnerabilidades en promedio en software comercial

Las sugerencias de código de Copilot pueden replicar inadvertidamente vulnerabilidades de seguridad y malas prácticas existentes en archivos vecinos. Para mitigar esta transferencia de problemas de seguridad existentes al código generado por IA, Snyk recomienda a los desarrolladores que:

- Realizar revisiones manuales de código. Los equipos de seguridad deben implementar una medida de seguridad de las pruebas de seguridad de aplicaciones (SAST), incluidas las políticas.

- Cumplir con las pautas de codificación segura. Los equipos de seguridad deben capacitar y educar a los equipos de desarrollo, priorizar y clasificar los problemas pendientes por equipo. Los equipos de administración deben aplicar medidas de seguridad.

Los datos de Snyk indican que un proyecto de software comercial típico tiene un promedio de 40 vulnerabilidades en código propio, y que casi un tercio de esas vulnerabilidades son de alta gravedad. "Las herramientas de generación de IA pueden duplicar absolutamente el código utilizando estas vulnerabilidades como contexto", insistió Snyk. Los problemas más comunes que Snyk ve en proyectos comerciales son XSS, vulnerabilidades de recorrido de ruta, inyección SQL y secretos y credenciales codificados de forma rígida. No fue posible contactar con GitHub a última hora de la tarde de ayer para obtener una respuesta a los comentarios de Snyk en GitHub Copilot.