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
Greenpeace
Joomla! Web Security
Recensito da Paolo De Nictolis il 09-01-2009 ore 09:39
Copertina ISBN: 1847194885
Autori: Tom Canavan
Editore: Packt Publishing
Lingua: Inglese
Anno: 2008
Pagine: 248
Allegati: Nessuno
Intel Cluster Studio XE
Questo snello volumetto, scritto dall'autore di un testo sul Disaster Recovery Plan di Joomla!, introduce in meno di 250 pagine il tema della sicurezza, in generale degli applicativi informatici web-based, in particolare quella del popolare CMS basato sul linguaggio PHP. Sebbene, in effetti, si tratti di un testo rigoroso, che pone l'accento non solo sull'uso dei tool, ma soprattutto su quello di processi strutturali e sulla stesura di buona documentazione, è un libro che si rivolge al neofita della sicurezza. È il classico testo che si può definire utile sia al principiante che all'esperto; sicuramente in 250 pagine il tema non può essere sviscerato, ma altrettanto sicuramente l'esperto Canavan è in grado di riassumere tutti gli argomenti fondamentali.

Spetterà poi al lettore proseguire in questo percorso, nella pratica quotidiana di chi sceglie di occuparsi di sicurezza dei sistemi informativi. Il testo è scritto con linguaggio semplice e comprensibile dal neofita, ma non per questo lo si può definire banale. Un occhio di riguardo è riservato anche agli aspetti etici di questa particolarissima branca delle scienze/arti informatiche; ogni tipo di dato identificativo è stato cancellato con cura dal testo, dalle immagini e dagli snippet di codice, ogni codice che possa essere usato per perpetrare attacchi è volutamente incompleto, ed è stato omesso del tutto dal codice di esempio scaricabile.

Il primo capitolo introduce alla scelta dell'hosting per la propria installazione di Joomla!; propone un piano strutturato in undici passi per l'architettura della propria presenza web; introduce il tema delle metriche di sicurezza e propone un breve assaggio di argomenti che saranno poi oggetto di interi capitoli, come le impostazioni del php.ini piuttosto che del file .htaccess, o i permessi utente. Possiamo apprezzare sia la capacità di sintesi di Canavan, che la volontà di fornire le basi per una metodologia piuttosto che ricette pronte all'uso.

Il secondo capitolo si concentra sull'allestimento di un ambiente di test e sviluppo. Anche qui, l'accento è più sulla ratio e sulla stesura di un piano di test e di un processo strutturato per l'applicazione di patch ed aggiornamenti che sull'uso dei tool necessari. Ciò nonostante vengono presentati due ottimi prodotti, il sistema di gestione dello sviluppo software Artifact Lighthouse (del quale esiste una versione gratuita, monoprogetto, fornita in ASP e con una serie di altre limitazioni, fra cui quella dei 10 utenti) e il Ravenswood Joomla! Server. Personalmente, però, per l'allestimento di un ambiente di test per Joomla! ho sempre trovato insuperabile l'uso di XAMPP e l'installazione di Joomla! dall'ultima release stabile. Un altro argomento sul quale Canavan spende qualche pagina è l'uso dell'ambiente di test come hot mirror di quello di produzione, per il recovery in caso di disastro.

Per la gioia degli smanettoni, il terzo capitolo è interamente dedicato all'uso dei tool. Nella cassetta degli attrezzi troviamo sia strumenti general-purpose fra i più noti - come il port scanner NMap (il testo è abbastanza recente da nominare la sua GUI, ovvero Zenmap), l'analizzatore di protocollo Wireshark, lo scanner di vulnerabilità Nessus e quel potente quanto ambivalente strumento che è Metasploit (un tool bloccato dalla maggior parte degli antivirus in commercio, che è illegale usare al di fuori del proprio ambiente di test senza permesso scritto) - sia prodotti specifici per Joomla!.

