Gli elenchi dei repository sono sicuri? Esiste una versione HTTPS?


24

Gli aggiornamenti del repository sono sicuri?

Come orso del cervello piccolo dal lato degli sviluppatori, non riesco a capire perché sia ​​l'elenco dei repository http://security.ubuntu.come gli altri httpsiti (non garantiti) elencati in /etc/apt/sources.list. Senza una corrispondenza della catena di certificati, questo appare come "chiedi a tutti i rispondenti un elenco di pacchetti da aggiornare" invece di "chiedi al sito ubuntu.com ..."

Qualche rete può scegliere di eseguire lo spoofing dei siti di aggiornamento? È una pratica comune fornire una copia memorizzata nella cache locale e verificata?

Risposte:


30

In breve, sì, sono sicuri, grazie alla crittografia a chiave pubblica utilizzata per firmare i file.

Tutti i file scaricati da APT hanno una firma che consente di verificare il file scaricato rispetto alle chiavi pubbliche memorizzate sul computer come firmato da Ubuntu e solo Ubuntu. Ciò verifica che il file ricevuto sia stato autorizzato da Ubuntu in qualche momento e da allora non sia stato modificato o manomesso.

Una spiegazione tecnica di come funziona è disponibile da Ubuntu (e da Debian che utilizza lo stesso sistema).

A causa dell'uso dell'HTTP anziché dell'HTTPS, sì, gli intercettatori potrebbero vedere quali file stai scaricando, ma in questo caso la privacy non è la tua preoccupazione. Un tentativo man-in-the-middle di modificare i pacchetti per iniettare codice dannoso fallirebbe comunque perché spezzerebbe il meccanismo di firma.

Un possibile problema in questo meccanismo di firma è che non garantisce che si stia ottenendo la versione più aggiornata del pacchetto (in effetti, a volte i mirror sono lenti ad aggiornare). Per aiutare a mitigare questo problema, il file di rilascio firmato include una data "valida fino al termine" dopo la quale tutti i file a cui fa riferimento devono essere considerati obsoleti. Sarebbe plausibile per un man-in-the-middle sostituire un archivio con una versione precedente non modificata dell'archivio entro questa data valida-fino alla data e far credere all'APT che non ci siano aggiornamenti. Ma non possono apportare modifiche arbitrarie ai pacchetti né possono tornare indietro nel tempo oltre un certo punto.

I meccanismi di firma offrono una sicurezza molto migliore rispetto a HTTPS in questo tipo di ambiente distribuito in cui i file sono sottoposti a mirroring su molti server non controllati da Ubuntu. In sostanza, devi solo fidarti di Ubuntu, non del mirror, quindi devi dimostrare che i file originariamente provengono da Ubuntu e non sono stati modificati da allora - non è necessario verificare l'identità del mirror.

Nota che quando aggiungi un repository non ufficiale al tuo elenco di fonti, come un PPA, riceverai file che non sono firmati da Ubuntu. APT dovrebbe avvisarti di questo, perché non sono stati firmati da un certificato corrispondente a nessuna delle chiavi pubbliche installate sul tuo computer come autorizzato da Ubuntu.


1
Grande! Quindi la versione breve è "il livello di trasporto non è sicuro, ma ogni pacchetto è firmato. Non esiste un elenco sicuro di aggiornamenti disponibili e le patch per i problemi di sicurezza esistenti non sono garantite per la consegna".
Charles Merriam,

2
Non sono sicuro del significato di "Non esiste un elenco sicuro di aggiornamenti disponibili" ma il file di rilascio e gli elenchi dei pacchetti sono firmati. È solo che non verifica che il tuo mirror sia aggiornato.
thomasrutter,

3
Ehm, se non c'è modo di verificare che un mirror, o il sito principale, sia aggiornato, allora non c'è modo di sapere se ci sono aggiornamenti disponibili, aggiornamenti di sicurezza o altro. Cioè, non esiste un elenco sicuro di aggiornamenti disponibili.
Charles Merriam,

