OpenBSD

OpenBSDOpenBSD è un sistema operativo Unix-like discendente dalla Berkeley Software Distribution (BSD). E’ stato derivato da NetBSD dal capo progetto Theo de Raadt nel tardo 1995. Il progetto è largamente famoso per l’insistenza dei suoi sviluppatori sul codice open source e sulla documentazione di qualità; la posizione intransigente sulle licenze software; il focus sulla sicurezza e la correttezza del codice. Il progetto è coordinato dall’abitazione di de Raadt a Calgary (Alberta, Canada). Il suo logo e mascot è Puffy, un pesce palla.

OpenBSD include una quantità di features di sicurezza assenti o opzionali in altri sistemi operativi ed ha una tradizione di revisione del codice da parte degli sviluppatori alla ricerca di bug e problemi di sicurezza. Il progetto ha politiche stringenti riguardo le licenze e preferisce la licenza BSD e le sue varianti – in passato ciò ha portato ad una vasta revisione delle licenze e ad azioni per rimuovere o sostituire il codice sotto licenze ritenute meno accettabili.

Come la maggior parte degli altri sistemi operativi basati su BSD, il kernel OpenBSD e i programmi della userland, come la shell e gli strumenti comuni come cat e ps, sono sviluppati insieme in un singolo repository dei sorgenti. Il software di terze parti è disponibile come pacchetti binari o può essere compilato dai sorgenti usando l’albero dei ports.

Il progetto OpenBSD attualmente mantiene i porting per 17 diverse piattaforme hardware, inclusi processori DEC Alpha, Intel i386, Hewlett-Packard PA-RISC, AMD AMD64 e Motorola 68000, le macchine PowerPC di Apple, i computer basati su Sun SPARC e SPARC64, il VAX e lo Sharp Zaurus.

Storia

Nel dicembre 1994, il co-fondatore di NetBSD Theo de Raadt ricevette la richiesta di lasciare la sua posizione di sviluppatore senior e membro del core team del progetto NetBSD, e il suo accesso al repository dei sorgenti fu revocato. La ragione di ciò non è interamente chiara, sebbene ci siano opinioni sul fatto che ciò fu dovuto a conflitti di personalità all’interno del progetto e sulla relativa mailing list. De Raadt fu criticato per avere una personalità alle volte abrasiva; nel suo libro Free for All, Peter Wayner afferma che de Raadt “urtò contro alcune persone nel modo sbagliato” prima dell’uscita dal progetto NetBSD; Linus Torvalds lo ha descritto come “difficile”, e un intervistatore ammise di essere “preoccupato” prima di incontrarlo. Molti hanno un’opinione diversa: lo stesso intervistatore descrive la “trasformazione” di de Raadt alla fondazione di OpenBSD e il suo “desiderio di prendersi cura del suo team”; alcuni trovano energetica la sua schiettezza, e pochi negano che egli sia un coder di talento e un “guru” della sicurezza.

Nell’ottobre 1995 de Raadt fondò OpenBSD, derivato da NetBSD 1.0. La release iniziale, OpenBSD 1.2, fu fatta nel luglio 1996, seguita nell’ottobre dello stesso anno da OpenBSD 2.0. Da allora, il progetto ha seguito una schedulazione di una release ogni sei mesi, ciascuna delle quali è mantenuta e supportata per un anno. L’ultima release, OpenBSD 4.2, è apparsa il 1 novembre 2007.

Il 25 luglio 2007 lo sviluppatore OpenBSD Bob Beck ha annunciato la costituzione della OpenBSD Foundation, un ente non-profit canadese creato per “agire come singolo punto di contatto per le persone e le organizzazioni che necessitano un’entità legale con cui relazionarsi per offrire supporto a OpenBSD”.

Accertare quanto largamente OpenBSD sia usato non è facile: gli sviluppatori non raccolgono e non pubblicano statistiche di utilizzo e ci sono poche altre fonti di informazioni. Nel settembre 2005 il nascente progetto di BSD Certification eseguì una indagine di utilizzo che rivelò che il 32,8% di utenti BSD (1420 su 4330 partecipanti) usavano OpenBSD, piazzandolo al secondo posto tra le quattro maggiori varianti di BSD, dietro FreeBSD al 77% e davanti a NetBSD con il 16,3%. Il sito DistroWatch, famoso nella comunità Linux e spesso usato come riferimento per la popolarità, pubblica l’elenco delle visite alle proprie pagine separato per distribuzioni Linux e altri sistemi operativi da esso supportati. Al 14 aprile 2007 esso colloca OpenBSD al 55esimo posto, con 121 hit al giorno. FreeBSD è al 16esimo posto con 478 hit al giorno e una vasta quantità di distribuzioni Linux si piazza tra essi.

