Ataque à Cadeia de Suprimentos Visa o Packagist com Scripts Maliciosos Pós-Instalação
Um ataque coordenado à cadeia de suprimentos comprometeu oito pacotes no **Packagist**, injetando código malicioso em arquivos `package.json`. O ataque utiliza scripts pós-instalação para baixar e executar um binário Linux de um repositório GitHub agora inativo, potencialmente comprometendo sistemas de desenvolvedores.
Uma nova campanha de ataque "coordenada" à cadeia de suprimentos impactou oito pacotes no **Packagist**, incluindo código malicioso projetado para executar um binário Linux recuperado de uma URL do GitHub Releases.
"Embora os pacotes afetados fossem todos pacotes Composer, o código malicioso não foi adicionado ao composer.json", disse a **Socket**. "Em vez disso, foi inserido no package.json, visando projetos que distribuem ferramentas de build JavaScript juntamente com código PHP."

### Segmentação Cross-Ecosystem
Essa "colocação cross-ecosystem" faz a atividade se destacar porque desenvolvedores e equipes de segurança que escaneiam dependências PHP podem focar apenas em metadados relacionados ao Composer, ignorando os hooks de ciclo de vida do `package.json` que estão incluídos no pacote. As versões maliciosas já foram removidas do Packagist.
Uma análise dos pacotes descobriu que seus repositórios upstream foram modificados para incluir um script `postinstall` que tenta baixar um binário Linux de uma URL do GitHub Releases (`github[.]com/parikhpreyash4/systemd-network-helper-aa5c751f`), salvá-lo na pasta `/tmp/.sshd`, alterar suas permissões usando `chmod` para conceder permissões de execução a todos os usuários e executá-lo em segundo plano.
### Pacotes Afetados
Os nomes dos pacotes e a versão afetada associada estão listados abaixo:
* 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)

### Campanha Mais Ampla?
A investigação da **Socket** encontrou referências ao mesmo payload em 777 arquivos no **GitHub**, sugerindo que pode fazer parte de uma campanha mais ampla. Em pelo menos duas instâncias, foi adicionado a um workflow do GitHub. No entanto, atualmente não se sabe quantos desses correspondem a comprometimentos distintos, forks, artefatos de pacotes duplicados ou referências em cache.
* [Instância 1](https://github.com/448776129/UA2F/blob/master/.github/workflows/ci.yml)
* [Instância 2](https://github.com/448776129/blog-1/blob/9ebac2e4118396b84e508585f356bf06971c4fb5/.github/workflows/deploy_coding.yml)
"Isso sugere que o atacante não estava contando com um único mecanismo de execução. Em artefatos de pacotes, o payload foi acionado através de scripts `postinstall` do `package.json`", disse a empresa de segurança de aplicações. "Em arquivos de workflow, ele foi posicionado para ser executado durante trabalhos do GitHub Actions."
### Análise do Payload
Além disso, a natureza exata do payload baixado do GitHub é incerta, pois a conta do GitHub associada ao repositório que o hospedava não está mais disponível. A escolha do nome "gvfsd-network" para o malware é interessante, pois se refere a um daemon do GNOME Virtual File System (GVfs) responsável por gerenciar e navegar por compartilhamentos de rede.
"Mesmo sem o binário de segundo estágio, o instalador malicioso é suficiente para justificar o bloqueio", disse a **Socket**. "Ele fornece execução remota de código durante a instalação ou fluxos de trabalho de build e tenta ocultar sua atividade desabilitando a verificação TLS, suprimindo erros e executando um binário baixado em segundo plano."