Aplicativos que usam nomes de repositórios antigos no GitHub como dependências podem, na verdade, levar os usuários a malware. Aqui está o que você precisa saber.

É cada vez mais evidente que o repojacking do GitHub representa um risco legítimo para os desenvolvedores. Os hackers podem tirar proveito de usuários e empresas que alteram seus nomes GitHub sequestrando o repositório antigo nomes na esperança de que os arquivos maliciosos que eles adicionam possam ser obtidos por aplicativos que usam o código como um dependência.

É importante, então, que você tome medidas para proteger seu próprio projeto GitHub se você mudou recentemente seu nome de usuário ou referenciou outros repositórios como dependências.

O que é RepoJacking?

O repojacking do GitHub é um tipo de exploração que pode ocorrer depois que o proprietário de um repositório altera seu nome de usuário. A antiga combinação de nome de usuário e nome de repositório fica disponível, e um repojacker pode tirar proveito de suas dependências reivindicando o nome de usuário e criando um repositório com o mesmo nome.

instagram viewer

O repojacking pode representar dois tipos distintos de risco:

  • O repojacking pode tornar um aplicativo confiável não confiável. Se você usar um aplicativo que usa um repositório GitHub como dependência e o proprietário renomear o repositório, usar o aplicativo o deixará vulnerável.
  • O repojacking pode colocar em risco um aplicativo que você está desenvolvendo. Se você fizer referência a um repositório GitHub como uma dependência e não notá-lo ou atualizá-lo quando o repositório for renomeado, seu aplicativo ficará vulnerável a exploits de repojacking.

O repojacking não representa um risco tremendo para os usuários, mas há motivos legítimos para acreditar que pode servir como mecanismo para um ataque sério à cadeia de suprimentos. Se um aplicativo tiver uma dependência que faça referência a um repositório repojacked, ele chamará e receberá o código dos repojackers que podem conter malware.

Se você desenvolve no GitHub, saber como pode minimizar o risco de ataques à cadeia de suprimentos e o repojacking - tanto em termos de repositório sequestrado quanto de terceiros com dependências - é vital.

Como minimizar o risco de RepoJacking

Os ataques de repojacking dependem de um mecanismo extremamente previsível: os sequestradores assumem o controle de um repositório não reivindicado e, em seguida, tiram proveito de qualquer aplicativo que o referencie como uma dependência. Felizmente, isso torna o repojacking fácil de combater.

Criar Clones Privados de Repositórios

Clonando um repositório é uma excelente maneira de minimizar o risco associado às dependências em seu projeto porque você terá controle absoluto sobre sua cópia privada. Você pode criar uma cópia privada de um repositório público por meio de clonagem simples e mirror push, conforme documentado em GitHub.

Rastreie as dependências do seu projeto com cuidado

Se você decidir que prefere evitar o problema e fazer referência a repositórios públicos, certifique-se de auditar as dependências do seu projeto com frequência. Verificar o status de suas dependências algumas vezes por ano levará no máximo menos de uma hora - e evitará muito estresse.

Reconsidere renomear sua conta

Idealmente, manter seu nome de usuário atualizado não seria motivo de preocupação. Dado o risco de repojacking, no entanto, você deve considerar manter seu nome desatualizado. Se você precisar alterar seu nome de usuário, deverá reivindicar e reservar o nome antigo registrando outra conta.

Use recursos externos com sabedoria

As dependências representam um risco inerente porque criam pontos de acesso de terceiros em seu aplicativo. Embora eles normalmente valham o tempo que economizam, auditar regularmente as dependências do seu projeto é crucial. Você também deve tomar outras medidas de segurança, como usar autenticação SSH, para evitar exploits.