Diventa Autore per CoreTech | Scopri di più
21/07/22 CoreTech Blog
Il threat modeling permette di identificare e mitigare le minacce. È molto importante perché evidenzia i rischi per la sicurezza, dai più gravi ai meno gravi. Permette di concentrarsi sul processo decisionale, individuare le priorità della sicurezza informatica, stabilire come utilizzare le risorse nel miglior modo possibile.
Esistono molti approcci al threat modeling, ma tutti hanno lo stesso obiettivo: mostrare cosa può danneggiare un’infrastruttura IT e come fare per proteggerla.
Il threat modeling è una forma di valutazione del rischio che offre un modello degli aspetti dell'attacco e della difesa di una entità logica: un dato, un'applicazione, un host, un sistema o un ambiente. Il principio fondamentale alla base del threat modeling è che le risorse per la sicurezza informatica sono limitate ed è necessario stabilire come utilizzarle in modo efficace. (NIST SP 800-154 publication)
Il threat modeling porta a comprendere come pensano gli hacker. Fa in modo che ci si faccia domande come: che cosa potrebbe far gola ai malintenzionati del web? Come potrebbero attaccare per impossessarsene? Da dove partirebbero nel portare avanti il loro attacco?
Utilizza anche rappresentazioni che consentono di individuare le minacce e i vettori di attacco in modo più chiaro.
Se dovessi utilizzare il theat modeling per proteggere la tua casa, faresti disegni di ogni piano, indicando dove si trovano le finestre e le porte. Poi cercheresti di capire cosa vorrebbe rubare il ladro, come cercherebbe di entrare in casa per rubarlo e cosa potresti installare per evitarlo (serrature, sistemi di allarme, casseforti, ecc.).
Funziona allo stesso modo il theat modeling per lo sviluppo di software e applicazioni web.
Il threat modeling per la sicurezza delle applicazioni web è solo una parte del threat modeling nel suo insieme e non dovrebbe essere considerato un esercizio separato. Le applicazioni web sono sempre interconnesse con altri elementi del sistema: server web, server delle applicazioni, archivi dati, sistemi operativi a loro volta connessi ad altre risorse.
Concentrarsi solo sul threat modeling per il web, di conseguenza, fa trascurare molte minacce. Il modello così ottenuto è inutile.
Il threat modeling è più efficace se vengono coinvolte tutte le figure professionali di un’azienda, non solo gli esperti di sicurezza informatica. Infatti, ogni professionista offre una prospettiva unica in cui emergono dettagli che altrimenti sarebbero trascurati.
In alcuni casi, il threat modeling richiede anche l'aiuto di subappaltatori, partner commerciali o clienti.
Chiedi ai colleghi di immedesimarsi di un hacker che vuole attaccare la tua attività.
Che cosa pensano che sia profittevole rubare o compromettere?
Come farebbero per scatenare l’attacco?
Il team di sviluppo potrebbe ricordarti che il codice sorgente dell'applicazione è prezioso perché contiene algoritmi open source e anche algoritmi proprietari.
Il responsabile marketing potrebbe ricordarti che se qualcuno rovina il tuo sito web, potrebbe abbassare il valore del tuo marchio.
Un amministratore dell'ufficio può mostrarti che è molto facile per un estraneo entrare in azienda e rubare la chiave della stanza dei server.
Gli amministratori del sistema IT potrebbero ricordarti che occorre prestare attenzione a desktop, server e anche dispositivi IoT.
Il threat modeling comincia quando si inizia a progettare l'applicazione e non dovrebbero mai finire. Deve diventare parte integrante della gestione dei rischi per la sicurezza delle informazioni.
Gli esperti di sicurezza dovrebbero pensare subito a come utilizzarle e a creare un modello delle potenziali minacce, non appena parte il progetto di un’applicazione.
Prima si individuano potenziali minacce, più è facile capire come proteggersi con varie contromisure, per esempio, riprogettando parti del sistema. Pertanto, è necessario includere il threat modeling nel ciclo di vita dello sviluppo del software (SDLC), dalle prime fasi di progettazione a ogni aspetto del DevOps.
I tuoi sistemi sono in continua evoluzione, quindi il threat modeling non può mai fermarsi. Ogni modifica all'ambiente deve essere associata alla rivalutazione delle potenziali minacce. Anche una modifica molto piccola può introdurre una nuova minaccia molto seria da prendere in considerazione.
Allo stesso tempo, il threat modeling non va limitato alle proprie risorse. Per esempio, potrebbe essere necessario prendere in considerazione l'audit di utenti, partner commerciali e altro ancora. Se i tuoi sistemi fanno parte di un insieme più grande, le minacce ai tuoi sistemi potrebbero essere indirette.
La teoria del threat modeling individua quattro fasi cui corrispondono quattro domande da porsi:
Il threat modeling inizia con la creazione di diagrammi: è il modo più semplice per comunicare agli altri come è costruito il tuo sistema.
I diagrammi sono anche facili da capire per la maggior parte delle persone.
I diagrammi più diffusi utilizzati per il threat modeling sono i diagrammi di flusso di dati (DFD). Si concentrano sui dati, uno degli elementi chiave del threat modeling, e consentono di determinare facilmente il livello di affidabilità.
Una volta che i diagrammi iniziali sono pronti, tutte le figure professionali coinvolte possono guardarli dal punto di vista di un utente malintenzionato: da qui parte il brainstorming per trovare i problemi di sicurezza.
L'enumerazione dettagliata delle minacce coinvolge più strumenti e tecniche che consentono di coprire tutte le categorie di pericoli: per esempio, la creazione di alberi di attacco e la progettazione di controlli di sicurezza. L’obiettivo è soddisfare i requisiti di sicurezza del software.
La verifica consente di capire se la mitigazione è efficace.
Facciamo un esempio.
Quando si raccolgono informazioni sulle minacce, bisogna sempre identificare e mitigare le potenziali vulnerabilità delle applicazioni web.
Durante l'enumerazione delle minacce, si nota che qualsiasi applicazione web è potenzialmente esposta ai primi 10 attacchi OWASP come SQL injection, cross-site scripting e altro.
Un altro aspetto da evidenziare è che gli utenti possono utilizzare password deboli, esponendo il sistema ad attacchi.
È possibile utilizzare uno scanner di vulnerabilità delle applicazioni web per pensare come un utente malintenzionato e trovare le vulnerabilità.
Nelle fasi di mitigazione e verifica, una soluzione di sicurezza web completa come Acunetix può aiutarti. Infatti, assegna automaticamente le priorità e verifica se i problemi sono stati risolti.
Anche se questo strumento automatico non copre tutte le vulnerabilità ed è sempre importante effettuare test di penetrazione, rappresenta uno degli elementi essenziali per fare un’enumerazione completa delle minacce e procedere alla loro mitigazione.
Esistono diversi metodi per utilizzare il threat modeling. Il più popolare è STRIDE creato da Microsoft nel 1999.
Il nome fa riferimento a sei aspetti chiave da considerare durante il threat modeling: spoofing, manomissione, ripudio, divulgazione di informazioni, negazione del servizio ed elevazione dei privilegi.
Inoltre, ci sono metodi come PASTA (Process for Attack Simulation and Threat Analysis), Trike, VAST (Visual, Agile e Simple Threat modeling) e molti altri.
Il metodo va scelto in base a diversi fattori.
Per esempio, la scelta va fatta in base a processi e metodologie di sviluppo software usati in azienda (Scrum, Kanban, Waterfall, ecc.), dimensioni dell’azienda, processi aziendali, settore di appartenenza.
Per individuare l’approccio giusto, è necessario eseguire ricerche dettagliate che vanno ben oltre lo scopo di questo articolo.
Gli approcci al threat modeling dipendono dall'architettura del sistema, dagli obiettivi aziendali, dai requisiti e da molto altro. Allo stesso modo, i tool da usare dipendono dall’approccio scelto.
Tra i molti tool per il threat modeling, uno è spesso menzionato perché è facile da usare e gratuito: il tool di Microsoft.
Il vantaggio di utilizzarlo è il numero di risorse di formazione disponibili online.