PyPI, um índice de pacotes Python, mais uma vez se tornou um lugar para propagação de malware. Os atores da ameaça registraram centenas de perfis para implantar pacotes, com o nome definido como typosquatting para pacotes conhecidos e populares. Isto forçou a administração a interromper o registro de novos usuários até que o problema seja resolvido.
A propagação do malware PyPI causa interrupção dos registros
Índice de pacotes Python, comumente conhecido como PyPI, fecha o cadastro de novos usuários devido à onda de malware que se espalha pela plataforma. Esse problema não é novidade, como similar infestations aconteceu no passado. Todas as vezes no passado a plataforma implementou mudanças direcionadas à prevenção de upload de malware no futuro, mas a proteção provavelmente falhou desta vez. A pesquisa da CheckPoint revela todo o fluxo do ataque.
Sob o último curso de ataque, os cibercriminosos não enviaram a carga final, mas um script malicioso que carrega ainda mais o malware. Repositórios exatos com esses scripts geralmente eram carregados em março 27, com contas de usuário criadas no dia anterior. Geral, a pesquisa revela 576 repositórios malignos.
Outra coisa que une todos esses uploads é o uso de typosquatting em sua nomenclatura. As fraudes visavam supostamente falsificar os nomes de pacotes populares. Eles usaram particularmente a substituição símbolo-numérica (request5 em vez de solicitações), erros de digitação populares (pedidos) e pequenas mudanças como terminações -sdk ou -v1. Embora pareçam falsificações óbvias, eles ainda podem funcionar quando os usuários estão com pressa ou distraídos.
Índices de pacotes para diferentes linguagens de programação costumam ser alvo de cibercriminosos’ atenção. Do tamanho do PyPI, que se orgulha de mais 800,000 Usuários, são literalmente Mekkas para hackers. Ao espalhar malware em pacotes, eles podem infectar usuários e desenvolvedores, potencialmente ganhando um ponto de partida para um ataque cibernético a uma corporação, ou mesmo para um ataque à cadeia de suprimentos. Considerando o amplo uso de Python em aprendizado de máquina, isso também pode ser aproveitado para ataques a clusters de ML. Este último parece ser a new point of interest for cybercriminals.
Malware em PyPI: Como funciona?
Apesar da escala do ataque, a forma como o ataque funciona não é nada especial. Como eu disse, repositórios maliciosos não continham o malware exato, mas um script de carregamento ofuscado. Este último invocou a conexão com o servidor de comando – funcaptcha[.]ru – e puxou a carga útil.
Todos os repositórios estavam espalhando o mesmo script, que implantou o mesmo malware, independente da região. Aqueles eram um malware ladrão de informações e um criptojacker, ambos em uma forma de código ofuscado. Nenhum deles, no entanto, pertencem a qualquer uma das famílias de malware conhecidas, provavelmente sendo desenvolvido para esta campanha de ataque específica.
O Infostealer tem como alvo senhas armazenadas em arquivos de navegador e tokens de sessão de aplicativos de desktop populares. Adicionalmente, ele pega cookies do navegador – outra fonte valiosa de informações do usuário. O malware Cryptojacking modifica as carteiras criptográficas de desktop ele detecta, então eles provavelmente mudam o destinatário de todas as transações para as fraudes’ carteira. Seguindo a ação, ambas as amostras de malware se comunicam o mesmo servidor C2 como o script do carregador fez.
Divulgação e Remediação
Pouco depois de descobrir a cadeia de ataque, Os administradores do PyPI reivindicaram a suspensão de todos os registros de novos usuários. Consequentemente, eles começaram a procurar repositórios exatos e excluí-los, o que corresponde às táticas que eles usaram antes. Ainda, isto não resolve o problema das ações exclusivamente reativas face a tais ameaças.
Apesar de ser conhecido e confiável, todos os grandes repositórios de pacotes sofrem do mesmo problema. É muito difícil rastrear todos os uploads, e a pré-moderação estrita colocará os novos pacotes na fila por semanas. A única variável aqui é qual será o próximo a chamar a atenção dos adversários. Isso eventualmente levanta a questão da autodefesa dos desenvolvedores que dependem desses repositórios em tarefas diárias.
Um conselho óbvio aqui é verificar todos os pacotes, independentemente da sua origem. Malware recebe disfarces cada vez mais sofisticados, tornando-se eficaz mesmo contra usuários experientes e conscientes. Um bom software antimalware estará disponível também: um script adequado detectará e impedirá facilmente a execução de um script malicioso antes que ele inicie seu trabalho malicioso.