Cos'è la modellazione delle minacce?

La modellazione delle minacce è un metodo per identificare in anticipo possibili vulnerabilità nell'architettura di un'applicazione. Comporta la rappresentazione grafica di un'applicazione, l'identificazione dei difetti di sicurezza e la loro mitigazione.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definire la modellazione delle minacce
  • Descrivere le quattro fasi principali della modellazione delle minacce
  • Confrontare le metodologie comuni di modellazione delle minacce

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Cos'è la modellazione delle minacce?

La modellazione delle minacce è un esercizio che mira a individuare falle nella sicurezza di un'applicazione e del suo ambiente. Comporta la creazione di una rappresentazione di un'applicazione con tutti i suoi componenti, per poi identificare i punti deboli. Idealmente, gli sviluppatori e gli ingegneri della sicurezza utilizzerebbero la modellazione delle minacce durante l'intero processo di sviluppo del software, prima che un'applicazione venga resa pubblica e non solo dopo. La modellazione delle minacce può contribuire a rendere un'applicazione molto più sicura di quanto non sarebbe altrimenti, ma non ci si deve aspettare che la renda inattaccabile.

Nei film sulle rapine, i personaggi principali esaminano spesso le planimetrie della struttura che intendono rapinare, individuandone i punti deboli: da dove è possibile entrare nell'edificio, gli angoli che le telecamere di sicurezza non riescono a vedere e così via. Allo stesso modo, la modellazione delle minacce è come esaminare i "progetti" di una determinata applicazione. La differenza è che la modellazione delle minacce viene eseguita da persone che desiderano proteggere l'applicazione, non da potenziali ladri.

La modellazione delle minacce richiede ai team di creare una vista completa dell'applicazione. Si tratta quindi di pensare come qualcuno che potrebbe voler compromettere l'applicazione. Cosa farebbe un autore di un attacco? Sfrutterebbe forse la debole sicurezza API? Userebbe un attacco alla supply chain per infettare una libreria di sistema integrata? Sebbene non tutti gli attacchi possano essere previsti, la modellazione delle minacce aiuta a fermarne alcuni prima che si verifichino.

Quali sono le fasi della modellazione delle minacce?

Esistono molti approcci possibili alla modellazione delle minacce e non è possibile applicare un unico metodo a ogni situazione. Ma in genere sono coinvolti questi quattro passaggi principali:

1. Valutazione e rappresentazione su diagramma dell'applicazione

I modellatori di minacce provano a identificare e descrivere:

  • I componenti di un'applicazione, inclusi server di database, server Web, gateway, librerie e interfaccia utente
  • I modi in cui tali componenti si collegano, come i protocolli utilizzati per lo scambio di dati e qualsiasi crittografia che protegge tali dati in transito

Se Terry scrivesse una semplice applicazione che visualizza immagini di palloncini, il suo diagramma dell'applicazione potrebbe apparire come segue:

Semplice esempio di modellazione delle minacce: diagramma dell'interfaccia dell'applicazione, gateway, server Web, database e connessioni

Si noti che questo è un esempio molto semplificato e che un diagramma di applicazione della modellazione delle minacce reali potrebbe essere molto più complesso.

2. Identificazione delle falle di sicurezza nella costruzione dell'applicazione

Visualizzare un'applicazione strutturata in questo modo può facilitare l'individuazione di eventuali difetti. Terry, ad esempio, potrebbe notare che le comunicazioni tra il suo database di foto di palloncini e il suo server web non utilizzano il protocollo Transport Layer Security (TLS). Ciò significa che nessuno dei due server verifica l'identità dell'altro tramite firme digitali, consentendo a un malintenzionato di impersonare il server del database e inviare contenuti dannosi al server Web.

Semplice esempio di modellazione delle minacce: la connessione tra server Web e database non è crittografata

3. Apportare modifiche che risolvano tali difetti

Poiché la modellazione delle minacce avviene durante l'intero processo di sviluppo, la mitigazione dei difetti potrebbe comportare la modifica del piano per l'architettura di un'applicazione o l'implementazione di una correzione per una build di applicazione in corso.

Per mitigare la minaccia identificata, Terry può riconfigurare il suo server di database e il suo server web per utilizzare TLS per la loro connessione, o meglio ancora, per utilizzare il mutual TLS e verificarli a vicenda.

Semplice esempio di modellazione delle minacce: la connessione tra server Web e database ora è sicura

4. Verifica che tali modifiche siano state applicate e mitighino correttamente la minaccia

A questo punto, Terry potrebbe eseguire l'applicazione in un ambiente di prova e verificare se 1) i server utilizzano TLS come configurato e 2) se il server Web accetterà il traffico HTTP da un server non verificato invece che dal server del database. Eseguirebbe controlli simili per tutte le altre misure di mitigazione applicate.

Quali sono le diverse metodologie di modellazione delle minacce?

Una metodologia di modellazione delle minacce è un approccio per identificare le minacce. Le metodologie forniscono una struttura al processo di modellazione delle minacce, che altrimenti potrebbe risultare opprimente in un sistema complesso. Le organizzazioni possono scegliere tra un'ampia gamma di metodologie di modellazione delle minacce o addirittura svilupparne di proprie. Alcune delle metodologie più comuni includono:

  • STRIDE: questa metodologia, sviluppata da Microsoft, è un dispositivo mnemonico per identificare le minacce alla sicurezza. Le lettere "STRIDE" stanno per "Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege". (In questo caso, per "Repudiation" si intende l'impossibilità di verificare l'origine e l'integrità dei dati.) L'idea è quella di ricercare questi sei tipi specifici di minacce nell'architettura di un'applicazione.
  • PASTA: sta per "Process for Attack Simulation and Threat Analysis". PASTA è un processo in sette fasi per identificare, enumerare e assegnare un punteggio alle minacce.
  • VAST: la metodologia Visual, Agile and Simple Threat (VAST) è associata a ThreatModeler, un prodotto software di modellazione delle minacce automatizzato.
  • SQUARE: La metodologia Security Quality Requirements Engineering (SQUARE) aiuta a identificare i problemi di sicurezza in anticipo, nelle prime fasi del processo di sviluppo.

Esistono anche molte altre metodologie di modellazione delle minacce. Alcune di esse, come "Trike" e le varie metodologie ibride, non hanno nemmeno un acronimo.

Quando avviene la modellazione delle minacce?

La modellazione delle minacce deve avvenire prima e durante lo sviluppo del software, durante tutto il ciclo di vita di un'applicazione. Se un'applicazione viene rilasciata senza alcuna modellazione o mitigazione delle minacce, gli utenti (o gli autori di attacchi) potrebbero scoprire falle nella sicurezza prima che vengano scoperte dai team di sicurezza. Ciò può comportare una violazione dei dati e comportare un rischio maggiore di minacce zero-day.

Tuttavia, poiché la modellazione delle minacce non rileva tutti i rischi all'interno di un sistema, sviluppatori e organizzazioni dovrebbero continuare con questo processo anche dopo il rilascio. Oltre alla modellazione delle minacce, possono farlo tramite:

  • La caccia alle minacce: implica la ricerca proattiva di minacce contro un sistema. La caccia alle minacce, o ricerca delle minacce, può essere un processo di indagine manuale eseguito da un analista della sicurezza, un processo automatizzato eseguito da uno strumento di sicurezza o una combinazione di entrambi.
  • Test di penetrazione: il test di penetrazione, o pen testing, è un'esercitazione di sicurezza in cui un hacker etico tenta di trovare e sfruttare le vulnerabilità in un sistema informatico. Per essere efficaci, i test di penetrazione devono essere eseguiti da qualcuno che non ha una conoscenza pregressa del sistema e, pertanto, devono essere condotti in modo completamente separato dal processo di modellazione delle minacce. Spesso chi ha sviluppato l'applicazione è troppo vicino ad essa per individuarne tutti i difetti, proprio come l'architetto di una struttura sicura potrebbe non prevedere i difetti che consentono a una squadra di rapinatori di entrare in un film su una rapina.
  • Altre misure di sicurezza delle applicazioni: la sicurezza delle applicazioni è una disciplina complessa. Nessun sistema o applicazione dovrebbe mai essere considerato completamente sicuro. Un Web Application Firewall (WAF) può fare molto per proteggere le applicazioni Web.

Cloudflare offre anche un servizio di intelligence delle minacce e di gestione delle stesse, Cloudforce One, per proteggere i clienti dalle minacce più recenti. Cloudforce One è guidato da un team di ricerca sulle minacce di livello mondiale, con grande esperienza nel contrastare gli aggressori su scala globale. Scopri di più su Cloudforce One qui.