Valutazione della sicurezza informatica delle infrastrutture critiche
Transcript
Valutazione della sicurezza informatica delle infrastrutture critiche
Igor Nai Fovino Global Cyber Security Center VALUTAZIONE DELLA SICUREZZA DELLE INFRASTRUTTURE CRITICHE, DEFINIZIONI E METODOLOGIA (SECURITY ASSESSMENT OF CRITICAL INFRASTRUCTURES, DEFINITIONS METHODOLOGY) Sommario Le minacce alla sicurezza sono uno dei principali problemi dell’era dei calcolatori. Tutti i sistemi che fanno uso delle tecnologie dell’informazione e della comunicazione (ICT) sono esposti a malfunzionamenti e vulnerabilità che possono essere sfruttati da codice e agenti maligni. Considerando l’uso imponente delle tecnologie ICT nelle cosiddette “infrastrutture critiche”, diventa doveroso eseguire adeguate valutazioni dei rischi sulla sicurezza, mettendo in evidenza le principali minacce a cui un sistema è esposto e, alla fine, l’efficacia delle possibili contromisure. Sfortunatamente, le caratteristiche delle infrastrutture critiche industriali rendono difficile l’uso delle tecniche tradizionali di valutazione del rischio. In questo contributo presentiamo una metodologia innovativa per la valutazione del rischio sulla sicurezza adattata alle esigenze di questi particolari sistemi e basata sul paradigma dei sistemi-di-sistemi e sul concetto di “modellazione orientata al servizio”. Dopo aver fornito una panoramica dello Stato dell’Arte nella disciplina della valutazione del rischio per le Infrastrutture Critiche, forniamo alcune definizioni base sulla sicurezza e infrastrutture critiche. Successivamente descriviamo la metodologia proposta, presentando i risultati della sua applicazione in un caso di studio concreto. 1. Introduzione Le minacce informatiche sono uno dei principali problemi dell’era digitale. Tutti i sistemi che fanno uso di tecnologie informatiche sono potenzialmente soggetti a vulnerabilità che potrebbero essere sfruttate da software malevoli (virus, worms ecc.) e da criminali. La situazione è ancora più delicata se consideriamo il caso delle infrastrutture critiche, ossia quelle infrastrutture il cui danneggiamento può impattare seriamente la vita del comune cittadino. Esempi di Speciale Sicurezza ICT A bstract Security threats are one of the main problems of this computer-based era. All systems making use of information and communication technologies (ICT) are prone to failures and vulnerabilities that can be exploited by malicious software and agents. Considering the massive use of ICT technologies in the so called “critical infrastructures”, it become imperative to perform adequate security risk assessments, putting in evidence the main threats a system is exposed to and eventually the effectiveness of the possible countermeasures. Unfortunately, the peculiarities of industrial critical infrastructures make hard the use of traditional security assessment techniques. In this paper we present an innovative security assessment methodology tailored for these particular systems, and based on the system-of-system paradigm and on the concept of “service oriented modelling”. After giving an overview of the State of the Art in the field of security assessment for Critical Infrastructures, we provide some basic definitions on security and critical infrastructures. Then we describe the proposed methodology, presenting the results of its application on a real case study. infrastrutture critiche possono essere centrali elettriche, impianti per l’acqua potabile, ma anche sistemi di controllo del traffico ferroviario, aereo e così via. Se una di queste infrastrutture venisse attaccata o danneggiata, gli effetti potrebbero essere estremamente dannosi. Per questo motivo tali infrastrutture dovrebbero essere ciclicamente sottoposte a processi di security assessment (i.e. valutazione della loro sicurezza), al fine di individuare eventuali falle e porvi rimedio. In questo articolo poniamo l’attenzione su quelle infrastrutture critiche che, per definizione, vengono 101 Igor Nai Fovino definite industriali (centrali elettriche, nucleari, sistemi di controllo ferroviari, reti gas, acquedotti ecc.). Tali infrastrutture presentano peculiarità che, per motivi storici e tecnici, le differenziano nettamente da quelle informatiche tradizionali. Le infrastrutture industriali combinano assieme tipici sistemi informatici (basi di dati, protocolli TCP/IP, sistemi operativi ed applicazioni da ufficio), con software ed elementi aventi caratteristiche di tempo reale che implementano le funzioni di controllo dei dispositivi di basso livello (ad esempio sistemi per il controllo e la misura della pressione di condutture, della velocità di turbine, del grado di apertura di valvole idrauliche, ecc.). Negli ultimi anni, questi già complessi sistemi ibridi, hanno iniziato ad essere connessi a reti interne ed esterne al perimetro aziendale. Se da una parte tale innovazione tecnologica ha reso possibili molti nuovi servizi, d’altro canto essa ha aperto le porte a nuovi, più inquietanti scenari e possibilità di attacco. Così, mentre sino agli anni ’90 la sicurezza delle infrastrutture critiche era più che altro un fatto di “sicurezza fisica e controllo degli accessi”, nei moderni sistemi, non più isolati dal resto del mondo, le vulnerabilità informatiche sono diventate oggetto di massima attenzione. Mentre per le infrastrutture informatiche tradizionali esistono in letteratura (come verrà presentato nella sezione relativa) metodologie per la valutazione della sicurezza informatica ben collaudate, il campo della valutazione della sicurezza informatica delle infrastrutture critiche industriali è relativamente giovane. La maggior parte dell’attenzione, in questo contesto, è spesso concentrato sulla valutazione dei classici sistemi informatici della rete aziendale, tralasciando completamente tutto ciò che avviene nel lato industriale degli impianti. Purtroppo i maggiori rischi, come il caso Stuxnet [1] insegna, sono nella parte bassa di queste infrastrutture, ossia in quelli più vicini ai meccanismi di controllo. Le metodologie tradizionali di valutazione della sicurezza informatica non sono adeguate ad analizzare questa parte dei sistemi industriali: la coesistenza di ambienti molto eterogenei (sistemi real-time, sistemi elettromeccanici, software sviluppati appositamente per applicazioni particolari, sistemi desktop), i vincoli che derivano dai fenomeni fisici controllati da questi sistemi (ad esempio la stabilità elettrica) e gli obiettivi di business nettamente diversi rispetto al mondo informatico tradizionale costituiscono elementi di difficile valutazione e com- 102 prensione. Per rendere chiara questa diversità, consideriamo questo esempio: è prassi normale avere delle politiche di software patch nei sistemi informatici, spesso configurate per installare automaticamente nuovi aggiornamenti quando questi sono disponibili. Mentre tale pratica è da considerare altamente consigliata in sistemi informatici tradizionali, nel caso dei sistemi industriali potrebbe non essere la migliore: spesso l’installazione di una patch richiede il riavvio della macchina, ma se questa macchina controlla un processo industriale, il suo riavvio implica automaticamente l’alt dell’intera catena di produzione, fatto questo che causa notevoli costi economici e che potrebbe non essere possibile se non mettendo a rischio servizi ritenuti vitali per la società (si pensi allo stop di una centrale elettrica). Questi vincoli influenzano pesantemente il modo e le procedure che devono essere intraprese quando si tratta di intervenire sulla sicurezza di infrastrutture industriali, e di conseguenza l’analisi di sicurezza deve essere in grado di tenerne conto. Inoltre tali considerazioni mettono in evidenza come esista la necessità di includere nei processi di analisi la comprensione del funzionamento di elementi che con l’informatica hanno in linea di principio ben poco a che fare. Ciò pone l’attenzione sulla necessità di tenere in considerazione dell’eterogeneità di informazioni che un processo di analisi della sicurezza deve essere in grado di processare nel caso di infrastrutture industriali: • Caratteristiche dei sistemi coinvolti (hardware, procedure, processi, politiche di sicurezza, politiche di operatività in condizioni normali e di emergenza, ecc.). • Vulnerabilità. • Minacce (agenti di minaccia, risorse di attacco stimate, ecc.). • Attacchi. • Contromisure. Oltre a tutto questo è necessario tenere conto anche delle interazioni tra azioni malevole, fallimenti accidentali di sistemi di controllo ed errori umani. Negli ultimi anni le cose poi si sono ulteriormente complicate: l’utilizzo della rete pubblica per interconnettere diverse parti di queste infrastrutture critiche, ha fatto evolvere questi sistemi da “isolati” a complessi sistemi-di-sistemi. Così, la comprensione degli effetti collaterali o dei fallimenti locali, deve Speciale Sicurezza ICT VALUTAZIONE DELLA SICUREZZA DELLE INFRASTRUTTURE CRITICHE, DEFINIZIONI E METODOLOGIA. (SECURITY ASSESSMENT OF CRITICAL INFRASTRUCTURES, DEFINITIONS METHODOLOGY) essere oggi estesa ben oltre i confini del singolo impianto, aggiungendo strati di complessità. I tradizionali processi di valutazione della sicurezza mal si sposano con il paradigma di sistema-disistema, date le intrinseche difficoltà nell’identificare le interdipendenze e gli effetti della propagazione di errori e guasti. Alcuni approcci all’analisi delle proprietà di sicurezza sono stati, ad onor del vero, proposti (si veda la prossima sezione). In generale tali metodologie mirano a collegare a descrizioni strutturali e funzionali degli obiettivi di sicurezza. In questo articolo viene presentata una nuova metodologia per la valutazione del livello di sicurezza delle infrastrutture industriali basata sul concetto di modellizzazione e mappatura dei servizi. Tale mappatura, consente di effettuare un’analisi basata sulla correlazione sistematica, passando quindi da una più tradizionale visione basata su eventi di sicurezza ad una più complessa e completa che consenta di catturare anche gli effetti di tali eventi sull’intera infrastruttura. In questo articolo, dopo aver presentato una panoramica dello stato dell’arte nell’ambito delle metodologie di valutazione della sicurezza dei sistemi IT, viene analizzata la relazione esistente tra i differenti insiemi di “informazioni” che possono essere usati per descrivere il sistema sotto analisi dal punto di vista della sicurezza informatica. Infine viene presentata la metodologia che consente di sfruttare tali informazioni al fine di analizzare il livello di sicurezza del sistema. 2. Stato dell’arte Nella letteratura scientifica non esiste una metodologia ritagliata su misura per analizzare la sicurezza informatica dei sistemi industriali; in ogni caso nel campo dell’informatica e nel campo della safety esistono alcuni approcci che vale la pena menzionare. La valutazione dei sistemi industriali è campo tradizionale della “Safety Analysis”. Solo di recente le problematiche di sicurezza sono entrate prepotentemente in questo mondo. Keeney [2] nel 2005 presentò uno studio sugli effetti del sabotaggio di sistemi informatici nelle infrastrutture critiche. Stoneburner, Goguen e Feringa [3], nel loro studio sull’analisi del rischio nei sistemi informatici descrivono una procedura basata su nove passi per la valutazione dei rischi derivanti dalle vulnerabilità dei Speciale Sicurezza ICT sistemi informatici tradizionali. Swiderski e Snyder [4] introducono il concetto di “Threat Modeling” (modellizzazione delle minacce), e presentano un approccio strutturato per identificare, valutare e mitigare rischi associati alla sicurezza dei sistemi. Tale lavoro, presentando per primo il concetto di modellizzazione delle minacce rappresenta sicuramente un passo avanti in questo ambito. Una applicazione di tale approccio nel mondo reale viene presentata in [5]. Esistono inoltre alcuni strumenti appositamente sviluppati per la valutazione di sistemi generici, come ad esempio “Microsoft Security Assessment tool” [6] e “Citicus” [7]. Il primo implementa in sostanza un tradizionale processo di “check list”; in altre parole, l’intero processo di valutazione passa attraverso una serie di sessioni di “domanderisposte” che guidano l’analista nell’esecuzione della valutazione, e che producono come output una serie di raccomandazioni. Ovviamente, vista la sua genericità, tale oggetto è lungi dall’essere in grado di fornire un’analisi esaustiva e precisa, specialmente nel campo dei sistemi industriali, per l’analisi dei quali, ovviamente, non è stato concepito. Il secondo strumento, Citicus, è basato sul concetto di rischio percepito, categorizzando di fatto tali rischi in accordo con una serie di criteri preconfezionati. L’approccio OCTAVE [8], introdotto dal “Software Engineering Institute” del MIT verso la fine degli anni ’90, rappresenta al momento la più esaustiva metodologia per l’analisi del rischio nel campo dei sistemi informatici. Non è stata però concepita per analizzare i sistemi industriali e per questo risulta poco precisa nell’analizzare l’impatto e le ripercussioni di vulnerabilità informatiche in questi sistemi. Il progetto CORAS (2001-2003) [9], sviluppò una metodologia di analisi basata sulla modellizzazione di sistemi informatici. Sfortunatamente, anche in questo caso, in fase di progetto, non vennero prese in considerazione le problematiche dei sistemi industriali. Dalla presentazione di tutti questi metodi, è possibile ricavare una importante osservazione: la valutazione della sicurezza richiede una descrizione adeguata del sistema da analizzare, prendendo in considerazione tutte le rilevanti prospettive: politiche, operazioni, strutture e funzioni, collegamenti fisici, fenomeni fisici, flussi informativi ecc. Il problema della modellizzazione di infrastrutture complesse è stato affrontato principalmente per scopi di progettazione o di definizione operazionale. 103 Igor Nai Fovino Differenti approcci sono stati suggeriti per modellare i sistemi alla luce di requisiti di sicurezza. Il lavoro presentato in [8] da Alberts & Dorefee è un buon esempio di metodologia di analisi del rischio basata sulla descrizione del sistema. Purtroppo tale descrizione: (a) non è formale e (b) non è in grado di essere applicata proficuamente nel caso di sistemi-disistemi. Folker Den Braber [9] adotta un approccio parzialmente descrittivo, che cattura il concetto di “ambiente avverso” introducendo, attraverso modelli UML, il concetto di “scenario di minaccia”. Questo è ovviamente un notevole passo avanti nella rappresentazione di sistemi, che potrebbe essere adattata anche al caso di quelli complessi ed interattivi. Nai Fovino, in tre lavori correlati [10-11-12] presenta un approccio basato sul concetto di sistema-disistema, che preserva l’indipendenza operazionale e manageriale dei componenti, catturando allo stesso tempo il concetto di relazione tra componenti, servizi e sottosistemi. In questo articolo viene adottato come punto di partenza tale approccio (descritto in dettaglio nelle prossime sezioni). Per fornire risultati di una certa qualità nell’ambito della valutazione della sicurezza informatica, è necessario prendere in considerazione quelli che vengono comunemente definiti “scenari di attacco”. Esistono diversi metodi in letteratura per descrivere le informazioni relative ad azioni malevole (i.e. come vengono condotte, i passi eseguiti, le vulnerabilità sfruttate ecc.). Storicamente il primo tentativo di fornire struttura a questo processo descrittivo, viene fatto risalire alla creazione di basi di dati di vulnerabilità (tra i quali Bugtraq [13] è un esempio). Tali database, ad ogni modo, sono focalizzati solo sulla descrizione di vulnerabilità, tralasciando completamente la descrizione dei processi che portano al loro sfruttamento durante un attacco. Uno dei più promettenti paradigmi descrittivi in grado di catturare quest’ultimo aspetto è il “Graph Based Attack Models” [14]. In questa categoria descrittiva due sono i principali metodi di modellizzazione: modelli basati sulle reti di Petri e modelli basati sugli alberi di attacco. Un buon esempio del primo metodo è l’ “Attack Net Model” introdotto da McDermott [15], nel quale i posti di una rete di Petri rappresentano i passi di un attacco e le transizioni sono usate per catturare in modo accurato le azioni fatte dall’attaccante. Il capostipite del secondo metodo di modellizzazione è sicuramente Bruce Schneier [16], che propo- 104 se l’utilizzo di “alberi d’espansione” per mostrare le differenti linee di attacco che possono essere utilizzate contro un sistema, descrivendone i passi e le relazioni. Questo approccio è stato esteso da Nai e Masera [17] introducendo il concetto di “proiezione di attacco”. Nel presente lavoro viene adottata quest’ultima tecnica come punto di riferimento. 3. Definizione Preliminare dell’Ambiente La valutazione del rischio di infrastrutture ICT richiede la caratterizzazione (o descrizione) di due classi di informazioni: informazioni relative alla struttura del sistema sotto analisi e informazioni relative alla sicurezza stessa. Nel seguito di questa sezione verranno presentate alcune definizioni relative a queste due classi di informazioni. 3.1. Sicurezza Per quanto riguarda le informazioni concernenti la sicurezza, molto importanti sono i concetti di Minaccia, Vulnerabilità, Attacco e Rischio. Più in dettaglio, una minaccia, come indicato in [18] e nell’ “Internet RFC Glossary of Terms” viene definita come un potenziale per la violazione della sicurezza, che esiste quanto c’è circostanza, capacità, azione o evento che potrebbe fare una breccia nelle misure di sicurezza e causare danno. Una vulnerabilità, per definizione [19][20] è una debolezza del sistema sotto analisi, sia essa infrastrutturale, legata a processi, politiche, controlli ecc. Come diretta conseguenza, un attacco può essere definito come l’intero processo messo in atto da un agente di minaccia per attaccare un sistema con successo, sfruttando una o più vulnerabilità dello stesso. Infine, come definito nell’ISO/IEC 17799:2000 [21], il rischio è definito come la probabilità che un attacco/incidente accada (quando una minaccia viene attualizzata dalla combinazione di vulnerabilità ed attacchi) moltiplicato per il danno potenziale causato. 3.2. Sistema In questa seconda classe cadono tutti i concetti relativi alla modellizzazione del sistema sotto analisi. Ogni sistema può essere descritto come una collezione di entità che collaborano per realizzare un Speciale Sicurezza ICT VALUTAZIONE DELLA SICUREZZA DELLE INFRASTRUTTURE CRITICHE, DEFINIZIONI E METODOLOGIA. (SECURITY ASSESSMENT OF CRITICAL INFRASTRUCTURES, DEFINITIONS METHODOLOGY) insieme di obiettivi [22]. Per il principio di ereditarietà, tale definizione risulta vera anche per il concetto di sottosistema. Masera e Nai [10][11][12] definiscono come Componente un oggetto atomico (i.e. non ulteriormente scomponibile) in grado di realizzare in modo attivo o passivo una serie di compiti di basso livello. Gli stessi autori definiscono il concetto di Servizio come una serie di compiti realizzati da componenti o sottosistemi. Infine, sempre Masera e Nai definiscono il concetto di Dipendenza tra componenti e sotto-sistemi (e.g. un oggetto A dipende da un oggetto B se B (o un servizio fornito da B) è necessario perché A soddisfi la sua missione). In [11] è messo in fine in evidenza il concetto di Flusso Informativo, come insieme di relazioni punto a punto descriventi l’intero ciclo di vita delle informazioni del sistema sotto analisi. L’ultimo concetto necessario per descrivere un sistema ai fini di un’analisi della sicurezza, è il concetto di Asset, che viene definito in [23] come un qualsiasi elemento (nel senso più generale del termine), che abbia un valore per i proprietari del sistema o per chi ne usufruisce. Dato che la perdita o il danneggiamento di un asset impatta negativamente sul valore del sistema stesso, l’obiettivo della sicurezza è quello di proteggerlo in modo appropriato. Va da se quindi che gli asset siano per definizione gli oggetti più rilevanti dal punto di vista della sicurezza per un sistema, in quanto: 1. La loro distruzione o inabilità ad eseguire le funzioni per cui sono stati progettati può causare danno all’intero sistema. 2. Sono l’obiettivo principale della quasi totalità degli attacchi. 3. Essi possono essere esposti a vulnerabilità indirette, causate da altri componenti del sistema, di minore importanza. Un asset può avere due forme principali: (a) un insieme di componenti/servizi interni al sistema la cui perdita può danneggiare il sistema stesso. (b) un insieme di servizi esterni, necessari al sistema sotto analisi per espletare le sue stesse funzioni. Riassumendo quindi, l’approccio presentato in questo lavoro per condurre un’analisi della sicurezza di un sistema, richiede la descrizione puntuale di questi elementi: • Minacce che affliggono il sistema. Speciale Sicurezza ICT • • • • • • • Vulnerabilità. Insieme di alberi di attacco. Componenti. Servizi. Sotto-sistemi. Flussi informativi. Assets. Una valutazione della sicurezza, muoverà i suoi passi a partire dalla raccolta ed organizzazione di queste informazioni. Nella prossima sezione viene descritto come questa mole di informazioni può essere rappresentata formalmente ed utilizzata per analizzare l’esposizione di un sistema a rischi di sicurezza. 4. Analisi basata sulla modellizzazione dei Servizi In questa sezione verrà fornita una panoramica di una metodologia di analisi della sicurezza concepita appositamente per i sistemi complessi. Per ulteriori dettagli si rimanda a [10][11][12][17]. Una volta definiti i concetti di base che consentono di descrivere nella sua interezza un sistema complesso, è necessario definire un paradigma che consenta di interconnettere i differenti aspetti sotto analisi. Per fare un esempio, come mettere insieme tutte queste informazioni al fine di comprendere quali potrebbero essere gli effetti di una certa vulnerabilità di un componente di un sistema industriale, sugli assets di business dello stesso sistema? Dato che gli elementi da considerare per retropropagare gli effetti di una vulnerabilità di una infrastruttura che è per definizione un sistema-di-sistemi sono molti, una delle sfide chiave è quella di individuare un paradigma che consenta di “potare” l’informazione in eccesso senza offuscare la qualità dei risultati ottenuti dall’analisi. Per risolvere tale problema, come illustrato in [10][11], viene introdotto il concetto di Servizio. Se consideriamo gli oggetti che compongono un sistema come “produttori e consumatori di servizi”, è possibile sviluppare una dettagliata descrizione delle relazioni che legano questi oggetti e catturare quindi il concetto di dipendenza che è di fatto alla base di un’analisi di sicurezza che voglia comprendere gli effetti diretti ed indiretti delle vulnerabilità informatiche su di un sistema complesso. Più in dettaglio: 105 Igor Nai Fovino Definizione: definiamo un servizio come una tupla s = <nome, descrizione, ID, sdr>, dove: nome identifica il servizio, descrizione dà una breve descrizione funzionale del servizio, ID è l’identificatore del “produttore del servizio” e sdr, come definito nel seguito, rappresenta l’informazione relativa alle dipendenze del servizio stesso (e.g. “per completare la sua missione, il servizio x necessita il diretto contributo dei servizi k, z, m”). Ovviamente è possibile ribaltare il concetto di servizio, parlando quindi di Disservizio come l’inaspettato deterioramento o completa mancanza del servizio stesso. L’importanza del concetto di disservizio, è noto nella letteratura scientifica relativa per esempio alle tecniche di analisi del guasto (Fault Tree Analysis). Ad ogni modo la sua rilevanza non è stata, sino ad ora, mai sottolineata nel campo dell’analisi di sicurezza informatica. Nella metodologia di analisi proposta in quest’articolo, abbiamo adottato una descrizione del sistema basata sul paradigma dell’analisi dei servizi. Inoltre è stato introdotto il concetto di disservizio. In tal modo, il sistema descritto assume un aspetto simile a quello di un grafo orientato. Ogni componente e sottosistema è direttamente o indirettamente interconnesso attraverso quella che può essere definita una “catena di servizi” che esprime il legame intercorrente tra tutti quei componenti, sottosistemi e servizi necessari per portare a termine una certa missione. A riguardo degli Assets, a causa della loro natura eterogenea (un asset può essere un componente, un sottosistema, un servizio od un insieme comprendente tutte queste cose), non è semplice legarli alle potenziali minacce. Essendo però, per loro stessa natura degli oggetti compositi, è possibile far ereditare agli assets stessi tutte le relazioni, vulnerabilità ecc. che sono proprie dei componenti, dei servizi e dei sottosistemi che li compongono. In tal modo, anche gli Assets rientreranno nelle catene di servizio e di disservizio del grafo che rappresenta il sistema sotto analisi. Per chiarire il concetto, si prenda in considerazione il seguente esempio: un sistema X fornisce ad un agente esterno un Servizio Informativo IS (e.g. una centrale elettrica che fornisce informazione in merito all’energia prodotta ad una entità esterna). Questo servizio è realizzato tramite l’utilizzo di una applicazione web (WAS) al livello di sottosistema. I dati inviati all’agente esterno sono memorizzati in un database, che fornisce un servizio di memorizzazione (SS). Questi dati sono il risultato di una computazione basata sulle informazioni recuperate da sensori 106 remoti, che forniscono un servizio di Monitoring sul campo (FMS). Il servizio di alto livello IS, è collegato a WAS in modo funzionale. Inoltre esiste un flusso informativo tra WAS, SS e FMS. In altre parole esiste un collegamento indiretto tra WAS ed SS e tra SS e FMS. Questo insieme di collegamenti, che evidenziano come il fallimento di FMS possa avere un effetto su IS, sono un chiaro esempio di catena di servizi. Come in [12] definiamo la relazione di servizio come segue: Definizione: un sistema Sn è definito come un insieme Sn ={s1, ..., sn, desc} dove s1, ..., sn sono i servizi forniti da Sn e desc è la descrizione generale del sistema stesso. Senza perdere generalità possiamo descrivere un sottosistema ed un componente allo stesso modo. Definizione: Sia SoS={Sa, Sb, …, Sn} l’insieme dei sistemi/sottosistemi/componenti in SoS, tali che Serv sia l’insieme di tutti i servizi di SoS, allora una dipendenza di servizio è una tupla sdr=<s, sid, inset, outset, lf>, dove s è un servizio, sid è l’identificatore di un sistema/sottosistema/componente Sa in SoS (che produce il servizio), Inset dove Inset={<d, w> | d ∈ Serv, w ∈ ℵ} rappresenta la collezione dei servizi che contribuiscono direttamente alla realizzazione del servizio in questione, con associata una serie di pesi (indicanti la loro rilevanza) w. lf rappresenta una espressione logica del secondo ordine che consente di mettere in evidenza, combinata con i pesi w dell’Inset come e con quale rilevanza i suddetti servizi sono logicamente correlati con quello sotto analisi. In questo modo per esempio, è possibile rappresentare il fatto che un certo servizio A, per essere fornito, necessita la combinazione dei servizi (B∧C)∨D e che ognuno di questi servizi deve essere considerato come “fornito” ad A sino a quando le sue performances non sono al di sotto il peso associato w (un po’ come nel caso della minima QoS richiesta in certe applicazioni). Infine, Outset è la lista di tutti i servizi ai quali il servizio in esame fornisce direttamente un contributo. Utilizzando queste definizioni, siamo quindi in grado di costruire, partendo da un certo punto di inizio, (componente, sottosistema, ecc.) del sistema sotto analisi, una catena di servizi. Tale catena risulta quindi essere un grafo orientato che descrive le connessioni dirette ed indirette tra i servizi di un componente/sottosistema e tutti gli Speciale Sicurezza ICT VALUTAZIONE DELLA SICUREZZA DELLE INFRASTRUTTURE CRITICHE, DEFINIZIONI E METODOLOGIA. (SECURITY ASSESSMENT OF CRITICAL INFRASTRUCTURES, DEFINITIONS METHODOLOGY) altri servizi forniti da altri oggetti. Da un punto di vista di analisi della sicurezza, queste connessioni possono essere utilizzate per identificare l’insieme delle “dipendenze dei servizi”. Come definito da Masera, una “dipendenza di sicurezza” esiste quando esiste una relazione tra due sistemi(o sottosistemi o componenti) A e B, tale per cui un errore interno in B, possa essere propagato attraverso una catena di guasti, errori e fallimenti, al sistema A. In tal caso, prendendo ispirazione da Avizienis et al. [25], possiamo parlare di catene patologiche, ossia di catene che rappresentano il possibile decorso patologico di una malattia (nel nostro caso, il fallimento di parte del sistema sotto analisi). Ragionando in termini di sicurezza informatica, possiamo dire che una catena patologica è causata da (a) eventi accidentali dovuti a fallimenti interni o ad errori umani o (b) attacchi intenzionali. Dato che ogni componente della nostra descrizione di sistema si porta, come corredo informativo, una lista delle possibili vulnerabilità intrinseche e conosciute (ossia la lista di vulnerabilità che, a priori, è possibile associare a tale componente con un certo livello di confidenza), è possibile espandere il concetto di catene patologiche aggiungendo le informazioni relative a tali vulnerabilità. In questo modo, le catene così arricchite diventano quello che possiamo definire Catene di V ulnerabilità (Figura 1). Figura 1: Esempio di catene di vulnerabilità Speciale Sicurezza ICT L’introduzione di queste catene ha tre vantaggi: 1. Consente di identificare quali vulnerabilità di basso livello (associate a qualche componente di basso livello) possono avere un effetto su servizi di alto livello (tipicamente servizi forniti dal sistema verso l’esterno) e sugli assets del sistema stesso. 2. Consente di catturare tutto l’insieme non trascurabile di potenziali effetti collaterali delle vulnerabilità identificate. 3. Costituisce la colla che unisce la descrizione del sistema con le informazioni legate alla sicurezza (vulnerabilità, minacce ed attacchi). 5. Analisi delle vulnerabilità Attraverso l’adozione del paradigma di descrizione appena presentato, siamo ora in grado di mostrare come sia possibile identificare quali vulnerabilità di basso livello possano avere un ruolo non trascurabile sulla sicurezza degli Assets del sistema sotto analisi. Sostanzialmente l’approccio proposto è il seguente: 1. Per ogni asset vengono individuate tutte le dipendenze (ricordiamo qui che un asset può essere composto da componenti, sottosistemi fisici e da servizi). 2. Per ogni elemento appartenente all’asset, vengono recuperati ed enumerati i servizi che esso fornisce. 3. Tramite l’esplorazione delle relazioni che legano i servizi dell’elemento dell’asset sotto analisi, vengono identificati tutti i componenti di basso livello che in qualche modo contribuiscono a rendere possibile il servizio di alto livello dell’asset. 4. Vengono quindi associate le vulnerabilità che potenzialmente potrebbero affliggere il componente di basso livello, che quindi vengono retro- 107 Igor Nai Fovino propagate all’asset stesso. quali asset, vulnerabili a causa di un insieme di debolezze identificate nella fase precedente, sono esposti Applicando questa procedura siamo quindi in a differenti tipi di minacce e quali sono le caratterigrado di identificare quali vulnerabilità, associate a stiche che tali minacce dovrebbero esibire per essere quali componenti, possono avere un impatto su un considerate una sorgente potenziale di rischio. asset. Questo tipo di conoscenza consentirà di deciNormalmente quando questo tipo di analisi è dere, in fasi successive del processo di valutazione applicata a sistemi relativamente piccoli, essa si esaudella sicurezza, se le politiche di sicurezza applicate risce con l’assegnazione di minacce note a possibili sono efficaci, di valutare possibili contromisure e di assets, sulla base alcune, non ben definite, ipotesi identificare scenari di attacco e di mitigazione. fatte dall’analista. Le vulnerabilità possono essere classificate, ovviaPurtroppo, questo approccio è ovviamente limitamente, a seconda della loro stimata rilevanza. Tale to se si considerano grandi sistemi come ad esempio classificazione viene utilizzata anche per identificare impianti industriali. un ordine di urgenza nell’applicazione delle controUtilizzando le informazioni derivate dalla fase misure più idonee. In Figura 2 è mostrato l’algoritmo precedente (analisi delle vulnerabilità), è possibile di alto livello che implementa questa parte dell’analimigliorare questo processo. si. Una minaccia infatti è da considerarsi rilevante se e solo se esiste una reale possibilità di realizzarla. Input: the set of System Assets (SA) Output: the set SA enriched with information related to the Per dirla in parole povere, noi vulnerabilities associated possiamo ipotizzare una minaccia “Tsunami” per un ospedale, Main { ma tale minaccia diventa realistiSelect Asset from SA ca se e solo se l’ospedale si trova For each element i in Asset do J=i in prossimità del mare e non If i is a service then J=service.ID sulle Alpi. Inspect (J) Allo stesso modo, non ha } Function Inspect (J) senso collegare minacce infor{ matiche ad assets che, dall’analisi If check_cycle(J)=false precedente, risultano non impatthen if J.vulnset ? ø then Asset.vulnset=Asset.vulnset+J.vulnset tati da questo tipo di minacce. for each service provided by J In modo del tutto simile { sdr=retrieve s.sdr all’approccio presentato nella for each service in s.sdr.inset Inspect(s.sdr.inset.ID) sezione precedente, un’analisi } delle minacce basata sul concetto } di servizio, si sviluppa nel Figura 2: algoritmo di analisi delle vulnerabilità seguente modo: 1. Dall’insieme di tutti i possibili assets, solo il sottoinsieme di quelli affetti 6. Valutazione delle Minacce da vulnerabilità (dirette o indirette) viene preso in considerazione. La determinazione di quali vulnerabilità possano 2. Per ogni elemento degli assets vulnerabili, il impattare gli assets di un sistema non è ovviamente sottoinsieme dei servizi coinvolti viene identisufficiente per considerare conclusa un’analisi di ficato. sicurezza. 3. Le minacce ipotizzate (ipotesi basate sull’idenA questo punto è infatti necessario analizzare tificazione di minacce specifiche per scomparquali minacce possono utilizzare le vulnerabilità ti industriali o sulla base di informazioni punidentificate per danneggiare il sistema. Questo è un tuali relative alla compagnia proprietaria delpasso importante, che consente di identificare gli l’impianto), vengono associate ai servizi di obiettivi di attacco più probabili. sottosistema individuati. L’obiettivo di questa fase è quello di identificare 4. Tramite l’esplorazione delle dipendenze di ser- 108 Speciale Sicurezza ICT VALUTAZIONE DELLA SICUREZZA DELLE INFRASTRUTTURE CRITICHE, DEFINIZIONI E METODOLOGIA. (SECURITY ASSESSMENT OF CRITICAL INFRASTRUCTURES, DEFINITIONS METHODOLOGY) vizio e delle relazioni esistenti, viene verificato se le minacce possono propagare i loro effetti sugli assets definiti vulnerabili. In tal modo, non solo è possibile ottenere un insieme più preciso, documentato e focalizzato di servizi di sottosistema minacciabili, ma viene analiticamente dimostrato come queste minacce possono affliggere questi servizi e quindi indirettamente i relativi assets. 7. Analisi degli Scenari di attacco Il processo di analisi degli attacchi consiste nell’identificazione dei potenziali attacchi che possono essere realizzati con successo per portare a termine le minacce in precedenza identificate. Questa parte dell’analisi è estremamente importante, in quanto consente di fornire indicazioni sulla reale robustezza del sistema, sulla sua esposizione, e sulle possibili contromisure da intraprendere. Come descritto precedentemente, un attacco può essere rappresentato per mezzo di alberi di attacco, che specificano i passi e le condizioni richieste per la sua realizzazione. Purtroppo un albero d’attacco è generalmente troppo astratto, nel senso che esprime concetti come il seguente: “per realizzare l’attacco è necessario avere la vulnerabilità x sul componente y e la vulnerabilità z sul componente K”. Tali informazioni sono di scarso aiuto nel processo di validazione perché il fatto che tali componenti esistano nel sistema non implica che essi siano interconnessi o che siano dipendenti in un modo che consenta la realizzazione dell’attacco stesso. Un processo di validazione condotto senza questo tipo di informazioni aggiuntive produrrà certamente risultati poco utili e ricchi di falsi positivi. Le informazioni ottenute dalla modellazione orientata ai servizi, consentono di mitigare il rischio di falsi positivi nel processo di validazione degli attacchi. Infatti, è possibile mappare gli alberi di attacco sul sistema sotto analisi utilizzando come guida le catene di dipendenza e di disservizio. Le relazioni tra servizi contengono in modo intrinseco ciò che nel gergo sistemistico è noto come “conoscenza locale” e “diametro della rete”. In altre parole, utilizzando questi tipi di conoscenza è possibile identificare se esista qualche dipendenza e connessione tra componenti vulnerabili che sia di interesse a causa di qualSpeciale Sicurezza ICT che minaccia sottesa. La validazione degli attacchi, da una prospettiva orientata ai servizi, avviene quindi come segue: 1. Gli attacchi che possono essere associati a minacce precedentemente validate sono identificati e presentati come ipotesi da verificare. 2. Per ogni minaccia validata, i sottosistemi associati e le relative relazioni sono identificate. 3. Gli alberi di attacco associati alle minacce selezionate sono validati tenendo in considerazione le informazioni derivate dalle catene di disservizio, dalle relazioni di dipendenza e da possibili asserzioni condizionali (i.e. asserzioni aggiuntive che esprimano ulteriori condizioni da soddisfare). 4. Gli attacchi validati sono utilizzati per stimare l’impatto sugli assets, tenendo in considerazione gli effetti diretti ed indiretti (ricavabili, ancora una volta, dall’analisi delle catene di dipendenza e disservizio). In questo modo è possibile ridurre lo spazio degli attacchi da analizzare ai soli aventi effettivamente possibilità di impattare sul sistema, diminuendo notevolmente il numero di falsi positivi. L’output dei passi precedentemente presentati consente di mettere quindi in evidenza: 1. Le dipendenze che legano il sistema industriale sotto analisi. 2. Le vulnerabilità di basso livello che possono impattare sul sistema e la loro catalogazione a seconda della severità di impatto e della probabilità di occorrenza. 3. Gli asset che possono essere minacciati. 4. L’insieme degli attacchi che possono essere con buona probabilità di successo realizzati contro un certo insieme di assets. Tali informazioni consentono di computare agilmente un calcolo del rischio al quale l’impianto è sottoposto, e di individuare agilmente le contromisure più opportune. 8. Risultati Sperimentali La metodologia presentata nelle sezioni precedenti è stata implementata all’interno di uno strumento software (InSAW-Industrial Security Assessment Workbench) che ne consente l’utilizzo immediato [26]. 109 Igor Nai Fovino Il cuore di tale software è un’articolata base di dati relazionale in grado di contenere informazioni relative a tutti gli oggetti necessari per l’analisi, compreso un set di librerie di vulnerabilità, alberi di attacco e minacce collezionate nel corso di anni di test ed esperimenti. Tale strumento è dotato di una mappatura ad oggetti che consente di rappresentare graficamente l’intera architettura dell’infrastruttura industriale analizzata, associandovi componenti e vulnerabilità in modo automatico. Una suite di algoritmi appositamente sviluppati consente di retro-propagare le vulnerabilità sugli assets, di mappare gli attacchi e di validarne la fattibilità. Tale strumento è stato sviluppato presso il Centro di Ricerca della Commissione Europea di Ispra [26]. La metodologia presentata nelle sezioni precedenti, è stata applicata con successo in diversi contesti. In particolare è stata utilizzata per valutare la sicurezza di sistemi di controllo industriale e di centrali elettriche[27][28]. In questa sezione vengono presentati brevemente i risultati della sua applicazione nella valutazione della sicurezza informatica di una centrale elettrica. I risultati sono volutamente descritti ad alto livello, in quanto coperti da non-disclosureagreement. Un impianto di generazione è un ambiente estremamente complesso, che coinvolge molti sistemi diversi, sia da un punto di vista tecnico, che di requisiti che di politiche e gestione. In accordo con la metodologia presentata l’impianto è stato analizzato per identificare: Assets, flussi informativi, componenti, sottosistemi, servizi e dipendenze tra i differenti servizi. I sottosistemi individuati sono stati i seguenti: - Sottosistema di Campo: ospita i PLC/RTU di controllo, gli attuatori ed i sensori della centrale elettrica. - Sottosistema di controllo di processo e acquisizione dati: è quello che in gergo tecnico viene chiamato sistema SCADA, e che ha in carico il controllo dei processi di centrale. - Rete di controllo: che interconnette tutti i sottosistemi di centrale. - Rete Dati: che interconnette centrali diverse. - Business network: che contiene tutti i sistemi utilizzati dagli operatori e tutte le funzioni così dette “corporate”. - Firewall: sistema che in realtà raggruppa tutti i firewall e gli elementi di controllo sparsi all’in- 110 terno delle diverse reti, e che per comodità sono stati raggruppati all’interno di un unico sistema. Il numero di componenti analizzati ed enumerati durante l’analisi è stato nell’ordine delle tremila entità. Ad ognuno di questi componenti sono stati automaticamente associati gli insiemi di vulnerabilità che potrebbero in ipotesi, affliggerli (tale operazione è stata resa possibile grazie all’utilizzo di un database appositamente realizzato per le vulnerabilità dei sistemi industriali). A seguito di questa fase esplorativa, sono state identificate le politiche operazionali e di sicurezza applicate ad ogni componente e sistema identificato. Sono stati inoltre identificati i requisiti operazionali di processo e di funzionamento. Tali informazioni sono state poi utilizzate in fase di analisi per identificare se e come certi profili di attacco potessero avere senso, e per valutare l’impatto di eventuali contromisure. Agli asset risultanti esposti a vulnerabilità di basso livello (informazione derivata dall’analisi delle catene di vulnerabilità e disservizio), sono state in seguito associate ipotesi di minaccia basate sulla classificazione fornita dall’U.S. GAO [29]. In questo caso particolare sono stati considerati 5 particolari agenti di minaccia: - Insiders: ossia dipendenti della stessa azienda proprietaria dell’impianto. - Crackers. - Malware Interni. - Malware Esterni. - Gruppi organizzati: hacktivisti (ossia hacker che sposano cause tipiche dei moderni attivisti), crimine organizzato, ecc. Seguendo tale approccio, sono state individuate circa 1000 differenti vulnerabilità di un certo rilievo, e tra queste, 156 aventi un impatto critico sul sistema sotto analisi. Tali vulnerabilità sono state classificate in accordo con la loro probabilità di occorrenza e con la severità del loro impatto sull’infrastruttura. Sulla base delle conoscenze accumulate, sono stati identificati sette potenziali scenari di attacco complesso in grado di impattare sulla centrale in esame. Come detto all’inizio di questa sezione, non è possibile riportare in questo lavoro i dettagli di tali scenari. Ciò che ha rilevanza è in ogni caso il fatto che molti di questi scenari di attacco sfruttano una serie Speciale Sicurezza ICT VALUTAZIONE DELLA SICUREZZA DELLE INFRASTRUTTURE CRITICHE, DEFINIZIONI E METODOLOGIA. (SECURITY ASSESSMENT OF CRITICAL INFRASTRUCTURES, DEFINITIONS METHODOLOGY) di effetti collaterali che, senza l’applicazione di una metodologia di analisi basata sulla modellizzazione dei servizi, sarebbe stato estremamente difficile scoprire. 9. Conclusioni Centrali Elettriche, sistemi di controllo dei trasporti, reti elettriche, gasdotti, sono tutte infrastrutture necessarie per la vita di tutti i giorni, che, per le loro peculiarità storiche sono sempre state viste come modi completamente isolati, a se stanti, e per questo avulse dai fenomeni di criminalità informatica che le cronache ci hanno abituato ad osservare in altri campi. Il senso di sicurezza derivato da questa supposta estraneità di tali infrastrutture nei confronti delle minacce informatiche, non ha motivo di esistere. L’imperante diffusione delle tecnologie informatiche nel mondo del controllo di processo industriale, la diffusione dell’utilizzo delle classiche reti informatiche basate su TCP/IP per scambiare flussi di controllo, se da una parte ha reso possibili incredibili passi avanti nella gestione coordinata di tali installazioni, dall’altra ha aperto le porte a nuovi, inimmaginabili scenari di fallimento, dovuti proprio alle vulnerabilità del mondo informatico. La valutazione del livello di sicurezza informatica delle infrastrutture critiche industriali è diventato, alla luce di tutto ciò, di grande importanza. La letteratura scientifica moderna, è ricca di esempi di metodologie di valutazione della sicurezza applicate a sistemi informatici tradizionali. Tali metodologie purtroppo si sono rivelate poco adatte ad analizzare realtà estremamente complesse, eterogenee e peculiari come quelle dei sistemi industriali. In questo lavoro è stata fornita una panoramica di una metodologia per la valutazione di sicurezza di tali sistemi, sviluppata nei laboratori del Centro di Ricerca della Commissione Europea e poi applicata in diversi casi di studio. Tale metodologia, si basa sul concetto di modellizzazione delle relazioni esistenti tra i vari componenti del sistema sotto analisi e nell’utilizzo della conoscenza derivante da tale modellizzazione, al fine di identificare e comprendere a pieno gli effetti collaterali di eventuali vulnerabilità identificate ed il loro impatto su quelli che vengono comunemente definiti gli asset dell’infrastruttura. L’adozione di tale metodologia non è ovviamente indolore, in quanto la quantità di informazioni da gestire ed analizzare è ingente, ma, test sul campo hanno dimostrato come la sua applicazione sia in realtà fattibile e come i risultati ottenuti valgano il costo dello sforzo intrapreso. BIBLIOGRAFIA [1] [2] [3] [4] [5] [6] [7] [8] [9] Stuxnet: http://www.symantec.com/connect/blogs/w32stuxnet-dossier M. Keeney, E. Kowalski, D. Cappelli, A. Moore, T. Shimeall, S. Rogers. “Insider Threat Study: Computer System Sabotage in Critical Infrastructure Sectors”. CMU, May 2005. G. Stoneburner, A. Goguen, A. Feringa. “Risk Management Guide for Information Technology Systems”. Special publication 800-3, National institute of Standards and Technology. Frank Swiderski and Window Snyder. “Threat Modeling”, Microsoft Press 2004 E. Bertino, D. Bruschi, S. Franzoni, I. Nai-Fovino, and S. Valtolina. “Threat modelling for SQL Servers”. Eighth IFIP TC-6 TC-11 Conference on Communications and Multimedia Security (CMS 2004), September 2004, UK, pp189-201. “Microsoft Security Assessment Tool” https://www.securityguidance.com/ “Citicus ONE”. http://www.citicus.com C. Alberts A. Dorofee “Managing Information Security Risks: The OCTAVE (SM) Approach”, July 2002, Addison Wesley Professional. Folker den Braber, Theo Dimitrakos, Bjørn Axel Gran, Ketil Stølen, Jan Øyvind Aagedal, “The CORAS methodology: Model-based risk management using UML and UP”, in UML and the Unified Process. IRM Press, 2003. Speciale Sicurezza ICT 111 Igor Nai Fovino [10] Masera, M. & Nai Fovino, I., Models for security assessment and management. In proceeding of the International Workshop on Complex Network and Infrastructure Protection, 2006. [11] Masera, M. & Nai Fovino, I. (2006). Modelling Information Assets for Security Risk Assessment in Industrial settings. 15th EICAR Annual Conference [12] Nai Fovino, I. & Masera, M. (2006). “Emergent Disservices in Interdependent Systems and System-ofSystems”. In proceeding of the IEEE Conference on Systems, Man and Cybernetics, October 8-11 2006, Taipei. [13] Bugtraq vulnerability database. http://securityfocus.com [14] Steffan, J., Schumacher, M.: Collaborative attack modeling. In proceeding of the Symposium on Applied Computing, Madrid, Spain (2002) pp. 253 – 259 [15] McDermott, J. (2000). “Attack Net Penetration Testing”. In The 2000 New Security Paradigms Workshop (Ballycotton, County Cork, Ireland, Sept. 2000), ACM SIGSAC, ACM Press, pp. 15-22. [16] Schneier, B.: Modeling Security Threats, Dr. Dobb's Journal. https://www.schneier.com/paper-attacktrees-ddj-ft.html (2001). [17] Nai Fovino, I. & Masera.M (2006). "Through the Description of Attacks: a multidimensional View". In proceeding of the 25th International Conference on Computer Safety, Reliability and Security 26-29 September 2006 Gdansk, Poland [18] Jones, A., Ashenden, D.(2005). “Risk Management for Computer Security : Protecting Your Network & Information Assets”. Elsevier (March 2005). [19] Alhazmi, O., Malaiya, Y., & Ray, I. (2005). “Security Vulnerabilities in Software Systems: A Quantitative Perspective”. Lecture Notes in Computer Science, Volume 3654/2005. (2005) Publisher: Springer-Verlag GmbH. [20] Bishop, M. (2004). “Computer Security Art and Science” (November 2004) AddisonWesley. [21] Code of Practice for Information Security Management. International Standard (ISO/IEC) 17799:2000. [22] IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology [23] Masera, M. & Nai Fovino, I. (2005). “A framework for the security assessment of remote control applications of critical infrastructures”, ESREDA 2005. [24] Masera, M. (2006). “Interdependencies and Security Assessment: a Dependability view”. In proceeding of the IEEE Conference on Systems, Man and Cybernetics, October 8-11 2006, Taipei. [25] Avizienis, A., Laprie, J.C., Randell, B. and Landwehr, C. (2004). “Basic Concepts and Taxonomy of Dependable and Secure Computing”. IEEE Tr. On Dependable and Secure Computing, Jan–March 2004 (Vol 1, No. 1), pp 11–33. [26] I. Nai Fovino, M. Masera “InSAW-Industrial Security Assessment Workbench”. In proceeding of the International Conference on Infrastructure Systems, Rotterdam, November 10-12, 2008 [27] I. Nai Fovino, M. Masera, L. Guidi, A. Stefanini. "Cyber Security Assessment of a Power Plant". International Journal of Electric Power System Research, Elsevier, 81 (2), pp. 518-526 [28] Dondossola, G., Szanto, J., Masera, M. and Nai Fovino, I., Evaluation of the effects of intentional threats to power substation control systems. International Journal of Critical Infrastructure, 2007 [29] Critical Infrastructure Protection, Challenges and Efforts to Secure Control Systems. United States Government Accountability Office, 2004. GAO-04-628T. 112 Speciale Sicurezza ICT