Hasta el 40 por ciento del código generado por GitHub Copilot puede ser inseguro

Estás leyendo la publicación: Hasta el 40 por ciento del código generado por GitHub Copilot puede ser inseguro

Github Copilot se puede contar fácilmente entre las innovaciones más importantes de 2021. Sin embargo, aunque se lo apreció como un gran avance, este asistente de código basado en IA, desarrollado conjuntamente por Microsoft y OpenAI, también sufrió críticas.

Un estudio ahora ha revelado que los códigos diseñados por Copilot podrían incluir errores o fallas de diseño que un atacante podría explotar potencialmente. Detallado en un documento titulado ‘Una evaluación empírica de ciberseguridad de las contribuciones de código de GitHub Copilot’, los autores Hammond Pearce, Benjamin Tan, Baleegh Ahmad, Ramesh Karri y Brendan Dolan-Gavitt crearon 89 escenarios para que Copilot desarrollara código, lo que resultó en 1692 programas. . Alrededor del 40 por ciento de estos códigos incluían errores que podrían plantear riesgos de seguridad.

Código inseguro

Actualmente, Copilot está disponible para pruebas beta privadas y como una extensión de Visual Studio Code de Microsoft. Copilot genera código correspondiente a la descripción dada por desarrolladores humanos. También puede predecir la siguiente línea de código del desarrollador a partir de sugerencias como nombres de variables y funciones. No debe confundirse con el autocompletado; su función es más de interpretación.

Dicho esto, en su blog oficial, GitHub mencionó que dado que Copilot está entrenado en código público, que puede incluir patrones de codificación inseguros, errores o referencia API de código obsoleto, la herramienta también puede sintetizar código que contiene patrones similares.

En este estudio, los investigadores han tratado de comprender qué tan comúnmente inseguras son las sugerencias de Copilot y qué factores del contexto generan un código que es más o menos seguro. Con este fin, el equipo experimentó con Copilot diseñando escenarios para que la herramienta los completara antes de analizar el código producido en busca de debilidades de seguridad.

🔥 Recomendado:  Código de cupón de Cloudways 2023: crédito gratuito exclusivo de $ 20 o 25% de descuento en tres meses [100% Authentic]

El equipo verificó las finalizaciones de Copilot para un subconjunto de las “25 debilidades de software más peligrosas de CWE de 2021”. Es una lista que indica las debilidades de software más peligrosas y se actualiza cada año. El comportamiento del copiloto se estudió en tres dimensiones:

  • Su tendencia a generar código que es susceptible a las debilidades en la lista de los 25 principales de CWE (dado un escenario donde tal vulnerabilidad es posible). Esto se llama la diversidad de la debilidad.
  • La respuesta al contexto de un escenario; llamado la diversidad de prompt.
  • La respuesta al dominio (lenguaje de programación/paradigma); llamado diversidad de dominio.

Esta investigación intenta caracterizar la tendencia de Copilot a producir código inseguro. Es esencial ya que ayuda a determinar la cantidad de escrutinio humano que un desarrollador humano podría necesitar practicar para detectar posibles problemas de seguridad. Dado que Copilot está capacitado con el código de fuente abierta disponible en GitHub, el equipo teorizó que la calidad variable de la seguridad ocurre debido a la naturaleza del código proporcionado por la comunidad. Copilot reproducirá con mayor frecuencia errores que son más visibles en los repositorios de código abierto.

El efecto del tiempo es otro aspecto crucial que afecta la calidad de seguridad del código generado por Copilot. Las prácticas desactualizadas pueden persistir en el conjunto de entrenamiento y lo mismo puede reflejarse en el código generado, haciéndolos a veces inútiles o incluso vulnerables a los ataques. “Lo que es una ‘mejor práctica’ en el momento de redactar este artículo puede convertirse lentamente en una ‘mala práctica’ a medida que evoluciona el panorama de la ciberseguridad”, observaron los autores.

🔥 Recomendado:  Cómo crear una contraseña más segura que proteja su cuenta

Curiosamente, OpenAI publicó recientemente un documento titulado ‘Evaluación de modelos de lenguaje grandes entrenados en código’, que destaca hasta qué punto los usuarios pueden confiar en el aprendizaje profundo en la programación. El estudio señaló que ninguna de las diversas versiones de GPT-3 podía resolver ninguno de los problemas de codificación utilizados para evaluar el Codex. El estudio también expuso la falta de comprensión de Codex sobre la estructura del programa. El estudio señaló que “(Codex) puede recomendar código sintácticamente incorrecto o indefinido, y puede invocar funciones, variables y atributos que no están definidos o están fuera del alcance de la base de código”.

Otros desafíos con Copilot

Poco después de que se calmara el alboroto tras el lanzamiento de Copilot, algunos usuarios comenzaron a expresar su preocupación sobre la legalidad del uso de códigos públicos para la formación. Algunos usuarios señalaron que, dado que la herramienta está entrenada en repositorios de código que pueden tener licencia y estar protegidos por derechos de autor, ¿qué sucede cuando Copilot reproduce estos fragmentos de código (dado que GitHub mencionó que hay un 0,1 por ciento de posibilidades de que Copilot reproduzca el código palabra por palabra)? . Un usuario de Twitter también alegó que este podría ser un caso potencial de lavado de código para uso comercial, lo que implica copiar contenido y el trabajo derivado.

El copiloto de github, por su propia admisión, ha sido entrenado en montañas de código gpl, por lo que no tengo claro cómo no es una forma de lavar el código fuente abierto en trabajos comerciales. la onda manual de “por lo general no reproduce fragmentos exactos” no es muy satisfactoria pic.twitter.com/IzqtK2kGGo

– eevee (@eevee) 30 de junio de 2021