Una volta scoperte le vulnerabilità di un sistema, il software interessato deve essere aggiornato in modo da evitare potenziali rischi. Se il pacchetto fà parte della distribuzione Red Hat Enterprise Linux ed è supportato, Red Hat, Inc. emette, appena possibile, alcuni pacchetti aggiornati in grado di risolvere i problemi riguardanti la sicurezza. Spesso la verifica di un exploit viene accompagnata da una patch (o da un source code capace di risolvere il problema). La patch viene applicata al pacchetto di Red Hat Enterprise Linux, provato dal team Red Hat che ne assicura la qualità, ed emesso come un aggiornamento errata. Se la patch viene a mancare, allora uno sviluppatore di Red Hat lavorerà insieme con il tecnico responsabile del pacchetto, per la risoluzione del problema. Dopo aver risolto tale problema, il pacchetto viene provato, emettendo così un aggiornamento dell'errata.
Se è stato rilasciato un aggiornamento dell'errata riguardante il software sul vostro sistema, è consigliato effettuare un aggiornamento dei pacchetti in questione appena possibile, questo per minimizzare il periodo nel quale il vostro sistema può essere vulnerabile.
Quando si esegue un aggiornamento software di un sistema, è importante effettuare un download dell'aggiornamento da una fonte fidata. Un aggressore è in grado di ricostruire facilmente un pacchetto con lo stesso numero della versione del pacchetto preposto per la soluzione dei problemi, ma con un exploit diverso presente nel suo interno, immettendolo così su Internet. Se si verifica quanto sopra descritto, l'uso delle misure di sicurezza come ad esempio il controllo dei file con l'RPM originale, non sarà sufficiente a rilevare l'exploit. Per questo motivo è molto importante scaricare gli RPM da fonti fidate come ad esempio Red Hat, Inc. e controllare la firma del pacchetto, per assicurarsi che lo stesso sia stato costruito dalla fonte.
Red Hat offre due modi per ottenere informazioni sugli aggiornamenti dell'errata:
Elencati e disponibili per il download su Red Hat Network
Elencati ma non disponibili sul sito web Errata di Red Hat
![]() | Nota bene |
|---|---|
Iniziando con la gamma Red Hat Enterprise Linux, i pacchetti aggiornati possono essere scaricati solo da Red Hat Network. Anche se il sito web Errata di Red Hat contiene le informazioni aggiornate, esso non contiene i pacchetti attuali per il download. |
Red Hat Network vi permette di automatizzare molti dei processi di aggiornamento. Determina quali pacchetti RPM sono necessari al vostro sistema, li scarica da un luogo sicuro, verifica la firma RPM, assicurandosi così che essi non siano stati alterati, e successivamente li aggiorna. L'installazione del pacchetto può verificarsi immediatamente oppure può essere programmato durante un periodo ben determinato.
Red Hat Network necessita di un System Profile per ogni macchina che desiderate aggiornare. Il System Profile contiene informazioni hardware e software. Queste informazioni sono riservate e non vengono quindi divulgate. Esse sono usate per determinare quali aggiornamenti degli errata sono applicabili per ogni sistema. Senza queste informazioni, Red Hat Network non è in grado di determinare se il vostro sistema ha bisogno di aggiornamenti. Quando viene emesso un errata riguardante la sicurezza (o qualsiasi tipo di errata),Red Hat Network vi invierà una email con la sua descrizione, indicandovi anche i sistemi che saranno colpiti. Per apportare un aggiornamento, potete usare il Red Hat Update Agent oppure organizzare l'aggiornamento del pacchetto attraverso il sito web http://rhn.redhat.com.
![]() | Suggerimento |
|---|---|
Red Hat Enterprise Linux include il Tool di notifica di attenzione di Red Hat Network, una icona del pannello molto conveniente, che mostra allarmi visibili quando vi è un aggiornamento per un sistema Red Hat Enterprise Linux. Consultate le seguenti URL per maggiori informazioni su: http://rhn.redhat.com/help/basic/applet.html |
Per saperne di più sui benefici di Red Hat Network, consultare il Red Hat Network Reference Guide disponibile su http://www.redhat.com/docs/manuals/RHNetwork/ o visitate http://rhn.redhat.com.
![]() | Importante |
|---|---|
Prima di installare qualsiasi errata di sicurezza, assicurarsi di leggere qualsiasi istruzione speciale contenuta nell'errata report ed eseguitela scrupolosamente. Consultare la Sezione 3.1.5 per istruzioni generali su come applicare i cambiamenti fatti da un aggiornamento dell'errata. |
Quando vengono emessi gli errata report riguardanti la sicurezza, essi vengono pubblicati sul sito web Errata di Red Hat disponibile su http://www.redhat.com/security/. Da questa pagina selezionate il prodotto e la versione per il vostro sistema, e successivamente selezionare security nella parte superiore della pagina, per visualizzare solo il Red Hat Enterprise Linux Security Advisories. Se uno dei commenti è un pacchetto usato sul vostro sistema, selezionatelo per ottenere maggiori informazioni.
I dettagli descrivono l'exploit inerenti la sicurezza, insieme con altre istruzioni specifiche necessarie per l'aggiornamento del pacchetto, in modo tale da poter risolvere i problemi di sicurezza che si sono verificati.
Per poter scaricare il pacchetto (o pacchetti) aggiornato, fate clic sul link per eseguire un login su Red Hat Network, fate clic sul nome del pacchetto e salvatelo sul disco fisso. È fortemente consigliato creare una nuova directory come ad esempio /tmp/updates per poter salvare il pacchetto scaricato.
Tutti i pacchetti di Red Hat Enterprise Linux sono firmati con la chiave Red Hat, Inc. GPG. GPG è l'acronimo di GNU Privacy Guard, o GnuPG, un pacchetto di software libero utilizzato per assicurare l'autenticità dei file distribuiti. Per esempio, una chiave privata (chiave segreta) posseduta da Red Hat, assicura il pacchetto, mentre la chiave pubblica lo verifica. Se la chiave pubblica distribuita da Red Hat non corrisponde con la chiave privata durante la verifica RPM, il pacchetto potrebbe essere stato alterato e quindi non sarebbe un pacchetto fidato.
L'utility RPM all'interno di Red Hat Enterprise Linux, prova automaticamente la verifica della firma GPG di un pacchetto RPM prima d'installarlo. Se la chiave GPG di Red Hat non è installata, installatela da un luogo sicuro e statico come ad esempio un CD-ROM di installazione di Red Hat Enterprise Linux.
Assumendo che il CD-ROM è stato montato in /mnt/cdrom, usate il seguente comando per importarlo nel vostro keyring (un database di chiavi fidate presente sul sistema):
rpm --import /mnt/cdrom/RPM-GPG-KEY |
Per poter visualizzare un elenco di tutte le chiavi installate usate per la verifica dell'RPM, eseguite il seguente comando:
rpm -qa gpg-pubkey* |
Per la chiave di Red Hat, l'output include quanto segue:
gpg-pubkey-db42a60e-37ea5438 |
Per visualizzare i particolari di una chiave specifica, usare il comando rpm -qi seguito dall'output del comando precedente, come riportato in questo esempio:
rpm -qi gpg-pubkey-db42a60e-37ea5438 |
È molto importante controllare la firma dei file RPM prima di procedere alla loro installazione. In questo modo potete assicurarvi che essi non siano stati alterati dalla distribuzione dei pacchetti di Red Hat, Inc.. Per verificare tutti i pacchetti scaricati nello stesso istante, emettere il seguente comando:
rpm -K /tmp/updates/*.rpm |
Per ogni pacchetto,se la chiave GPG esegue una verifica corretta, il comando ritorna gpg OK. Altrimenti, assicuratevi di usare la chiave pubblica di Red Hat corretta, verificando anche la fonte del contenuto. I pacchetti che non passano le verifiche GPG, non dovrebbero essere installate, in quanto essi possono essere stati alterati.
Dopo aver verificato la chiave GPG e dopo aver scaricato tutti i pacchetti associati con l'errata report, installateli come utente root ad un promt della shell.
Questo può essere fatto in modo sicuro per la maggior parte dei pacchetti (eccetto per i pacchetti del kernel), emettendo il seguente comando:
rpm -Uvh /tmp/updates/*.rpm |
Per i pacchetti del kernel, è consigliato usare il seguente comando:
rpm -ivh /tmp/updates/<kernel-package> |
Sostituire <pacchetto del kernel> nell'esempio precedente, con il nome dell'RPM del kernel.
Una volta riavviata la macchina in modo sicuro usando il nuovo kernel, il vecchio kernel può essere rimosso usando il seguente comando:
rpm -e <old-kernel-package> |
Sostituire <pacchett-kernel-vecchio> nel precedente esempio, con il nome dell'RPM del kernel più vecchio.
![]() | Nota bene |
|---|---|
Non è necessario rimuovere il vecchio kernel. Il boot loader di default, GRUB, permette l'installazione di kernel multipli, scelti da un menu al momento dell'avvio. |
![]() | Importante |
|---|---|
Prima di installare qualsiasi errata di sicurezza, assicurarsi di leggere qualsiasi istruzione speciale contenuta nell'errata report ed eseguitela scrupolosamente. Consultare la Sezione 3.1.5 per istruzioni generali su come applicare i cambiamenti fatti da un aggiornamento dell'errata. |
Dopo aver effettuato un download e installato gli errata tramite il sito web errata di Red Hat Network o di Red Hat, è importante interrompere l'uso del software più vecchio e iniziare ad usare quello nuovo. Come eseguire tale operazione dipende dal tipo di software che è stato aggiornato. Il seguente elenco riporta le categorie generali del software e fornisce istruzioni sull'uso delle versioni aggiornate dopo il miglioramento di un pacchetto.
![]() | Nota bene |
|---|---|
In generale, riavviare il sistema rappresenta il modo più sicuro per assicurarsi che la versione più aggiornata di un pacchetto software venga usata; tuttavia, questa opzione non è sempre disponibile per un amministratore di sistema. |
Le applicazioni del tipo user-space, sono tutti quei programmi che possono essere iniziati da un utente del sistema. Generalmente tali applicazioni vengono usate solo quando un utente, uno script oppure una utility di un compito automatizzato, vengono lanciati senza persistere per un periodo di tempo prolungato.
Una volta aggiornata l'applicazione user-space, interrompete ogni istanza dell'applicazione presente sul sistema, e lanciare nuovamente il programma per usare la versione aggiornata.
Il kernel rappresenta il nucleo della componente software per il sistema operativo Red Hat Enterprise Linux. Esso gestisce l'accesso alla memoria, al processore, e ai peripheral, programmando anche tutti i vari compiti.
A causa del suo ruolo centrale, il kernel non può essere riavviato senza aver fermato il computer. Quindi, una versione aggiornata del kernel non può essere usata fino a quando il sistema non viene riavviato.
Le librerie condivise sono delle unità di codice, come glibc, le quali sono usate da un certo numero di applicazioni e di servizi. Le applicazioni che utilizzano una libreria condivisa, generalmente caricano il codice condiviso quando l'applicazione è inizializzata, in questo modo ogni applicazione che utilizza la libreria aggiornata, deve essere interrotta e rilanciata.
Per determinare quale applicazione in esecuzione si collega ad una particolare libreria, utilizzare il comando lsof, come riportato nel seguente esempio:
lsof /usr/lib/libwrap.so* |
Questo comando ritorna un elenco di tutti i programmi in esecuzione che usano i wrapperTCP per un controllo dell'accesso host. In questo modo, ogni programma presente nell'elenco, deve essere interrotto e rilanciato se il pacchetto tcp_wrappers è aggiornato.
I servizi SysV sono programmi server persistenti lanciati durante il processo di avvio. Un esempio di servizi SysV sono sshd, vsftpd, e xinetd.
Poichè questi programmi generalmente persistono in memoria se la macchina è avviata, ogni servizio SysV aggiornato, deve essere interrotto e rilanciato dopo il miglioramento del pacchetto. Questo può essere fatto usando lo Strumento di configurazione dei servizi oppure effettuando un log in un prompt della shell root, emettendo il comando /sbin/service come riportato nel seguente esempio:
/sbin/service <service-name> restart |
Nell'esempio precedente, sostituire <nome -servizio> con il nome del servizio, come ad esempio sshd.
Consultare il capitolo intitolato Controllo dell'accesso ai servizi nel Red Hat Enterprise Linux System Administration Guide, per maggiori informazioni sullo Strumento di configurazione dei servizi.
I servizi controllati dal super servizio xinetd possono essere eseguiti solo se vi è un collegamento attivo. Esempi di servizi controllati da xinetd sono Telnet, IMAP, e POP3.
A causa del lancio delle nuove istanze di questi servizi, da parte di xinetd ogni volta che si riceve una nuova richiesta, i collegamenti che si verificano dopo un miglioramento sono gestiti dal software aggiornato. Tuttavia, se vi sono collegamenti attivi al momento del miglioramento del servizio controllato da xinetd, essi vengono serviti dalla versione più vecchia del software.
Per eliminare le vecchie istanze di un particolare servizio controllato da xinetd, migliorare il pacchetto per il servizio e poi interrompere tutti i processi attualmente in esecuzione. Per determinare se il processo è in esecuzione, usare il comando ps e poi il comando kill o killall per interrompere le istanze correnti del servizio.
Per esempio, se i pacchetti imap degli errata della sicurezza vengono emessi, migliorare i pacchetti, e poi inserire il seguente comando come root, in un prompt della shell:
ps -aux | grep imap |
Questo comando ritorna tutte le sessioni IMAP attive. Sessioni individuali potranno essere terminate emettendo il seguente comando:
kill -9 <PID> |
Nell'esempio precedente, sostituire <PID> con il numero d'identificazione del processo (presente nella seconda colonna del comando ps) per una sessione IMAP.
Per eliminare tutte le sessioni IMAP attive, emettere il seguente comando:
killall imapd |
Consultare il capitolo intitolato Wrapper TCP e xinetd nella Red Hat Enterprise Linux Reference Guide per informazioni generali inerenti xinetd.