Il boom di Intelligenza artificiale (che forse sarebbe meglio chiamare intelligenza predittiva) e dell’Internet of Things con i suoi sensori intelligenti ha portato all’adozione sempre più diffusa di strategie di gestione e decisione basate su digital twin. Lo scenario e le potenzialità dei nuovi “simulatori” smart.
Cos’è il digital twin
Un digital twin è un modello parziale e formale di un sistema reale. E’ parziale perché descrive solo alcune proprietà del sistema ed è formale perché usa strumenti logico matematici per riprodurre tali proprietà. Le informazioni da fornire in ingresso al modello vengono prodotte da un insieme di sensori che prelevano informazioni dal sistema reale. In passato, il digital twin era sostanzialmente statico ed aveva l’obiettivo di eliminare test fisici particolarmente costosi.
Ad esempio, il modello permetteva di anticipare le prestazioni aereodinamiche di un’auto o di una imbarcazione utilizzando equazioni di fluidodinamica ed un supercalcolatore invece di una galleria del vento. La situazione sta cambiando perché la capacità di raccogliere informazioni sul sistema permette di accoppiare un digital twin ad un sistema anche per tutta la sua vita. Attualmente, possiamo accoppiare ad un sistema per la produzione di pezzi un digital twin per ottimizzarne il funzionamento, pianificare la manutenzione anticipando guasti o malfunzionamenti.
In questo caso, i sensori raccolgono informazioni sullo stato attuale del sistema reale ed il modello matematico, che spesso è implementato mediante una rete neurale, prevede il funzionamento futuro del sistema, anticipa potenziali guasti e segnala la necessità di manutenzione.
Aumento esponenziale dei dati raccolti
Come ricordato si sta diffondendo, e diventerà sempre più popolare, il caso in cui il fornitore di una macchina produca due versioni della macchina, una fisica ed una in bit, il digital twin. Il digital twin riceve dati da quella fisica e ciò permette la fornitura di nuovi servizi, per tutta la vita della macchina.
Spesso l’interazione è bidirezionale perché il digital twin può controllare il comportamento del sistema reale comandando degli attuatori. La tendenza è chiara e la quantità di dati che vengono raccolti dai vari sensori dislocati su un sistema reale è in aumento esponenziale per tutti i sistemi dai più semplici ai più complessi. E’ bene ricordare che l’utilità dei digital twin è anche dovuta alla estrema flessibilità di configurazione e funzionamento permessa dalla sostituzione sempre più massiccia di “hardware” con “software” flessibile e configurabile in tempo reale. In altre parole, i digital twin sono un effetto collaterale del fatto che “software is eating the world”.
L’utilità di un digital twin aumenta in presenza di sensori che raccolgano informazioni sul mondo reale e di attuatori per controllare il funzionamento di sistemi e macchine fisiche. La capacità di memorizzare ed analizzare i dati raccolti dai sensori permette non solo di controllare ed ottimizzare il funzionamento e la manutenzione, normale e straordinaria, ma anche di verificare e migliorare il progetto complessivo di un sistema.
Da un lato questo pone un problema interessante sulla proprietà dei dati: a chi appartengono i dati prodotti da una macchina, da un aereo, da un’auto? Domanda solo apparentemente semplice perché il proprietario non è in grado di analizzare i dati prodotti mentre spesso il beneficio per il singolo utente è nettamente inferiore a quello per chi riceve e gestisce tutti dati.
Quando realizzare il digital twin
Rimandando al futuro la soluzione dei problemi legati alla proprietà dei dati, è importante sottolineare i vantaggi permessi dal digital twin in tutte le fasi della vita di un sistema reale, a partire dal suo progetto. Vista la relativa semplicità ed il basso costo dello sviluppo di un digital twin è conveniente progettare e costruire il digital twin prima del sistema reale. Ciò permette di ipotizzare diverse situazioni d’uso del sistema e verificarne il comportamento del sistema reale individuando e risolvendo eventuali inefficienze o rischi prima che questi si verifichino realmente.
Il fatto che il sistema sia stato solo progettato e non ancora costruito permette di modificarlo e migliorarlo ad un costo minimale di quello di modifiche sul sistema già prodotto e funzionante. Questa strategia di progetto è particolarmente importante per sistemi con comportamenti stocastici e/o emergenti. Citando da Wikipedia “il comportamento emergente è la situazione nella quale un sistema complesso esibisce proprietà macroscopiche ben definibili, difficilmente predicibili sulla base delle leggi che governano le sue componenti prese singolarmente. Esso scaturisce dunque dalle interazioni lineari e non-lineari tra le componenti“. Inoltre, “i comportamenti complessi non sono proprietà delle singole entità e non possono essere facilmente riconosciuti o dedotti dal comportamento di entità del livello più basso”.
Una delle ragioni per cui si verifica un comportamento emergente è che il numero di interazioni tra le componenti di un sistema aumenta combinatoriamente con il numero delle componenti, consentendo il potenziale emergere di nuovi e più impercettibili tipi di comportamento”. L’Enciclopedia Britannica è un po’ più brutale: “un sistema il cui comportamento non può essere predetto a partire dalle condizioni iniziali”. L’esistenza di comportamenti emergenti può essere studiata in modo estremamente completo utilizzando un digital twin che permette anche di riprodurre situazioni magari estremamente improbabili ma con potenziali impatti catastrofici, quello che Taleb chiama cigni neri.
Digital twin e sicurezza informatica
La capacità del digital twin di analizzare sistemi complessi ed eventuali comportamenti stocastici ed emergenti è di particolare rilevanza nel caso della sicurezza informatica dove il sistema reale di interesse è una rete o una infrastruttura informatica con un numero elevato di componenti che possono essere nodi di elaborazione, di interconnessione, sistemi operativi ed applicazioni. Anche se il digital twin può fornire informazioni utili sia per la sicurezza che per la safety nel seguito ci limiteremo alla sicurezza.
L’utilizzo di digital twin nella sicurezza informatica non è cosa nuova. Storicamente infatti, una delle prime applicazioni di un digital twin è il monitoraggio di un sistema reale per la scoperta di anomalie che si associano a possibili intrusioni. La tecnologia associata è quasi obsoleta, visto che essa nasce e viene formalizzata agli inizi degli anni ’90 del secolo scorso. In questo caso il digital twin è dato da un insieme di distribuzioni di probabilità di eventi di interesse che vengono calcolate osservando il sistema reale per un certo intervallo di tempo.
Ad esempio, una distribuzione può descrivere la probabilità che un utente invochi una certa applicazione o che una interazione tra nodi abbia luogo. La probabilità viene continuamente aggiornata durante la vita del sistema. L’anomalia nasce quando un certo evento si manifesta con una probabilità che non rispetta la corrispondente distribuzione di probabilità nel digital twin. Purtroppo, un digital twin che utilizzi solo un insieme di distribuzioni di probabilità e non abbia informazioni sui possibili comportamenti dei componenti può restituire informazioni non accurate, soprattutto quando il sistema reale è molto dinamico. In questo caso, infatti, il sistema cambia prima di aver raccolto informazioni sufficienti a calcolare distribuzioni di probabilità affidabili.
Un digital twin per la sicurezza informatica è molto più complesso dei twin sviluppati per sostituire, ad esempio, prove sperimentali in galleria del vento o crash test. Infatti, i più complessi problemi di sicurezza nascono dall’interazione tra componenti del sistema reale ma la sicurezza informatica è il tipico dominio dove è quasi impossibile prevedere durante il progetto tutte le possibili interazioni tra i componenti a partire da una o più azioni di un attaccante esterno o interno al sistema.
Come il twin blocca l’attaccante
Quindi il focus di un digital twin per la sicurezza deve essere sui componenti del sistema reale e sulle loro possibili interazioni per studiare il comportamento del sistema generato dalle azioni dell’attaccante e modificare il comportamento dei componenti e le loro interazioni. Obiettivo finale è ovviamente quello di impedire all’attaccante di acquisire il controllo di risorse o componenti critici del sistema reale. In particolare, interessa capire se un attaccante intelligente possa sfruttare le vulnerabilità di un componente per generare comportamenti inattesi del singolo componente prima, e quindi di tutto il sistema. L’azione dell’attaccante per sfruttare le vulnerabilità del sistema e raggiungere i propri obiettivi possono esser descritte come nella Att&ck Matrix 4.
La capacità di rappresentare le interazioni fra il sistema reale e l’attaccante implica che il digital twin di una rete informatica debba descrivere, almeno, le vulnerabilità dei componenti, la topologia fisica della struttura di interconnessione della rete, quella logica e le regole di routing e filtraggio. Rappresentare tutte e sole le informazioni utili è fondamentale per ridurre i tempi di analisi.
Per la definizione del digital non esistono modelli formali come le equazioni di fluidodinamica nei twin che sostituiscano la galleria del vento. Anche l’uso di reti neurali o comunque di strategie di IA non è spesso possibile per la difficoltà di costruire un training set per un sistema che è in qualche modo unico ed irripetibile. Per questa ragione, un digital twin per la sicurezza informatica può essere basato unicamente sulla simulazione del comportamento dei singoli componenti e le loro reazioni alle interazioni e/o alle condizioni iniziali.
La simulazione può essere realizzata ad un livello molto astratto o emulare in modo molto dettagliato il comportamento dei singoli componenti e degli attaccanti. Di conseguenza, un sistema informatico ha molti digital twin: la scelta di quale utilizzare dipende dall’analisi di interesse e dalle risorse computazionali e dal tempo disponibile. Raramente comunque, questa emulazione considera le computazioni dei singoli componenti.
Fingerprinting e vulnerability scanning
La quantità di informazioni che un qualsiasi digital twin rappresenta è ovviamente una piccola percentuale di quelle del sistema reale. La raccolta e l’organizzazione delle informazioni necessarie richiede comunque strumenti automatici. Ad esempio, nel contesto della sicurezza informatica, strategie molto efficaci per la raccolta di un numero estremamente elevato di informazioni su un sistema già esistente sono il fingerprinting ed il vulnerability scanning che permettono di ricostruire i componenti che un certo sistema informatico usa e le loro vulnerabilità. Il digital twin viene costruito a partire dall’output di questi strumenti per essere poi usato per studiare il comportamento del sistema e scoprire eventuali problemi di sicurezza.
Ciò evidenzia che fingerprinting e vulnerability scanning, se usati isolatamente, non possono anticipare i comportamenti del sistema ed eventuali problemi di sicurezza, ma anche che il digital twin può essere visto come un inventario evoluto ed eseguibile del sistema. Il fingerprinting ed il vulnerability scanning sono quindi i meccanismi di base per la costruzione di sensori che analizzino il sistema reale e raccolgano informazioni per aggiornare ed eseguire il digital twin.
La tecnologia permette attualmente la costruzione di sensori sia di tipo attivo, ovvero che interagiscano ad un qualche livello con il sistema reale, che passivo. Un esempio di sensore attivo è un modulo che invii messaggi ICMP per scoprire distanza e percorsi da nodi del sistema. Un sensore passivo è uno sniffer che analizzi connessioni di rete per scoprire interazioni e protocolli tra due nodi. Il tempo per la raccolta di informazioni viene minizzato utilizzando sensori attivi ma al prezzo di generare rumore che disturba il normale funzionamento del sistema reale. Per minimizzare il rumore, si ricorre a sensori passivi al prezzo di aumentare il tempo per la raccolta di informazioni.
L’indipendenza tra condizioni iniziali del sistema informatico e comportamento emergente del sistema fa sì che si possa individuare quali componenti debbano essere modificati per evitare comportamenti critici solo analizzando la storia delle interazioni generate dall’attaccante per capire quali vulnerabilità eliminare o ridurre per evitare i comportamenti non voluti. Raccogliere i dati necessari per ricostruire la storia non è complesso poiché abbiamo accesso, a costo nullo, a tutte le informazioni gestite dal twin.
Digital twin per un assessment continuo
Per individuare più facilmente le vulnerabilità su cui intervenire può essere utile considerare più comportamenti anomali per scoprire le vulnerabilità che condividono, cioè quelle coinvolte in entrambi i comportamenti. Questa soluzione genera strategie molto sperimentali dove si modifica il digital twin e si verificano sperimentalmente gli effetti del cambiamento. Questa strategia può apparire complessa ma l’unica alternativa è la sperimentazione sul sistema esistente con tutte le inefficienze ed i rischi associati.
L’uso di un digital twin permette un assessment continuo durante tutta la vita del sistema reale. In questo caso i sensori, passivi, ma anche attivi se il sistema reale può tollerare il rumore generato, acquisiscono informazioni sul sistema reale che trasmettono al sistema, magari su un cloud, che esegue il digital twin in parallelo alla normale attività del sistema reale. Alla ricezione delle informazioni dai sensori, il twin viene immediatamente aggiornato. Successivamente, il twin aggiornato viene usato per nuove analisi di sicurezza per scoprire comportamenti inattesi ed insicuri generati, ad esempio, dalla connessione di nuovi componenti al sistema reale o da modifiche alle strutture di interconnessione logiche o fisiche.
Digital twin: i limiti
Dopo aver esaminato i vantaggi dell’uso di un digital twin passiamo ai problemi. Come dimostrato dai problemi incontrati dalla rilevazione di intrusioni, il problema fondamentale di ogni digital twin è quello dei falsi positivi e dei falsi negativi. Abbiamo un falso positivo quando un comportamento del twin non corrisponde ad uno del sistema reale. Parliamo invece di falso negativo quando il modello non riproduce un comportamento del sistema reale.
Falsi positivi possono essere dovuti a vulnerabilità restituite dallo scanning ma che in realtà non sono presenti in un modulo oppure ad interazioni che in realtà non possono avvenire. Viceversa, falsi negativi possono sorgere per vulnerabilità non ancora pubbliche o a componenti la cui presenza non è nota.
Nel caso della sicurezza informatica, un falso negativo è potenzialmente più pericoloso perché non permette di individuare situazioni critiche. Una strategia per ridurre il numero di falsi negativi è quella di assumere la presenza di vulnerabilità ancora non note nei componenti e di inserirle nel digital twin per studiare il comportamento risultante del sistema reale. Adottare questa strategia in fase di progetto dove il costo delle modifiche è molto ridotto permette di anticipare ed eliminare comportamenti pericolosi ad un costo molto basso. Questa strategia indica anche una possibile indicazione per l’utilizzo di digital twin per aumentare la resilienza di un sistema.
Bibliografia
Marc Andreessen “Why Software Is Eating the World”, The Wall Street Journal, August 20th, 2011.
N. N. Taleb, The Black Swan: The Impact of the Highly Improbable, 2008, Penguin,
F.Baiardi et al., “Applying Resilience to Hybrid Threats,” in IEEE Security & Privacy, vol. 17, no. 5, pp. 78-83, Sept.-Oct. 2019, doi: 10.1109/MSEC.2019.2922866