Ataque a la Cadena de Suministro Compromete Packagist con Scripts Maliciosos Post-Instalación
Un ataque coordinado a la cadena de suministro ha comprometido ocho paquetes en **Packagist**, inyectando código malicioso en archivos `package.json`. El ataque aprovecha scripts post-instalación para descargar y ejecutar un binario de Linux desde un repositorio de GitHub ahora inactivo, lo que podría comprometer los sistemas de los desarrolladores.
Una nueva campaña de ataque coordinado a la cadena de suministro ha afectado a ocho paquetes en **Packagist**, incluyendo código malicioso diseñado para ejecutar un binario de Linux recuperado de una URL de GitHub Releases.
"Aunque los paquetes afectados eran todos paquetes de Composer, el código malicioso no se añadió a composer.json", dijo **Socket**. "En su lugar, se insertó en package.json, apuntando a proyectos que distribuyen herramientas de compilación de JavaScript junto con código PHP".

### Ataque Inter-Ecosistema
Esta "ubicación inter-ecosistema" hace que la actividad destaque porque los desarrolladores y equipos de seguridad que escanean dependencias de PHP pueden centrarse solo en metadatos relacionados con Composer, omitiendo los hooks del ciclo de vida de `package.json` que se incluyen dentro del paquete. Las versiones maliciosas ya han sido eliminadas de Packagist.
Un análisis de los paquetes ha descubierto que sus repositorios upstream se han modificado para incluir un script `postinstall` que intenta descargar un binario de Linux desde una URL de GitHub Releases (`github[.]com/parikhpreyash4/systemd-network-helper-aa5c751f`), guardarlo en la carpeta `/tmp/.sshd`, cambiar sus permisos usando `chmod` para otorgar permisos de ejecución a todos los usuarios y ejecutarlo en segundo plano.
### Paquetes Afectados
Los nombres de los paquetes y la versión afectada asociada se enumeran a continuación:
* moritz-sauer-13/silverstripe-cms-theme (dev-master)
* crosiersource/crosierlib-base (dev-master)
* devdojo/wave (dev-main)
* devdojo/genesis (dev-main)
* katanaui/katana (dev-main)
* elitedevsquad/sidecar-laravel (3.x-dev)
* r2luna/brain (dev-main)
* baskarcm/tzi-chat-ui (dev-main)

### ¿Campaña Más Amplia?
La investigación de **Socket** ha encontrado referencias al mismo payload en 777 archivos en **GitHub**, lo que sugiere que podría ser parte de una campaña más amplia. En al menos dos instancias, se añadió a un flujo de trabajo de GitHub. Sin embargo, actualmente no se sabe cuántos de estos corresponden a compromisos distintos, forks, artefactos de paquetes duplicados o referencias en caché.
* [Instancia 1](https://github.com/448776129/UA2F/blob/master/.github/workflows/ci.yml)
* [Instancia 2](https://github.com/448776129/blog-1/blob/9ebac2e4118396b84e508585f356bf06971c4fb5/.github/workflows/deploy_coding.yml)
"Esto sugiere que el atacante no dependía de un único mecanismo de ejecución. En los artefactos de paquetes, el payload se activaba a través de scripts `postinstall` de `package.json`", dijo la firma de seguridad de aplicaciones. "En los archivos de flujo de trabajo, se posicionó para ejecutarse durante los trabajos de GitHub Actions".
### Análisis del Payload
Además, la naturaleza exacta del payload descargado de GitHub no está clara, ya que la cuenta de GitHub asociada con el repositorio que lo aloja ya no está disponible. La elección del nombre "gvfsd-network" para el malware es interesante, ya que se refiere a un demonio del Sistema de Archivos Virtuales (**GVfs**) de **GNOME** responsable de administrar y navegar por los recursos compartidos de red.
"Incluso sin el binario de segunda etapa, el instalador malicioso es suficiente para justificar un bloqueo", dijo **Socket**. "Proporciona ejecución remota de código durante la instalación o los flujos de trabajo de compilación e intenta ocultar su actividad deshabilitando la verificación TLS, suprimiendo errores y ejecutando un binario descargado en segundo plano".