Pesquisadores de cibersegurança alertaram para um ataque à cadeia de suprimentos de software que visa o ecossistema Go, envolvendo um pacote malicioso capaz de conceder ao adversário acesso remoto a sistemas infectados.
O pacote, nominado github.com/boltdb-go/bolt, é um typosquat do módulo legítimo do banco de dados BoltDB (github.com/boltdb/bolt), conforme reportado pela Socket.
A versão maliciosa (1.3.1) foi publicada no GitHub em novembro de 2021, após o que foi armazenada indefinidamente pelo serviço Go Module Mirror.
"Uma vez instalado, o pacote com backdoor concede ao ator de ameaça acesso remoto ao sistema infectado, permitindo que executem comandos arbitrários", disse o pesquisador de segurança Kirill Boychenko em uma análise.
A Socket disse que o desenvolvimento marca uma das primeiras instâncias de um ator malicioso abusando do armazenamento em cache indefinido do Go Module Mirror de módulos para enganar os usuários a baixarem o pacote.
Posteriormente, diz-se que o atacante modificou as tags Git no repositório fonte para direcioná-las à versão benigna.
Em uma declaração compartilhada com The Hacker News, a empresa apontou que a mudança foi feita no repositório do GitHub, que era uma versão fork do legítimo ferramental BoltDB, onde o ator de ameaça reescreveu a tag Git para a v1.3.1 apontando para um commit limpo em vez da versão maliciosa original.
"Isso é possível porque as tags Git são mutáveis a menos que explicitamente protegidas", disse a Socket.
Um dono de repositório pode deletar e reatribuir uma tag a um commit diferente a qualquer momento.
No entanto, o Go Module Proxy já havia armazenado em cache a versão maliciosa original, que nunca foi atualizada ou removida do proxy, permitindo que o ataque persistisse.
Esta abordagem enganosa garantiu que uma auditoria manual do repositório GitHub não revelasse nenhum conteúdo malicioso, enquanto o mecanismo de armazenamento em cache significava que desenvolvedores desavisados instalando o pacote usando o CLI do Go continuavam a baixar a variante com backdoor.
"Uma vez que uma versão de módulo está armazenada em cache, ela permanece acessível através do Go Module Proxy, mesmo que a fonte original seja modificada posteriormente", disse Boychenko.
Embora este design beneficie casos de uso legítimos, o ator de ameaça o explorou para distribuir persistentemente código malicioso apesar de mudanças subsequentes no repositório.
Com módulos imutáveis oferecendo benefícios de segurança e potenciais vetores de abuso, desenvolvedores e equipes de segurança devem monitorar ataques que se aproveitam de versões de módulos armazenadas em cache para evadir detecção.
O desenvolvimento vem à medida que a Cycode detalhou três pacotes npm maliciosos - serve-static-corell, openssl-node e next-refresh-token - que abrigavam código ofuscado para coletar metadados do sistema e executar comandos arbitrários emitidos por um servidor remoto ("8.152.163[.]60") no host infectado.
Publicidade
Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...