La progettazione e l’implementazione di nuovi sistemi/servizi/software deve tener conto della questione sicurezza, questo lo sappiamo… o quanto meno dovremmo saperlo; in the real world spesso la questione sicurezza informatica viene poco considerata.
Lavorare sin dalle prime fasi di un’implementazione con l’obbiettivo della sicurezza, assieme agli altri obbiettivi di progetto, sicuramente farà si che il sistema rilasciato non presenti le più comuni falle di implementazione, quelle causate dalla pigrizia o da poca cura o semplicemente dall’ignoranza (non possiamo dare per scontato che tutti sappiano tutto).
Una volta rilasciato il nostro sistema ed accertatici della sua solidità non possiamo non prendere in considerazione il fatto che quello che oggi è sicuro o stabile – esente da falle note o bugs di vario genere – non lo sarà certo per sempre. La ricerca sulla sicurezza avanza a gran velocità e le vulnerabilità emergono come i bugs prima o poi saltano fuori e con essi bisognerà fare i conti con exploint, worm e compagnia bella.
Quindi, anche se abbiamo lavorato bene, tra sei mesi o un anno il problema della sicurezza tornerà. Dovremmo poter monitorare costantemente i bollettini sulla sicurezza delle varie componenti del software o dell’applicazione che abbiamo messo in piedi, lavoro sicuramente molto oneroso visto che probabilmente in un anno abbiamo lavorato su decine o centinaia di progetti. Come fare?
L’informatica è una scienza con tanti mestieri (passatemi il termine) tra cui c’è l’esperto in sicurezza, magari capace di mettere sotto torchio il nostro sistema o la nostra applicazione, a caccia di una falla o di un bug da sfruttare per compromettere il sistema. E’ ormai pratica frequente ricorrere ad esperti in sicurezza informatica con particolari competenze per quanto concerne il bug hunting ed il cracking di sistemi informatici. Lo scopo è ovviamente quello di verificare se il sistema ha falle sfruttabili controllandone tutte le componenti (vulnerability assessment) e simulando una vera sessione di cracking del sistema stesso (penetration test).
Lasciandoci dietro le spalle gli stereotipi del ragazzino chiuso nello scantinato di casa che devasta i sistemi degli altri (questa caricatura degli hackers è in realtà un grande errore dei media che è stato rapidamente assimilato dall’opinione pubblica), gli esperti in sicurezza informatica – hackers e non – sono figure professionali concrete a cui ci si può rivolgere per consulenze sul tema. Oggi non è raro trovare addirittura aziende specializzate in sicurezza informatica o interi reparti di aziende più grandi che si occupano di misurare la sicurezza dei sistemi informatici dei propri clienti. E ancora, esisto aziende di grandi dimensioni che strutturano questi team internamente per misurare il proprio livello di sicurezza.
La tendenza a “farsi verificare” da personale esterno è comunque in crescita in quanto porta con se notevoli vantaggi. Al di la della competenza che per quanto singolare non è esclusiva dei professionisti (anzi, probabilmente ci sono più esperti non professionisti che professionisti) vi è la consapevolezza che un attacker esterno non sia a conoscenza del funzionamento dell’infrastruttura informatica che deve sottoporre a pen-test. Questo fatto renderà il più verosimile possibile l’esperienza in quanto l’attacker, anche se simulato, dovrà compiere tutte le azioni che potrebbe compiere un cracker intenzionato a compromettere il sistema.
Il risultato per l’azienda “valutata” sarà un report ove vengono esposte le eventuali vulnerabilità riscontrate e le possibili modifiche per porvi rimedio. Dati preziosi che dovranno portare a delle azioni.
Il tema più tecnico in relazione a come si procede ad un vulnerability assessment o ad un penetration test lo affronteremo sulle pagine del progetto HANC tra qualche giorno ;-)