
O chefe de segurança da informação da SlowMist, 23pds, revelou em 25 de março que a biblioteca Python de gateway de IA LiteLLM, com mais de 97 milhões de downloads mensais, foi alvo de um ataque à cadeia de suprimentos no PyPI. As versões comprometidas 1.82.7 e 1.82.8 permaneceram na plataforma por pelo menos duas horas. Os atacantes, ao implantarem múltiplas camadas de malware, conseguiram roubar informações, incluindo detalhes de carteiras de criptomoedas.
O LiteLLM atua como uma interface unificada na pilha de tecnologia de IA, suportando chamadas a modelos de principais provedores como OpenAI, Anthropic e Google. Sua arquitetura fica diretamente entre o aplicativo e vários provedores de serviços de IA, permitindo o acesso a uma grande quantidade de chaves API, variáveis de ambiente e dados sensíveis de configuração.
Ao comprometer esse tipo de pacote intermediário, os atacantes podem interceptar credenciais sensíveis que atravessam ambientes de desenvolvimento local, pipelines de CI/CD e infraestrutura em nuvem, sem precisar invadir diretamente os serviços upstream. Atualmente, as autoridades estão avaliando se o ataque está relacionado às organizações de ameaças TeamPCP e LAPSUS$, enquanto a investigação de atribuição ainda está em andamento. O incidente foi inicialmente reportado publicamente por um usuário do GitHub e posteriormente analisado por pesquisadores externos da Futuresearch.
O código malicioso embutido nas versões comprometidas utiliza uma arquitetura de três camadas, implementada por meio de um script Python codificado em Base64 obfuscado:
Primeira camada (camada de vazamento de dados): Coleta informações sensíveis locais, criptografa usando AES-256-CBC, e criptografa a chave de sessão com uma chave pública RSA embutida. O pacote é então compactado em tpcp.tar.gz e enviado para um endpoint remoto controlado pelos atacantes.
Segunda camada (camada de reconhecimento e coleta de credenciais): Enumera informações do sistema, variáveis de ambiente, e extrai sistematicamente chaves SSH, credenciais Git, credenciais de nuvem AWS/GCP/Azure, configurações de Kubernetes, dados de carteiras de criptomoedas e configurações de CI/CD. Em alguns casos, o malware tenta usar credenciais roubadas para consultar APIs da AWS ou manipular clusters Kubernetes.
Terceira camada (camada de persistência e controle remoto): Escreve o arquivo sysmon.py no disco e o configura como um serviço do sistema. A cada 50 minutos, realiza uma consulta a um endpoint controlado pelos atacantes, permitindo que eles enviem continuamente novas funcionalidades maliciosas para o sistema infectado.
As comunicações maliciosas utilizam domínios como models[.]litellm[.]cloud e checkmarx[.]zone.
Organizações que tenham instalado ou executado versões comprometidas do LiteLLM (1.82.7 ou 1.82.8) devem considerar seus sistemas como comprometidos. Como o malware possui capacidades de persistência e pode ter implantado cargas adicionais, simplesmente remover o pacote não é suficiente.
Recomenda-se imediatamente tomar as seguintes ações: trocar todas as credenciais potencialmente expostas (incluindo chaves de acesso AWS/GCP/Azure, chaves SSH e chaves API); revisar logs em busca de conexões de saída suspeitas com os domínios models[.]litellm[.]cloud ou checkmarx[.]zone; remover arquivos maliciosos conhecidos como tpcp.tar.gz, /tmp/pglog, /tmp/.pg_state e o serviço relacionado a sysmon.py; e, se possível, reconstruir o sistema afetado a partir de uma imagem limpa conhecida.
Quais versões do LiteLLM foram afetadas por este ataque à cadeia de suprimentos?
As versões comprometidas são LiteLLM 1.82.7 e 1.82.8, com código malicioso embutido em proxy_server.py (afetando ambas as versões) e em litellm_init.pth (apenas na versão 1.82.8). Os usuários devem verificar a versão instalada e atualizá-la para a versão mais recente e segura imediatamente.
Que tipos de informações sensíveis podem ter sido roubadas neste ataque?
O malware coleta chaves SSH, credenciais de nuvem AWS/GCP/Azure, configurações de Kubernetes, tokens de contas de serviço, credenciais Git, chaves de API em variáveis de ambiente, histórico de comandos shell, dados de carteiras de criptomoedas e senhas de bancos de dados. O ataque abrange ambientes de desenvolvimento local, pipelines de CI/CD e infraestrutura em nuvem.
Como verificar se meu sistema foi comprometido?
Verifique se há arquivos como tpcp.tar.gz, /tmp/pglog ou /tmp/.pg_state, além de serviços persistentes relacionados a sysmon.py. Além disso, revise registros de conexões de saída para identificar comunicações com os domínios maliciosos mencionados acima.