Open Source e Open documentation

Quando OpenBSD fu creato, Theo de Raadt decise che il sorgente dovesse essere disponibile a chiunque per la lettura in qualsiasi momento, così con l’aiuto di Chuck Cranor egli configurò un server CVS pubblico ed anonimo. Ciò fu una novità nel mondo dello sviluppo software: a quel tempo, la tradizione era che solo un piccolo team di sviluppatori avesse accesso al repository del codice sorgente di un progetto. Questa pratica aveva dei lati negativi, principalmente che i contributori esterni non avevano modo di seguire da vicino lo sviluppo di un progetto e il codice contribuito spesso duplicava degli sforzi già conclusi. Questa decisione portò al nome OpenBSD e marcò l’insistenza del progetto sull’accesso aperto e pubblico sia al codice sorgente che alla documentazione.

Un incidente rivelatore riguardo alla documentazione aperta accadde nel marzo 2005, con una querelle relativa ai driver per il controller Adaptec AAC RAID, i quali dopo alcune discussioni tra de Raadt e gli altri sviluppatori furono esclusi dal kernel OpenBSD standard a causa del rifiuto di Adaptec a fornire sufficiente documentazione che non fosse sottoposta ad accordi NDA (Non Disclosure Agreement).

Licenza

Uno scopo del progetto OpenBSD è di “mantenere lo spirito dei copyright del Berkeley Unix originale”, che consentivano una “distribuzione dei sorgenti Unix relativamente non limitata”. A questo scopo, la licenza ISC (Internet Systems Consortium), una versione semplificata della licenza BSD con la rimozione di espressioni non necessarie sotto la convenzione di Berna, è quella preferita per il nuovo codice, ma le licenze BSD o MIT sono accettate. La licenza GNU GPL, largamente usata, è considerata troppo restrittiva rispetto a queste; il codice licenziato sotto di essa, e sotto altre licenze che il progetto vede come non desiderate, non è più accettato per l’aggiunta al sistema base. Inoltre, il codice esistente sotto queste licenze quando possibile viene attivamente sostituito o rilicenziato, eccetto in alcuni casi, dove non esiste possibile sostituzione e crearne una richiederebbe troppo tempo e sarebbe poco pratico. Nel settembre 2007 il team OpenBSD ha iniziato i primi passi verso la sostituzione della GNU Compiler Collection (GCC), con l’importazione nel CVS del Portable C Compiler (PCC) di Anders Magnusson, con licenza BSD. Il risultato degli sforzi del team OpenBSD nel sostituire il codice limitato è stato impressionante: di particolar nota è lo sviluppo di OpenSSH, basato sulla suite SSH originale e sviluppato dal team OpenBSD. Apparve la prima volta in OpenBSD 2.6 ed adesso è la singola implementazione SSH più popolare, disponibile come standard o come pacchetto su molti sistemi operativi. Degno di menzione è anche lo sviluppo del pf packet filter, dopo che furono imposte restrizioni di licenza su IPFilter. Esso apparì la prima volta in OpenBSD 3.0 ed adesso è disponibile in DragonFlyBSD, NetBSD e FreeBSD; più recentemente le release di OpenBSD hanno visto i tool GNU bc, dc, diff, grep, gzip, nm, pkg-config, RCS, sendbug (componente di GNATS) e size sostituiti da equivalenti sotto licenza BSD. Gli sviluppatori OpenBSD sono anche dietro ai progetti di OpenBGPD, OpenOSPFD, OpenNTPD e OpenCVS, alternative sotto licenza BSD di altrettanti progetti esistenti.

Sicurezza e controllo del codice

