Las herramientas de Inteligencia Artificial generan código propenso a ser vulnerable

De acuerdo con un estudio publicado recientemente por investigadores de la Universidad de Stanford (Neil Perry, 2022), herramientas como GitHub Copilot y ChatGPT son propensas a generar código vulnerable y a fallos. En el estudio también se divulgó que los participantes que tuvieron acceso a estas herramientas concluyeron que su código era más seguro que aquellos sin acceso a las herramientas. Este tipo de comportamiento por parte de las herramientas ya ha sido reportado. Un artículo publicado en 2021 (Hammond Pearce, 2021) reveló la seguridad de algunos códigos generados por Copilot usando las Mitre top 25 CWE (Common Weakness Enumeration), encontrando que aproximadamente el 40% de los 1689 códigos generados para 89 escenarios diferentes eran vulnerables.

Si tratamos de entender por qué sucede esto, podemos decir que estas herramientas usan fuentes públicas para su enriquecimiento y aprendizaje, tanto supervisado como no supervisado, y pueden contener errores, ya que el código muestra ha sido creado o descrito por algún humano previamente, tal vez sin tomar en cuenta su seguridad. Por supuesto que esto no significa que dichas herramientas no sean de utilidad práctica o que no puedan llegar a la paridad humana (Alonso, 2019) en términos de programación. El artículo de la Universidad de Stanford (Hammond Pearce, 2021) también menciona que los participantes con acceso a las herramientas de Inteligencia Artificial (IA) que se involucraron más en la generación de las consultas adecuadas, proporcionando funciones de ejemplo o ajustando los parámetros de la consulta, produjeron código más seguro.

Este tipo de herramientas representan un fuerte avance en términos de hacer accesible la programación para personas no tan experimentadas, sin embargo, es necesario notar que se debe actuar con precaución al usar código generado por IA sin tener conocimiento de sus posibles implicaciones, sobre todo en ambientes productivos.

De manera similar, para programadores experimentados representa una ayuda en términos de productividad, al poder delegar o buscar acciones específicas que se puedan desarrollar de manera más eficiente. De acuerdo con GitHub, el uso de Copilot incrementó la productividad de los programadores e incluso su felicidad, ya que permite resolver problemas de mayor complejidad (Kalliamvakou, 2022). Por lo anterior, podemos suponer que los programas y sistemas desarrollados se volverán mucho más complejos conforme se extienda el uso de las herramientas de IA, facilitando potencialmente muchos de los procesos que actualmente se llevan a cabo de forma manual.

Así mismo, la implementación de herramientas automatizadas y/o entrenadas pueden utilizarse para cubrir aspectos de seguridad y alcanzar un nivel de madurez en el desarrollo de código seguro. Prescindir del factor humano en la generación de código puede resultar menos seguro; sin embargo, su participación también juega un papel importante en la evolución las herramientas de IA para mejorar sus capacidades y parámetros en la validación del mismo código generado.

Esto no necesariamente significa que las herramientas de IA reemplazarán a los programadores, sino más bien que el rol del programador cambiará para volverse más completo. Como se mencionó anteriormente, alguien debe realizar las consultas adecuadas y dar forma al resultado en su estado más complejo para resolver un problema. Después de todo, no se debe perder de vista que ChatGPT y Copilot son herramientas muy sofisticadas, pero no dejan de ser herramientas; de forma similar a un mazo que puede servir para golpear o esculpir, pero no es más diestro que la mano que lo empuña.

Referencias:

Alonso, C. (15 de Mayo de 2019). www.des-show.com. Obtenido de https://www.des-show.com/%ef%bb%bfla-paridad-humana/

Hammond Pearce, Baleegh Ahmad, Benjamin Tan, Brendan Dolan-Gavitt, Ramesh Karri (2021). Asleep at the Keyboard? Assessing the Security of GitHub Copilot´s Code Contributions. Disponible en https://arxiv.org/abs/2108.09293

Kalliamvakou, E. (Septiembre de 2022). github.blog. Obtenido de https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/

Neil Perry and Megha Srivastava and Deepak Kumar and Dan Boneh (2022). Do Users Write More Insecure Code with AI Assistants? Disponible en https://arxiv.org/abs/2211.03622