8 KiB
Threat Modeling
Threat Modeling
Benvenuto nella guida completa di HackTricks sul Threat Modeling! Inizia un'esplorazione di questo aspetto critico della cybersecurity, dove identifichiamo, comprendiamo e strategizziamo contro potenziali vulnerabilità in un sistema. Questo thread funge da guida passo-passo ricca di esempi del mondo reale, software utili e spiegazioni facili da comprendere. Ideale sia per i principianti che per i professionisti esperti che cercano di rafforzare le loro difese di cybersecurity.
Commonly Used Scenarios
- Sviluppo Software: Come parte del Ciclo di Vita dello Sviluppo Software Sicuro (SSDLC), il threat modeling aiuta a identificare potenziali fonti di vulnerabilità nelle prime fasi di sviluppo.
- Penetration Testing: Il framework del Penetration Testing Execution Standard (PTES) richiede threat modeling per comprendere le vulnerabilità del sistema prima di eseguire il test.
Threat Model in a Nutshell
Un Threat Model è tipicamente rappresentato come un diagramma, immagine o qualche altra forma di illustrazione visiva che descrive l'architettura pianificata o la build esistente di un'applicazione. Ricorda un data flow diagram, ma la principale distinzione risiede nel suo design orientato alla sicurezza.
I threat model presentano spesso elementi contrassegnati in rosso, simboleggiando potenziali vulnerabilità, rischi o barriere. Per semplificare il processo di identificazione dei rischi, viene impiegato il triade CIA (Confidenzialità, Integrità, Disponibilità), che forma la base di molte metodologie di threat modeling, con STRIDE che è una delle più comuni. Tuttavia, la metodologia scelta può variare a seconda del contesto e dei requisiti specifici.
The CIA Triad
La triade CIA è un modello ampiamente riconosciuto nel campo della sicurezza delle informazioni, che sta per Confidenzialità, Integrità e Disponibilità. Questi tre pilastri formano la base su cui sono costruite molte misure e politiche di sicurezza, comprese le metodologie di threat modeling.
- Confidenzialità: Garantire che i dati o il sistema non siano accessibili da individui non autorizzati. Questo è un aspetto centrale della sicurezza, che richiede controlli di accesso appropriati, crittografia e altre misure per prevenire le violazioni dei dati.
- Integrità: L'accuratezza, la coerenza e l'affidabilità dei dati nel loro ciclo di vita. Questo principio garantisce che i dati non vengano alterati o manomessi da parti non autorizzate. Spesso coinvolge checksum, hashing e altri metodi di verifica dei dati.
- Disponibilità: Questo garantisce che i dati e i servizi siano accessibili agli utenti autorizzati quando necessario. Questo spesso implica ridondanza, tolleranza ai guasti e configurazioni ad alta disponibilità per mantenere i sistemi operativi anche di fronte a interruzioni.
Threat Modeling Methodlogies
- STRIDE: Sviluppato da Microsoft, STRIDE è un acronimo per Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege. Ogni categoria rappresenta un tipo di minaccia, e questa metodologia è comunemente utilizzata nella fase di design di un programma o sistema per identificare potenziali minacce.
- DREAD: Questa è un'altra metodologia di Microsoft utilizzata per la valutazione del rischio delle minacce identificate. DREAD sta per Damage potential, Reproducibility, Exploitability, Affected users, and Discoverability. Ognuno di questi fattori viene valutato, e il risultato viene utilizzato per dare priorità alle minacce identificate.
- PASTA (Process for Attack Simulation and Threat Analysis): Questa è una metodologia centrata sul rischio in sette fasi. Include la definizione e l'identificazione degli obiettivi di sicurezza, la creazione di un ambito tecnico, la decomposizione dell'applicazione, l'analisi delle minacce, l'analisi delle vulnerabilità e la valutazione del rischio/triage.
- Trike: Questa è una metodologia basata sul rischio che si concentra sulla difesa degli asset. Parte da una prospettiva di gestione del rischio e analizza minacce e vulnerabilità in quel contesto.
- VAST (Visual, Agile, and Simple Threat modeling): Questo approccio mira a essere più accessibile e si integra negli ambienti di sviluppo Agile. Combina elementi delle altre metodologie e si concentra su rappresentazioni visive delle minacce.
- OCTAVE (Operationally Critical Threat, Asset, and Vulnerability Evaluation): Sviluppato dal CERT Coordination Center, questo framework è orientato verso la valutazione del rischio organizzativo piuttosto che sistemi o software specifici.
Tools
Ci sono diversi strumenti e soluzioni software disponibili che possono assistere nella creazione e gestione dei threat model. Ecco alcuni che potresti considerare.
SpiderSuite
Un avanzato spider/crawler GUI multipiattaforma e multi-funzione per professionisti della cybersecurity. Spider Suite può essere utilizzato per la mappatura e l'analisi della superficie di attacco.
Usage
- Scegli un URL e Crawla
- Visualizza il Grafico
OWASP Threat Dragon
Un progetto open-source di OWASP, Threat Dragon è sia un'applicazione web che desktop che include diagrammi di sistema e un motore di regole per generare automaticamente minacce/mitigazioni.
Usage
- Crea Nuovo Progetto
A volte potrebbe apparire così:
- Avvia Nuovo Progetto
- Salva il Nuovo Progetto
- Crea il tuo modello
Puoi utilizzare strumenti come SpiderSuite Crawler per darti ispirazione, un modello di base potrebbe apparire così
Solo un po' di spiegazione sulle entità:
- Processo (L'entità stessa come Webserver o funzionalità web)
- Attore (Una persona come un Visitatore del Sito, Utente o Amministratore)
- Linea di Flusso Dati (Indicatore di Interazione)
- Confine di Fiducia (Segmenti o ambiti di rete diversi.)
- Archiviazione (Luoghi dove i dati sono archiviati come Database)
- Crea una Minaccia (Passo 1)
Prima devi scegliere il livello a cui desideri aggiungere una minaccia
Ora puoi creare la minaccia
Tieni presente che c'è una differenza tra Minacce agli Attori e Minacce ai Processi. Se aggiungi una minaccia a un Attore, potrai scegliere solo "Spoofing" e "Repudiation". Tuttavia, nel nostro esempio aggiungiamo una minaccia a un'entità di Processo, quindi vedremo questo nella casella di creazione della minaccia:
- Fatto
Ora il tuo modello finito dovrebbe apparire così. E questo è come crei un semplice threat model con OWASP Threat Dragon.
Microsoft Threat Modeling Tool
Questo è uno strumento gratuito di Microsoft che aiuta a trovare minacce nella fase di design dei progetti software. Utilizza la metodologia STRIDE ed è particolarmente adatto per coloro che sviluppano sulla stack di Microsoft.