Fra di essi, una nota di merito va sicuramente all'accoppiata HISA/JTS; si tratta rispettivamente di uno script PHP e del più sofisticato e completo componente per Joomla!, che costituiscono una piattaforma di security audit per il popolare CMS. Si tratta del classico must have per chi deve occuparsi della sicurezza di un'installazione di Joomla!, ed è davvero un peccato che il pool di sviluppo non ne abbia ancora rilasciato una versione nativa per Joomla! 1.5. Oltre a questo piccolo gioiello troviamo nominati Joomla! Diagnostics, una creazione di Adam von Dongen (l'autore di YaNC), un checker di integrità dei file contenuti nella propria installazione di Joomla! versus un database (sotto forma di file di testo) di quelli rilasciati dal team di sviluppo; e il prodotto commerciale JCheck, che con un po' di fantasia potremmo definire il Tripwire di Joomla!. Anche di questo componente non esiste ancora una versione 1.5-nativa; a scanso di equivoci, è bene comunque sottolineare che si tratta di un'applicazione che va installata direttamente sul Web server, e che il componente per Joomla! svolge solo le funzioni di bridge di configurazione e reportistica.

Nei successivi tre capitoli viene affrontato il problema degli attacchi alla propria installazione di Joomla!; più precisamente, nel quarto capitolo si parla di vulnerabilità, nel quinto si affrontano due comuni tipi di attacco, la SQL Injection e i Remote File Includes; e nell'impagabile sesto capitolo vengono affrontate le modalità operative degli attaccanti in the real world. L'attenzione è sempre sul processo, ma non difettano gli snippet (la maggior parte delle volte volutamente incompleti), che mostrano esempi di attacco reali; sono di particolare interesse, nel quinto capitolo, la checklist di metodi per prevenire gli attacchi di SQL Injection e la lista di riferimenti finale. Fra le varie countermeasure, viene spesso ricordato il test di ogni input esterno onde validarne tipo, lunghezza, formato e range di valori.

Come già detto, il sesto capitolo è una non comune, quanto ben fatta, descrizione delle modalità operative usate in attacchi reali, con una continua attenzione alla ethic disclosure di informazioni ambivalenti. Troverete alla fine addirittura la trattazione, con delle preziose schermate ben purgate, delle più comuni shell da rootkit. In questo capitolo trovano anche spazio i tool: oltre a quelli citati nel terzo capitolo, vengono presentati Nikto - prende il nome dal robot di Ultimatum alla Terra di Robert Wise - Acunetix, Ping Sweep, Angry IP Scanner, ed il fingerprinter di firewall Firewalk. Quest'ultimo è un tool d'uso avanzato che porta scritto, in ogni linea di codice, maneggiare con cura, il suo uso (anche consapevole) darà luogo al triggering di allarmi nella maggior parte dei tool di monitoraggio di rete, e lo stesso Canavan lo presenta per completezza, ma ne sconsiglia l'uso. Se l'autore pone continuamente l'accento su NMap, il tool del quale non farei personalmente mai a meno è il formidabile scanner di vulnerabilità Acunetix, gratuito nella versione che testa i soli attacchi XSS (ma non è poco), usato tra l'altro per i test dal team del core di Joomla!.

Il settimo capitolo parla della configurazione dei due file fondamentali per un ambiente Apache/PHP, ovvero .htaccess e php.ini. La parte su .htaccess è, per ammissione stessa dell'autore, una serie di ricette pronte all'uso riprese da un post di Jeff Starr e reprinted by permission; la parte sul php.ini è brevissima, meno di un paio di pagine, e ugualmente riporta poche e semplici impostazioni consigliate. Vi è da dire, comunque, che delle impostazioni del php.ini si parla occasionalmente anche in altre parti del libro e che alla fine del capitolo viene riportata una serie di fonti per approfondire un argomento sul quale è obiettivamente difficile essere esaustivi.

L'analisi dei file di log, operazione talvolta noiosa ma davvero indispensabile, è l'oggetto dell'ottavo capitolo. L'analisi dei formati e dei procedimenti di backup è intervallata da utili informazioni di riferimento, quali la tabella dei codici di stato HTTP 1.1 piuttosto che la segnalazione di Block A Country, un utile servizio per generare file .htaccess, che bloccano la lista di IP registrati presso un dato Paese. Il capitolo si chiude con gli strumenti per l'analisi dei log: accanto all'immancabile AWStats troviamo due componenti per le statistiche di Joomla!, BSQ Sitestats (che però, per scelta dello sviluppatore, non sarà mai disponibile per Joomla! 1.5) e l'interessante JoomlaWatch, in grado di fornire statistiche in tempo reale sui visitatori (si tenga presente che dalla versione 1.2.6 mostra degli ads pubblicitari nel back-end di amministrazione).

Il nono capitolo su SSL è molto breve e, oltre alla teoria di base, illustra praticamente solo lo snippet .htaccess necessario per attivare SSL sull'intero sito Joomla!: un'operazione che Canavan giudica preferibile alle modalità offerte via back-end di amministrazione da Joomla! 1.5. Il decimo ed ultimo capitolo presenta, naturalmente non in dettaglio, il framework per la gestione degli incidenti offerto dallo standard NIST 800-61. Un modello organizzativo così complesso, pesantemente basato su policy, è certamente ridondante per molte installazioni one-man-gang, ma al di là delle prassi il documento ha sicuramente molti principi da insegnare. Nel Security Handbook in appendice vengono riassunti, sotto forma di checklist, molti topic presentati più in dettaglio nel libro; ma anche presentati argomenti nuovi, come i componenti di backup per Joomla!, o l'elenco delle porte usate dai principali backdoor, piuttosto che quello delle estensioni di dominio o delle well-known port.
proPur nella sua brevità, si tratta di un testo estremamente completo, che fornisce una panoramica su tutti gli argomenti rilevanti e, ciò che più conta, un approccio al processo di messa in sicurezza, in particolare, ma non solo, di un'installazione di Joomla!.
controDi tutto, ma non tutto: il testo ha un'ottima impostazione metodologica, ma fornisce comunque solo una vista a volo d'uccello sui singoli argomenti.
Precedente: Guida al framework Struts (5/15)
Successiva: Diskeeper Undelete 2009, un'alternativa al cestino di Windows (1/3)
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.334 secondi.