Ataque a la infraestructura de PyTorch, comprometiendo el repositorio y las versiones

Se han revelado detalles sobre el ataque a la infraestructura utilizada en el desarrollo del marco de aprendizaje automático PyTorch, que permitió extraer claves de acceso suficientes para alojar datos arbitrarios en el repositorio de versiones del proyecto en GitHub y AWS, así como para insertar código en la rama principal del repositorio y añadir una puerta trasera a través de dependencias. La sustitución de las versiones de PyTorch podría haberse utilizado para llevar a cabo ataques contra grandes empresas como Google, Meta, Boeing y Lockheed Martin, que utilizan PyTorch en sus proyectos. En el marco del programa Bug Bounty, la empresa Meta pagó a los investigadores $16,250 por información sobre el problema.

La esencia del ataque radica en la posibilidad de ejecutar su propio código en como en entornos de nube públicos o privados. la integración continua, que realiza la recompilación y ejecución de tareas para probar nuevos cambios enviados al repositorio. El problema afecta a los proyectos que utilizan sus propios procesadores externos 'Self-Hosted Runner' con GitHub Actions. A diferencia de los tradicionales GitHub Actions, los procesadores Self-Hosted no se ejecutan en la infraestructura de GitHub, sino en sus servidores o en máquinas virtuales soportadas por los desarrolladores.

La ejecución de tareas de compilación en sus propios servidores permite iniciar código que puede escanear la red interna de la empresa, buscar en el FS local claves de cifrado y tokens de acceso, analizar variables de entorno con parámetros de acceso a almacenamiento externo o servicios en la nube. Sin el aislamiento adecuado del entorno de compilación, los datos confidenciales encontrados pueden ser enviados al atacante, por ejemplo, mediante el acceso a API externas. Para determinar el uso de 'Self-Hosted Runner' por los proyectos, se puede utilizar la herramienta Gato, que analiza archivos workflow públicos y registros de ejecución de tareas CI.

En PyTorch y muchos otros proyectos que utilizan «Self-Hosted Runner», la ejecución de tareas de compilación está permitida solo para desarrolladores cuyos cambios han sido revisados previamente e incluidos en la base de código del proyecto. Tener el estatus de «contributor» al utilizar la configuración predeterminada en el repositorio permite ejecutar los handlers de GitHub Actions al enviar pull requests y, por lo tanto, ejecutar su código en cualquier entorno de GitHub Actions Runner vinculado al repositorio o a la organización que gestiona el proyecto.

Se descubrió que la restricción al estatus de «contributor» es fácil de eludir: basta con enviar un cambio menor y esperar su aceptación en la base de código, después de lo cual el desarrollador automáticamente obtiene el estatus de participante activo, cuyas pull requests pueden ser probadas en la infraestructura CI sin una verificación adicional. Para obtener el estatus de desarrollador activo, durante el experimento se utilizaron cambios menores relacionados con la corrección de erratas en la documentación. Para acceder al repositorio y al almacenamiento de lanzamientos de PyTorch durante el ataque al ejecutar código en el «Self-Hosted Runner», se interceptó el token de GitHub utilizado para acceder al repositorio desde los procesos de compilación, así como las claves de AWS implicadas en el almacenamiento de los resultados de la compilación.

El problema no es específico de PyTorch y afecta a muchos otros grandes proyectos que utilizan configuraciones predeterminadas para «Self-Hosted Runner» en GitHub Actions. Por ejemplo, se mencionan ataques similares para insertar un backdoor en algunas grandes billeteras de criptomonedas y proyectos de blockchain con capitalización de miles de millones, realizar cambios en los lanzamientos de Microsoft Deepspeed y TensorFlow, comprometer una de las aplicaciones de CloudFlare, así como ejecutar código en una computadora en la red de Microsoft. Los detalles sobre estos incidentes aún no se han revelado. En el marco de los programas de Bug Bounty, los investigadores han enviado más de 20 solicitudes para obtener recompensas por un monto de varios cientos de miles de dólares.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster