<- Editoriale - Copertina - PW: Intro ->

IGLOO


IGLOO

il salotto dei pinguini


    Parte in questo numero un nuovo spazio del Pluto Journal, Igloo. Non si tratta della tipica rubrica di Tips'n'Trick o una raccolta di "My 2 cents", è piuttosto un contenitore di piccoli aiuti, consigli, micro-HOWTO, impressioni e opinioni personali riguardanti il mondo del software libero e dei sistemi operativi free (non solo Linux e non solo tecnica, quindi), che normalmente sono ritenuti troppo specifici, o troppo brevi, per formare un vero e proprio articolo, ma che sarebbe un peccato non trattare. Brevi flash di vita antartica, per presentare in maniera precisa e immediata temi interessanti, divertenti e un po' curiosi.

    Ma perché Igloo? Pensavamo ai nostri nonni che, quando la televisione, Pippo Baudo, la Carrà e Jerri Scotti ancora non erano stati inventati, si ritrovavano, nelle sere invernali accanto al camino o seduti sull'uscio di casa, con le stelle risplendenti su di loro in quelle estive, a chiacchierare sui fatti del giorno, o a raccontare storie antiche dal sapore magico. Sull'onda di queste immagini ci è sembrato naturale che per noi Pinguini non potesse esserci posto migliore di un accogliente e caldo Igloo per raccoglierci e ritrovarci, un posto in cui poter raccontarci i nostri piccoli segreti di programmazione o le nostre impressioni sui fatti del mondo dell'Open Source, i nostri successi e le nostre sconfitte. Un posto in cui ospitare e accogliere tutti coloro che credono nel software libero.

Accomodatevi, allora, nel salotto dei Pinguini!.


ZISOFS: Cd alla pressa

