Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
BSD, l'altra famiglia Unix: OpenBSD (4/5)
Scritto da Giovanni Pipicella il 22-02-2006 ore 02:48
Continuo la rassegna dei sistemi operativi basati su BSD, parlando di quello che viene considerato il più sicuro di tutti. Sto parlando di OpenBSD, l'OS sicuro di default, che allieta le giornate degli admin rassicurati dagli annunci di sicurezza, che, di norma, non annoverano OpenBSD nella lista dei sistemi operativi colpiti da questa o quella vulnerabilità.

L'intero sistema di base (kernel e componenti utente) in OpenBSD passa un costante processo di revisione del codice. Quando un nuovo bug viene scoperto, il passo successivo è categorizzarlo e cercare nel resto della struttura occorrenze dello stesso tipo di bug.
Questo stretto controllo è molto utile, ma viene applicato solo al sistema di base. Tutti i software di terze parti non sono controllati, anche perché questo richiederebbe una conoscenza davvero approfondita degli stessi.

Per aiutare a risolvere il problema sicurezza, OpenBSD include un certo numero di feature, le quali sono per default attive:
  1. Nessuna parte di memoria allocata può essere sia scrivibile che eseguibile allo stesso tempo (buffer overrun vi ricorda qualcosa?). Molti sistemi operativi supportano questa stessa funzione con gli ultimi chip x86, che hanno il bit NX incluso, ma OpenBSD dispone di questa caratteristica anche sui vecchi x86 e su altre architetture.
  2. Un gap viene inserito in modo casuale tra gli stack frames, rendendo molto più complicato l'utilizzo di exploits del tipo stack-smashing. Questo viene combinato con un canary value posizionato alla fine dello stack frame e controllato prima di ritornare il valore per assicurarsi che lo stack non sia stato modificato.
  3. La memoria allocata viene inserita in una posizione casuale nell'address space del processo. Questo fa in modo che sia più difficile, per un malintenzionato, capire dove sono i dati che potrebbero interessargli.
Vi sono poi molti altri meccanismi, che rendono OpenBSD un sistema sicuro. Vale la pena ricordare che OpenBSD è stato pioniere nello sviluppo e nel testing di un certo numero di funzioni di sicurezza (come SSH e sudo) adesso implementate anche in altri sistemi.

Sempre in merito alla sicurezza del sistema, ecco un'altra feature interessante: la versione di Apache di OpenBSD, per esempio, viene eseguita in jail (una specie di gabbia da cui il processo non può uscire); niente di nuovo, se non fosse che il chroot del processo è predefinito. In questo modo un malintenzionato potrebbe soltanto far andare in crash il Web Server, senza poter accedere al contenuto del disco, in quanto il processo non ha i diritti per farlo.

Il lato negativo di tutto questo è che applicazioni scritte male possono facilmente causare un crash del sistema (ma non è forse meglio un sistema bloccato di uno con falle nella sicurezza?). Un recente aggiornamento nell'allocazione di memoria del X server ha causato una serie di crash dell'OpenBSD. Un'analisi approfondita del caso ha portato alla scoperta dell'esistenza , da più di una decade, di un bug nel codice X, che ha sicuramente causato una lunga serie di inspiegati crash precedenti.

OpenBDS, come NetBSD, è un sistema molto pulito e disegnato per essere facilmente amministrabile da linea di comando.
Mentre tutti i sistemi BSD hanno un'ottima documentazione (FreeBSD in particolare), il riferimento per OpenBSD è dato dalle man pages. Niente è user visibile all'interno di OpenBDS senza che sia accompagnato da un'ottima documentazione.
Se non trovate quello che cercate sul manuale allora forse siete di fronte ad un bug.

La superba documentazione presente nella comunità BSD tende a far diventare impopolari le persone che fanno domande a cui possa essere risposto facilmente. E' facile che, per una domanda postata ad un mailing list, la risposta non sia più lunga di una riga (o anche di tre lettere come il famoso RTM: Read The Manual) dove s'invita l'utente a leggersi il manuale.

L'upgrade di un sistema OpenBSD è attualmente il peggiore se confrontato con quello degli altri sistemi BSD. Per molto tempo aggiornare il sistema (una nuova versione esce mediamente ogni sei mesi), ha significato cancellare tutto e reinstallare. OpenBSD 3.7 ha aggiunto il supporto per l'aggiornamento, ma solo per i pacchetti individuali. OpenBSD 3.8 permette l'upgrade dei pacchetti singolarmente, ma è considerata una funzione sperimentale. Da OpenBSD 3.9 ci si aspetta un package manager in grado di competere con quello presente negli altri sistemi.
Precedente: Corso di Assembly
Successiva: Tutorial Microsoft per programmazione Mobile
Intervento di Matteo Giusti a.k.a. drumbsd del 27-03-2006 ore 17:16, Pistoia (PT)
Plebeo
Plebeo
(1 intervento)
Iscritto il 27-03-2006
Benche' come panoramica generale questi articoli vadano bene,
ritengo che le considerazioni finali debbano in qualche modo
essere commentate:

Considerare FreeBSD un sistema operativo adatto per desktop
o portatili, significa non conoscere, purtroppo, le differenze
che passano tra questi 3 sistemi operativi. Per alcuni motivi:

1) FreeBSD e' dei 3 BSD quello piu' usato lato server, in
special modo su architetture i386, perche' il codice
sorgente e' da sempre stato ottimizzato per questa
piattaforma

2) E' uno dei sistemi operativi con lo stack tcp/ip piu'
performante, tant'e' che anche Microsoft, durante lo
sviluppo di Windows 2000 ha pensato bene di prender eil
codice da FreeBSD e inglobarlo all'interno dei suoi
sistemi operativi.

Per finire, non e' vero che i 3 BSD condividono i kernel, cosi' come non e' vero che condividono la documentazione, ne'
tantomeno la documentazione. Inoltre i 3BSD non sono distribuzioni (come invece sono PCBSD, DesktopBSD, FreeSBIE),
ma sono 3 sistemi operativi diversi, scritti da persone diverse e con target diversi. Poi e' chiaro che con tutti e
3 e' possibile fare ualsiasi cosa, specialmente lato server.
Alla fine si tratta di gusti, certo e' che in certe occasioni uno e' meglio dell'altro.
Intervento di Giovanni Pipicella a.k.a. pegasus del 27-03-2006 ore 22:35, Matera (MT)
Plebeo
Plebeo

(49 interventi)
Iscritto il 27-09-2005
Citazione:
Benche' come panoramica generale questi articoli vadano bene,
ritengo che le considerazioni finali debbano in qualche modo
essere commentate:
[cut]
Ciao Matteo,
ho letto con interesse i tuoi commenti.
Inanzitutto:grazie. Commenti e critiche costruttivi sono sempre ben accetti.
Siccome l'articolo è stato ripreso da alcune fonti (citate nell'articolo) vorrei approfondire la cosa.
Ti andrebbe di spostare la discussione sul forum?
Sempre se sei interessato ad approfondirlo :)
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.282 secondi.