Threat Modeling Tool
Panoramica rapida
Microsoft Threat Modeling Tool, riconosciuto dalla community di modellazione delle minacce, consente ai tecnici di creare diagrammi di flusso dei dati e applicare STRIDE per il lavoro di modellazione delle minacce.
Threat Modeling Tool offre:
- Modelli personalizzabili
- Motore di generazione delle minacce con minacce e strategie di riduzione dei rischi
Il modello predefinito è denominato "SDL TM Knowledge Base" e fornisce un set di base di elementi e funzionalità di generazione delle minacce. È sufficiente una conoscenza di base dei diagrammi di flusso dei dati e di STRIDE.
Riepilogo per STRIDE
STRIDE è l'acronimo delle sei principali categorie di minacce:
- Spoofing: fingere di essere qualcun altro o qualcos'altro
- Manomissione: in inglese "tampering", modificare dati senza autorizzazione
- Ripudio: non assumersi la responsabilità di un'azione intrapresa
- Diffusione di informazioni: in inglese "information disclosure", visualizzare dati senza autorizzazione
- Denial of Service: attacco che prevede il sovraccarico del sistema
- Elevazione dei privilegi: ottenere autorizzazioni che non si dovrebbero avere
Sezione per utenti avanzati
Per gli utenti più avanzati, il modello può essere personalizzato in tre sezioni principali.
Stencil
Processo, entità esterna, archivio dati, flusso di dati e limiti di attendibilità costituiscono gli elementi padre.
È anche possibile creare elementi figlio per fornire granularità per contesto aggiuntivo, generazione di minacce su cui intervenire e strategie di riduzione dei rischi.
Esempio di funzionamento degli elementi figlio
L'elemento padre data-flow permette di scegliere tra gli elementi figlio HTTP e HTTPS.
HTTP dovrebbe generare più minacce, in quanto le minacce di manomissione, divulgazione di informazioni e spoofing sono comuni con canali non crittografati.
Uso di HTTP
Uso di HTTPS
Come aggiungere proprietà degli elementi
In presenza di altre proprietà che devono essere incluse nel modello predefinito, è possibile aggiungerle a ogni elemento nella visualizzazione amministratore.
È possibile visualizzare le modifiche ogni volta che si trascina l'elemento nell'area di disegno.
Proprietà delle minacce
Le proprietà permettono di creare campi che vengono compilati per ogni minaccia generata, proprio come le proprietà dello stencil permettono di creare campi per ogni elemento.
Non dimenticare, l'obiettivo è avere quanto più contesto possibile nel modo più semplice.
Esempio di proprietà delle minacce
Visualizzazione amministratore
Aggiungere campi che danno più contesto e procedure operative. Alcuni esempi:
- Priorità del problema: per identificare i problemi che devono essere risolti per primi.
- Collegamenti ipertestuali: per collegare i problemi alla documentazione online.
- Mapping dei rischi esterni: adottare un approccio comune sui rischi insieme alle altre organizzazioni usando origini affidabili di terze parti, come OWASP Top 10 e CWE Details.
Visualizzazione utente
Gli utenti di Threat Modeling Tool visualizzano queste modifiche ogni volta che analizzano i propri diagrammi di flusso dei dati.
Minacce e strategie di riduzione dei rischi
Questa sezione è il cuore di Threat Modeling Tool. Il motore di generazione delle minacce esamina elementi singoli e connessi per decidere quali minacce generare.
Funzionamento della generazione delle minacce
Passaggio 1 - Specificare origini e destinazioni
Il motore di generazione delle minacce usa frasi semplici per generare una minaccia. Alcuni esempi:
- target is [nome elemento]
- source is [nome elemento]
È anche possibile usare il nome dell'elemento in titoli e descrizioni. Il formato è: '{target.Name}' o '{source.Name}'.
Passaggio 2 - Combinare origini e destinazioni
È possibile precisare il modo in cui viene generata una minaccia. Combinare destinazioni, origini e le rispettive proprietà con operatori AND e OR. Alcuni esempi:
- target.[nome proprietà] is 'Yes' AND source.[nome proprietà] is 'No'
- flow crosses [nome limite di trust]
Passaggio 3 - Generare o ignorare le minacce
Il motore di generazione delle minacce usa due campi per generare o ignorare una minaccia:
- Includi: una minaccia viene generata se le frasi aggiunte nel campo sono vere.
- Escludi: una minaccia non viene generata se le frasi aggiunte nel campo sono vere.
Ecco un esempio effettivo del modello predefinito per riunire questi passaggi:
- Minaccia: scripting tra siti
- Includi: (target is [Web Server]) OR (target is [Web Application])
- Escludi: (target.[Sanitizes Output] is 'Yes') AND (target.[Sanitizes Input] is 'Yes')
La minaccia scripting intersito in questo esempio è generata solo quando:
- Il processo può essere un server Web o un'applicazione Web
- Input e output non sono puri
Nota
La creazione di modelli Microsoft Threat Modeling Tool è un argomento complesso e non verrà trattato completamente in questo percorso di apprendimento.