Un ataque explotó GitHub Copilot para extraer datos de repositorios privados.

Investigadores de Legit Security desarrollaron una técnica de ataque contra GitHub Copilot que les permite extraer contenido de repositorios privados mediante un chatbot para analizar las solicitudes de extracción entrantes. Por ejemplo, demostraron la capacidad de determinar las claves almacenadas en un repositorio privado para acceder a un entorno de nube de AWS.

El ataque se basa en la capacidad de GitHub Copilot para cargar imágenes externas según el contenido procesado y para insertar comentarios ocultos en las solicitudes de extracción. Estos comentarios son invisibles en la interfaz de GitHub, pero se incluyen en el análisis del chatbot. Para llevar a cabo la filtración, el atacante crea un conjunto de imágenes transparentes de un solo píxel en su servidor, cada una representando un carácter especial, un número o una letra del alfabeto. A continuación, se envía a la víctima una solicitud de extracción que contiene, además del cambio propuesto, un comentario oculto con instrucciones para el chatbot, con el formato " ", que no se muestra cuando se genera texto en formato Markdown.

El comentario solicita al bot que busque en todos los repositorios de usuarios, incluidos los privados, cadenas que contengan el valor de código "AWS_KEY". Las cadenas encontradas no se mostrarán como texto sin formato, sino mediante visualización basada en imágenes: cada carácter del texto debe mostrarse como una imagen. El comentario también incluye una tabla para asignar caracteres a imágenes. La nota indica que la tarea no requiere explicación ni información adicional, salvo imágenes.

Un ataque explotó GitHub Copilot para extraer datos de repositorios privados.

Cuando un mantenedor de GitHub usa Copilot para analizar una solicitud de extracción propuesta, el chatbot realizará una tarea oculta y mostrará los resultados en forma de imágenes. Dado que las imágenes son transparentes, el mantenedor no detectará ninguna anomalía y un atacante puede reconstruir el contenido de las cadenas detectadas que contienen claves de AWS analizando la secuencia de carga de imágenes en el registro del servidor web.

Para eludir la Política de Seguridad de Contenido (CSP), que solo permite subir imágenes de servidores de GitHub a GitHub Copilot, se utiliza GitHub Camo como proxy. GitHub utiliza este proxy como intermediario para cargar imágenes externas, como las incrustadas en una página README. Para usar Camo, la tabla de mapeo de símbolos especifica enlaces al propio proxy, con el formato "https://camo.githubusercontent.com/hash_images", en lugar de enlaces directos. Anteriormente, las rutas necesarias para redirigir la carga de imágenes se añadieron y verificaron en Camo mediante la API REST de GitHub. GitHub ya ha bloqueado este método de ataque desactivando la representación de imágenes en el chat de Copilot.

Fuente: opennet.ru

Añadir un comentario