hacktricks/generic-methodologies-and-resources/threat-modeling.md

138 lines
9.6 KiB
Markdown
Raw Normal View History

# Modellazione delle Minacce
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
L'obiettivo principale di WhiteIntel è contrastare i takeover di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
{% embed url="https://whiteintel.io" %}
---
## Modellazione delle Minacce
Benvenuti alla guida completa di HackTricks sulla Modellazione delle Minacce! Imbarcati in un'esplorazione di questo aspetto critico della sicurezza informatica, dove identifichiamo, comprendiamo e pianifichiamo contro le potenziali vulnerabilità in un sistema. Questo thread serve come guida passo dopo passo ricca di esempi reali, software utile e spiegazioni facili da comprendere. Ideale sia per i principianti che per i professionisti esperti che desiderano rafforzare le loro difese informatiche.
### Scenari Comunemente Utilizzati
1. **Sviluppo Software**: Come parte del Ciclo di Vita dello Sviluppo Software Sicuro (SSDLC), la modellazione delle minacce aiuta nell'**identificare potenziali fonti di vulnerabilità** nelle prime fasi dello sviluppo.
2024-02-10 13:03:23 +00:00
2. **Penetration Testing**: Il framework Penetration Testing Execution Standard (PTES) richiede la **modellazione delle minacce per comprendere le vulnerabilità del sistema** prima di effettuare il test.
### Modello delle Minacce in Breve
Un Modello delle Minacce è tipicamente rappresentato come un diagramma, un'immagine o qualche altra forma di illustrazione visiva che rappresenta l'architettura pianificata o l'implementazione esistente di un'applicazione. Assomiglia a un **diagramma di flusso dei dati**, ma la distinzione chiave risiede nel suo design orientato alla sicurezza.
I modelli delle minacce spesso presentano 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 costituisce la base di molte metodologie di modellazione delle minacce, con STRIDE come una delle più comuni. Tuttavia, la metodologia scelta può variare a seconda del contesto e dei requisiti specifici.
### La Triade CIA
La Triade CIA è un modello ampiamente riconosciuto nel campo della sicurezza informatica, che sta per Confidenzialità, Integrità e Disponibilità. Questi tre pilastri costituiscono la base su cui sono costruite molte misure di sicurezza e politiche, inclusi i metodi di modellazione delle minacce.
2024-02-10 13:03:23 +00:00
1. **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 violazioni dei dati.
2. **Integrità**: L'accuratezza, la coerenza e l'affidabilità dei dati nel corso della loro vita. Questo principio garantisce che i dati non siano alterati o manomessi da parti non autorizzate. Spesso coinvolge checksum, hash e altri metodi di verifica dei dati.
3. **Disponibilità**: Questo garantisce che i dati e i servizi siano accessibili agli utenti autorizzati quando necessario. Spesso coinvolge ridondanza, tolleranza ai guasti e configurazioni ad alta disponibilità per mantenere i sistemi in funzione anche di fronte a interruzioni.
### Metodologie di Modellazione delle Minacce
1. **STRIDE**: Sviluppato da Microsoft, STRIDE è un acronimo per **Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service e Elevation of Privilege**. Ogni categoria rappresenta un tipo di minaccia, e questa metodologia è comunemente utilizzata nella fase di progettazione di un programma o sistema per identificare minacce potenziali.
2. **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 e Discoverability**. Ciascuno di questi fattori viene valutato e il risultato viene utilizzato per prioritizzare le minacce identificate.
3. **PASTA** (Process for Attack Simulation and Threat Analysis): Si tratta di una metodologia a sette passaggi, **centrata sul rischio**. 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.
4. **Trike**: Si tratta di 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.
5. **VAST** (Visual, Agile e Simple Threat modeling): Questo approccio mira ad essere più accessibile e si integra negli ambienti di sviluppo Agile. Combina elementi delle altre metodologie e si concentra sulle **rappresentazioni visive delle minacce**.
2024-02-10 13:03:23 +00:00
6. **OCTAVE** (Operationally Critical Threat, Asset e Vulnerability Evaluation): Sviluppato dal CERT Coordination Center, questo framework è orientato alla **valutazione del rischio organizzativo piuttosto che a sistemi o software specifici**.
2024-02-10 13:03:23 +00:00
## Strumenti
Ci sono diversi strumenti e soluzioni software disponibili che possono **aiutare** nella creazione e gestione dei modelli delle minacce. Ecco alcuni che potresti prendere in considerazione.
### [SpiderSuite](https://github.com/3nock/SpiderSuite)
Un avanzato web spider/crawler GUI multi-piattaforma con molteplici funzionalità per i professionisti della sicurezza informatica. Spider Suite può essere utilizzato per il mapping e l'analisi della superficie di attacco.
2024-02-10 13:03:23 +00:00
**Utilizzo**
1. Scegli un URL e Fai lo Spider
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_1.png" alt=""><figcaption></figcaption></figure>
2. Visualizza il Grafico
<figure><img src="../.gitbook/assets/threatmodel_spidersuite_2.png" alt=""><figcaption></figcaption></figure>
### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases)
Un progetto open-source di OWASP, Threat Dragon è sia un'applicazione web che desktop che include il diagramma di sistema e un motore di regole per generare automaticamente minacce/mitigazioni.
2024-02-10 13:03:23 +00:00
**Utilizzo**
1. Crea un Nuovo Progetto
<figure><img src="../.gitbook/assets/create_new_project_1.jpg" alt=""><figcaption></figcaption></figure>
2024-02-10 13:03:23 +00:00
A volte potrebbe apparire così:
<figure><img src="../.gitbook/assets/1_threatmodel_create_project.jpg" alt=""><figcaption></figcaption></figure>
2. Avvia il Nuovo Progetto
<figure><img src="../.gitbook/assets/launch_new_project_2.jpg" alt=""><figcaption></figcaption></figure>
3. Salva il Nuovo Progetto
<figure><img src="../.gitbook/assets/save_new_project.jpg" alt=""><figcaption></figcaption></figure>
2024-02-10 13:03:23 +00:00
4. Crea il tuo modello
Puoi utilizzare strumenti come SpiderSuite Crawler per ispirarti, un modello di base assomiglierebbe a qualcosa del genere
<figure><img src="../.gitbook/assets/0_basic_threat_model.jpg" alt=""><figcaption></figcaption></figure>
2024-02-10 13:03:23 +00:00
Solo una breve spiegazione sulle entità:
* Processo (L'entità stessa come un Webserver o una funzionalità web)
* Attore (Una persona come un Visitatore del Sito Web, Utente o Amministratore)
* Linea di Flusso dei Dati (Indicatore di Interazione)
* Limite di Fiducia (Diverse segmenti di rete o ambiti.)
* Archiviazione (Cose dove i dati sono memorizzati come ad esempio Database)
5. Crea una Minaccia (Passaggio 1)
Prima devi scegliere lo strato a cui desideri aggiungere una minaccia
<figure><img src="../.gitbook/assets/3_threatmodel_chose-threat-layer.jpg" alt=""><figcaption></figcaption></figure>
2024-02-10 13:03:23 +00:00
Ora puoi creare la minaccia
<figure><img src="../.gitbook/assets/4_threatmodel_create-threat.jpg" alt=""><figcaption></figcaption></figure>
Tieni presente che c'è una differenza tra le Minacce degli Attori e le Minacce dei Processi. Se aggiungessi una minaccia a un Attore, potresti 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:
<figure><img src="../.gitbook/assets/2_threatmodel_type-option.jpg" alt=""><figcaption></figcaption></figure>
2024-02-10 13:03:23 +00:00
6. Fatto
Ora il tuo modello finito dovrebbe assomigliare a qualcosa del genere. E così si crea un semplice modello delle minacce con OWASP Threat Dragon.
<figure><img src="../.gitbook/assets/threat_model_finished.jpg" alt=""><figcaption></figcaption></figure>
### [Strumento di Threat Modeling di Microsoft](https://aka.ms/threatmodelingtool)
Si tratta di uno strumento gratuito di Microsoft che aiuta a individuare minacce nella fase di progettazione dei progetti software. Utilizza la metodologia STRIDE ed è particolarmente adatto per coloro che sviluppano sulla piattaforma Microsoft.
### [WhiteIntel](https://whiteintel.io)
<figure><img src="/.gitbook/assets/image (1224).png" alt=""><figcaption></figcaption></figure>
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark web** che offre funzionalità **gratuite** per verificare se un'azienda o i suoi clienti sono stati **compromessi** da **malware ruba-informazioni**.
Il loro obiettivo principale è contrastare le violazioni degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.
Puoi visitare il loro sito web e provare il loro motore **gratuitamente** su:
{% embed url="https://whiteintel.io" %}