C'è un modo per usare Nuget in modo sicuro?

6

Visual Studio ora include un gestore di pacchetti che scarica e aggiorna i pacchetti software da Internet. Il nome comune per questo è "Nuget"

Il problema che ho è che chiunque può fingere di essere qualcun altro, spoofing del campo proprietario . Questo apre un intero pacchetto di worm per quanto riguarda gli aggiornamenti e verifica l'autenticità di ogni patch.

  • Questi dubbi sono validi? (mi sono perso?)

  • Quali controlli tecnici e procedurali possiamo implementare per limitare i rischi?

  • C'è un modo per usare Nuget in modo sicuro?

posta random65537 04.10.2011 - 06:06
fonte

3 risposte

0

Nuget ora supporta Prenotazione ID pacchetto (vedi anche Press Release )

Ciò consente maggiore fiducia tra lo sviluppatore e il produttore, ma è anche un passo nella giusta direzione per la fiducia per le build di Continuous Integration (CI) (dal build deterministico non sono possibili in .NET)

    
risposta data 02.11.2017 - 17:18
fonte
4

NuGet al momento non supporta la firma del codice per i file pacchetto o nuspec, quindi l'autore del pacchetto non può essere identificato. Questo problema è stato sollevato come richiesta di funzionalità nel 2010, ma non ha ricevuto molta attenzione e non è stato implementato. Vedi link .

Attualmente un pacchetto già esistente NuGet può essere aggiornato solo dallo stesso account che è stato originariamente caricato, ma questo non verifica l'autore effettivo del codice che credo sia quello che stai ricevendo.

Al di fuori di NuGet, esiste ancora la firma del codice per gli assembly. Sulla base di questo ti suggerirei idealmente:

  • Utilizza solo assembly firmati da un editore attendibile.
  • Utilizza i riferimenti ai nomi forti nei tuoi progetti (che associa il progetto / gli assiemi a una chiave pubblica specifica).
  • Verifica la firma per ogni assembly scaricato.

Forse un'altra preoccupazione è che a un pacchetto NuGet possono essere associati script di installazione / disinstallazione di PowerShell che vengono eseguiti automaticamente quando si utilizza la riga di comando del pacchetto NuGet. NuGet 1.4+ supporta la firma del codice per gli script di PowerShell, quindi suggerirei di lasciare il criterio di esecuzione di PowerShell su RemoteSigned.

In alternativa, non utilizzare NuGet e scaricare il file .msi / .exe da una versione ufficiale e verificare la firma sul file.

    
risposta data 04.10.2011 - 12:38
fonte
2

Poiché tutto, dal CLR alle librerie di terze parti, sarà distribuito tramite NuGet in ASP.NET vNext, il team di NuGet si è impegnato a supportare i pacchetti firmati da, credo, il tempo in cui Visual Studio 2015 è stato rilasciato.

Vedi l'annuncio del blog: link

Inoltre, consulta le specifiche di firma: link

    
risposta data 11.02.2015 - 20:36
fonte

Leggi altre domande sui tag