Poco dopo la creazione di OpenBSD, Theo de Raadt fu contattato da una compagnia di software di sicurezza locale chiamata Secure Networks Inc (NSI). Essi stavano sviluppando uno “strumento di controllo della sicurezza di rete” chiamato Ballista (in seguito rinominato Cybercop Scanner, dopo l’acquisizione di SNI da parte di Network Associates) che aveva lo scopo di trovare buchi nella sicurezza del software e tentare di penetrarli tramite “exploit”. Ciò coincise con l’interesse personale di de Raadt per la sicurezza, e così decisero di cooperare, e la relazione fu di particolare utilità e portò alla release di OpenBSD 2.3 aiutando a formare il punto focale del progetto: gli sviluppatori OpenBSD si impegnano a fare ciò che è necessario fare, in maniera corretta e sicura, anche a costo della facilità, velocità e funzionalità. Man mano che i bug sotto OpenBSD divennero più difficili da trovare e exploitare, l’azienda di security realizzò che era troppo difficile, e non vantaggioso in termini economici, gestire questi problemi oscuri. Dopo anni di cooperazione, le due parti decisero che i loro obiettivi comuni erano stati raggiunti e si separarono.

Fino al giugno 2002, il sito web OpenBSD presentava lo slogan:

Nessun buco sfruttabile da remoto nella installazione di default, in quasi 6 anni!

Nel giugno 2002 Mark Dowd di Internet Security Systems ha scoperto un bug nel codice di OpenSSH che implementa l’autenticazione challenge-response. Questa vulnerabilità nella installazione di default di OpenBSD consentiva l’accesso remoto all’account root, ed era estremamente serio, in parte a causa dell’uso diffuso di OpenSSH: il bug colpiva un numero notevole di altri sistemi operativi. Questo problema richiese un adattamento dello slogan di OpenBSD:

Un buco sfruttabile da remoto nella installazione di default, in quasi 6 anni!

La pagina è stata aggiornata con il passare del tempo, fino al 31 marzo 2007 quando la Core Security Technologies scoprì una vulnerabilità remota legata al network, e lo slogan è cambiato in:

Solo due buchi remoti nella installazione di default, in più di 10 anni!

Questa affermazione è stata criticata perchè ben poco è attivato in una installazione di default di OpenBSD e le release hanno incluso software in cui in seguito sono stati trovati bug remoti. Comunque il progetto sostiene che lo slogan intende riferirsi ad una installazione di default e quindi è corretto da quel punto di vista. Una delle idee fondamentali dietro OpenBSD è il guidare i sistemi ad essere semplici, puliti e sicuri di default. Per esempio, i default minimi di OpenBSD corrispondono alla pratica standard di sicurezza informatica di abilitare meno servizi possibile sulle macchine di produzione.

OpenBSD include una vasta quantità di features disegnate per aumentare la sicurezza, comprese modifiche alle API e alla toolchain, come le funzioni arc4random, issetugid, strlcat, strlcpy e strtonum e uno static bound checker; tecniche di protezione della memoria contro gli accessi non validi, come la ProPolice, lo StackGhost, il W^X page protection, così come modifiche a malloc; e funzioni di crittografazione e randomizzazione, con miglioramenti al network stack e l’aggiunta della codifica Blowfish per la crittografazione delle password. Per ridurre il rischio che una vulnerabilità o errata configurazione consenta la scalata ai privilegi, alcuni programmi sono stati scritti o adattati per utilizzare privilege separation, privilege revocation e il chroot. La privilege separation, inventata su OpenBSD ed ispirata al principio del privilegio più basso, è una tecnica per cui un programma viene diviso in due o più parti, una delle quali esegue le operazioni ad alti privilegi, e l’altra – quasi sempre il grosso del codice – gira senza privilegi. La privilege revocation è simile e comprende un programma che esegue tutte le operazioni necessarie con i privilegi con cui parte, e poi li abbandona, mentre il chrooting riguarda il restringere una applicazione ad una sezione del filesystem, proibendole l’accesso ad aree del sistema che contengono file privati o di sistema. Gli sviluppatori hanno applicato queste features alle versioni OpenBSD di applicazioni comuni, compreso tcpdump e il server web Apache, il quale, a causa di problemi di licenza sorti con la versione 2, è una versione 1.3.29 pesantemente patchata.

Distribuzione e marketing

OpenBSD è disponibile gratuitamente in varie forme: il sorgente può essere scaricato dal CVS, e le release binarie e gli snapshot di sviluppo possono essere scaricati in HTTP o FTP. E’ possibile ordinare i CD-ROM e tutta una serie di gadget che costituiscono una delle poche fonti di finanziamento del progetto.

