Los usuarios ultraalíticos deben reducir la vigilancia. Los atacantes lograron comprometer los paquetes de Yolo publicados en PYPI con Código Malicioso, el índice oficial de los paquetes de Python. Este no es un proyecto pequeño: Yolo (algoritmo de detección de objetos) tiene más de 30,000 estrellas y más de 6,000 tenedores en GitHub y los paquetes PYPI en cuestión han acumulado casi 60 millones de descargas. El código atendido ha implementado malware de minería de criptomonedas en sistemas que han instalado el paquete, pero los atacantes podrían haber difundido cualquier tipo de malware. De acuerdo a Investigadores de ReversingLabsLos Piratas aprovecharon una hazaña conocida a través de acciones de GitHub para introducir su código durante el proceso de construcción automatizado, evitando así el proceso de revisión habitual. En consecuencia, el código solo estaba presente en el paquete empujado a PYPI y no en el depósito en GitHub.

La versión troyanizada de Ultralytics on Pypi (8.3.41) se publicó el 4 de diciembre. Los desarrolladores ultraalíticos fueron alertados el 5 de diciembre e intentaron publicar una nueva versión (8.3.42) para resolver el problema, pero como no habían entendido la fuente del compromiso, esta versión terminó también incluyendo el código de veneno. Finalmente se publicó una versión limpia y segura (8.3.43) el mismo día. "A diferencia del reciente compromiso de un paquete de NPM de confianza @solana/web3.js, que también tenía un radio de impacto similar, pero que fue causado por el compromiso de una de las cuentas del mantenedor, en este caso, la intrusión en el entorno de construcción fue llevado a cabo por un vector más sofisticado, por explotación de un script de acciones inyectado que se conoce previamente a los investigadores de seguridad que se conoció previamente a los investigadores de seguridad,", escribió el experto en el experto de la seguridad de Github, ", escribió un experto en el experto de la seguridad,", escribió el experto de la seguridad, ", escribió el experto de la seguridad,", escribió el experto en el experto de la seguridad de Github. su informe.

Regresión de una vulnerabilidad previamente corregida

GitHub Actions es un servicio de CI/CD utilizado para que los usuarios de GitHub automatizaran la construcción y prueba del código de software definiendo flujos de trabajo que ejecutan automáticamente contenedores internos en la infraestructura de GitHub o usuario. Los flujos de acciones de GitHub son una serie de procesos o "acciones" definidas en archivos .yml dentro de los depósitos que se ejecutan cuando ocurren ciertos eventos de activación, por ejemplo, cuando se entrega un nuevo código en el depósito. Es común que los desarrolladores trabajen en sus propias horquillas (versiones) y luego envíen las correcciones al proyecto principal a través de las solicitudes. De manera predeterminada, todos pueden obtener un proyecto y enviar solicitudes de extracción, lo que significa que los propietarios de proyectos deben ser muy cautelosos sobre cómo usan las acciones de GitHub, en particular con respecto a las acciones y desencadenantes que autorizan. El investigador de seguridad Adnan Khan está acostumbrado a investigar y encontrar problemas de seguridad relacionados con estos entornos. En agosto, informó a Ultralytics una vulnerabilidad de la inyección de script que ya podría conducir a la ejecución de un código arbitrario en el contexto del flujo de trabajo, que se corrigió más adelante. Sin embargo, se introdujo una regresión más tarde. "Parece que el punto de inyección explotado por el actor de la amenaza se ha introducido en ultraalticia/acciones@C1365CE. 10 días después de la publicación de Ultralytics de la opinión relacionada con la primera vulnerabilidad", escribió el Sr. Khan en los comentarios sobre este último compromiso.

Los atacantes también parecen haber utilizado una técnica de envenenamiento de caché para persistir en sus modificaciones a través de acciones de Github que el Sr. Khan había documentado en mayo pasado En su blog personal. Según el análisis del código malicioso por Reverselabs, el atacante cambió dos archivos: downloads.py y model.py. El código inyectado en model.py verifica el tipo de sistema en el que se implementa el paquete para descargar una carga útil destinada a esta plataforma y su arquitectura del procesador. El código malicioso que descarga la carga útil se almacena en Downloads.py. "Aunque en este caso, sobre la base de la información actual disponible para el equipo de investigación de RL, parece que esta carga maliciosa servida era simplemente un XMRIG menor, y esa funcionalidad de hack estaba destinada a la minería de criptomonedas", escriben los investigadores de ReversingLabs. "Pero no es difícil imaginar el impacto potencial y el daño si los actores de la amenaza decidieran establecer software malicioso más agresivo, como puertas robadas o troyanos de acceso remoto (rata). El informe inverso incluye indicadores de compromiso y archivos para detectar la infección. Los sistemas que han desplegado ultraviatos 8.3.41 y 8.3.42 deberían ser el sujeto de un audito de seguridad.