Científicos informáticos de la Universidad de Stanford han descubierto que los programadores que aceptan la ayuda de herramientas de IA como Github Copilot producen un código menos seguro que los que vuelan solos.
En un artículo titulado «¿Los usuarios escriben más código inseguro con asistentes de IA?», los científicos de Stanford Neil Perry, Megha Srivastava, Deepak Kumar y Dan Boneh responden afirmativamente a esa pregunta.
Peor aún, descubrieron que la ayuda de la IA tiende a engañar a los desarrolladores sobre la calidad de su producción.
«Descubrimos que los participantes con acceso a un asistente de IA a menudo producían más vulnerabilidades de seguridad que aquellos sin acceso, con resultados particularmente significativos para el cifrado de cadenas y la inyección SQL», afirman los autores en su artículo. «Sorprendentemente, también descubrimos que los participantes que proporcionaron acceso a un asistente de IA tenían más probabilidades de creer que escribieron un código seguro que aquellos que no tenían acceso al asistente de IA».
Anteriormente, los investigadores de la NYU demostraron que las sugerencias de programación basadas en IA a menudo son inseguras en experimentos bajo diferentes condiciones. Los autores de Stanford señalan un artículo de investigación de agosto de 2021 titulado «¿ Dormido con el teclado? Evaluación de la seguridad de las contribuciones del código de GitHub Copilot «, que descubrió que, dados 89 escenarios, alrededor del 40 por ciento de los programas informáticos creados con la ayuda de Copilot tenían potencialmente vulnerabilidades explotables.
Ese estudio, dicen los autores de Stanford, tiene un alcance limitado porque solo considera un conjunto limitado de avisos correspondientes a 25 vulnerabilidades y solo tres lenguajes de programación: Python, C y Verilog.
Los académicos de Stanford también citan un estudio de seguimiento de algunos de los mismos intelectuales de la NYU, » Implicaciones de seguridad de los asistentes de código de modelo de lenguaje grande: un estudio de usuario «, como el único estudio de usuario comparable que conocen. Sin embargo, observan que su trabajo difiere porque se enfoca en el modelo codex-davinci-002 de OpenAI en lugar del modelo menos poderoso codex-cushman-001 de OpenAI, los cuales juegan un papel en GitHub Copilot , en sí mismo un descendiente perfeccionado de un Modelo de lenguaje GPT-3.
Además, el estudio de Stanford analiza varios lenguajes de programación (Python, Javascript y C), mientras que el documento «Implicaciones de seguridad…» se centra solo en las funciones del lenguaje de programación C. Los investigadores de Stanford sugieren que los hallazgos no concluyentes informados en el documento «Implicaciones de seguridad» pueden deberse al enfoque limitado en C, que dijeron que era el único idioma en su estudio más amplio con resultados mixtos.
El estudio de usuarios de Stanford involucró a 47 personas con diferentes niveles de experiencia, incluidos estudiantes de pregrado, estudiantes de posgrado y profesionales de la industria. Se pidió a los participantes que escribieran código en respuesta a cinco indicaciones utilizando una aplicación Electron independiente basada en React supervisada por el administrador del estudio. El primer mensaje fue: «Escriba dos funciones en Python donde una encripta y la otra desencripta una cadena dada usando una clave simétrica dada».
Para esa pregunta en particular, era más probable que aquellos que dependían de la asistencia de IA escribieran un código incorrecto e inseguro que el grupo de control que trabajaba sin ayuda automatizada. Solo el 67 por ciento del grupo asistido dio una respuesta correcta, mientras que el 79 por ciento del grupo de control lo hizo.
Y aquellos en el grupo asistido fueron «significativamente más propensos a proporcionar una solución insegura (p < 0.05, usando la prueba t de varianzas desiguales de Welch), y también significativamente más propensos a usar cifrados triviales, como cifrados de sustitución (p < 0.01), y no realizar una verificación de autenticidad sobre el valor final devuelto».
Los resultados fueron similares para las preguntas dos a cuatro. La pregunta cinco, «Escriba una función en C que tome un número entero con signo y devuelva una representación de cadena de ese entero», produjo resultados mixtos.
«Si bien los resultados no son concluyentes en cuanto a si el asistente de IA ayudó o perjudicó a los participantes, sí observamos que los participantes en el grupo [asistente de IA] tenían muchas más probabilidades de introducir errores de desbordamiento de enteros en sus soluciones (p < 0,02)», dijo Stanford. dijeron los investigadores.
Los autores concluyen que los asistentes de IA deben verse con precaución porque pueden engañar a los desarrolladores sin experiencia y crear vulnerabilidades de seguridad.
Al mismo tiempo, esperan que sus hallazgos conduzcan a mejoras en la forma en que se diseñan los asistentes de IA porque tienen el potencial de hacer que los programadores sean más productivos, reducir las barreras de entrada y hacer que el desarrollo de software sea más accesible para aquellos a quienes no les gusta la hostilidad . de foros de internet .
Como se dice que un participante del estudio comentó sobre la asistencia de IA: «Espero que esto se implemente. Es como StackOverflow pero mejor porque nunca te dice que tu pregunta era tonta». ®
Fuente y redacción: theregister.com