di Mano

    Gironzolare per i menu di configurazione del kernel è un ottimo passatempo, e si trova sempre qualcosa di nuovo. Così, dalla versione 2.4.14, si incontra un'opzione mai vista prima, nel menu File Systems: se si attiva il supporto al filesystem ISO9660 (quello dei CD-ROM... credo che chiunque ce l'abbia attivo), viene presentata la selezione di un tale Transparent decompression support, ovvero supporto alla decompressione trasparente. Ma di cosa si tratta?

    Il concetto è molto semplice, ed è un perfetto esemplare di ciò che permette la filosofia OpenSource. H. Peter Anvin, l'autore, ha "semplicemente" unito tre cose che erano già esistenti: le librerie di compressione zlib di Jean-loup Gailly, il programma cdrecord di Joerg Schilling e il supporto per il filesystem ISO9660 presente nel kernel (di vari autori, principalmente Eric Youngdale) per dare agli utenti la possibilità di comprimere i dati da scrivere su un CD-ROM, e poi poterli direttamente leggere decompressi, senza doverli decomprimere a mano. Semplice e geniale! L'utilità è evidente: un esempio tra i tanti, se si ha la necessità di archiviare molti documenti creati con un word processor o un foglio elettronico, che sono molto comprimibili, con questo strumento se ne possono far stare molti di più in un unico CD, senza per giunta avere la scomodità di decompattarli ogni volta che bisogna accedervi. In più, questa caratteristica è presente, per ora, solo in Linux, quindi potrebbe essere un buon metodo per rendere un CD leggibile solo sotto il pinguino... ;-)

    L'installazione è abbastanza lineare, e si compone di tre parti: una patch per il kernel, una per mkisofs, ed il programma mkzftree. Il kernel è l'aspetto che richiede meno fatica: se ne avete uno successivo al 2.4.14, siete a posto; attivate l'opzione di cui abbiamo parlato in precedenza, ricompilate e reinstallate. Andate poi su http: //www.kernel.org/pub/linux/kernel/people/hpa/zisofs/ e scaricate il pacchetto zisofs-1.0.3.tar.gz (o qualsiasi versione successiva sia nel frattempo stata rilasciata). Decompattatelo; dentro troverete una patch per il pacchetto cdrtools (che comprende mkisofs, oltre a cdrecord ecc.), ottenuta usando la versione 1.11alpha9; io l'ho provata anche sulla 1.10 e sull'attuale 1.11alpha17, e funziona lo stesso, se si eccettuano al massimo un paio di hunk errati nella pagina man (e quindi non influenti sulle funzionalità). Non mi dilungo sul processo di patch di cdrtools, visto che è piuttosto elementare: basterà portarsi nella sua directory, e dare cat cdrtools-1.11a09-zisofs.diff|patch -p1 per ottenere i nuovi sorgenti. A questo punto, compilare ed installare cdrtools (make && make install), e compilare ed installare anche il pacchetto zisofs (./configure && make && make install). Queste operazioni installeranno tra gli altri mkzftree, l'mkisofs modificato e cdrecord, che sono i tre programmi che servono.

    Ora, le operazioni da seguire per preparare un CD compresso sono molto semplici. Innanzitutto bisogna preparare i file compressi con mkzftree; poi bisogna creare il file ISO con mkisofs, che una volta patchato accetta l'opzione -z, che specifica appunto che vi sono file compressi nell'albero delle directory di cui fare l'immagine. Da notare due cose: primo, oltre a -z va sempre specificato anche -r o -R; infatti il supporto alla decompressione trasparente è un'estensione delle estensioni (scusate il bisticcio) RockRidge, le estensioni standard di UNIX al filesystem ISO9660 (l'analogo di quello che Joliet rappresenta per windows, in due parole). Secondo, è possibile comprimere solo una parte dei file, e mischiarli poi con file non compressi: l'immagine ISO risulterà tranquillamente composta da file compressi e non compressi. Infine, ottenuta l'immagine ISO, resta solo da scriverla sul CD, con cdrecord, come faremmo con qualunque altra.

    Ma un esempio vale più di mille parole... supponiamo di dovere realizzare un CD contenente due cartelle, Documenti ed Immagini, ed un file, index.html. Vogliamo comprimere la cartella Documenti, perché è piuttosto grossa, ed il file, ma lasciare intatta Immagini, che contenendo immagini non sarà comprimibile o quasi. Vediamo come creare l'immagine ISO da masterizzare.

	#comprimo la directory, creandone una copia compressa (doc_compressi)
	mkzftree Documenti doc_compressi

	#comprimo il file, creandone una copia compressa
	mkzftree -F index.html index.html.z

	#ora scrivo il tutto in un file ISO
	mkisofs -z -R altre opzioni -o immagine.iso doc_compressi index.html.z Immagini

    Semplice, no?

Riferimenti
Cdrecord: http://www.fokus.gmd.de/usr/schilling/cdrecord.html
Kernel: www.kernel.org
Zisofs: http://www.kernel.org/pub/linux/kernel/people/hpa/zisofs/


ZLIB col baco

di Umberto Salsi

Il fatto
Lo scorso 11 marzo sulla mailing list Bugtraq appare un annuncio allarmante ad opera di Jean-Loup Gailly: la famosa libreria zlib versione 1.1.3 o precedente contiene un baco che porta alla corruzione della memoria del processo che usa tale libreria.
La scoperta, avvenuta casualmente, viene segnalata ad un programmatore della Red Hat, il quale a sua volta individua il problema proprio nella libreria zlib, e lo segnala ai curatori di questa libreria, gli storici Jean-Loup Gailly e Mark Adler.

Le conseguenze
Un flusso di dati da decomprimere opportunamente confezionato (per esempio, una immagine GIF o PNG debitamente alterata) porta ad una doppia free() su di un blocco di memoria, con la conseguente corruzione dell'heap del processo. In generale nel caso di un flusso di dati casuale questo porta al blocco del processo per errore di segmentazione. Se per una macchina ad uso personale ciò significa solo dover riavviare un programma, nel caso di un server si ha un bel DOS (denial of service). Ma non basta: teoricamente, afferma Gailly, un attaccante potrebbe sfruttare questo baco per inserire nel flusso di dati anche del codice arbitrario, che verrebbe eseguito con l'identità del processo in questione. Al momento non risultano noti exploit specifici, ma è solo una questione di tempo.

Come difendersi
Ricordiamo che la libreria zlib implementa l'algoritmo di compressione / decompressione compatibile col famoso PKZIP di DOSsiana memoria e che tale libreria risulta utilizzata da numerosi pacchetti software, incluso il kernel di Linux: l'elenco è veramente lungo e comprende anche programmi "insospettabili" come rpm, Java, Apache, Phyton, Mozilla, PHP, X. Sono pochi i programmi che si salvano. Alcuni di questi software linkano dinamicamente la libreria (zlib.so), per cui sarà sufficiente aggiornare il relativo pacchetto e siamo a posto. Altri software linkano staticamente la libreria, e perciò sono più difficili da scovare perché occorre indagare sul sorgente.
Gli storici autori di zlib, Jean-Loup Gailly e Mark Adler, hanno gà rilasciato nel loro sito la versione corretta 1.1.4, ed in queste ore si succedono freneticamente tutti i relativi upgrade dei vari programmi che le usano.
La morale è sempre quella: tenere sempre aggiornato il software del proprio computer, soprattutto se si tratta di un server, e controllare spesso il sito del produttore della distribuzione Linux usata che ha sempre cura di rendere disponibili patch e aggiornamenti relativi ai problemi di sicurezza. Ma neppure gli utilizzatori di altri sistemi possono stare tranquilli: la libreria zlib è diventata così popolare da essere stata inclusa in molti altri programmi e sui sistemi più disparati, come Windows, Macintosh, BeOS, PalmOS, HP-UX... L'autore usa la parola "pandemica" riferendosi alla diffusione di questa libreria, e c'è voluto questo episodio per rendersi conto di quanto essa fosse realmente diffusa.

Riferimenti
Annuncio originale: www.gzip.org/zlib/advisory-2002-03-11.txt
Sorgenti Zlib: www.gzip.org
CERT: www.cert.org
Bugtraq: www.securityfocus.com
Caldera: www.calderasystems.com/news/security/
Debian: www.debian.org/security/
Mandrake: www.mandrakesoft.com
Red Hat: www.redhat.com/corp/support/errata/
SuSE: www.suse.de/security/
Trustix: www.trustix.net/support/



<- Editoriale - Copertina - PW: Intro ->