Capire e gestire la sicurezza dei pacchetti

Capire la fiducia
Fidarsi di chiavi aggiuntive

La capacità di apt di accedere a diverse sorgenti di pacchetti comporta una potenziale vulnerabilità in termini di sicurezza. Si supponga di aggiungere al proprio file sources.list un archivio di pacchetti pubblicati da Pinco Pallo Hacker, per potere installare il pacchetto ultraprogramma di Pinco. È possibile però che, a insaputa dell'utente, l'archivio di Pinco contenga anche le sue versioni «personalizzate» di pacchetti come libc6 e ssh... versioni che rubano le informazioni private o aprono backdoor nel sistema! Se questi pacchetti hanno un numero di versione più alto di quello dei pacchetti Debian legittimi, apt li installerà nel sistema senza farsi problemi durante l'aggiornamento successivo, permettendo a Pinco di fare il suo lavoro sporco senza venire scoperto. Pinco potrebbe anche forzare il mirror degli archivi Debian dell'utente e sostituire il software legittimo con la sua versione rimaneggiata.

Fortunatamente le versioni più recenti di apt e aptitude, come quella documentata in questo manuale, hanno sistemi di sicurezza incorporati per aiutare a sconfiggere questo tipo di attacchi. apt usa un forte meccanismo di sicurezza basato sul popolare software per cifratura GPG, per verificare che i pacchetti distribuiti dai mirror Debian ufficiali siano gli stessi pacchetti che sono stati caricati dagli sviluppatori Debian. aptitude poi avverte se si cerca di installare un pacchetto da una sorgente non Debian, o se si cerca di aggiornare un pacchetto che era installato da una sorgente Debian ad una versione che proviene da una sorgente non Debian.

[Avvertimento]Avvertimento

I meccanismi di sicurezza di apt forniscono una garanzia quasi assoluta che il contenuto dell'archivio mirror dell'utente è identico a quello dell'archivio master Debian. Tuttavia non sono una panacea: ci sono, ad esempio, molti modi in cui un pacchetto rimaneggiato può teoricamente riuscire a infiltrarsi nell'archivio master Debian.

Se ci si assicura di installare solamente software da una sorgente sicura, si avrà un ottimo grado di protezione da pacchetti pericolosi, ma ciò non può eliminare tutti i rischi correlati con l'installazione di software.

Capire la fiducia

apt permette all'amministratore di un archivio di fornire una firma per l'indice dell'archivio. Questa firma, che (in pratica) non può essere contraffatta, indica che i file di pacchetto elencati nell'indice sono gli stessi file che l'amministratore ha voluto mettere nell'archivio: cioè che il contenuto dell'archivio non è stato manomesso da quando è stato creato.[9] La firma può essere verificata controllando che corrisponda alla chiave pubblica dell'amministratore. La chiave pubblica dell'archivio Debian è distribuita con apt, tipicamente sul CD di Debian.

Quando aptitude scarica un indice di archivio, controlla se l'indice è firmato correttamente. Se non è firmato, aptitude non si fida dei file di pacchetto in quell'archivio. (Vedere più sotto per informazioni su ciò che questo significa.) Se ha una firma, ma la firma non è corretta o non può essere verificata, viene mostrato un avvertimento e aptitude si rifiuta di fidarsi dei pacchetti in quell'archivio.

Successivamente, quando si effettua un giro di installazioni, aptitude controlla se i pacchetti provengono da sorgenti fidate. Se un pacchetto non fidato sta per essere installato o se un pacchetto sta per essere aggiornato da una versione fidata a una non fidata, viene mostrato un avvertimento e viene data la possibilità di annullare lo scaricamento:

[avvertimento di pacchetti/versioni non fidate]

Fidarsi di chiavi aggiuntive

Potrebbe essere utile permettere ad apt di fidarsi di archivi aggiuntivi, oltre all'archivio principale Debian. Per ciascun archivio di cui ci si desidera fidare, è necessario acquisire la chiave pubblica che viene usata per firmare l'indice dei pacchetti dell'archivio. Questa è tipicamente un file di testo il cui nome termina con .asc; può essere fornita dall'amministratore del sito o può essere scaricabile da un server di chiavi pubblico. Per maggiori informazioni su cosa sono le chiavi pubbliche e su come ottenerle, vedere la pagina web di GPG.

L'elenco delle chiavi di cui apt ha fiducia è memorizzato nel file portachiavi /etc/apt/trusted.gpg. Una volta ottenuta la chiave GPG, la si può aggiungere a questo file eseguendo il comando gpg --no-default-keyring --keyring /etc/apt/trusted.gpg --import nuovachiave.asc. aptitude successivamente si fiderà di qualsiasi archivio che sia firmato con la chiave contenuta in nuovachiave.asc.

[Avvertimento]Avvertimento

Una volta che la chiave di un archivio è stata aggiunta al portachiavi di APT, l'archivio viene considerato fidato tanto quanto gli stessi mirror Debian principali! Questa cosa andrebbe fatta solamente se si è certi che la chiave che si sta aggiungendo sia corretta e che la persona a cui appartiene la chiave sia degna di fiducia e competente.



[9] Come detto in precedenza, non indica che i pacchetti nell'archivio siano sicuri o persino non pericolosi; dimostra solamente che siano originali.