Uma nova pesquisa revelou que mais de 15.000 repositórios de módulos Go no GitHub estão vulneráveis a um ataque conhecido como repojacking. Segundo o pesquisador Jacob Baines, mais de 9.000 repositórios estão em risco devido a mudanças de nome de usuário no GitHub, enquanto mais de 6.000 estão vulneráveis devido à exclusão de contas.
Coletivamente, esses repositórios representam pelo menos 800.000 versões de módulos Go, destacando a extensão do problema. Repojacking, uma combinação de “repositório” e “sequestro”, é uma técnica de ataque que permite a um ator mal-intencionado tirar proveito de mudanças e exclusões de nome de usuário para criar um repositório com o mesmo nome e o nome de usuário pré-existente, facilitando ataques à cadeia de suprimentos de software de código aberto.
Módulos escritos na linguagem de programação Go são particularmente suscetíveis ao repojacking. Diferentemente de outras soluções de gerenciamento de pacotes, como npm ou PyPI, eles são descentralizados, pois são publicados em plataformas de controle de versão como GitHub ou Bitbucket.
Para evitar que desenvolvedores baixem pacotes potencialmente inseguros, o GitHub implementou uma contramedida chamada “popular repository namespace retirement”, que bloqueia tentativas de criar repositórios com nomes de namespaces aposentados que foram clonados mais de 100 vezes antes da renomeação ou exclusão das contas dos proprietários.