L’introduzione di sistemi basati sull’intelligenza artificiale per affiancare gli specialisti umani nella protezione degli asset informatici di un’azienda comporta evidenti benefici, legati alla capacità di trattare volumi di dati più elevati e alla maggiore velocità nell’esecuzione di attività di risposta all’attacco.
Sono tre, in particolare, le aree in cui l’impiego di metodi basati su algoritmi di intelligenza artificiale può aiutare a rinforzare la gestione della sicurezza informatica.
- Rilevazione di situazioni anomale potenzialmente pericolose;
- Supporto alla decisione;
- Agenti intelligenti.
Prima di esaminarle, però, cerchiamo di capire come siamo arrivati a quella che si può definire una “tempesta perfetta” per la sicurezza informatica.
La tempesta perfetta
È ormai un dato acquisito, confermato dalla nostra esperienza, che uno dei più importanti trend degli ultimi 20 anni è il progressivo spostamento della nostra vita nel dominio digitale. A partire dagli anni ’90, con la diffusione di sistemi di accesso sempre più efficienti ed economici, prima su computer fissi, mediante linea telefonica tradizionale, poi più recentemente su cellulari e smartphone, l’utilizzo di servizi Web è diventato capillare, e sempre più persone utilizzano questo medium per attività che normalmente richiedevano un’interazione “fisica”.
Il successo e la diffusione di reti di accesso sempre più ramificate e ubique, insieme alla crescente miniaturizzazione dei dispositivi di accesso, hanno permesso di estendere rapidamente il numero e la varietà dei dispositivi connessi. Questa esplosione nel numero di dispositivi e di “casi d’uso” ha generato una più che proporzionale crescita dei dati generati, trasmessi, scambiati, memorizzati, correlati, che nascondono un valore, potenzialmente molto elevato, per chi questi dati è in grado di raccogliere e filtrare.
Assistiamo ora alla contemporanea e repentina accelerazione di questi fenomeni: l’esplosione del volume dei dati, la decentralizzazione delle architetture logiche e tecnologiche, la natura nativamente digitale dei nuovi processi di business e il boom dei dispositivi
In questo scenario, l’emergenza di tre tecnologie apparentemente distinte, ma in realtà strettamente correlate, non è casuale: lo sviluppo e la rapida diffusione di oggetti interconnessi, capaci di elaborazione propria, la contemporanea espansione di algoritmi e tecniche di Intelligenza Artificiale e, infine, l’avvento di soluzioni cloud caratterizzate da rapida scalabilità verso l’alto sia della capacità elaborativa, sia dello spazio di storage. Fra queste tecnologie esiste un evidente legame: la mole enorme di dati generati dai dispositivi IoT richiede da un lato l’uso di algoritmi che siano in grado di estrarre efficacemente valore, sia per l’utilizzatore, sia per chi utilizza i dati per la vendita di prodotti e servizi.
Dall’altro, la raccolta di questi dati e l’utilizzo di algoritmi di machine learning e di intelligenza artificiale, peraltro in continua evoluzione, si adattano perfettamente al modello “elastico” e scalabile offerto dal cloud.
Va sottolineato inoltre che le capacità introdotte dall’Intelligenza artificiale costituiscono un abilitatore di comportamenti autonomi e di capacità che contribuiscono a facilitare la diffusione e l’utilità dei sistemi IoT, seppure spesso appongiandosi, per le computazioni più complesse, a sistemi in cloud.
Per le strutture che si occupano di sicurezza informatica, il governo e la protezione dei dati e dei sistemi, sia per quanto attiene alle caratteristiche proprie di ciascuno dei tre elementi, sia alle loro interazioni, è dunque una sfida centrale.
I nuovi rischi informatici
Il ruolo crescente che la tecnologia ha nelle nostre vite quotidiane nei luoghi di lavoro, la crescita del cloud e delle tecnologie IoT e mobili hanno innescato una sorta di reazione a catena in termini di rischi per la sicurezza. Il numero enorme e crescente di dispositivi collegati in rete rappresenta uno scenario da sogno per i cyber criminali, con nuovi e abbondanti punti di accesso a disposizione, spesso scarsamente protetti. Per le imprese, il desiderio di beneficiare dei vantaggi legati all’utilizzo di sistemi IoT è temperato dai timori generati dalle continue notizie di violazioni della sicurezza, con conseguenti titoli ad effetto sui giornali, che spingono le aziende a ricercare una maggiore protezione contro questo tipo di eventi. Le tecnologie e i metodi per la protezione delle informazioni usate tradizionalmente nelle industrie diventano però rapidamente proibitive, in termini di risorse economiche e umane richieste, al crescere del numero di dispositivi da proteggere della mole di dati trattati. Si palesa dunque la necessità di affiancare o integrare i metodi tradizionali, in ultima analisi incentrati sull’impiego di specialisti umani, con sistemi automatici basati sull’intelligenza artificiale, che possano aumentare la capacità di analisi degli specialisti in alcune delle fasi di gestione degli incidenti di sicurezza informatica, quando non automatizzandola del tutto.
Le fasi di un attacco informatico
Senza entrare in dettagli molto tecnici, un attacco informatico può essere suddiviso nelle seguenti fasi:
- ricognizione dell’obiettivo,
- esecuzione dell’attacco,
- violazione dei sistemi,
- esecuzione dell’attacco[1].
Nella prima fase, la ricognizione dell’obiettivo, l’attaccante identifica il cosiddetto “perimetro di attacco”, ovvero l’insieme delle risorse informatiche, fisiche e organizzative che possono essere sfruttate per cercare di ottenere un accesso illegale ai dati, alle informazioni e ai sistemi del bersaglio. L’attaccante effettua dunque una sorta di “censimento” delle attività e delle modalità operative del bersaglio, includendo anche – ove possibile – la lista delle persone che lavorano o comunque hanno accesso ai sistemi dell’organizzazione-bersaglio. I siti di social network (es. Linkedin, Facebook ecc.) hanno enormemente facilitato il lavoro degli hacker, da questo punto di vista.
La fase di esecuzione consiste nel mettere in atto delle azioni che possano portare ad ottenere l’accesso alle risorse informatiche, utilizzando le informazioni raccolte durante la ricognizione dell’obiettivo. I mezzi adottati possono essere i più vari: sofisticate tecniche di attacco ai sistemi informatici, quali ad esempio i siti web, invio di e-mail di phishing che inducano l’utente ad eseguire un’azione che poi porterà all’installazione di software malevolo sulle loro macchine, attività di effrazione o accesso non autorizzato negli uffici o negli spazi dell’organizzazione bersaglio così da “saltare” le difese informatiche accedendo direttamente ai sistemi informatici dell’azienda, invio di chiavi USB “infette”.
Se la fase di esecuzione andrà a buon fine, l’attaccante sarà riuscito ad “infettare” una macchina – ad esempio il PC di un dipendente, un server web ecc. – con un software malevolo. A questo punto ha inizio la fase di violazione dei sistemi: il software malevolo viene eseguito sulla macchina infetta e, sfruttandone le vulnerabilità, permette all’attaccante di ottenere un accesso privilegiato alla stessa. In questo modo l’attaccante può comunicare con la macchina compromessa ed eseguire l’installazione di ulteriori programmi che, di qui in poi, gli permetteranno di muoversi all’interno della rete informatica e dei sistemi del bersaglio, guadagnando nuovi accessi e ricercando informazioni o sistemi sensibili, al fine di eseguire l’ultima e più importante – per l’attaccante – fase dell’attacco.
L’esecuzione dell’attacco può mirare a raccogliere informazioni sensibili o che comunque abbiano valore per l’attaccante, quali ad esempio dati personali, informazioni finanziarie, proprietà intellettuale, segreti industriali, oppure compromettere le capacità operative dell’azienda, cancellando o rendendo inaccessibili i dati (si pensi alle epidemie di ransomware che periodicamente assurgono ai fasti della cronaca[2]) oppure sabotando le operazioni, come nel caso dell’attacco avvenuto nel 2016 alle centrali elettriche Ucraine[3].
Riconoscere e identificare le fasi di un attacco
La capacità di riconoscere e identificare le diverse fasi di un attacco informatico è un fattore chiave nella protezione degli asset informatici. Tradizionalmente ciò viene effettuato per mezzo di sistemi in grado di individuare alcuni tipi di minaccia, bloccandoli, per mezzo di “sensori” o sonde che rilevano le attività in corso sui sistemi e identificano le anomalie, e da personale altamente specializzato in grado di interpretare i segnali provenienti dai sistemi per riconoscere potenziali situazioni di rischio, indagarle e, nel caso, reagire per arrestare l’attacco. Questo modo, per così dire “tradizionale” di procedere, sta però entrando in crisi a causa dell’enorme aumento dei sistemi da proteggere, anche dovuto alla progressiva introduzione di sistemi IoT e alla crescente sofisticazione dei mezzi degli attaccanti, che hanno a disposizione tecniche per superare le barriere tradizionali fornite ad esempio dagli antivirus. Per fronteggiarle sarebbe necessario aumentare il numero di addetti alla sicurezza, ma ciò non è evidentemente possibile al di sopra di una certa soglia, per problemi di costi da un lato, e di carenza di risorse adeguatamente preparate dall’altro.
L’intelligenza artificiale per la sicurezza informatica: tre aree
In questo scenario, l’introduzione di sistemi basati sull’intelligenza artificiale per affiancare gli specialisti umani comporta evidenti benefici, legati alla capacità di trattare volumi di dati più elevati e alla maggiore velocità nell’esecuzione di attività di risposta all’attacco. Possiamo identificare tre aree in cui l’impiego di metodi basati su algoritmi di intelligenza artificiale può aiutare a rinforzare la gestione della sicurezza informatica.
Sistemi di rilevazione di situazioni anomale potenzialmente pericolose
La prima area è costituita dai sistemi di rilevazione di situazioni anomale potenzialmente pericolose. La sicurezza informatica è un settore nel quale la mole di dati generati è elevatissima, e contiene informazioni su chi o che cosa si collega ai sistemi da proteggere, gli accessi ai dati, informazioni sulle connessioni verso siti esterni, cambiamenti apportati ai sistemi, informazioni o segnalazioni generate dagli stessi sistemi di sicurezza. Insomma una mole vastissima di dati eterogenei, che vanno interpretati e confrontati tra loro per individuare quelle situazioni “anomale” che possono indicare un potenziale attacco in corso, ovvero esattamente il tipo di situazioni nelle quali gli algoritmi di intelligenza artificiale si mostrano più efficaci. Applicazioni in tal senso hanno già lasciato l’ambito della sperimentazione e sono disponibili sul mercato. Il loro compito è identificare quegli eventi, o insiemi di eventi, che collettivamente possono identificare una deviazione sospetta rispetto ai comportamenti “medi” riscontrabili all’interno dell’organizzazione che si vuole proteggere.
In questo ambito, la capacità di “apprendere” mostrata dai sistemi di intelligenza artificiale, quali ad esempio le reti neurali, è particolarmente importante. Un sistema di questo tipo può infatti discriminare fra la normale operatività dei sistemi informatici e il manifestarsi di comportamenti anomali. Sistemi di questo tipo possono essere usati per collaborare con esperti umani, arrivando ad individuare l’85% degli attacchi e a ridurre fino a ad un quinto il numero di falsi positivi, ovvero le segnalazioni di attacco che poi, ad una analisi più approfondita, si rivelano innocue[4]. Con il loro impiego è quindi possibile aiutare gli esperti umani a tenere sotto controllo un numero di sistemi molto più elevato di quanto sarebbe possibile ricorrendo solo a tecniche tradizionali. Inoltre tali sistemi possono essere continuamente aggiornati per identificare correttamente anche le nuove tipologie di attacco che via via si manifestano.
Supporto alla decisione per mezzo dei sistemi esperti
Una seconda area è quella del supporto alla decisione per mezzo dei sistemi esperti, ovvero dei sistemi composti da una base informativa e da un motore inferenziale, usato per elaborare risposte adatte alle situazioni che vengono presentate, sulla base delle informazioni già note. Sistemi di questo genere, peraltro già ampiamente utilizzati anche in altri ambiti, ad esempio negli help desk telefonici per aiutare gli operatori a fornire risposte ai problemi degli utenti, sono impiegati con successo anche nell’ambito della sicurezza informatica. Grazie a loro, è possibile velocizzare e standardizzare l’analisi di determinati eventi, per stabilire se si tratti o meno di incidenti di sicurezza, e mettere in atto delle procedure uniformi di risposta. In questo modo le organizzazioni possono più facilmente disseminare le informazioni, elevare uniformemente le capacità dello staff di esperti di sicurezza e rendere più rapide le attività di rilevazione e risposta agli incidenti.
Agenti intelligenti
Un ultima area di ricerca, a cavallo fra gli ambiti civili e militari, è quella dei cosiddetti agenti intelligenti. Gli agenti intelligenti sono componenti software che possiedono alcune caratteristiche di comportamento intelligente: proattività, la comprensione di un linguaggio di comunicazione fra agenti (Agent Communication Language – ACL), reattività (capacità di prendere alcune decisioni e di agire autonomamente). Essi possono avere capacità di pianificazione, di riflessione e mobilità.
Nel caso della sicurezza informatica, gli agenti intelligenti sono costituiti da sistemi software, autonomi o inseriti all’interno di piattaforme più tradizionali (firewall, sistemi anti intrusione, router ecc.), che hanno diverse capacità: monitoraggio della attività in corso sui sistemi informatici, analisi, rilevazione di situazioni di attacco, risposta. I sistemi sono distribuiti sulla rete che si desidera proteggere e possono comunicare tra loro per mettere in relazione le informazioni raccolte separatamente e mettere in atto una strategia di difesa, con minima o nulla supervisione da parte di specialisti umani. Questi sistemi hanno un doppio interesse, civile[5] e militare[6], dove nel secondo caso si valuta anche la possibilità di dotarli della capacità di contrattaccare.
Prodotti e servizi “Powered by AI techniques”
Nel mondo dei prodotti e dei servizi sicurezza è già oggi onnipresente la dichiarazione “powered by AI techniques”. Dall’antivirus al firewall, dal sistema di accesso ai servizi SOC, l’utilizzo di sistemi di intelligenza artificiale per aumentare la capacità dei sistemi di identificare attività malevole e potenzialmente fraudolente è il nuovo trend. L’adozione di queste tecniche, un fatto positivo in se, non deve però indurre ad abbassare la guardia: le stesse tecniche di intelligenza artificiale messe a guardia dei nostri sistemi, non sono immuni dall’essere vulnerabili loro stesse[7]. Molte di queste tecniche, infatti, utilizzano la tecnologia di apprendimento supervisionato (supervised learning) per apprendere a distinguere situazioni normali da situazioni anomale, e questo apre il tema dell’affidabilità originaria dei dati, o della loro sicurezza. L’utilizzo per l’apprendimento di basi di dati di bassa qualità o, peggio, corrotte, può comportare un funzionamento errato degli algoritmi di AI, che saranno quindi incapaci di riconoscere determinati tipi di attacchi. Diversi studi poi mostrano che i sistemi di riconoscimento di questo tipo possono essere aggirati utilizzando tecniche di adversarial machine learning, nelle quali un’intelligenza artificiale viene usata proprio per costruire “casi” che porteranno ad un falso negativo, permettendo così di camuffare, ad esempio, file malevoli in modo che l’algoritmo che dovrebbe riconoscerli non sia in grado di farlo. Infine l’approccio “balck box” di sistemi quali, ad esempio, le reti neurali profonde (deep neural network) potrebbe costituire un ostacolo nell’interpretazione dei risultati forniti da un sistema “powered by AI”.
In questo momento l’intelligenza artificiale costituisce senz’altro un importante e, direi, necessario strumento per coadiuvare i responsabili della sicurezza nel compito di fronteggiare il numero sempre crescente di attacchi, ma non va considerato come uno strumento risolutivo e autonomo, quanto semplicemente come un altro strumento nell’arsenale di chi difende, che richiede anche lui una supervisione ed una verifica dei risultati che ottiene.
_______________________________________________________________
- Esistono varie definizioni delle fasi di un attacco informatico (cyber kill chain). L’analisi qui riportata si basa liberamente su una delle più utilizzate, la Killer Cyber Chain© proposta dalla Lockheed Martin, della quale costituisce una semplificazione. Si veda www.lockheedmartin.com per maggiori informazioni. ↑
- Per un esempio recente, si veda ad esempio “Biopsia di WannaCry, il ransomware del momento”, su Wired.it. L’articolo è reperibile qui: https://www.wired.it/gadget/computer/2017/05/16/biopsia-wannacry-ransomware-del-momento/ ↑
- “crash override’: the malware that took down a power grid” su wired.com: https://www.wired.com/story/crash-override-malware/ ↑
- “AI2: Training a big data machine to defend”, Veeramachaneni, Arnaldo, Alfredo Cuesta-Infante, Vamsi Korrapati, Costas Bassias, Ke Li. Articolo reperibile in: http://people.csail.mit.edu/kalyan/AI2_Paper.pdf. Il sistema è composto di quattro elementi: Una piattaforma di analisi comportamentale, un “motore” in grado di identificare scostamenti dalla normalità, un meccanismo per ricevere feedback dagli analisti di sicurezza e infine un sistema di apprendimento supervisionato. ↑
- G. Preetha, B. S. Kiruthika Devi, and S. Mercy Shalinie: “Autonomous Agent for DDoS Attack Detection and Defense in an Experimental Testbed”. International Journal of Fuzzy Systems, Vol. 16, No. 4, December 2014 ↑
- A. Guarino: “Autonomous Intelligent Agents in Cyber Offence”. 2013 5th International Conference on Cyber Conflict ↑
- M. Giles: “AI for cybersecurity is a hot new thing—and a dangerous gamble”, 22 agosto 2018, MIT Technology Review. ↑