O NuGet é vulnerável a esse ataque de typosquatting?

5

Um artigo publicado recentemente demonstra uma maneira de fazer ataques de "typo-squatting" ao popular pacote de programação gerenciadores. Ele destaca os sistemas pip , gem e npm de Python e mostra que eles têm duas coisas em comum:

  1. Os pacotes podem ser enviados e aceitos automaticamente, sem revisão manual ou supervisão humana
  2. Os pacotes podem fazer com que o gerenciador de pacotes execute código de "configuração" arbitrário no sistema do cliente no momento da instalação.

Isso significa que é possível registrar um pacote com um nome muito parecido com o de um pacote popular , e obtenha seu pacote (completo com um script de configuração mal-intencionado) instalado sempre que alguém digitar incorretamente o nome do pacote.

Isso me faz pensar, o NuGet tem essas mesmas duas características? Ele possui algum mecanismo para mitigar ataques desse tipo?

    
por Mason Wheeler 14.06.2016 / 17:32
fonte

1 resposta

4

Packages can be submitted and accepted automatically, with no manual review or human oversight

Sim.

Packages can cause the package manager to execute arbitrary "setup" code on the client system at install-time.

O modelo de projeto "antigo" permite executar scripts do PowerShell, então sim, eu diria que isso também é um problema para o NuGet. Até mesmo os novos são vulneráveis, pois assim que "executam" seu projeto de importação do pacote, a montagem pode apenas fazer algo malicioso.

Does it have any mechanism in place to mitigate attacks of this type?

Eu vi algumas organizações adotarem a prática de banir o repositório do Microsoft NuGet e configurar um servidor local com pacotes verificados.

Também vale a pena ressaltar que, enquanto o # 2577 parece estar chegando, um writeup no blog Nuget faz o ponto distinto de que a assinatura do pacote não irá resolver completamente isso:

This signing system is not trying to tell you that NuGet can verify that a package is the right version of Newtonsoft.Json, from James Newton-King. Instead, we can say that it’s Newtonsoft.Json from someone in control of the private key for some certificate X. Actually verifying that James Newton-King is in control of that certificate is a secondary process that we are not providing here.

Presumivelmente, esta assinatura estará disponível para qualquer pessoa, e um invasor pode simplesmente assinar seu pacote.

link

    
por 14.06.2016 / 19:12
fonte