technology

Buckets S3 sequestrados usados ​​em ataques a pacotes npm • Strong The One

.

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. ®

.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo