È sicuro chiedere agli utenti di arricciare un file raw da GitHub?

2

Ho uno strumento da riga di comando ( ngi ) creato e attualmente il processo di installazione richiede 2 passaggi.

Il primo passo è quello di clonare il repository in usr/local/ngi .

Il secondo passo è impostare manualmente $PATH in ~/.bash_profile (o ovunque impostino le loro variabili d'ambiente) in modo che possano eseguire lo strumento dalla riga di comando.

Quello che sto considerando è questo (accorcia l'installazione a un solo passaggio):

Ho intenzione di creare un file install nel repository, che è solo uno script che esegue i due passaggi precedenti per l'utente. Ora potranno solo aprire la riga di comando e scaricare lo script di installazione tramite curl , che a sua volta installerà lo strumento da riga di comando:

curl https://raw.githubusercontent.com/joshbeam/angular_init/install >> install_ngi; ruby install_ngi

Fondamentalmente il comando sopra riportato scarica il contenuto non elaborato del file install da GitHub in un nuovo file locale chiamato install_ngi , quindi lo esegue con Ruby. Il file install_ngi stesso clona quindi il repository GitHub e imposta le variabili di ambiente.

La mia domanda è, quali sono alcuni problemi di sicurezza relativi a questo metodo e c'è un modo più sicuro per implementare questo tipo di installazione?

    
posta Josh Beam 05.04.2015 - 21:12
fonte

1 risposta

5

È sicuro?
Non completamente; solo perché stai recuperando il codice sicuro ora non significa che il collegamento punta sempre al codice sicuro, e molti strumenti da riga di comando non verificano i certificati, il che potrebbe portare a un attacco MITM.

È abbastanza sicuro?
Sì, per la maggior parte dei casi d'uso, probabilmente. Lo scenario di attacco è piuttosto raro, e un attaccante che è in grado di eliminarlo può probabilmente fare qualcosa di più serio.

Qual è un modo più sicuro per farlo?
Il meglio che possiamo fare è che tutti i software scaricati siano firmati crittograficamente e che le firme siano verificate prima dell'installazione. La maggior parte dei moderni gestori di pacchetti di sistema (pensa apt, yum, ecc.) Lo fa automaticamente, ma puoi farlo tu stesso usando gnupg.

Idealmente firmeresti un pacchetto solo se lo hai verificato e ti fidi di esso. Ciò non significa che hai ragione di fidarti, ma almeno ti rende responsabile. Certo, c'è il problema di ottenere la chiave pubblica del firmatario sul computer dell'utente in modo tale che quel trasferimento non venga manomesso ... pollo, incontra uovo.

    
risposta data 06.04.2015 - 02:33
fonte

Leggi altre domande sui tag