Desde Linux Darkcrizt  

Estudio sobre vulnerabilidades en el uso de AI que escriben código

AI

Este trabajo se considera importante, ya que permite lograr un mejor entendimiento en que las herramientas del asistente de IA eventualmente hacen que los usuarios escriban código inseguro

Hace poco se dio a conocer la noticia de que un grupo de investigadores de la Universidad de Stanford estudió el impacto del uso de asistentes inteligentes al escribir código sobre la aparición de vulnerabilidades en el código.

Se menciona que se consideraron las soluciones basadas en la plataforma de aprendizaje automático OpenAI Codex, como GitHub Copilot, que le permiten al usuario poder formar bloques de código bastante complejos, hasta funciones listas para usar.

Cabe mencionar que hasta la fecha aún existen preocupaciones que están relacionadas con el hecho de que, dado que se utilizó código real de los repositorios públicos de GitHub, incluidos los que contienen vulnerabilidades, para entrenar el modelo de aprendizaje automático, el código sintetizado puede repetir errores y sugerir código que contiene vulnerabilidades, y tampoco tiene en cuenta la necesita realizar comprobaciones adicionales al procesar datos externos.

El estudio involucró a 47 voluntarios con diferente experiencia en programación, desde estudiantes hasta profesionales con diez años de experiencia. Los participantes se dividieron en dos grupos: experimental (33 personas) y control (14 personas). Ambos grupos tenían acceso a cualquier biblioteca y recurso de Internet, incluido el uso de ejemplos listos para usar de Stack Overflow. Al grupo experimental se le dio la oportunidad de utilizar el asistente de IA.

Cada participante recibió 5 tareas relacionadas con la escritura de código en las que es potencialmente fácil cometer errores que conducen a vulnerabilidades. Por ejemplo, había tareas de escritura de funciones de cifrado y descifrado, uso de firmas digitales, procesamiento de datos involucrados en la formación de rutas de archivos o consultas SQL, manipulación de grandes números en código C, procesamiento de entradas mostradas en páginas web.

Estas herramientas se basan en modelos, como Codex de OpenAI e InCoder de Facebook que están pre-entrenados en grandes conjuntos de datos de código disponible públicamente (por ejemplo, de GitHub), planteando una variedad de preocupaciones de uso que van desde los derechos de autor hasta implicaciones para las vulnerabilidades de seguridad. Si bien los trabajos recientes han estudiado estos riesgos en escenarios sintéticos más pequeños, no se ha estudiado en el medido ampliamente los riesgos de seguridad del código de IA asistentes en el contexto de cómo los desarrolladores eligen usar ellos.

Para considerar el impacto de los lenguajes de programación en la seguridad del código obtenido al usar asistentes de IA, las tareas cubrieron Python, C y JavaScript.

Como resultado, se encontró que los participantes que usaron un asistente de IA inteligente basado en el modelo codex-davinci-002 produjeron un código significativamente menos seguro que los participantes que no usaron un asistente de IA. En general, solo el 67 % de los participantes del grupo que utilizó el asistente de IA pudo proporcionar un código correcto y seguro, mientras que en el otro grupo esta cifra fue del 79 %.

Al mismo tiempo, los indicadores de seguridad (autoestima) se revirtieron: los participantes que usaron el asistente de IA creían que su código sería más seguro que el de los participantes del otro grupo. Además, se observó que los participantes que confiaban menos en el asistente de IA y pasaban más tiempo analizando y haciendo cambios en las sugerencias dadas, generaron menos vulnerabilidades en el código.

Por ejemplo, el código copiado de las bibliotecas criptográficas contenía valores de parámetros predeterminados más seguros que el código sugerido por el asistente de IA. Además, al usar el asistente de IA, se corrigieron la elección de algoritmos de cifrado menos confiables y la ausencia de autenticación de los valores devueltos. En la tarea de manipulación del número C, el código escrito con el asistente de IA tuvo más errores que resultaron en un desbordamiento de enteros.

Además, se puede señalar un estudio similar realizado por un grupo de la Universidad de Nueva York, realizado en noviembre con la participación de 58 estudiantes, a quienes se les pidió implementar una estructura para procesar una lista de compras en C. Los resultados mostraron poco impacto del asistente de IA en la seguridad del código: los usuarios que usaron el asistente de IA cometieron, en promedio, aproximadamente un 10 % más de errores relacionados con la seguridad.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.