Mais de 700 pacotes maliciosos foram publicados em apenas cinco dias em campanha escalável e complexa, visando desenvolvedores
Em março deste ano, pesquisadores da empresa de softwares JFrog divulgaram uma campanha que indicava que um criminoso, ainda não-identificado, havia publicado pelo menos 200 pacotes maliciosos no Node Package Manager (npm) – a plataforma de gerenciamento de softwares subsidiária do GitHub.
A equipe disse que esses repositórios foram detectados pela primeira vez em 21 de março e cresceram rapidamente em volume, com cada pacote npm deliberadamente nomeado de modo a imitar um software legítimo.
Após continuidade da investigação, a contagem de pacotes maliciosos publicado ultrapassou os 700.
O que é e para que serve o npm
De forma bastante sucinta, npm é o gerenciador de pacotes para a plataforma Node.js, um software open-source e multiplataforma para desenvolvimento e execução de códigos JavaScript.
O npm serve para organizar módulos para que o Node possa encontrá-los de forma facilitada, bem como gerenciar conflitos de dependência de forma inteligente nos códigos. O npm é altamente customizável, a fim de apoiar uma ampla variedade de possibilidades de uso. Mais comumente, é usado para publicar, descobrir, instalar e desenvolver programas em Java.
Por isso, quando utilizado para fins maliciosos, pode se tornar uma arma bastante perigosa.
A campanha de npm é complexa e escalável
No dia 28 de marçod, pesquisadores da Checkmarx, empresa de segurança de software, disseram que a equipe de Supply Chain Security (SCS) da empresa também está rastreando essas atividades e registrou mais de 600 pacotes maliciosos publicados em cinco dias, elevando o total de pacotes para mais de 700.
Para tentar manter a discrição dos ataques, o criminoso tem usado contas de usuário únicas para subir os pacotes.
“Isso é incomum para a maioria dos ataques automatizados; geralmente, os invasores criam um único usuário e expandem seus ataques a partir dele”, dizem os pesquisadores. “A partir desse comportamento, podemos concluir que o invasor construiu um processo de automação de ponta a ponta, incluindo o registro de usuários e a aprovação das autenticações OTP”.
De acordo com a Checkmarx, a “fábrica” do invasor está desenvolvendo pacotes npm maliciosos que contam com uma confusão proposital na dependência de tipo para enganar os desenvolvedores e roubar seus dados com sucesso.
Como a fábrica de npm funciona
Conforme observado anteriormente pela JFrog, o método de ataque depende de typosquatting – isto é, sequestro de URLs – e de nomenclaturas que simulam pacotes confiáveis, geralmente removendo partes do nome de um pacote para parecer mais legítimo.
O servidor de comando e controle (C2) usado para gerenciar a infraestrutura geral da onda de ataque, “rt11[.]ml”, também é o endereço do destinatário para as informações roubadas. O C2 parece estar executando o Interactsh, uma ferramenta de código aberto escrita na linguagem de programação Go para extração de dados.
A Checkmarx configurou seu próprio domínio e servidor a fim de entender melhor o método do invasor. Escreveram, então, um script que abre contas npm mediante solicitação, usando o software de teste SeleniumLibrary. O script pode gerar nomes de usuário e endereços de e-mail aleatoriamente no domínio de teste e inicia automaticamente o processo de inscrição.
É aí que entra o Interactsh. Para ignorar a verificação de senha de uso único (OTP) usada pelo npm, o Interactsh extrai automaticamente o OTP e o envia de volta ao formulário de inscrição, permitindo que a solicitação de criação de conta seja bem-sucedida, se esquivando das medidas de segurança.
“Vale ressaltar que, uma vez criada a conta de usuário, é possível configurá-la de forma a não exigir OTP para publicar um pacote”, disseram os pesquisadores. “Isso pode ser feito usando um token de autenticação e configurando-o para funcionar sem 2FA. Presumimos que é assim que os invasores que publicaram pacotes maliciosos foram capazes de automatizar seu processo sem configurar o mecanismo descrito.”
A Checkmarx, assim como a JFrog, relataram os pacotes maliciosos à equipe de segurança do npm. Além disso, a empresa que fornece o servidor C2 também foi notificada.
“Ao distribuir os pacotes por meio de vários nomes de usuário, o invasor torna mais difícil para os defensores derrubá-los de forma assertiva e eficaz”, observaram os pesquisadores. “Com isso, é claro, aumentam as chances de infecção.”
Quer manter sua empresa protegida de diferentes tipos de ataques cibernéticos? Confira as soluções de segurança da Compugraf e saiba como podemos te ajudar!