Milhões de repositórios no GitHub são potencialmente vulneráveis ​​a sequestro

Milhões de repositórios no GitHub são potencialmente vulneráveis ​​a sequestro

Milhões de repositórios no GitHub são potencialmente vulneráveis ​​ao sequestro de inteligência de dados PlatoBlockchain. Pesquisa vertical. Ai.

Milhões de repositórios de software empresarial no GitHub são vulneráveis ​​a repojacking, um tipo relativamente simples de ataque à cadeia de suprimentos de software em que um agente de ameaça redireciona projetos que dependem de um repositório específico para um repositório malicioso.

A questão tem a ver com a forma como o GitHub lida com as dependências quando um usuário ou organização do GitHub altera o nome de um projeto ou transfere sua propriedade para outra entidade, disseram pesquisadores da Aqua Security em um relatório esta semana.

Riscos de mudança de nome

Para evitar quebrar dependências de código, o GitHub cria um link entre o nome do repositório original e o novo para que todos os projetos que dependem do repositório original sejam redirecionados automaticamente para o repositório recém-renomeado. No entanto, se uma organização não proteger adequadamente o nome de usuário antigo, um invasor poderá simplesmente reutilizá-lo para criar uma versão trojanizada do repositório original, para que quaisquer projetos que dependam do repositório comecem novamente a baixar dependências dele.

“Quando o proprietário de um repositório altera seu nome de usuário, um link é criado entre o nome antigo e o novo nome para qualquer pessoa que baixe dependências do repositório antigo”, Pesquisadores do Aqua disseram em um blog esta semana. “No entanto, é possível que qualquer pessoa crie o nome de usuário antigo e quebre esse link.”

Pesquisadores da Aqua decidiram recentemente investigar a prevalência de repositórios no GitHub que são vulneráveis ​​a tal repojacking, ou sequestro de repositório de dependência, como alguns pesquisadores de segurança se referem à ameaça.

Problema amplamente prevalente

O que o Aqua descobriu foi duplo: milhões desses repositórios – incluindo aqueles pertencentes a empresas como Google e Lyft – estão presentes no GitHub; e as ferramentas estão facilmente disponíveis para os invasores encontrarem esses repositórios e sequestrá-los. Uma dessas ferramentas é o GHTorrent, um projeto que mantém um registro quase completo de todos os eventos públicos, como commits e pull requests, no GitHub. Os invasores podem usar o GHTorrent para coletar os nomes do GitHub dos repositórios que a organização usou anteriormente. Eles podem então registrar o repositório com o nome de usuário antigo, recriar o repositório e entregar malware a qualquer projeto que o utilize.

Qualquer projeto que faça referência direta a um repositório GitHub ficará vulnerável se o proprietário do repositório alterar ou excluir o nome de usuário do repositório.

“Apresentamos um conjunto de dados significativo que os invasores podem utilizar para coletar nomes de repositórios anteriores pertencentes a organizações”, disse Yakir Kadkoda, pesquisador de segurança da Aqua Nautilus.

“As organizações não devem presumir que os nomes das suas antigas organizações permanecerão secretos”, alerta Kadkoda. “É crucial que eles reivindiquem e mantenham seus nomes de usuário antigos no GitHub e escaneiem URLs e referências do GitHub em seu código para identificar quaisquer repositórios que possam ser potencialmente reivindicados por um invasor.”

Ignorando proteções

Kadkoda diz que o GitHub tentou resolver esse problema impedindo a criação de nomes de usuário e repositórios que pertenciam anteriormente e agora redirecionam para outros projetos. GitHub também implementou um mecanismo há vários anos para aposentar namespaces de repositórios populares como forma de mitigar essa ameaça. “No entanto, vários desvios foram descobertos nos últimos anos”, diz ele. Durante o estudo do Aqua, seus pesquisadores encontraram diversos exemplos de repositórios onde a proteção implementada pelo GitHub não se aplicava. “Portanto, os usuários não podem confiar totalmente nessas defesas neste momento”, diz ele.

O blog do Aqua apontou para uma vulnerabilidade do GitHub que Checkmarx descoberto no ano passado como um exemplo das formas disponíveis para os invasores contornarem as tentativas do GitHub de proteção contra repojacking. A falha envolvia um mecanismo chamado “retirada de namespace de repositório popular” e afetou todos os nomes de usuário renomeados no GitHub, incluindo mais de 10,000 pacotes em gerenciadores de pacotes como Swift, Packagist e Go. “Repojacking é uma técnica para sequestrar o tráfego de URLs de repositório renomeado e encaminhá-lo para o repositório do invasor, explorando uma falha lógica que quebra o redirecionamento original”, disse Checkmarx em um relatório sobre a vulnerabilidade. “Um repositório GitHub é vulnerável a repojacking quando seu criador decide renomear seu nome de usuário enquanto o nome de usuário antigo está disponível para registro.”

As organizações podem mitigar sua exposição à ameaça de repojacking verificando seu código, repositórios e dependências em busca de links do GitHub, diz Kadkoda: “Eles devem verificar se esses links se referem diretamente a projetos do GitHub ou se há redirecionamentos apontando para repositórios sob outros nomes de usuário ou repositórios. nomes do que os links originais. Nestes casos, as organizações devem tentar reivindicar o nome de usuário disponível para evitar que invasores o façam. “Além disso, as organizações devem sempre manter seus nomes de usuário antigos no GitHub”, diz ele.

Carimbo de hora:

Mais de Leitura escura