23 ene 2024

Posible ataque a la cadena de suministro a través de PyTorch

El ingeniero de seguridad John Stawinski IV ha escrito un proyecto en el que él y Adnan Khan llevaron a cabo un ataque a la cadena de suministro de la popular infraestructura del marco de aprendizaje profundo PyTorch, aunque afortunadamente con buenas intenciones.

Según el ingeniero, el popular marco de código abierto de Meta, PyTorch, utiliza los llamados ejecutores autohospedado en su repositorio GitHub. Esto no está en consonancia con las mejores prácticas y puede generar vulnerabilidades que tienen importantes implicaciones para la cadena de suministro.

Según el investigador, la principal vulnerabilidad para esto está en los corredores autohospedados que se utilizaron. Los corredores son máquinas virtuales que ejecutan procesos en GitHub Actions. A menudo se utilizan como parte de procesos de CI/CD.

En el último caso, un ejemplo de exploit puede ser robar secretos del código alojado en GitHub para que la versión de lanzamiento pueda verse comprometida. También es posible cargar versiones maliciosas de PyTorch en GitHub, o cargar versiones en AWS, agregar código a la rama del repositorio principal o dependencias de PyTorch de puerta trasera.

La mayoría de estos corredores están alojados en el propio GitHub y se descartan y eliminan después de su uso. Los corredores autohospedados se ejecutan fuera de la plataforma GitHub y son más flexibles. Se pueden personalizar según lo deseen los usuarios. A diferencia de los ejecutores de GitHub, cada manejo no requiere una instancia limpia y la misma instancia se puede reutilizar para diferentes tareas.​

Escribe Stawinski a modo de introducción al proyecto. "Hace cuatro meses, Adnan Khan y yo explotamos una vulnerabilidad crítica de CI/CD [Integración continua/Entrega continua] en PyTorch, una de las plataformas de ML [Aprendizaje automático] líderes en el mundo. Utilizada por titanes como Google, Meta, Boeing y Lockheed. Martin, PyTorch es un objetivo importante tanto para los hackers como para los estados-nación. Afortunadamente, explotamos esta vulnerabilidad antes que los malos".

El ataque en cuestión se lleva a cabo a través de la plataforma de colaboración y alojamiento de código GitHub de Microsoft, aprovechando GitHub Actions, un sistema para automatizar la compilación, las pruebas e incluso el lanzamiento de software, y que permite la ejecución de código proporcionado por el usuario durante ese proceso. Este código puede ser parte de la plataforma alojada de GitHub o lo que se conoce como un "ejecutor autohospedado", que trae consigo advertencias sobre seguridad que los desarrolladores suelen ignorar, dice Stawinski.

"No ayuda que algunas de las configuraciones predeterminadas de GitHub no sean tan seguras", señala Stawinski. "De forma predeterminada, cuando un ejecutor autohospedado se adjunta a un repositorio, cualquiera de los flujos de trabajo de ese repositorio puede usar ese ejecutor. Esta configuración también se aplica a los flujos de trabajo de solicitudes de extracción de bifurcación. Recuerde que cualquiera puede enviar una solicitud de extracción de bifurcación a un GitHub público. repositorio. Sí, incluso usted. El resultado de esta configuración es que, de forma predeterminada, cualquier colaborador del repositorio puede ejecutar código en el ejecutor autohospedado enviando un PR malicioso".

Al analizar el repositorio de PyTorch utilizando la herramienta Gata de Praetorian, Stawinski y Khan encontraron varios corredores autohospedados potencialmente vulnerables, y algunos con acceso a secretos, incluidas las claves de acceso de Amazon Web Services (AWS) y los tokens de acceso personal (PAT) de GitHub. Al enviar una simple solicitud de extracción para corregir un error tipográfico en la documentación, la pareja se convirtió en "contribuyentes" y creó un flujo de trabajo que les dio acceso completo a los corredores, que luego se utilizaron para obtener los secretos supuestamente protegidos, incluidos los PAT de GitHub.

Utilizando el token [GitHub] se puede cargar un activo que afirma ser un binario PyTorch precompilado y listo para usar y agregar una nota de la versión con instrucciones para ejecutar y descargar el binario. Cualquier usuario que descargado el binario entonces estaría ejecutando el código modificado. Si los activos del código fuente actual no estuvieran fijados en la confirmación de lanzamiento, el atacante podría sobrescribir esos activos directamente.

"Si las versiones del repositorio de PyTorch con puertas traseras suenan divertidas, bueno, eso es sólo una fracción del impacto que logramos cuando analizamos los secretos del repositorio". Estos secretos, señala Stawinski, desbloquearon el acceso a más de 90 repositorios de PyTorch, así como a los sistemas en la nube de Amazon Web Services (AWS) del proyecto.

El proceso les valió a la pareja un pago de recompensa por errores de U$S5.000 de parte de Facebook. Meta, matriz, más un bono del diez por ciento como disculpa por los retrasos.

El artículo completo de Stawinski está disponible en su sitio web.

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!