Pular para o conteúdo
Todos os conceitos

Typosquatting de pacotes

Um pacote malicioso ganha um nome quase igual ao de um popular, para você instalar o errado por um erro de digitação.

Os registros de pacotes deixam qualquer um publicar com quase qualquer nome. O typosquatting aproveita isso: alguém publica um pacote com nome parecidíssimo com o de um popular (cross-fetch vira cros-fetch, python-dateutil vira python-dateutil), esperando que você erre a digitação ou copie errado. Você instala, o postinstall do pacote falso roda, e pronto.

Como o nome é quase igual, o olho não pega. O que denuncia é o contexto do pacote, que o registro mostra: um pacote legítimo e popular tem milhões de downloads por semana e anos de existência; o impostor tem poucas dezenas de downloads, foi publicado há poucos dias e o autor é desconhecido. Antes de adicionar uma dependência, confira o nome exato contra a página oficial e olhe esses números.

Exemplo: o package.json declara cros-fetch. Na lista dos pacotes mais baixados aparece cross-fetch (com dois s), com milhões de downloads; cros-fetch tem 138 downloads e foi publicado há poucos dias. É um typosquat: o nome certo era cross-fetch. O mesmo vale no PyPI para Python, onde já houve pacotes imitando nomes famosos.

cross-fetch legítimo e popular 8,210,000 downloads por semana publicado em 2017 cros-fetch impostor (typosquat) 138 downloads por semana publicado há poucos dias um s a menos no nome vs
O nome legítimo e o impostor diferem por uma letra; o que os separa de verdade são os downloads e a data de publicação.

Aparece nestes desafios