Os pesquisadores do Aqua acreditam que milhões de repositórios no GitHub são vulneráveis a um ataque que permite assumir o controle de repositórios de outras pessoas e é chamado de RepoJacking. O problema está supostamente afetando os repositórios do Google, Lyft, e outras grandes empresas.
Deixe-me lembrá-lo de que também escrevemos isso Malware em GitHub Repositórios são espalhados a partir de nome falso de empresa de segurança, e também isso Os invasores podem usar codespaces do GitHub para hospedar e entregar malware.
Estas conclusões foram tiradas após análise de uma amostra de 1.25 milhões de repositórios GitHub, durante o qual os especialistas descobriram que cerca de 2.95% deles são vulneráveis a RepoJacking.
Extrapolando esta percentagem para toda a base de dados de 300 milhões de repositórios GitHub, os pesquisadores calcularam que o problema afeta aproximadamente 9 milhões de projetos.
A essência do ataque RepoJacking é simples. O fato é que os nomes de usuário e repositórios mudam regularmente no GitHub (por exemplo, devido ao fato de a organização ter mudado o nome da marca). Quando isso acontece, um redirecionamento especial é criado para evitar a quebra de dependências de projetos que usam código de repositórios que mudaram de nome. No entanto, se alguém registrar o nome antigo, este redirecionamento se torna inválido.
Por isso, RepoJacking é um ataque no qual um invasor registra um nome de usuário e cria um repositório que foi usado anteriormente por alguma organização, mas mudou de nome. Como resultado, qualquer projeto e código que dependa de uma dependência do projeto atacado irá interagir com um repositório que o invasor controla e que pode conter malware.
Os pesquisadores explicam que o GitHub está ciente desse problema e que existem vários mecanismos de defesa para proteção contra RepoJacking.. No entanto, de acordo com os especialistas, essas soluções de segurança não são muito confiáveis e podem ser facilmente contornadas.
Por exemplo, GitHub protege apenas projetos muito populares, no entanto, eles podem depender de um repositório menos popular e vulnerável que não é protegido pelo GitHub. Como resultado, compromisso afetará toda a cadeia de abastecimento.
Além disso, GitHub protege repositórios que tinham mais de 100 clones na semana anterior à mudança de nome (indicativo de atividade maliciosa). Mas tal proteção não se aplica a projetos que se tornaram populares após a renomeação ou após a transferência de propriedade.
Para demonstrar o perigo deste problema, Água analistas procuraram repositórios vulneráveis de organizações conhecidas e encontraram exemplos impressionantes em repositórios operados por Google e Lyft.
No caso do Google, foi encontrado um arquivo leia-me contendo instruções para o bastante popular Passos matemáticos projeto. O arquivo apontava para um repositório de propriedade de socrático, que o Google adquiriu em 2018 e não existe mais. Na verdade, um invasor pode clonar este repositório, e usuários, seguindo as instruções no leia-me, pode baixar código malicioso do repositório do hacker.
Também, já que as instruções incluem npm install para uma dependência, um invasor poderá executar código arbitrário em usuários desavisados’ dispositivos.
Quanto ao Lyft, nesse caso, o ataque pode ser automatizado, já que os pesquisadores encontraram um script de instalação no repositório da empresa que extrai um arquivo ZIP de outro repositório vulnerável ao RepoJacking.
Então, um invasor que registra um novo nome de usuário e um repositório com o nome correto (nesse caso, SimGraph e Dominus) podem injetar seu código em qualquer pessoa que execute o Lyft instalar.sh roteiro.
Os especialistas concluem que o RepoJacking é, infelizmente, muito difícil de prevenir, e tal ataque pode ter consequências graves para organizações e usuários. Para concluir, Os pesquisadores do Aqua aconselham os proprietários do projeto a minimizar os recursos que extraem de repositórios externos.
A mídia também noticiou que GitHub diz que leva anos para corrigir vulnerabilidades em alguns ecossistemas.