Quando si parla di sicurezza gli atteggiamenti variano molto. Vediamo le varie figure che tipicamente approcciano il problema.
C'è chi si disinteressa completamente al problema. Tipicamente è il developer che deve chinare la schiena e produrre righe di codice. La scusa tipica è che il sito è poco visitato, magari amatoriale. Oppure l'applicazione gira nella intranet (come webapp o winapp) e quindi non ha nulla da temere.
C'è l'architect che progetta stupendi ed estetici diagrammi UML. La scusa ufficiale è che della sicurezza se ne deve occupare il developer perché lui disegna, progetta ma non scrive il codice ed i bug si trovano nel codice.
C'è il tester a cui arrivano exe, dll, e quant'altro. Si, a volte ci sono pure i sorgenti ma questi servono più che altro a frittata fatta. Il tester sfida il developer, lo mette alla prova, ma per quanto sia combatte una partita difficile perché, ad esempio, non si può testare il 100% dell'input a cui l'applicazione sarà soggetta.
C'è chi commissiona il lavoro (pensavate me ne scordassi?) che ricade nella categoria "non so neppure di che stai parlando". Inuitile dire che questa mentalità rafforza la "non conoscenza" di tutte e tre le figure di cui sopra.
Chi deve maturare coscienza dei problemi di sicurezza? Tutti. Quando compriamo casa siamo noi stessi a preoccuparci di installare una porta blindata e il produttore deve offrire un prodotto adeguato. Quando compriamo un automobile siamo noi a dover chiedere ABS, Airbag, barre rinforzate e la casa automobilistica deve avere un offerta soddisfacente.
Alla fine di questa settimana il team di Microsoft chiamato ACE (Application Consulting & Engineering Team) rilascerà la beta 2 pubblica di "Torpedo" nome in codice del "Threat Analysis and Modeling v2" realizzato da Talhah Mir ed il suo team che me ne ha anticipato una preview.
Questo tool è orientato a tutte le figure del team di sviluppo e naturalmente è per primo l'architetto che deve creare il nuovo progetto all'interno del tool destinato ad essere usato da tutti i membri del team.
Come ci aiuta questo tool?
Questo tool permette di disegnare un modello del "threat" ossia degli eventi con possibili impatti negativi (furto di dati, denial of service, etc. etc.).
Usando il wizard si descrivono quali siano le funzionalità a blocchi dell'applicazione, i ruoli coinvolti nelle operazioni di CRUD, ma matrice di acccesso a queste funzionalità e il workflow delle chiamate ai vari componenti.
A questo punto si identificano i potenziali eventi negativi ("threat"), le varie contromisure attingendo dalla libreria integrata "attack library" e il rischio associato a ciascuno di queste. Questo, dal mio punto di vista, è il punto di forza di Torpedo perché permette di ridurre significativamente i controlli sull'applicazione basato sui rischi reali e non sulla vastità di tutte le possibili combinazione di attacchi (come lo sarebbe un tool impostato sull'attacco invece che sulla difesa).
Infine il tool propone un ampio report con i possibili rischi per ciascun threat ed una serie di proposte con esempi sulle contromisure da adottare.
Entro la settimana sarà disponibile al download ...