In comune con numerosi altri sistemi operativi, OpenBSD utilizza i ports e il sistema di pacchetti per consentire la facile installazione e gestione di programmi che non sono parte del sistema operativo base. Originariamente basato sull’albero di ports di FreeBSD, il sistema adesso è piuttosto diverso. Inoltre, ci sono stati cambiamenti importanti a partire da OpenBSD 3.6, tra i quali la sostituzione dei tool dei pacchetti con versioni aventi maggiori funzioni scritte in Perl da Marc Espie. In contrasto con FreeBSD, il sistema ports OpenBSD è inteso come sorgente per la creazione del prodotto finale, i pacchetti; l’installazione di un port prima crea un pacchetto e poi lo installa usando i tool dei pacchetti. I pacchetti sono anche compilati in blocco dal team OpenBSD e forniti per il download con ciascuna release. Un altro elemento unico di OpenBSD rispetto agli altri BSD è il fatto che i ports e il sistema operativo base sono sviluppati e rilasciati insieme per ciascuna versione; questo significa che i ports o pacchetti rilasciati con la versione 3.7, per esempio, non sono adatti all’uso con la 3.6 e viceversa, una politica che conferisce una grande stabilità al processo di sviluppo, ma significa anche che il software nei ports per l’ultima versione di OpenBSD può essere indietro rispetto all’ultima versione rilasciata dall’autore.

All’incirca al tempo della release OpenBSD 2.7, la mascot originale, il diavolo BSD con il tridente e l’aureola, è stato sostituito da Puffy, tradizionalmente indicato come pesce palla. In realtà i pesci palla non hanno spine e le immagini di Puffy sono simili a quelle di un’altra specie, il pesce porcospino. Puffy è stato scelto a causa dell’algoritmo Blowfish (in inglese è il nome comune del pesce palla e di tutti i pesci che hanno la caratteristica di gonfiarsi quando minacciati, ndt) usato in OpenSSH e perchè il pesce porcospino con le sue spine spaventa i predatori. Esso è diventato rapidamente molto popolare, principalmente a causa della immagine attraente del pesce e la sua differenziazione dal diavolo BSD, usato anche da FreeBSD, e dall’orda di diavoli precedentemente usata da NetBSD. Puffy ha fatto la sua prima apparizione con OpenBSD 2.6 e, da allora, è apparso in numerose forme in magliette e poster, anche sotto forma di svariati personaggi ironici e spiritosi ispirati a film e storie famose (Puffiana Jones, Puff Daddy, ecc.)

Dopo numerose release, OpenBSD è diventato famoso per le sue intriganti canzoni di celebrazione della release e i lavori artistici interessanti e spesso comici. Il materiale promozionale delle prime versioni non aveva un design o un tema pilota, ma a cominciare dalla 3.0 i CD-ROM, le canzoni, i poster e le magliette sono stati prodotti con un tema ed uno stile univoco. All’inizio erano leggeri e intendevano soltanto aggiungere un pò di ironia, ma con l’evoluzione del concetto sono diventati una parte dell’appoggio a OpenBSD, sviluppando in ogni release una morale o uno dei punti politici importanti per il progetto, spesso attraverso la parodia. Alcuni temi sono stati: Il Mago di OS, in OpenBSD 3.7, basato sul lavoro dei Pink Floyd ed una parodia del Mago di Oz legata al recente lavoro sul wireless all’interno dell’os; e in OpenBSD 3.3 Puff il Barbaro, che includeva una canzone rock stile anni ’80 e la parodia di Conan il Barbaro, che alludeva alla documentazione aperta.

In aggiunta agli slogan usati sulle magliette e i poster per i rilasci, il progetto a volte ha prodotto altro materiale: negli anni, frasi ad effetto come “Mandiamo gli script kiddies in /dev/null dal 1995″, “Sicuro di default” e altri slogan disponibili solo sulle magliette realizzate per gli incontri degli sviluppatori, ad esempio “La sicurezza di livello mondiale per molto meno del prezzo di un missile cruise”, e una vecchia piovra burbera che proclama “Zitto e hackera!”.

Fonte: Wikipedia

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.