Come già accaduto altre volte, questa non è una vera e propria recensione. Per un paio di weekend mi sono letto parzialmente questo libro, in quanto mi aveva incuriosito il sottotitolo (“Guida alla scrittura di software sicuro”) e volevo vedere cosa poteva insegnarmi e soprattutto migliorarmi nella mia attività quotidiana di sviluppatore. Il fatto poi di essere in italiano e scritto da un autore italiano hanno fatto poi il resto.
Dico subito che sui 12 capitoli complessivi di questo libro, mi sono letto compiutamente il primo (33 pagine), sui concetti generali, il settimo (32 pagine), dedicato alla sicurezza in .NET, e l’ultimo (41 pagine) dedicato invece ai test sulla sicurezza. Gli altri li ho sfogliati, leggendo solo i primi paragrafi, giusto per la curiosità di avere una pur lieve infarinatura di altre tecnologie ed ambienti.
D’altronde, non essendo io un system engineer o un architetto della sicurezza, non avrei nemmeno le competenze necessarie per scrivere una recensione degna di nota.
Riporto quindi solo le mie impressioni da “cugino del settore”, quale potrebbe essere, appunto, uno sviluppatore.
Nel primo capitolo si analizzano i requisiti di sicurezza che vogliamo soddisfi il nostro sistema software. Si identificano poi le vulnerabilità e le contromisure da adottare per limitarle il più possibile. L’approccio è molto ad alto livello, direi quasi da analista/program manager, con grande uso di sigle, digrammi e grafici. Lo stile di scrittura dell’autore, molto rigoroso e con parecchie parti scritte come elenchi puntati, lo rende comodo come “canovaccio” da seguire quando si affrontano questi problemi.
Ho riscontrato un solo refuso (pag. 201), segno di una buona revisione delle bozze.
Mi è piaciuta meno (ma qua è proprio una questione di gusti personali) l’opprimente presenza di sigle ed acronimi nei discorsi; e quest’ultimi, essendo spesso esposti sotto forma di elenchi, non sono il massimo per un’efficace lettura.
Il capitolo 7 è stato quello di maggior interesse per me. Vengono riassunte tutta una serie di problematiche legate alle applicazioni .NET, già presenti su quasi tutti i libri dedicati allo sviluppo su questa piattaforma, ma visti qua sotto l’ottica di chi deve individuare (e proteggere) le possibili debolezze.
L’aggiornamento del testo è notevole, dato che si parla anche (se pur brevemente) di Silverlight 2.0.
Molto meno notevole è invece l’indentazione del (poco) codice presente in questo capitolo. Parentesi graffe messe un po’ qua e un po’ là, spazi eccessivi o mancanti, non sono un bel vedere.
Infine l’ultimo capitolo, dedicato ai test sulla sicurezza, mi ha lasciato un po’ deluso, non essendo altro che una fredda raccolta di tecniche (e potrebbe diventare utile se viene utilizzato appunto come canovaccio).
Purtroppo non sono presenti esempi o casi reali, e alla fine di tutto il libro avrei visto bene un capitoletto riportante un caso reale in cui si mettessero in pratica i concetti esposti.
Non ci sono appendici e nemmeno riassunti di alcun tipo.
Una discreta presenza di spiegazioni dei termini tecnici più settoriali, o un glossario in appendice, avrebbero reso il discorso più comprensibile ad una maggiore percentuale di lettori (ad es. non tutti sanno cosa sono le “attività di hardening”, riportate nella Prefazione).
I link presenti alla fine di ogni capitolo (“Riferimenti Bibliografici”) sono poi davvero eccessivi. Riportare 3-4 pagine di collegamenti senza nessun commento, spiegazione o altro, rasenta la quasi inutilità (è presente perlomeno una minima suddivisione per macro argomenti).
Personalmente avrei preferito trovarne molti meno, magari con una descrizione, un parere o un commento su di essi, e da lì poi il lettore si sarebbe creato il proprio percorso di navigazione personale tra le migliaia di risorse offerte da Google.
Inoltre, data la massiccia presenza di questi link, è grave la mancanza di un file scaricabile dal sito con tutti essi riportati, in modo da non obbligare il lettore a digitarseli a mano (e spesso sono chilometrici).
Questo problema però l’ho trovato anche in altre pubblicazioni, e quindi manca proprio la cultura del “mettersi dalla parte del lettore”.
La formattazione e l’impaginazione sono molto scarne e rigorose, e non è presente nessun abbellimento estetico. La rilegatura è piuttosto rigida, e non permette di tenere aperto il libro sulla scrivania (malgrado non abbia più di 400 pagine).
Il prezzo, 38 euro, è forse un po’ eccessivo, considerate le dimensioni e il contenuto offerto.
Concludendo che dire, il libro potrebbe tornare utile per chi si occupa a tempo pieno di sicurezza, in quanto riassume a grandi linee lo stato dell’arte in questo settore, e questo in parecchi ambiti diversificati (PHP, Java, .NET, Javascript, ecc.).
La mancanza di approfondimenti e di esempi pratici obbligano però a considerarlo solo come porta di accesso per un percorso di formazione che dovrà rivolgersi ad altre fonti, ben più approfondite e corpose (libri od internet che sia).
Dal punto di vista di uno sviluppatore è consigliabile solo per il capitolo di pertinenza (il settimo, su .NET, nel mio caso), dove qualche spunto e concetto nuovo può far capolino.
Magari, il fatto di non essere a tutti gli effetti un esperto di sicurezza non mi ha consentito di apprezzare in pieno questo testo, ma queste sono le mie impressioni dopo la sua, pur parziale, lettura.
Questo è il link del sito della Hoepli dedicato al libro.
Sommario
Prefazione
Ringraziamenti
1 - Cap. 1: Concetti generali sulla sicurezza
33 - Cap. 2: La sicurezza nel ciclo di sviluppo del software
63 - Cap. 3: Identity Management
93 - Cap. 4: La sicurezza in Javascript e nelle applicazioni Ajax
119 - Cap. 5: La sicurezza in PHP
147 - Cap. 6: La sicurezza in Java
173 - Cap. 7: La sicurezza in .NET
205 - Cap. 8: La sicurezza e SOA
243 - Cap. 9: La sicurezza nelle applicazioni mobile
279 - Cap. 10: La sicurezza e Internet Next Generation
297 - Cap. 11: La sicurezza e le architetture dei portali
325 - Cap. 12: I test della sicurezza.
367 – Indice analitico
Titolo: Sicurezza del codice - Guida alla scrittura di software sicuro
Autore: Alessandro Sinibaldi
Editore: Hoepli
ISBN: 978-88-203-4172-5
Pagine: 370
Prezzo: 38 €
Data di uscita: Nov. 2008