4
Alice esegue Ubuntu. Bob controlla la connessione Internet di Alice. Bob non può inserire un pacchetto errato nell'installazione di Alice perché ogni pacchetto è firmato. C'è un enorme difetto di sicurezza trovato in Ubuntu. Alice prova a trovare il pacchetto aggiornato, ma Bob rimuove tutta la menzione del pacchetto dal controllo di aggiornamento di Alice. Alice colpisce un amministratore di sistema e quindi esegue il controllo degli aggiornamenti tramite HTTPS da ubuntu.com verificando che sia connessa al sito Web reale tramite un collegamento sicuro. Ora Alice vede l'aggiornamento di sicurezza e Bob non può nasconderlo.
Charles Merriam,

3
Questa è ovviamente la risposta corretta. Ma quello che trovo strano è che nessuno sembra essere preoccupato per un intercettatore che compila un elenco di tutti i pacchetti che hai installato in ordine, compresi quelli che hai aggiornato e quali non hai, per colpire il loro attacco su noto vulnerabilità di sicurezza in quei pacchetti.
Teekin,

8

La risposta più votata qui è chiaramente superata. Da allora, ci sono stati 2 gravi exploit di esecuzione di codice in remoto trovati in apt a causa della verifica del pacchetto difettoso. Bollettini sulla sicurezza qui e qui .

Questo è molto peggio delle preoccupazioni sulla perdita di privacy / informazioni e versione del pacchetto obsoleto; questo consente l'esecuzione di codice arbitrario come root, completo fallimento della sicurezza. E il fatto è che questi attacchi sarebbero stati evitati se fosse stato usato https invece di http.

Ciò dimostra che il principio della difesa in profondità si applica qui tanto quanto altrove. Le molte affermazioni che sostengono che https non fornisce alcun vantaggio di sicurezza minimo o minimo nel contesto di apt sono semplicemente errate, come è stato dimostrato da questi exploit.

La domanda diventa quindi se il vantaggio in termini di sicurezza di https vale il costo in termini di memorizzazione nella cache, sovraccarico, ecc. Non posso rispondere, ma almeno penso che Ubuntu / Canonical / Launchpad dovrebbero fornire endpoint https opzionali per i loro repository .


1
La sicurezza riguarda anche la privacy e HTTPS significa che per lo meno sarà molto più difficile capire quali pacchetti e versioni si stiano eseguendo.
20

Dirò comunque che fintanto che apt stesso non avrà problemi con questo, http va bene. Tuttavia, https fornisce un backup nel caso in cui la sicurezza di gpg (o il modo in cui la utilizza in modo più accurato) rovini.
RoundDuckMan,

2

Supplemento importante : infatti, poiché l'aggiornamento e l'installazione iniziale vengono scaricati online, richiede molto traffico e la fonte di questo traffico, ovvero flussi di codice binario e di testo, è riproducibile. Quindi ci sono un gran numero di gateway e dispositivi cache su Internet per questo. Un numero considerevole di ISP aveva impostato la cache in base al protocollo http al fine di salvare la larghezza di banda di esportazione e il protocollo https non può esistere come cache trasparente.

Un altro motivo è che il programma di mirroring basato su http è molto più semplice, non è necessario verificare il certificato tls-ssl e non è necessario preoccuparsi anche dell'annullamento del certificato o dei problemi di configurazione del server web.

Non molto tempo fa, circa 20 anni, all'inizio di Internet, il traffico https e Internet era ancora un gioco molto costoso. Pertanto, http includeva anche il protocollo ftp, che è quasi obsoleto, come il modo principale di fornire installazione e aggiornamento per la distribuzione di pacchetti software online.

Allo stesso modo, anche Microsoft Windows e Office vengono aggiornati tramite http. Puoi osservare che di solito non è il pacchetto di installazione scaricato dal server di Microsoft, ma il server cache autocostruito del tuo ISP.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.