Sicurezza
AVVISO: questa pagina è obsoleta, vedete
la pagina in inglese per gli
avvisi di sicurezza.
Obiettivi
OpenBSD crede in una sicurezza robusta. La nostra aspirazione è quella
di essere il NUMERO UNO del mercato in fatto di sicurezza (se non siamo
già in tale posizione). Il nostro modello di sviluppo "aperto"
ci permette di adottare una strategia meno incline ai compromessi di quella
adottata da Sun, SGI, IBM, HP ed altri marchi commerciali. Possiamo effettuare
cambi che altri marchi non effettuerebbero. Inoltre, dato che OpenBSD è
esportato con vario software crittografico, siamo
in grado di affrontare problemi di sicurezza utilizzando la crittografia.
Esposizione Totale
Come molti lettori della
mailing list BUGTRAQ,
crediamo nell'esposizione totale ("full disclosure") dei problemi di
sicurezza. Nel mondo dei sistemi operativi siamo stati probabilmente i primi
ad aver abbracciato tale concetto. Molti marchi, anche tra quelli che producono
software gratuito, cercano tuttora di nascondere i difetti ai propri utenti.
Le informazioni riguardanti la sicurezza si muovono molto velocemente negli
ambienti dei "cracker". D'altra parte, la nostra esperienza ci ha
insegnato che il risolvere un problema di sicurezza e rilasciare una soluzione
richiede mediamente un'ora circa di lavoro -- è possibile risolvere
il problema rapidamente. Per questo siamo convinti che l'esposizione totale
aiuti chi è veramente interessato alla sicurezza.
Il processo di "audit"
Il nostro team di "audit" è composto normalmente da 6-12
membri che ricercano e risolvono costantemente nuovi problemi di sicurezza sul
sistema. Abbiamo compiuto ricerche in questo senso sin dall'estate del 1996.
Il processo che seguiamo per migliorare la sicurezza consiste semplicemente in
un'approfondita analisi, file dopo file, di ogni componente critico del
software. Non cerchiamo solamente effettive vulnerabilità nella
sicurezza, quanto piuttosto bug nel software: se eventualmente qualcuno, anni
più tardi, scoprisse che un determinato problema da noi risolto
semplicemente come bug nel software si sarebbe potuto rivelare un buco di
sicurezza, tanto meglio. Problemi vengono trovati in ogni area del sistema.
Intere nuove categorie di problemi di sicurezza sono state scoperte durante le
nostre ricerche, e ciò ha reso spesso necessario ricontrollare, tenendo
conto di questi nuovi problemi, codice sorgente che era stato controllato in
precedenza. Il codice viene spesso controllato varie volte e da più
persone, ognuna con le proprie abilità specifiche.
Alcuni membri del nostro team per il controllo della sicurezza del codice
lavorarono alla Secure Networks, la compagnia che produsse il pacchetto software
"Ballista", leader del mercato per lo scanning di sicurezza delle reti
(la Secure Network fu acquistata dalla Network Associates e Ballista fu
ribattezzato Cybercop Scanner). La suddetta compagnia fu attivamente impegnata
in ricerche nel campo della sicurezza, risultando così in sintonia con
gli obiettivi del progetto OpenBSD. OpenBSD superò alla grande i test
del software Ballista sin dal primo giorno.
La nostra procedura di controllo del codice è inoltre
"pro-attiva". Abbiamo stabilito che nella maggior parte dei casi
un determinato problema non è importante soltanto se sfruttabile
attraverso "exploit" -- se è un effettivo buco di sicurezza.
Durante il nostro processo di audit troviamo numerosi bug, e ci prefiggiamo di
eliminarli anche se non è provato che possano costituire un'effettiva
vulnerabilità. Correggiamo il problema, e continuiamo il processo alla
ricerca di ulteriori bug da eliminare. Abbiamo corretto una grande
quantità di semplici ed ovvi errori dovuti a poca cura nella
programmazione, e solo mesi più tardi fu scoperto che questi sarebbero
potuti essere veri e propri buchi di sicurezza (oppure qualcuno su
BUGTRAQ
segnalò che altri sistemi operativi erano vulnerabili a causa di un
"nuovo problema", per poi scoprire che in OpenBSD il medesimo problema
era già stato sistemato in una vecchia versione). In altri casi il
sistema non è risultato completamente vulnerabile ad attacchi complessi,
suddivisi in più passi, perché avevamo trovato una soluzione per
uno dei passi intermedi. Un esempio di un nostro successo di questo tipo
è offerto dall'avviso di sicurezza riguardante lpd, che Secure Networks
fece uscire.
Il risultato
Il nostro processo di controllo del codice ha prodotto davvero grandi risultati.
Affermazioni come "questo problema fu corretto in OpenBSD circa 6 mesi
fa" sono diventate ordinarie nei forum sulla sicurezza come
BUGTRAQ.
La parte più intensa del nostro processo di audit
precedette la versione 2.0 di OpenBSD e continuò durante tutto
il periodo tra le versioni 2.0 e 2.1, in un arco di tempo che comprese gli
ultimi quattro mesi del 1996 e la prima metà del 1997. Migliaia (proprio
così, migliaia) di problemi di sicurezza, come i noti buffer overflow,
debolezze nell'implementazione dei protocolli, debolezze che permettevano la
raccolta d'informazioni, e "race" nel filesystem furono eliminati in
questo periodo lungo un anno. In tal modo si trovò una soluzione alla
maggioranza dei problemi di sicurezza prima della versione 2.1, e nella versione
2.2 il numero di problemi che necessitavano una soluzione scese di molto.
Se oggigiorno non vengono più trovati molti problemi è
anche grazie all'intenso lavoro compiuto in quel periodo. Le
vulnerabilità nella sicurezza che abbiamo trovato nei tempi più
recenti sono di norma molto più oscure o complicate. Proseguiamo
tuttavia l'attività di controllo, per una serie di ragioni:
- Beh, occasionalmente troviamo un problema che non avevamo notato!
- La sicurezza è come una corsa agli armamenti; i migliori strateghi
dell'attacco cercheranno vulnerabilità sempre più complicate,
e noi faremo altrettanto.
- Cercare ed eliminare debolezze insospettabili in un software complesso
è estremamente divertente.
Il processo di controllo del codice non è terminato, e come potete
vedere proseguiamo la nostra opera di ricerca ed eliminazione delle
vulnerabilità nella sicurezza del sistema.
"Sicuro di Default"
Per assicurare che i nuovi utenti di OpenBSD non siano costretti a diventare
esperti di sicurezza informatica nel giro d'una notte (pare invece che altri
marchi vogliano esattamente ciò), distribuiamo il sistema operativo
configurato "Sicuro di Default". Tutti i servizi non essenziali sono
disabilitati. Man mano che l'utente/amministratore acquisterà
familiarità con il sistema operativo, scoprirà la necessità
di abilitare i demoni ed altre parti del sistema. Apprendendo come abilitare un
nuovo servizio, il nuovo utente imparerà anche a tener conto delle
problematiche legate alla sicurezza.
Ciò è in forte contrasto con il crescente numero di sistemi che
vengono distribuiti con NFS, mountd, server web, e vari altri servizi abilitati
di default e che causano agli utenti problemi di sicurezza già pochi
minuti dopo l'installazione.
Crittografia
E naturalmente, dato che il progetto OpenBSD è sviluppato in Canada,
abbiamo la possibilità d'integrare il sistema con software
crittografico. Per ulteriori informazioni, date un'occhiata a
ciò che abbiamo realizzato con la
crittografia.
Avvisi
Avvisi di sicurezza per OpenBSD 2.9
Questi sono gli avvisi di sicurezza per OpenBSD 2.9 -- tutti questi
problemi sono già stati risolti in
OpenBSD current
e nel ramo delle patch.
Avvisi di sicurezza per OpenBSD 2.8
Questi sono gli avvisi di sicurezza per OpenBSD 2.8 -- tutti questi
problemi sono già stati risolti in
OpenBSD current
e nel ramo delle patch.
Avvisi di sicurezza per OpenBSD 2.7
Questi sono gli avvisi di sicurezza per OpenBSD 2.7 -- tutti questi problemi
sono già stati risolti in OpenBSD current.
Ovviamente, tutti i problemi elencati più sotto per la versione 2.6
sono stati risolti in OpenBSD 2.7.
- 4 Dicembre 2000:
un buffer overflow di un singolo byte è presente in ftpd (la patch
è inclusa).
- 10 Novembre 2000:
server ostili possono costringere client OpenSSH all'agent o X11
forwarding (la patch è inclusa).
- 26 Ottobre 2000:
le librerie di X11 hanno due potenziali overflow nel codice di xtrans
(la patch è inclusa).
- 18 Ottobre 2000:
se usati sotto alcune configurazioni, i moduli mod_rewrite e
mod_vhost_alias di Apache possono esporre dei file presenti sul server
(la patch è inclusa).
- 10 Ottobre 2000:
il demone telnet, contrariamente al dovuto, non elimina le variabili
d'ambiente TERMINFO, TERMINFO_DIRS, TERMPATH e TERMCAP (la patch
è inclusa).
- 6 Ottobre 2000:
ci sono bug del tipo format string, "stile printf", in vari
programmi privilegiati (la patch è inclusa).
- 6 Ottobre 2000:
libcurses rilasciava informazioni riguardanti i terminali, nella directory
$HOME/.terminfo e nella variabile d'ambiente TERMCAP, per applicazioni
setuid e setgid (la patch è inclusa).
- 6 Ottobre 2000:
una vulnerabilità del tipo format string è presente in
talkd(8) (la patch è inclusa).
- 3 Ottobre 2000:
una vulnerabilità del tipo format string è presente nella
funzione pw_error() della libreria libutil, con conseguente
vulnerabilità locale a livello root attraverso chpass(1) (la
patch è inclusa).
- 18 Settembre 2000:
in certe condizioni pacchetti ESP/AH errati possono causare un crash
(la patch è inclusa).
- 16 Agosto 2000:
una vulnerabilità del tipo format string (vulnerabilità
locale a livello root) è presente in xlock(1) (la patch è
inclusa).
- 14 Luglio 2000:
diversi bug nelle librerie di X11 con vari effetti indesiderati possono
causare un quasi completo denial of service su OpenBSD (la patch
è inclusa).
- 5 Luglio 2000:
come quasi tutti i demoni ftp del pianeta, ftpd ha una
vulnerabilità remota a livello root. Fortunatamente ftpd non
è abilitato di default. Il problema sussiste se è
abilitato l'accesso ftp anonimo (la patch è inclusa).
- 5 Luglio 2000:
mopd, usato molto raramente, contiene alcuni buffer overflow (la patch
è inclusa).
- 28 Giugno 2000:
libedit legge il file .editrc nella directory corrente. Non
è chiaro se ciò possa creare reali problemi alla
sicurezza, ma è in ogni caso disponibile una patch (la patch
è inclusa).
- 24 Giugno 2000:
un grave bug in dhclient(8) può consentire a server dhcp
"maligni" l'esecuzione di stringhe nella shell come
utente root (la patch è inclusa).
- 9 Giugno 2000:
nelle procedure di gestione di isakmpd(8) c'è un grave bug che
permette di aggirare completamente le verifiche sulla gestione in isakmpd
(la patch è inclusa).
- 6 Giugno 2000:
il flag UseLogin in /etc/sshd_config, di default non abilitato,
è difettoso e si consiglia di non utilizzarlo. Su altri sistemi
operativi può causare problemi di sicurezza.
- 26 Maggio 2000:
il flag learning di bridge(4) può essere aggirato (la
patch è inclusa).
- 25 Maggio 2000:
l'uso improprio di regole keep-state in ipf può far
sì che le regole del firewall vengano aggirate (la patch è
inclusa).
Avvisi di sicurezza per OpenBSD 2.6
Questi sono gli avvisi di sicurezza per OpenBSD 2.6 -- tutti questi problemi
sono già stati risolti in OpenBSD current.
Ovviamente, tutti i problemi elencati più sotto per la versione 2.5
sono stati risolti in OpenBSD 2.6.
Avvisi di sicurezza per OpenBSD 2.5
Questi sono gli avvisi di sicurezza per OpenBSD 2.5 -- tutti questi problemi
sono già stati risolti in OpenBSD current.
Ovviamente, tutti i problemi elencati più sotto per la versione 2.4
sono stati risolti in OpenBSD 2.5.
Avvisi di sicurezza per OpenBSD 2.4
Questi sono gli avvisi di sicurezza per OpenBSD 2.4 -- tutti questi problemi
sono già stati risolti in OpenBSD current.
Ovviamente, tutti i problemi elencati più sotto per la versione 2.3
sono stati risolti in OpenBSD 2.4.
Avvisi di sicurezza per OpenBSD 2.3
Questi sono gli avvisi di sicurezza per OpenBSD 2.3 -- tutti questi problemi
sono già stati risolti in OpenBSD current.
Ovviamente, tutti i problemi elencati più sotto per la versione 2.2
sono stati risolti in OpenBSD 2.3.
Avvisi di sicurezza per OpenBSD 2.2
Questi sono gli avvisi di sicurezza per OpenBSD 2.2. Tutti questi problemi sono
già stati risolti in OpenBSD 2.3. Alcuni
di questi problemi sono tuttora presenti in altri sistemi operativi (le patch
accluse sono applicabili su OpenBSD 2.2, e non si garantisce il funzionamento
su OpenBSD 2.1).
Avvisi di sicurezza per OpenBSD 2.1
Questi sono gli avvisi di sicurezza per OpenBSD 2.1. Tutti questi problemi sono
già stati risolti in OpenBSD 2.2. Alcuni di
questi problemi sono tuttora presenti in altri sistemi operativi (se utilizzate
OpenBSD 2.1 vi raccomandiamo vivamente di aggiornare il vostro sistema alla
versione più recente, perché il seguente elenco traccia soltanto i
problemi di sicurezza più importanti. In particolare, in OpenBSD 2.2
sono stati risolti numerosi problemi di sicurezza relativi all'host locale.
Molti dei suddetti problemi furono risolti in maniera tale da rendere difficile
la disponibilità di patch).
Avvisi di sicurezza per OpenBSD 2.0
Questi sono gli avvisi di sicurezza per OpenBSD 2.0. Tutti questi problemi sono
già stati risolti in OpenBSD 2.1. Alcuni di
questi problemi sono tuttora presenti in altri sistemi operativi (se utilizzate
OpenBSD 2.0 vi lodiamo per la vostra volontà di rimanere ancorati ai
vecchi tempi, ma vi perdete davvero molto se non installate una nuova
versione!).
Osservare le Modifiche
Dato che è nostra volontà approcciare la sicurezza in modo
"pro-attivo", cerchiamo e correggiamo continuamente nuovi problemi di
sicurezza. Non tutti questi problemi sono ampiamente riportati perché
(come abbiamo già detto) molti non sono sfruttabili come effettive
vulnerabilità; tuttavia molti semplici problemi da noi eliminati sono in
seguito identificati come sorgenti di conseguenze reali per la sicurezza, fino
al momento sconosciute. Non abbiamo il tempo e le risorse necessari per
rendere disponibili tutte le modifiche effettuate nel formato riportato qui
sopra.
Di conseguenza, nel codice sorgente più recente sono normalmente presenti
piccole correzioni di sicurezza non presenti nell'ultima versione ufficiale di
OpenBSD. Vi garantiamo che, limitatamente alle nostre conoscenze, i problemi
interessati da tali correzioni sono d'impatto minimo e non sono identificabili
come veri e propri buchi di sicurezza. Se scopriamo problemi che hanno davvero
un impatto sulla sicurezza, le patch appariranno su questa pagina
MOLTO rapidamente.
Coloro che hanno particolari esigenze di sicurezza possono scegliere varie
opzioni:
- Se avete esperienza riguardo alle problematiche di sicurezza, seguite la
nostra mailing list riguardante le modifiche al
codice sorgente e tenete d'occhio tutto ciò che pare avere
implicazioni con la sicurezza. Poiché molte delle correzioni che
applichiamo non sono dovute ad effettive vulnerabilità, non
aspettatevi messaggi del tipo "SECURITY FIX!" ("CORREZIONE
DI SICUREZZA!"). Se un problema è serio e costituisce una
vulnerabilità, una patch sarà disponibile su questa pagina in
breve tempo.
- Inoltre i canvi nei sorgenti, può guardare il nostro
elenco security-announce che la
notificherà di ogni problema di sicurezza che la squadra di
OpenBSD creda sia una possibile minacia, e come soluzionare il
problema.
- Tenete traccia del nostro albero dei sorgenti, e di tanto in tanto
cimentatevi con l'impresa di un completo build del sistema (leggete
attentamente /usr/src/Makefile). Gli utenti possono assumere come dato di
fatto che il codice sorgente più recente sia più sicuro
dell'ultima versione ufficiale. Ricostruire l'intero sistema dal codice
sorgente non è tuttavia impresa facile; sono quasi 300 megabyte di
codice, e durante il periodo di transizione tra le versioni ufficiali si
verificano parecchi problemi.
- Installate una versione snapshot binaria, disponibile spesso e regolarmente
per la vostra architettura. Per esempio, una versione snapshot per i386
viene solitamente rilasciata ogni settimana.
Segnalare i problemi
Se trovate un nuovo problema di sicurezza, potete segnalarlo a
deraadt@openbsd.org.
Se volete crittare il messaggio con PGP (ma vi preghiamo di farlo solo se avete
necessità di privacy, perché non è pratico), usate questa
chiave pubblica.
Ulteriori Letture
Vari documenti che descrivono le novità presenti in OpenBSD e
riguardanti la sicurezza sono stati scritti dai membri del team OpenBSD. Le
versioni postscript di tali documenti sono disponibili qui sotto.
- A Future-Adaptable Password Scheme.
(Uno Schema per le Password Adattabile in Futuro.)
Usenix 1999,
di Niels Provos,
David Mazieres.
Documento e
proiezioni.
In inglese.
- Cryptography in OpenBSD: An Overview.
(Crittografia in OpenBSD: Panoramica.)
Usenix 1999,
di Theo de Raadt,
Niklas Hallqvist,
Artur Grabowski,
Angelos D. Keromytis,
Niels Provos.
Documento e
proiezioni.
In inglese.
- strlcpy and strlcat -- consistent, safe, string copy and concatenation.
(strlcpy e strlcat -- copia e concatenazione di stringhe consistente e
sicura.)
Usenix 1999,
di Todd C. Miller,
Theo de Raadt.
Documento e
proiezioni.
In inglese.
- Dealing with Public Ethernet Jacks-Switches, Gateways, and
Authentication.
(Avere a che fare con Jack-Switch Ethernet Pubblici, Gateway, ed
Autenticazione.)
LISA 1999,
di Bob Beck.
Documento e
proiezioni.
In inglese.
- Encrypting Virtual Memory
(Crittare la Memoria Virtuale.)
Usenix Security 2000,
Niels Provos.
Documento e
proiezioni.
In inglese.
www@openbsd.org
Originally [OpenBSD: security.html,v 1.173 2001/04/24 06:59:18 deraadt Exp ]
$Translation: security.html,v 1.7 2003/12/16 11:09:10 openbeer Exp $
$OpenBSD: security.html,v 1.6 2004/01/19 13:33:19 jufi Exp $