Con Threat modeling ci si riferisce al processo di sicurezza con il quale vengono identificate, classificate e analizzate potenziali minacce, valutandone il rischio e fornendo le necessarie contromisure.
Adottato soprattutto come misura proattiva durante le fasi di design e sviluppo, o come misura reattiva successiva al deploy di un prodotto, questo processo fornisce un’analisi sistematica di quali controlli o difese debbano essere incluse.
In questo contesto, infatti, il Threat modeling permette di comprendere soprattutto le risorse che il prodotto sta cercando di proteggere (es. informazioni personali dei clienti), le minacce e vulnerabilità introdotte da questo (incluse quelle presenti nell’ambiente in cui questo viene distribuito), e i dettagli di come verranno mitigate tali minacce.
Ciò permette di accrescere la consapevolezza alla sicurezza del prodotto, estendendosi a tutti gli attori coinvolti, e rendendola parte integrante dell’intero processo di sviluppo.
La sicurezza è un elemento che deve essere considerato e gestito in maniera attiva, sin dalle prime fasi di progettazione di un prodotto, e per tutto il suo ciclo di vita. Questa considerazione ampiamente condivisa, giusto per citare un esempio, ha dato vita al noto framework Microsoft SD3+C, che unisce tre importanti strategie quali: la security by design, la security by default e la security by deployment.
Adottare il solo approccio proattivo, infatti, non basta. Non tutte le minacce possono essere previste durante la fase di progettazione, sottolineando la necessità di unire strategie reattive, che permettono di affrontare problemi inizialmente non previsti.
Un approccio reattivo alla modellazione delle minacce ha luogo dopo che un prodotto è stato creato e distribuito. Ciò è alla base dell’ethical hacking, penetration testing, source code review e fuzz testing, processi utili nella ricerca di vulnerabilità e minacce, che si traducono nella richiesta di ulteriori sforzi per la messa in sicurezza del prodotto e dell’ecosistema, richiedendo una attenta valutazione delle azioni da intraprendere.
Indice degli argomenti
Threat modeling: identificazione delle minacce
Esistono possibilità quasi infinite di minacce, quindi è importante utilizzare un metodo strutturato per l’identificazione di quelle più pertinenti al contesto, che può avvenire utilizzando uno o più dei seguenti approcci:
- Approccio incentrato sugli asset. Questo metodo utilizza i risultati dell’asset valuation e tenta di identificare le minacce connesse agli asset più di valore per il contesto.
- Approccio incentrato sugli attacker. Metodo che si basa sull’identificazione di potenziali attacker, individuando le minacce in base agli obiettivi che questi si possono prefiggere. Riconoscere ciò che gli attaccanti vogliono ottenere, infatti, permette di spostare il proprio focus sull’identificare e proteggere gli asset più rilevanti.
- Approccio incentrato sul software. Se un’organizzazione sviluppa software, può prendere in considerazione potenziali minacce che potrebbero colpire lo stesso.
Le principali metodologie di threat modeling
Quando si tenta di inventariare e categorizzare le minacce, è spesso utile utilizzare una guida o un riferimento. Vengono presentate di seguito le quattro più note e adottate.
STRIDE
Nel 1999 da Microsoft, fornisce agli sviluppatori un modo per individuare le minacce che potevano potenzialmente colpire i prodotti della casa di Redmond, sviluppando uno schema di categorizzazione delle minacce noto come modello di minaccia STRIDE, spesso utilizzato soprattutto in relazione alla valutazione delle minacce contro applicazioni o sistemi operativi. STRIDE sta per:
- spoofing: attacco informatico che impiega in varie maniere la falsificazione dell’identità (spoof). Lo spoofing può essere utilizzato contro indirizzi IP (Internet Protocol), indirizzi MAC, nomi utente, nomi di sistema, identificatori di set di servizi di rete wireless (SSID), indirizzi e-mail e molti altri tipi di identificazione logica. Quando un utente malintenzionato falsifica la propria identità come entità valida o autorizzata, è spesso in grado di bypassare filtri e blocchi contro accessi non autorizzati e conseguenti azioni laterali;
- tampering: qualsiasi azione che comporti modifiche o manipolazioni non autorizzate dei dati, sia in transit che at rest, violando integrità e disponibilità delle informazioni;
- repudiation: la capacità di un utente o di un attaccante, di negare di aver eseguito una certa azione o attività. Attacco che permette a chi lo esegue di mantenere una negabilità plausibile in modo da non essere ritenuto responsabile delle sue azioni, con la possibilità di far incolpare terze parti innocenti;
- information disclosure: Rivelazione o distribuzione di informazioni private, riservate o controllate, a entità esterne o non autorizzate, generata, ad esempio, anche a causa di informazioni di debug lasciate nel codice, mancata sanitizzazione degli input utente, o messaggi di errore troppo dettagliati;
- Denial of Service (DoS): Attacco che tenta di impedire l’uso autorizzato di una risorsa. Condotto ad esempio attraverso exploitation di una qualche vulnerabilità, o traffic flooding. Un attacco DoS non comporta necessariamente la completa interruzione di una risorsa, ma può manifestarsi anche attraverso una parziale riduzione di disponibilità in termini di latenza che può comunque compromettere la produttività;
- Elevation of Privilege (EoP): un attacco in cui un account utente limitato, viene trasformato in un account con maggiori privilegi, poteri, e accesso. Questo può avvenire, ad esempio, attraverso il furto credenziali di un account con alti privilegi come quello di un amministratore di sistema, o ancora, attraverso un exploit che concede temporaneamente o permanentemente ulteriori poteri a un account altrimenti limitato.
PASTA
PASTA (Process for Attack Simulation and Threat Analysis) è una metodologia di Threat Modeling incentrata sull’attacker, che si sviluppa attraverso un processo che segue sette diverse fasi, con lo scopo di selezionare e sviluppare le contromisure necessarie in relazione agli asset da proteggere, tenendo quindi conto degli obiettivi aziendali, dei requisiti tecnici oltre che degli aspetti legati alla compliance.
Lo scopo del metodo è fornire un processo dinamico di identificazione, enumerazione e valutazione delle minacce, dove una volta completato il threat model, sviluppare un’analisi dettagliata delle minacce identificate.
VAST
VAST è l’acronimo di Visual, Agile e Simple Threat. Metodologia di threat modeling basata sui principi di project management e programming Agile. L’obiettivo è quello di integrare threat e risk management all’interno di programmi di sviluppo Agile su base scalabile.
Alla base di questa metodologia c’è l’idea che la modellazione delle minacce è utile solo se comprende l’intero ciclo di vita di sviluppo del software (SDLC), incorporando tre diversi pilastri quali l’automazione, l’integrazione, e la collaborazione.
TRIKE
Trike è una metodologia di Threat modeling con approccio risk-based, il cui focus è quello di usare threat model in modo affidabile e ripetibile, così da poter essere usato per descrivere in modo accurato e completo le caratteristiche di sicurezza di un sistema, dalla sua architettura ad alto livello ai dettagli più a basso livello.