9
Per innovare i contenuti e gli obiettivi della linea di ricerca, dal punto di vista
della conoscenza dei sistemi e reti, è necessaria la comprensione della loro
natura complessa, evolutiva e senza confini.
Dal punto di vista delle nuove teorie e codici di analisi è necessario:
ξ esportare la conoscenza dai metodi, già dimostratosi efficacie nell’analisi
della dependability di sistemi più semplici, alla scala ed alla complessità del
problema;
ξ la definizione di nuovi indicatori di vulnerabilità e sicurezza (come la
reazione e riconfigurazione agli attacchi informatici, qualità dei servizi
essenziali in presenza di eventi avversi);
ξ l’investigazione della composizione di metodi di modellazione eterogenei
capaci di implementare differenti paradigmi di modellazione (stocastico e
deterministico, continuo e discreto, simulazione ed esplorazione esaustiva);
ξ considerare l’impatto dell’abbattimento delle protezioni per la security sugli
altri attributi di dependability (disponibilità, affidabilità, safety);
ξ guadagnare cross- fertilization da campi differenti (scienza della
complessità, teora del caos, …).
Progetti di riferimento
Il presente lavoro di tesi scaturisce si alimenta e contribuisce a diversi progetti,
in diverse fasi di realizzazione presso l'unità di Calcolo e Modellistica di ENEA
CR Casaccia:
1. Progetto EU FP5 SAFETUNNEL;
2. Progetto EU FP6 IRRIIS;
3. Progetto CRESCO di PON MIUR;
10
4. Proposta progettuale SIPRI sottoposta a PNR di MIUR;
Il progetto europeo SAFETUNNEL propone un sistema di telecontrollo per il
miglioramento della sicurezza nei tunnels e nel corso del progetto realizza un
dimostratore del sistema.
Il sistema di telecontrollo è basato su rete pubblica mobile che implementa
connessione GSM e GPRS, veicoli strumentati e console di controllo posta nel
Tunnel Control Centre.
Il sistema è progettato per operare nelle condizioni normali e di emergenza
previste per i tunnel ed è dimensionato per le condizioni massime di carico della
rete mobile nelle diverse condizioni operative del tunnel ed ipotizzando che tutti
i veicoli siano strumentati e siano collegabili con la console di sistema, tramite
la rete pubblica.
Il sistema implementa le funzioni di registrazione dei veicoli, monitoraggio
veicoli e telecontrollo dei veicoli. Il dimostratore SAFETUNNEL consiste di
due prototipi di veicoli strumentati (IVECO e Renault Trucks), degli elementi di
interfaccia dei veicoli alla rete pubblica, di comunicazione mobile e del
prototipo della console SAFETUNNEL.
Il dimostratore è quindi il sottoinsieme prototipo, che viene effettivamente
implementato, dall’intero sistema SAFETUNNEL.
La validazione del sistema è avvenuta mediante sperimentazione su prototipo e
modellazione.
La modellazione ha seguito un approccio funzionale, basato su model checking,
ed un approccio stocastico basato sulle Reti di Attività Stocastica.
L'obiettivo della validazione tramite modellazione era di verificare l'esistenza di
margini di sicurezza intesi come numero di canali disponibili da progetto
rispetto a quelli necessari per implementare le funzioni del sistema di tele
controllo in condizioni operative normali.
11
La modellazione stocastica è stata utilizzata per capire se e come questo margine
di sicurezza poteva essere ridotto da eventi di guasto e di richiesta di risorse in
voce ed in dati della rete.
Il progetto SAFETUNNEL è concluso al 31-12-2004.
Il progetto Integrato IRRIIS “Integrated Risk Reduction of Information-based
Infrastructure Systems” è un progetto integrato di EU FP6 ed è focalizzato alla
comprensione di infrastrutture tecnologiche come le grandi reti nazionali di
distribuzione di energia elettrica e di telecomunicazione, le loro possibili
interrconnessioni e relativi comportamenti al guasto ed alle intrusioni
informatiche, le loro vulnerabilità interne, rischi associati e le possibili misure
protettive.
Il progetto parte ad inizio 2006.
Il progetto SIPRI “Sistema Integrato di Previsione e Prevenzione del Rischio e
di Gestione delle Emergenze" intende realizzare un sistema ad elevata
scalabilità, affidabilità, disponibilità e sicurezza in grado di integrare dati e
informazioni rese disponibili da operatori diversi, per monitorare in tempo reale
lo stato del territorio e delle infrastrutture critiche (trasporti, energia,
comunicazioni,….) che insistono su di esso.
Tale sistema consentirà, inoltre, di effettuare previsioni sulle conseguenze di
azioni atte a modificare il livello di disponibilità delle infrastrutture stesse,
avvalendosi dell’accesso in banda larga a informazioni sia di tipo documentale
che derivate attraverso modelli di simulazione, e di diffondere early warning a
tutti i soggetti coinvolti nella gestione delle emergenze.
Nell'ambito del progetto CRESCO, finanziato da MIUR l'unità di Calcolo e
Modellistica di ENEA si pone l’obiettivo di studiare la vulnerabilità di reti
12
complesse in termini di affidabilità, sicurezza, qualità di servizio e prestazioni,
con particolare riferimento alle reti di regolazione, controllo ed automazione,
globalmente e comunemente indicate con il nome di cyber layer.
Il cuore del cyber layer sono le reti di telecomunicazione, anche “multi-hops” e
pubbliche e le reti informatiche.
Questa attività, intende rispondere alle seguenti domande:
ξ Quali sono gli indicatori di vulnerabilità delle reti e di interconnessione tra
reti;
ξ Quali sono gli indicatori di interconnessione e vulnerabilità delle reti di
telecomunicazione che meglio caratterizzano le loro proprietà di sicurezza,
prestazioni e qualità di servizio;
ξ Qual è l’interazione delle possibili vulnerabilità delle reti di
telecomunicazione sulle altre reti tecnologiche che le includono.
Il progetto parte a gennaio 2006.
Obiettivo della tesi
L’obiettivo della tesi è sperimentare metodi e tecniche già consolidate
nell’analisi della dependability di sistemi soggetti a guasti random dei suoi
componenti, per l'analisi di attributi di security di un sistema aperto, costituito
da una rete di servers che raccolgono ed elaborano dati di un rete wireless IP
based, di sensori/attuatori distribuiti sul territorio. I servizi sono disponibili ad
utenti remoti tramite collegamenti di rete internet. Il servizio erogato dal
sistema può essere degradato da attacchi informatici, provenienti da internet e
da guasti interni del sistema (servers + rete wireless) e da contesa di risorse del
sistema stesso. I modelli sono costruiti tramite un approccio stocastico. Come
13
misura del degradamento del servizio, sono stati individuati un insieme di
indicatori, descritti in dettaglio nel lavoro di tesi, tra i quali l’indisponibilità di
servizio. Per indisponibilità di servizio al tempo t, si intende la probabilità che il
sistema sia non funzionante nell’istante di tempo considerato e si indica con
U(t) (dall’inglese Unavailability). Essa differisce dall’ inaffidabilità solo per
sistemi localmente o globalmente riparabili.
L’indisponibilità è il complemento ad uno della disponibilità.
Per raggiungere il suo obiettivo il lavoro di tesi si è svolto come descritto di
seguito.
I modelli e la loro esecuzione per il calcolo delle misure di indisponibilità del
caso di studio sono stati sviluppati nel Centro di Ricerca ENEA CASACCIA di
Roma, presso il Dipartimento di Calcolo e Modellistica.
L’ambiente di calcolo utilizzato comprende due workstation IBM con
processore Intel Pentium IV a 2,8 Ghz e 3 Gbyte di memoria.
Nella prima fase si è proceduto ad effettuare il setup delle due macchine sotto
ambiente Linux (Red Hat) e Windows XP (Le macchine dispongono di un dual
boot per l’esecuzione alternativa di uno dei due processi operativi)
La fase successiva del lavoro è consistita nel mettere in pratica le tecniche
apprese sulla modellazione tramite il formalismo delle Reti di Petri Stocastiche
Generalizzate attraverso lo strumento GreatSPN sviluppato dal Performance
Evaluation group del Dipartimento di Informatica presso l’Università di Torino.
Questa fase è consistita nell’istallazione del tool sotto ambiente Linux e nella
modellazione di un sistema in cui si simulava un comportamento simile a quello
descritto nel progetto SAFETUNEL. Questa fase preliminare è servita per
acquisire confidenza nei formalismi e negli strumenti di modellazione.
La seconda fase è consistita nell’installazione dello strumento di modellazione
MOBIÜS su entrambe le macchine, sia sotto ambiente linux che windows, e
14
nella configurazione per la cooperazione tra macchine tramite il protocollo
SSH.
Successivamente, si è utilizzato lo strumento Mobiüs per la modellazione di
quattro modelli di rete di servers proposti da Gupta [2] e nella verifica dei
risultati indicati nell’articolo.
L’ultima fase è stata quella della modellazione e valutazione della rete di
servers, con sensori wireless, tollerante ai guasti ed agli attacchi informatici
presa in considerazione in questa tesi.
Struttura della tesi
La prima parte di questo lavoro descrive le origini storiche della dependability e
viene spiegando in particolar modo come l’indisponibilità di servizio costituisce
una delle proprietà che la dependability ricerca nelle reti complesse.
In questa parte viene altresì esposto come un’analisi relativa alla dependability
prenda in considerazione anche aspetti relativi alla sicurezza informatica.
La seconda parte descrive le architetture utilizzate, e i loro principali elementi.
Successivamente viene esposto il metodo di modellazione ed analisi tramite le
“Reti di Petri” e le sue estensioni nelle “Reti di Attività Stocastiche”.
L’esposizione continua descrivendo lo strumento di modellazione utilizzato e le
risorse hardware impiegate.
Successivamente vengono esposte le assunzioni di modellazione fatte ed i
modelli ottenuti.
Il capitolo successivo descrive gli input del modello e le misure effettuate.
Nell’ultimo capitolo sono esposti e commentati i risultati ottenuti.
15
Capitolo 1
Dependability e security: concetti e metodi di
modellazione
Parlando di sicurezza (che traduce in italiano due distinte parole inglesi:safety e
security) sono individuabili due diverse linee di ricerca:
ξ La sicurezza (safety) intesa come proprietà della Dependability;
ξ La sicurezza (security) dei dati informatici.
La teoria della dependability nasce con l’obiettivo di realizzare calcolatori fidati
con l’utilizzo di hardwares inaffidabili; la teoria della sicurezza informatica
nasce con l’obiettivo di realizzare sistemi inaccessibili ad utenti non
autorizzati.
Oggi, emerge che il concetto di security converge sempre di più verso il
concetto di dependability (in cui comunque era inglobato) . La figura 1 mostra i
diversi stadi dei sistemi informatici nel tempo e i relativi modi di operare nei
confronti della sicurezza informatica.
16
Figura 1: Technology Generations of Information Assurance (TURST 2005)
Si è partiti da una prima generazione in cui il sistema era sicuro in quanto non
raggiungibile da utenti non autorizzati; successivamente la limitatezza di sistemi
così impostati ha portato alla realizzazione di sistemi accessibili dall’esterno, in
cui erano implementati dispositivi per la rilevazione delle intrusioni non
autorizzate (Seconda generazione).
Oggi (terza generazione) parlando della sicurezza dei sistemi informatici, si
ammette (come per la seconda generazione) la violabilità del sistema, inoltre si
sono implementati meccanismi che permettano il corretto funzionamento
(nonostante la presenza di attacchi riusciti) del sistema globale anche se in
maniera degradata.
A ciò si è giunti a seguito dello sviluppo della consapevolezza che la
realizzazione di sistemi totalmente immuni da forme di attacco era praticamente
irrealizzabile.
17
La figura 2 mostra, nel corso degli anni, un incremento di tecniche sempre più
sofisticate di attacco utilizzabili da persone con conoscenze informatiche minori
rispetto al passato.
Figura 2: Attacks are growing in sophistication (TRUST 2005)
18
1.1 Dependability
1.1.1 Origini del concetto
Un primo concetto di “dependable computing” apparse nel 1830 in “Babbage’s
Calculating Engine”.
La prima generazione di computer elettronici (dal 1940 a metà degli anni 50)
usava componenti abbastanza inaffidabili, di conseguenza erano usate tecniche
pratiche per migliorare la loro affidabilità, come codice di controllo degli errori,
repliche con verifiche, triplicazioni con voto, diagnostiche di individuazione dei
componenti guasti, ecc.
Contemporaneamente J. von Neumann, E. F. Moore e C. E. Shannon ed i loro
successori sviluppavano teorie di uso della ridondanza per costruire strutture
logiche affidabili con componenti meno affidabili, i cui guasti erano mascherati
dalla presenza di componenti ridondanti.
La teoria del mascheramento ridondante fu unificata da W. H. Pierce con il
concetto di tolleranza del guasto (failure tolerance) nel 1965.
Nel 1967, A. Avizienis integrò il mascheramento con le tecniche pratiche della
scoperta degli errori, della diagnostica dei guasti e del ricovero nel concetto di
sistemi fault-tolerant.
Nello studio dell’affidabilità dei modelli usati, la maggiore innovazione fu
costituita dall’introduzione del concetto di copertura con Bouricius, Carter e
Schneider.
Il lavoro sul software tollerante ai guasti iniziò con Randell, successivamente fu
completato con la programmazione N-version.
19
La creazione del IEEE-CS TC su “Foult-Tolerant Computing” nel 1970 e del
IFIP WG 10.4 “Dependable Computing and Fault Tolerance” nel 1980 accelerò
la creazione di un consistente insieme di concetti e terminologie.
Sette documenti furono presentati nel 1982 al FCTS-12, e J. C. Laprie ne
formulò una sintesi nel 1985.
Ulteriori lavori dei membri del IFIP WG 10.4, guidati da J.C. Laprie, risultano
nel libro “Dependability; Basic Concepts and Teminology” edito nel 1992 e
tradotto in francese, tedesco, italiano e giapponese.
Nel libro i guasti intenzionali (logiche maliziose, intrusioni) sono elencati
insieme con i guasti accidentali (fisici, di progetto, o guasti di interazione).
La ricerca nell’integrazione della tolleranza ai guasti e nella difesa contro guasti
intenzionali, cioè, minacce della sicurezza, cominciò al RAND Corporation,
University of Newcastle, LAAS e UCLA nella metà degli anni 80.
La prima IFIP Working Conference on Dependable Computing for Critical
Application fu tenuta nel 1989. Questa e i sei working conference che seguirono
promossero le interazioni delle comunità della dependability e della sicurezza, e
avanzarono l’integrazione della security (confidenzialità, integrità e
disponibilità) nel framework del “dependable computing”.
1.1.2 Definizione di dependability
La Dependability può essere definita informalmente come l’abilità di una rete
complessa di fornire un servizio di cui ci si può fidare in maniera giustificata.
Il servizio fornito da una rete complessa coincide con il suo comportamento così
come è percepito dall’utente (non necessariamente umano) attraverso
un’interfaccia.
20
La dependability è una delle quattro proprietà di una rete complessa insieme a
funzionalità, performance e costi (figura 1.1).
Figura 1.1: proprietà di una rete complessa
Quando si parla di dependability ci si riferisce a tre concetti:
- le minacce (threats) alla dependability;
- gli attributi (attributes) della dependability;
- i mezzi (means) con cui ottenere la dependability.
Gli elementi che costituiscono la dependability possono essere indicati
schematicamente come in figura 1.2.
21
Figura 1.2: Dependability’s tree
1.1.2.1 Le minacce
Le minacce si dividono in:
- guasti (faults);
- errori (errors);
- fallimenti (failures).
Un servizio è consegnato quando attua la funzione di servizio.
Un sistema fallisce se un evento che occorre quando il servizio e consegnato lo
fa deviare dal servizio corretto.
Un sistema quindi può fallire sia perché non è conforme alle specifiche, sia
perché le specifiche non descrivono adeguatamente le sue funzioni.
Il fallimento è una transizione da un servizio corretto ad uno incorretto.
22
La transizione che porta il servizio da incorretto a corretto prende il nome di
reintegrazione del servizio.
Il tempo durante il quale il servizio è incorretto è l’intervallo di servizio.
Un errore di una parte del sistema è ciò che può causare un successivo
fallimento, un fallimento avviene quando un errore raggiunge l’interfaccia del
servizio e lo allerta.
Un guasto è il considerare o ipotizzare una possibile causa di errore.
Un guasto è attivo quando produce un errore, altrimenti si considera dormiente.
Un errore è scoperto se la sua presenza nel sistema è indicata con un messaggio
di errore o da un segnale d’errore originato dentro il sistema.
Gli errori presenti ma non scoperti sono detti latenti.
Figura 1.3: Catena guasto, errore e fallimento.
1.1.2.2 Gli attributi
La Dependability è un concetto integrato che comprende i seguenti attributi:
ξ availability: essere pronto ad offrire un servizio corretto;
ξ reliability: continuare ad offrire un servizio corretto;