Tecnologia

Código malicioso em pacotes da Red Hat propagou-se e roubou credenciais

Susan Hill

Durante algum tempo, algumas das peças de software distribuídas com o nome da Red Hat trabalharam em silêncio contra quem as instalava. Dentro de mais de 30 pacotes da coleção pública @redhat-cloud-services da empresa estava um pequeno script preparado para arrancar no instante em que um programador instalava qualquer um deles. Estava definido como um passo preinstall, uma daquelas tarefas automáticas que a ferramenta npm executa por sua conta, antes de carregar uma única linha do software verdadeiro. A sua função era encontrar palavras-passe e, depois, propagar-se.

A Red Hat não faz aplicações que a maioria das pessoas abre pelo nome, mas o seu código está por baixo de grande parte do que usam todos os dias: os painéis na nuvem por onde um banco entra, os sistemas em que funcionam hospitais e organismos públicos, as ferramentas com que outras empresas constroem os seus próprios produtos. Quando um código com esse rótulo se torna hostil, o raio de impacto não é uma aplicação. É tudo o que foi montado por cima.

O script escondido saiu à caça das chaves que abrem a informática moderna. Segundo a empresa de segurança StepSecurity, a primeira a alertar para os pacotes, recolheu tokens de acesso da Amazon Web Services, Google Cloud, Microsoft Azure, Kubernetes, HashiCorp Vault, da própria npm e do serviço de automação CircleCI, além dos segredos guardados dentro das cadeias de compilação do GitHub. Para lá chegar, lia a memória em bruto do processo de compilação em curso, um truque que contorna as proteções que deveriam manter os segredos fora dos registos.

O que transforma um roubo de dados vulgar em algo mais próximo de um surto é o que o código fazia a seguir. Com os tokens de publicação da npm roubados, tentava carregar versões acabadas de adulterar de qualquer outro pacote a que a conta sequestrada tivesse acesso, usando um parâmetro que afasta a verificação em dois passos que normalmente estaria no caminho. Um roubo que se copia não fica pelas primeiras vítimas. Viaja ao longo da mesma confiança sobre a qual assenta todo o sistema.

Nas máquinas dos próprios programadores a carga foi mais longe: deixava instruções dentro das definições de tarefas do Visual Studio Code e na configuração do Claude Code, o assistente de programação com inteligência artificial, para continuar a correr muito depois de a instalação terminar. Quem mais costuma instalar estes pacotes, os engenheiros que mantêm o software de toda a gente, eram também aqueles cujos portáteis se tornavam porta de entrada.

O pormenor mais incómodo é a origem das versões más. Os programadores da Red Hat, que reconheceram o problema no repositório público do projeto, e os investigadores que desmontaram o código concordam: as versões envenenadas saíram pela própria cadeia de publicação automática da Red Hat, a maquinaria que pega no código dos repositórios e o envia para o mundo. Os atacantes não se fizeram passar pela Red Hat. Durante algum tempo, puderam publicar como Red Hat. O selo de confiança e aquilo em que se confiava separaram-se.

Não é a primeira vez que a cadeia de fornecimento do software livre se transforma em via de entrega. Extensões de navegador adulteradas e contas de programadores sequestradas surgiram repetidamente ao longo da primavera, todas a explorar o mesmo hábito: o software moderno é montado a partir de milhares de componentes gratuitos que ninguém escreve de raiz. O que faz este caso pesar mais é o nome na caixa. A razão de ir buscar código a um fornecedor como a Red Hat, e não a um colaborador anónimo, é precisamente que esse nome deveria ser a garantia.

Vale a pena dizer com clareza o que o incidente não significa. Até agora não há indícios de que aparelhos de utilizadores comuns tenham sido infetados, nem de que os produtos empresariais pagos da Red Hat e os sistemas em produção dos seus clientes tenham sido invadidos. As versões maliciosas visaram o meio confuso do desenvolvimento, os servidores de compilação automáticos e as máquinas dos engenheiros, e muitos dos pacotes afetados são ferramentas de interface e de desenvolvimento, não o núcleo de nenhum serviço em funcionamento. O quadro continua também a mudar, e o número exato de pacotes contaminados foi-se alterando à medida que a Red Hat e os investigadores externos percorrem a lista. O dano que mais importa, as credenciais roubadas, permanece invisível até alguém as usar.

A Red Hat foi removendo as versões maliciosas, e as publicações comprometidas estão a ser retiradas da npm. A quem as instalou na janela afetada, pede-se que considere queimado cada token que a compilação pôde ver e que o renove. A divulgação chegou no início de junho, e a limpeza vai durar mais do que os títulos. O problema estrutural vai durar mais do que a limpeza: a internet é montada, a alta velocidade, a partir de milhões de peças pequenas mantidas por pessoas que nunca conheceremos e, cada vez mais, por sistemas automáticos que podem ser sequestrados para assinar essas peças em vez delas.

Etiquetas: , , ,

Discussão

Existem 0 comentários.