Quanto è affidabile 'sudo apt-get install (nome pacchetto)' in Ubuntu?

27

Uno dei modi semplici per installare un programma in Ubuntu Linux è quello di digitare un comando nel terminale, ma come faccio a sapere che il programma proviene da una fonte attendibile e non da qualche parte pericoloso? Ad esempio, se stavo installando ClamAV, come faccio a sapere che ClamAV è venuto da www.clamav.net o da qualche parte sicuro e non da una fonte dannosa? Voglio dire, un hacker può fare qualcosa per reindirizzare il comando per farlo ottenere il software da un sito falso, corretto?

    
posta Henry WH Hack v2.1.2 28.12.2015 - 23:54
fonte

2 risposte

50

Come per molti sistemi ben progettati, il sistema di pacchetti di Debian ha una difesa in profondità : più livelli, ognuno dei quali può essere verificato.

  • Come crediamo che il file del pacchetto sia ciò che il sistema promette? Il valore di hash è calcolato e confrontato con il valore memorizzato.

  • Come crediamo che il valore hash non acceda accidentalmente ad altri file? Vengono utilizzati più algoritmi di hash e solo se tutti corrispondono ai valori memorizzati crediamo che il contenuto corrisponda effettivamente.

  • Come crediamo che i valori memorizzati siano pensati per il file del pacchetto che abbiamo scaricato? I valori hash vengono scaricati in un file separato (i vari file Packages.* ) pre-calcolati automaticamente dal sistema di archiviazione.

  • Come crediamo che i file Packages.* scaricati siano ciò che è promesso dal sistema? Il valore di hash per ogni file è memorizzato in un singolo file Release per l'intero archivio.

  • Come crediamo che il file Release sia ciò che è promesso dal sistema? La firma crittografica è calcolata e confrontata con la firma precompilata scaricata separatamente dall'archivio.

  • Come crediamo che le firme archiviate nell'archivio siano effettivamente dall'archivio che ci aspettavamo? È certificato da una chiave di archivio che possiamo recuperare indipendentemente da un URL separato ed è installato nella configurazione iniziale del sistema operativo.

E così via. Ad un certo punto della catena devi fidarti parte di (e fare festa) sul sistema, su prove non ideali.

Con i livelli precedenti, la finestra di attendibilità a basso livello di evidenza può essere mantenuta piccola e facilmente scrutinata. Gli hash unidirezionali e le firme crittografiche ci consentono di affidarci alla matematica per certificare ciò che segue in sequenza.

Il wiki di Debian ha una buona descrizione completa di come è assicurato il sistema APT .

Naturalmente, molte altre cose possono andare storte per sbaglio o cattiveria e violare le nostre supposizioni su ciò che sta realmente accadendo. Come al solito, l'unica difesa persistente contro possibili attacchi è: la vigilanza eterna.

    
risposta data 29.12.2015 - 01:46
fonte
2

apt-get ha un elenco di chiavi gpg attendibili. apt-get install scarica i pacchetti dai server repository (mirror), normalmente non dal server dell'autore del software. Per garantire l'autenticità, ogni pacchetto è firmato con gpg. Il pacchetto viene installato solo se la firma è attendibile. Quindi, anche nel caso di un attacco MITM, il controllo della firma fallirà se il pacchetto viene modificato.

    
risposta data 29.12.2015 - 00:27
fonte

Leggi altre domande sui tag