Security Development Lifecycle: Design and Threat Modeling
La fase successiva a Training e raccolta dei requisiti è quella del Design, dove si inizia a modellare la nostra applicazione. In questa fase si utilizza il Threat Modeling, ossia un processo ripetibile per identificare e mitigare preventivamente i possibili attacchi che potrebbero essere sferrati contro il nostro software.
Prima di cominciare a modellare effettivamente, si deve però avere ben chiaro l’impatto che le varie funzionalità possono avere oltre che sulla security “tecnica”, anche su un altro argomento molto delicato: le conseguenze legate alla privacy dell’utente.
In SDL si tiene conto del documento che Microsoft ha stilato chiamato “Privacy Guidelines for Developing Software Products and Services”, che prevede una serie di indicazioni e scenari ben precisi atti ad aiutare il design dell’applicazione. Tutto ruota intorno al seguente principio fondamentale:
“Customers will be empowered to control the collection, use, and distribution of their personal information. ”
Per eseguire invece la modellazione ci si avvale di un tool chiamato SDL Threat Modeling Tool. Questo è uno strumento che si integra in Visio, e che permette ai Software Architect di identificare e mitigare potenziali minacce in uno stato embrionale della soluzione software, quando il costo di correzione è basso e la soluzione è più semplice da implementare rispetto ad uno stato avanzato di sviluppo.
Non è l’obiettivo di questo post quello di andare in profondità su TMT, ma c’è un fantastico articolo su MSDN Magazine a riguardo.
Il Threat Modeling in SDL (ne esistono varie declinazioni) si appoggia ad un modello chiamato STRIDE, acronimo di Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, ed Elevation of Privilege. Questo acronimo indica la classificazione delle possibili minacce attuabili contro un sistema.
Esistono quattro componenti fondamentali nel Threat Modeling:
- External Entities
- Processes
- Data Stores
- Data Flows
Ognuna di queste componenti ha alcune minacce di STRIDE applicate, ed altre vengono invece scartate. Ad esempio un mail server (Exchange Server) avrà una componente critica classificata sotto Information Disclosure, mentre Windows Audio non dovrà preoccuparsene.
Next one, Implementation step