.
Os criminosos estão usando baldes expirados do Amazon Web Services (AWS) S3 para colocar código malicioso em um pacote legítimo no repositório npm sem ter que mexer em nenhum código.
A empresa de segurança de software Checkmarx disse que começou a investigar depois que o GitHub no final do mês passado publicou um consultivo sobre vários lançamentos de um pacote npm chamado bignum que foi controlado por cibercriminosos e servindo binários maliciosos que roubavam informações como IDs de usuário, senhas e nomes de host locais dos sistemas das vítimas.
Os engenheiros da infosec escreveram um relatório descrevendo o problema, observando que, embora a ameaça do pacote bignum tenha sido mitigada com uma nova versão, eles descobriram que dezenas de outros pacotes de código aberto no repositório de código npm eram vulneráveis ao mesmo ataque.
“Como foi a primeira vez que tal ataque foi observado, realizamos uma pesquisa rápida em todo o ecossistema de código aberto”, escreveu Guy Nachshon, engenheiro de software da Checkmarx. “Os resultados foram surpreendentes. Encontramos vários pacotes e repositórios usando baldes S3 abandonados que são suscetíveis a essa exploração.”
Repositórios de código sob ataque
Esta última ameaça faz parte de uma tendência crescente de grupos que analisam o cadeia de suprimentos de software como uma maneira fácil de implantar seu malware e fazer com que ele alcance rapidamente uma ampla base de vítimas em potencial. Através de ataques ao npm e outros repositórios como GitHub, Índice de pacotes Python (PyPI) e RubyGemsNameos malfeitores procuram colocar seu código malicioso em pacotes que são baixados por desenvolvedores e usados em seus aplicativos.
Nesse caso, eles encontraram o caminho por meio dos baldes S3 abandonados, parte dos serviços de armazenamento de objetos da AWS que permitem que as organizações armazenem e recuperem grandes quantidades de dados – arquivos, documentos e imagens, entre outros conteúdos digitais – na nuvem. Eles são acessados por meio de URLs exclusivos e usados para tarefas como hospedagem de sites e backup de dados.
O pacote bignum usado node-gyp, uma ferramenta de linha de comando escrita em Node.js, para baixar um arquivo binário que inicialmente estava hospedado em um depósito S3. Se o bucket não pudesse ser acessado, o pacote era solicitado a procurar o binário localmente.
“No entanto, um invasor não identificado notou o abandono repentino de um balde da AWS antes ativo”, escreveu Nachshon. “Reconhecendo uma oportunidade, o invasor aproveitou o balde abandonado. Conseqüentemente, sempre que o bignum era baixado ou reinstalado, os usuários inadvertidamente baixavam o arquivo binário malicioso, colocado pelo invasor.”
Roubo e exfiltração de credenciais
O binário malicioso funcionou como o original, mas também roubou credenciais e as enviou para o mesmo balde sequestrado, com os dados exfiltrados por meio de uma solicitação GET, escreveu ele. Era um binário compilado em C/C++ exigido em aplicativos JavaScript, com um pé nas bibliotecas JavaScript e C/C++, o que permitia que os módulos Node.js alcançassem o código de nível inferior e expandissem a superfície de ataque.
Nachshon fez a engenharia reversa do arquivo compilado, embora não tenha sido fácil. Um problema? A verificação do arquivo usando o VirusTotal não o detectou como malware. No entanto, ele olhou as strings no arquivo e encontrou “algum comportamento estranho”, convencendo-o a mergulhar mais fundo.
O maior problema eram os outros pacotes e repositórios que também estavam usando baldes S3 expirados, o que atacava um problema muito além do bignum.
“O perigo que isso representa pode ser enorme se um invasor conseguir explorá-lo assim que esse tipo de mudança ocorrer”, escreveu ele. “Outro risco é colocado para organizações ou desenvolvedores que usam versões congeladas ou ‘artefatos’, pois continuarão acessando o mesmo balde, agora sequestrado.”
Uma versão nova e mais segura do bignum
Versões 0.12.2 a 0.13.0 de bignum usadas node-pre-gyp para baixar binários pré-construídos. A versão mais recente, 0.13.1, não usa isso. Ele também não permite o download de binários pré-construídos para evitar downloads maliciosos.
Zane Bond, chefe de produto da fabricante de software de segurança de confiança zero Keeper Security, disse Strong The One que, embora o método usado pelos criminosos neste ataque seja novo, os próprios ataques de injeção de SQL não são incomuns.
“Encontrar a sequência exata que permite comprometer um sistema é bastante difícil, mas esse tipo de ataque é um dos mais simples e comuns que existem”, disse Bond. “Este é o caso de um adversário tendo sorte ao fazer uma atividade típica de adversário.”
O problema é que um cenário semelhante pode acontecer sempre que um local de distribuição confiável – neste caso, os baldes S3 – não é mais usado e é abandonado, de acordo com seu colega, Patrick Tiquet, vice-presidente de segurança e arquitetura da Keeper Security. ®
.








