Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Antonio Leonforte
1.1. Definizione
Con il termine “sicurezza”, nell’ambito dei sistemi informativi, si intende l’insieme delle
misure (di carattere organizzativo e tecnologico) tese ad assicurare a ciascun utente
autorizzato (e a nessun altro) tutti e soli i servizi previsti per quell’utente, nei tempi e
nelle modalità previste. Più formalmente, secondo la definizione ISO, la sicurezza è
l’insieme delle misure atte a garantire la disponibilità, la integrità e la riservatezza delle
informazioni gestite.
1
1.3. Integrità delle informazioni
Il sistema deve impedire la alterazione diretta o indiretta delle informazioni, sia da parte
di utenti e processi non autorizzati, che a seguito di eventi accidentali. Anche la perdita
di dati (per esempio a seguito di cancellazione o danneggiamento), viene considerata
come alterazione.
2. Considerazioni preliminari
Sul piano della strategicità, occorre sottolineare come accanto alla disponibilità ed alla
integrità delle informazioni, spesso fondamentali per assicurare continuità alla
produzione, anche la riservatezza è divenuta critica con la progressiva adozione di
strumenti informatici nella pianificazione e nel supporto alle decisioni (cioè nella
gestione di informazioni di interesse strategico).
Quanto alla maggiore esposizione dei moderni sistemi, basti considerare la maggiore
interconnessione, dalle reti locali ad Internet, e la maggiore complessità, dalle
architetture client-server a quelle fortemente distribuite.
2
vincoli tecnici, logistici, amministrativi, politici ed economici imposti dalla struttura in
cui il sistema opera.
3. Risorse di un sistema
Le risorse di un sistema informativo sono l'insieme delle entità (dagli operatori alle
componenti hardware, dal software di base a quello applicativo) necessarie al suo
funzionamento.
Dal punto di vista della sicurezza, non è importante distinguere fra le risorse che
costituiscono il sistema (i.e. le sue componenti) e le risorse delle quali ha bisogno per
funzionare: si tratta in ogni caso di risorse "critiche" e quindi da proteggere.
Anticipando alcuni concetti meglio esposti nella sezione sugli aspetti metodologici, per
proteggere un sistema occorre innanzitutto identificarne le risorse e valutare il rischio
legato agli eventi (indesiderati) che possano minacciarne la integrità.
4. Eventi indesiderati
Una volta individuate le risorse critiche, si deve stabilire quali eventi indesiderati
possano determinarne un degrado nelle caratteristiche di integrità, disponibilità e
riservatezza.
3
quanto ciascun evento sia indesiderato rispetto alla definizione data. Un buon punto di
partenza è costituito dal considerare come evento indesiderato qualsiasi accesso (a
servizio o informazione) che non sia esplicitamente permesso dalla politica di sicurezza
del sistema.
L’insieme degli eventi indesiderati, tuttavia, è ben più esteso, in quanto comprende
eventi che non sono affatto degli attacchi deliberati, bensì dei semplici eventi accidentali.
Stando alle statistiche, anzi, gli eventi accidentali quali il guasto di un dispositivo o
l'errore umano (per esempio cancellazione accidentale di file, installazione di
componenti incompatibili o infettate che corrompono il software di base) restano la
principale causa di perdita accidentale di dati. Per questo motivo il titolo di questa
sezione fa riferimento al concetto più generale di "evento indesiderato".
4
4.1.2. Attacchi a livello logico
Gli attacchi a livello logico sono principalmente tesi a sottrarre informazione o degradare
la operatività del sistema. Un attacco può essere caratterizzato in funzione del livello
architetturale sul quale agisce e dei risultati che è indirizzato a conseguire.
I livelli architetturali sui quali può agire un attacco a livello logico dipendono
evidentemente dalla architettura del sistema. I livelli comunemente presenti nei sistemi
informativi moderni (client/server o multi-livello) sono:
• il livello interfaccia (client), che implementa la interfaccia utente;
• il livello applicazione (application-server), che implementa i servizi applicativi;
• il livello dati (data-server, spesso realizzato con un DBMS commerciale),
responsabile della memorizzazione dei dati sulla memoria di massa e della loro
estrazione;
• il livello main-frame, che, quando necessario, interfaccia il sistema informativo
moderno con servizi offerti da uno o più sistemi "legacy", cioè sistemi importanti
che non è conveniente sostituire o modificare.
Dal punto di vista dei risultati che è indirizzato a conseguire, un attacco a livello logico
può essere classificato come di:
• intercettazione e deduzione (attacco alla riservatezza);
• intrusione (attacco alla integrità ed alla riservatezza);
• disturbo (attacco alla disponibilità).
In alcune versioni del sistema grafico X-Window, ad esempio, è possibile spiare tutto
quello che fa un utente. I meccanismi di controllo degli accessi, in tali versioni del
sistema, sono infatti aggirabili tramite spoofing o semplicemente intercettando
informazioni di sessione, dette COOKIE, che transitano in chiaro).
Sulle certe reti TCP-IP, ad esempio, è possibile inviare falsi messaggi di controllo al
calcolatore che svolge le funzioni di DNS (Database Network System) per ottenere
5
informazioni su tutti i calcolatori in rete e talvolta anche sui loro sistemi operativi.
Questo permette in seguito di condurre attacchi mirati.
Telnetd è il demone che permette di aprire un terminale virtuale su una macchina UNIX
attraverso una connessione TCP/IP: un terminale è associato ad un file i cui permessi in
lettura vengono revocati una volta che la connessione è stabilita; con una tecnica
particolare, è comunque possibile leggere tale file nel momento in cui l’utente digita
username e password.
Gli attacchi di intercettazione possono infine sfruttare il fatto che un utente abbia
disatteso qualche norma comportamentale imposta dalla politica di sicurezza (ad
esempio scrivendo la password sotto la tastiera, oppure utilizzando come password il
proprio nome di battesimo o quello della moglie).
Tralasciando il caso in cui la password sia stata rubata al legittimo proprietario tramite
intercettazione o deduzione (casi già trattati nelle sezioni precedenti), è possibile che
essa venga individuata utilizzando programmi (ad esempio "ypx" per UNIX)
appositamente progettati per generare sistematicamente combinazioni di caratteri semi-
casuali e verificarle come password tentando l’accesso al sistema in modo automatico.
Attacchi di questo tipo devono il loro successo al fatto che gli utenti scelgono come
password parole di uso comune, e quindi, in definitiva, ad una debolezza nella politica di
sicurezza o nella sua attuazione da parte del personale.
Altri tipi di intrusione possono essere basati su tecniche più sofisticate, generalmente
tese a sfruttare debolezze nei protocolli di rete e nel software di rete.
Su certe reti TCP/IP si possono generare con programmi appositi pacchetti IP falsificati,
nei quali l’indirizzo del mittente è alterato per far credere al destinatario che i pacchetti
provengano da un altro calcolatore (IP-spoofing) e/o il routing da seguire è prefissato in
modo conveniente (source-routing). Sempre su certe reti TCP/IP, è inoltre possibile
6
indovinare il sequence-number di una connessione, e quindi far credere al calcolatore
sotto attacco, che i pacchetti inviati siano relativi ad una connessione già esistente e
regolarmente autenticata.
Su reti TCP/IP con certe versioni di NFS (Network File System) è possibile, laddove il
sistema sia configurato in modo poco accorto, accedere ad un disco remoto scavalcando i
controlli sui diritti di accesso.
7
infezione esula dagli scopi di questa sezione, e rimandiamo per essa a testi
specializzati;
• modalità di mimetizzazione, cioè dal modo in cui si sottraggono alla identificazione
da parte dei programmi anti-virus; rispetto alla modalità di mimetizzazione,
abbiamo ad esempio virus stealth, polimorfici, armoured, tunneling, etc.
8
matrice permette infatti di descrivere se e come un certo fattore può accidentalmente
provocare danno ad una certa componente.
Stando alle statistiche, il fattore umano (per esempio cancellazione accidentale di file,
installazione di componenti incompatibili o infettate che corrompono il software di base)
resta la principale causa di perdita accidentale di dati. Per quanto riguarda gli eventi
accidentali di altra origine, accanto ai guasti più frequenti (dischi, alimentatori, memoria,
etc.) occorre valutare anche i guasti a dispositivi di supporto come condizionatori d’aria
o trasformatori di potenza, ed eventi disastrosi come l’incendio o l’allagamento della
sala CED.
5. Contromisure
Per contromisure intendiamo tutto ciò che concorre, attivamente o passivamente, a
minimizzare la probabilità che gli eventi indesiderati accadano, rilevare il fatto che sono
accaduti, individuarne e minimizzarne le conseguenze, ripristinare il corretto
funzionamento del sistema.
L’evoluzione storica delle contromisure è legata a quella delle tecnologie, alla crescente
interconnessione fra i sistemi e, soprattutto, al crescente grado di sofisticazione degli
attacchi deliberati.
9
virus, proteggono risorse logiche (basi di dati, registri di configurazione, moduli
software, etc.) da attacchi di tipo logico.
In questa sede, dopo alcuni cenni agli standard esistenti, presentiamo un insieme
esemplificativo di contromisure distinguendo in prima analisi quelle a carattere
organizzativo da quelle propriamente informatiche.
Occorre innanzitutto una forte dichiarazione di intenti da parte dei vertici della
organizzazione che gestisce il sistema. Devono quindi essere definiti con precisione ruoli
e responsabilità nella gestione sicura del sistema, e per ciascun ruolo,
dall’amministratore al semplice utente, devono essere definite norme comportamentali e
procedure precise da rispettare.
I ruoli operativi che vengono generalmente definiti, nell’ambito della gestione sicura di
un sistema informatico, appartengono a due tipologie, a seconda che controllino gli
aspetti fisici o logici del sistema.
Per quanto riguarda il controllo degli aspetti fisici, vanno definiti ruoli (a vari livelli di
responsabilità) di garante della integrità fisica delle componenti del sistema (o parti di
esso). A fronte di questa responsabilità, devono essere stabilite, ad esempio, procedure
per il controllo e la registrazione dell’accesso di chiunque debba entrare nei locali che
ospitano il sistema informatico (dagli stessi utenti, al personale della pulizia, a quello
della manutenzione hardware); altre procedure devono essere definite, ad esempio, per la
custodia e la assegnazione delle chiavi.
Per quanto riguarda il controllo degli aspetti logici, vanno innanzitutto definiti i ruoli di
amministratore e di auditor del sistema informatico. I compiti di un amministratore sono
10
in generale quelli di creazione e cancellazione degli utenti, corretta configurazione del
sistema operativo ai fini della sicurezza, installazione e configurazione delle applicazioni
di rete, controllo delle attività periodiche di backup. A fronte di queste responsabilità,
l’amministratore può utilizzare servizi speciali del sistema operativo e dello stesso
sistema informatico. I compiti dell’auditor sono quelli di verificare che il sistema
informatico sia realmente sicuro. Gli strumenti a disposizione dell’auditor comprendono
l’analisi delle registrazioni (log) delle attività svolte degli utenti (incluso lo stesso
amministratore), interviste ai responsabili e tentativi reali di intrusione.
I ruoli di più elevata responsabilità sul fronte della sicurezza, in generale non
omologabili in nessuna delle suddette tipologie, sono tipicamente contigui, e spesso
coincidono, con i più alti vertici della organizzazione nel suo complesso.
11
Protezione dalle false autenticazioni
Imporre che a ciascun login name sia associato una persona fisica.
Disabilitare o eliminare i login name non più utilizzati per qualunque motivo.
Mantenere una lista degli utenti cancellati.
Imporre che a ciascun login name sia associata una password.
Imporre agli utenti di cambiare periodicamente (eventualmente ad ogni sessione) la
password, impedendo il riuso di password utilizzate in precedenza.
Utilizzare tecniche avanzate di autenticazione (smart-card, riconoscimento della retina,
etc.).
Verificare che tutti i serventi della rete siano fra loro reciprocamente autenticati.
Protezione dagli accessi illegali
Limitare il numero delle connessioni simultanee di ciascun utente
Rilevare i login falliti e disabilitare i login name al terzo tentativo.
Limitare gli intervalli temporali in cui è possibile utilizzare la rete.
Limitare gli indirizzi MAC di rete delle stazioni di lavoro da cui consentire l’accesso
agli utenti.
Disabilitare e rimuovere fisicamente lettori di dischetto e di CD-ROM dalle stazioni di
lavoro e dai server.
Educare gli utenti a chiudere la sessione ogni volta che abbandonano la propria stazione
di lavoro.
Verificare periodicamente i diritti di accesso di ogni utente.
Limitare l’accesso fisico alle postazioni di lavoro ai soli utenti autorizzati.
Utilizzare esclusivamente prodotti certificati.
Installare le applicazioni di rete in modo conforme alle specifiche della casa produttrice.
Protezione degli attacchi via rete ed alla rete stessa
Configurare il sistema in modo che tutti i nodi firmino ogni pacchetto trasmesso (8% di
sovraccarico).
Definire esplicitamente un utente cui assegnare i diritti di amministratore di rete
(eliminando un eventuale utente di default).
Utilizzare Hub dotati di meccanismi anti-intercettazione.
Installare Hub e router in locali protetti, e far passare i cavi della rete in canaline murate.
Bloccare il traffico non autorizzato su una rete locale (firewall, packet-inspecting
routers, etc.);
Cifrare il traffico riservato a livello applicativo oppure a livello di router;
Protezione dagli attacchi ai server
Isolare i server in un locale sicuro e proteggerne l'eventuale impianto di
condizionamento.
Definire una politica precisa per la gestione e la distribuzione delle chiavi di accesso ai
locali protetti.
Registrare gli accessi ai locali dove si trovano server e dispositivi di rete.
Bloccare la console dei server con una password diversa da quella dell’amministratore
di rete.
12
Imporre una password per ciascun server di stampa.
Limitare il caricamento dei serventi applicativi in directory predefinite.
Disabilitare tutti i servizi di console remota.
Duplicare le unita di alimentazione e di raffreddamento
Rendere a sola lettura tutte le directory in cui sono installate applicazioni.
Protezione dai virus
Verificare periodicamente le dimensioni di tutti i file eseguibili.
Installare solo software originale prelevato da confezioni sigillate.
Acquisire, installare ed aggiornare periodicamente un sistema anti-virus per le stazioni
di lavoro in rete.
Protezione dalle perdite di dati
Definire una politica di backup periodico.
Abilitare la funzione di controllo automatico del backup.
Effettuare prove a campione di lettura dei dati su backup.
Isolare nastri e dischi di backup in un luogo sicuro, separato da quello che ospita i
server.
Utilizzare array ridondanti di dischi (per esempio in configurazione RAID)
Meccanismi di sicurezza
tipicamente offerti dal Sistema Operativo
In contesti
Meccanismi di sicurezza particolarmente
implementati a livello applicativo critici ed
articolati
Meccanismi di sicurezza
tipicamente offerti dal DBMS
13
6. Tecnologie di crittografia e di hashing
La tecnologia alla base dei meccanismi di sicurezza è quella degli algoritmi di
crittografia e di hashing sicuro (anche detti di “message digest”). Combinando
opportunamente questi algoritmi è possibile realizzare servizi di più alto livello, come
quelli di autenticazione e di riservatezza.
La lunghezza delle chiavi, quando non fissata dal particolare algoritmo di crittografia,
può tipicamente assumere un insieme di valori che varia in funzione dell'algoritmo
stesso e degli standard applicabili. La lunghezza effettivamente scelta per le chiavi da
utilizzare nell'ambito di una specifica applicazione è sempre il risultato di un
compromesso fra esigenze di sicurezza e potenza dei calcolatori a disposizione. Al
crescere della dimensione della chiave, infatti, aumenta infatti la sicurezza (intesa come
difficoltà di decifrare le informazioni crittografate) ma anche la potenza di elaborazione
(numero di istruzioni al secondo) necessaria per contenere i tempi delle operazioni di
cifratura entro limiti accettabili.
Gli algoritmi di crittografia possono essere classificati come simmetrici, anche detti “a
chiave privata”, ed asimmetrici, anche detti “a doppia chiave” o “a chiave pubblica”.
14
possa decifrare i messaggi che riceve, e durante il trasferimento la chiave potrebbe
essere intercettata.
D’altra parte, gli algoritmi simmetrici sono relativamente poco costosi, dal punto di vista
della potenza di elaborazione che richiedono, e per questo motivo vengono tipicamente
usati in congiunzione con algoritmi asimmetrici.
Nella comunicazione fra N soggetti, gli algoritmi asimmetrici risultano decisamente più
utili dei simmetrici in quanto:
• occorre una sola coppia di chiavi per ciascun soggetto.
• ogni soggetto genera autonomamente una propria coppia di chiavi, ed è tenuto a
mantenere segreta una sola di esse, quella privata, mentre può, anzi deve, pubblicare
l’altra;
• le chiavi private non devono essere scambiate, dunque non sussiste pericolo di
intercettazioni.
15
esecuzione) la password casuale, poi si cifra la password stessa (molto più breve del
documento) con RSA (algoritmo asimmetrico, più lento), ed infine si invia il tutto
(documento cifrato in modo simmetrico e password cifrata in modo asimmetrico) al
destinatario.
Esistono versioni implementate di SHA che generano digest di 160 bit ad una velocità
piuttosto soddisfacente nella maggioranza delle applicazioni.
16
I passi di cui si compone il servizio di introduzione della riservatezza sono elencati di
seguito e sintetizzati nella figura successiva.
1. Viene generata una chiave DES in modo pseudo-casuale.
2. L'informazione che si vuole rendere riservata viene cifrata con DES utilizzando la
chiave pseudo-casuale.
3. La chiave pseudo-casuale, che se intercettata permetterebbe di decifrare
l'informazione originale, viene a sua volta cifrata con RSA utilizzando la chiave
pubblica del destinatario, cioè dell'interlocutore al quale si desidera comunicare
l'informazione in modo riservato.
Informazione
in chiaro
Chiave
DES DES
casuale
Chiave RSA pubblica Informazione
del destinatario
RSA cifrata
Chiave DES
casuale
cifrata
Conviene sottolineare come RSA, troppo lento per cifrare la intera informazione
originale (tipicamente costituita da un documento di molte pagine), può invece essere
applicato alla chiave DES con prestazioni soddisfacenti in quanto questa è di appena 112
bit.
Una volta cifrata con la chiave RSA pubblica del destinatario, la chiave DES che
permetterebbe la decodifica della informazione riservata sarà decifrabile solo dal
destinatario stesso, in quanto egli è l'unico a possedere la corrispondente chiave RSA
privata.
17
6.3.2. Rimozione di riservatezza
Obiettivo di questo servizio è quello di permettere al destinatario di una informazione a
lui riservata di riportare in chiaro, cioè in forma leggibile, l'informazione stessa. I passi
di cui si comp one il servizio di rimozione della riservatezza sono elencati di seguito e
sintetizzati nella figura successiva.
1. Viene ricevuta la informazione cifrata e, in allegato, la relativa chiave DES (cioè la
chiave con cui l'informazione stessa è stata cifrata). La chiave DES è a sua volta
cifrata RSA con la chiave pubblica del destinatario.
2. Il destinatario decifra la chiave DES applicando su di essa RSA con la propria
chiave privata. Essendo tale chiave nota solo al destinatario, nessun altro può
decifrare la chiave DES e quindi l'informazione originale.
3. L'informazione cifrata viene riportata in chiaro, cioè in forma intelligibile,
applicando su di essa DES con la chiave decifrata.
Chiave DES
cifrata
Informazione
in chiaro
18
6.3.3. Apposizione di firma digitale
Obiettivo di questo servizio è quello di generare, dato un documento e la chiave privata
di un soggetto che chiameremo firmatario, una sequenza di bit detta firma digitale che
provi in modo non ripudiabile il possesso del documento "firmato" da parte del soggetto
firmatario. I passi di cui si compone il servizio di firma digitale sono elencati di seguito e
sintetizzati nella figura successiva.
1. Al documento viene applicato SHA al fine di ottenere un digest, cioè una breve
sequenza di bit equivalente ad una "impronta digitale" del documento. La stretta
correlazione fra il documento ed il suo digest, assicurata da SHA, garantiscono con
sufficiente sicurezza che firma generata dal servizio sia stata effettivamente apposta
sul documento originale.
2. Il digest viene cifrato RSA con la chiave privata del firmatario. Il fatto che il
risultato della cifratura, cioè la firma, sia decifrabile solo con la chiave pubblica del
firmatario garantisce circa la identità del firmatario stesso.
Documento
SHA
Digest
Firma
19
6.3.4. Verifica di firma digitale
Obiettivo di questo servizio è quello di verificare l’autenticità di una firma digitale,
rispetto al documento firmato ed al soggetto firmatario. In particolare, dato un
documento, un soggetto (o meglio la sua chiave pubblica) ed una firma, il servizio
verifica che quel soggetto (e non altri) abbia effettivamente apposto la firma sul quel
documento (e non su altri o sullo stesso modificato in qualche sua parte). I passi di cui si
compone il servizio di verifica di una firma digitale sono elencati di seguito e sintetizzati
nella figura successiva.
1. La firma viene decifrata con RSA utilizzando la chiave pubblica del soggetto
firmatario. In questo modo, se la firma è autentica, si ottiene il digest del documento
al momento della firma.
2. Il documento nella versione corrente viene sottoposto ad SHA e ne viene generato il
digest che, se il documento non ha subito modifiche e se la firma è autentica,
dovrebbe coincidere con quello ottenuto al passo precedente decifrando la firma con
RSA.
3. Il digest ottenuto applicando SHA sul documento viene confrontato con il digest
ottenuto applicando RSA sulla firma. Se i digest coincidono la firma è valida,
altrimenti la firma è apocrifa (cioè apposta da un soggetto diverso da quello
considerato) e/o il documento è stato modificato dopo la firma.
Comparazione
= !=
20
servizio di verifica, una volta decifrata la firma, potrà così verificare la presenza della
stringa fissa e, nel caso di alterazione della stessa, dedurre il fatto che la chiave pubblica
utilizzata non corrisponde a quella privata che ha generato la firma e che quindi, in
definitiva, la firma è stata apposta da un soggetto diverso dal supposto firmatario.
6.3.5. Timbratura
Obiettivo di questo servizio è quello di associare in modo incontestabile un riferimento
temporale (data ed ora esatta) ad un dato documento. Affinché questo servizio sia di
qualche utilità è essenziale che venga svolto da un soggetto al di sopra degli altri e da
tutti ritenuto autorevole e fidato. Questo soggetto, spesso indicato come terza parte
fidata, dovrà naturalmente gestire autonomamente ed in modo sicuro un orologio di
sistema. I passi di cui si compone il servizio di timbratura sono elencati di seguito e
sintetizzati nella figura successiva.
1. Alla informazione da timbrare viene applicato SHA al fine di ottenerne il digest.
Questa operazione è tipicamente compiuta dal soggetto che richiede il servizio di
timbratura.
2. La terza parte fidata accoda al digest la data e l'ora dell'orologio di sistema da essa
gestito autonomamente.
3. La terza parte fidata cifra RSA il digest e la sequenza temporale utilizzando la
propria chiave privata. Il risultato della cifratura è il timbro, la cui validità è
verificabile da chiunque semplicemente decifrando il timbro stesso con la chiave
pubblica della terza parte fidata.
Informazione
da timbrare
Timbro
21
6.4. Servizi di notariato
I servizi di notariato sono offerti da una Autorità di certificazione (nel seguito indicata
come Autorità) che sia riconosciuta come fidata ed autorevole da tutti gli utenti del
sistema informativo. Come ogni altro utente, anche l'Autorità dispone di una coppia
(privata, pubblica) di chiavi asimmetriche.
Tale sequenza di operazioni viene tipicamente svolta in modo automatico dal software
che gestisce le firme digitali, a partire da informazioni contenute nella firma stessa.
22
• conoscenze dell’utente (per esempio una password);
• oggetti posseduti dall’utente (per esempio una card o una smart-card);
• caratteristiche biometriche dell’utente (per esempio l’impronta di un polpastrello o
l’immagine di una retina).
7.1. Password
La tecnica di autenticazione tramite password é quella più diffusa, ma presenta vari
problemi legati al fatto che, tendenzialmente, gli utenti:
• impostano password troppo brevi, che quindi possono facilmente essere individuate
attraverso tentativi ripetuti, o prevedibili (per esempio il proprio nome);
• impostano password appropriate ma poi le scrivono in luoghi non sicuri, per non
doverle imparare a memoria;
• impostano password appropriate, impiegano del tempo per impararle a memoria, ma
proprio per questo non le cambiano mai.
Configurando opportunamente i sistemi é spesso possibile fare in modo che l’utente sia
costretto a inserire password di lunghezza e formato appropriato (per esempio almeno 20
caratteri di cui almeno 5 numerici) ed a cambiare la password periodicamente o
addirittura ad ogni sessione (one-time password), anche al fine di evidenziare eventuali
accessi illeciti.
7.2. Card
Le card sono tessere che memorizzano in modo non duplicabile o alterabile la chiave
privata dell’utente. La card dialoga con la stazione di lavoro attraverso un apposito
lettore, ed software applicativo può interrogarla per ottenere la chiave privata dell’utente.
La card fornisce la chiave privata solo se riceve dalla applicazione (e quindi dall’utente)
un PIN (Personal Identification Number) segreto. In definitiva, analogamente a quanto
avviene con il Bancomat, l’utente é identificato sia per il fatto di conoscere il PIN, sia
per il fatto di possedere la card. Il punto debole delle card é insito nel fatto che la chiave
privata dell’utente viene trasferita sulla stazione di lavoro, ove potrebbe essere
intercettata.
7.3. Smart-card
A differenza delle semplici card, le smart-card non si limitano a memorizzare in modo
inalterabile la chiave privata dell’utente, ma dispongono di firmware, micro-processore e
memoria con caratteristiche sufficienti a eseguire autonomamente un algoritmo
asimmetrico di crittografia.
Il principale vantaggio delle smart-card, rispetto alle card semplici, é che non richiedono
il trasferimento della chiave privata dell’utente sulla stazione di lavoro. La chiave rimane
sempre stabilmente memorizzata nella card, che resta peraltro inutilizzabile senza il PIN
associato.
23
La presenza di un micro-processore a bordo, permette inoltre alle card interessanti
funzionalità accessorie, quali ad esempio la generazione e la memorizzazione automatica
di una one-time password ad ogni sessione di lavoro.
Nell’ambito di una LAN, infine, client e server possono essere dotati si schede di rete
cifranti che, opportunamente configurate, consentono la autenticazione reciproca e la
cifratura del traffico in modo trasparente rispetto allo strato applicativo.
Gli screening router sono chiaramente soggetti ad attacchi tesi a riconfigurare l’insieme
delle regole di filtraggio dei pacchetti. Per questo motivo, le loro eventuali funzioni di
configurazione remota devono essere disabilitate.
I router in generale, inoltre, sono sensibili ad attacchi tesi a modificare le tabelle interne
di routing ed aggirare in tal modo eventuali firewall posti a difesa della rete interna.
Questo tipo di attacchi possono ad esempio essere condotti attraverso falsi pacchetti
ICMP. Per questo motivo, gli screening router vanno configurati in modo da disabilitare
le funzioni di dynamic-routing.
I servizi offerti dagli screening router sono generalmente di due tipi: packet-filtering e
packet-inspection.
24
8.1.2.1. Packet filtering router
Gli screening router basati sul packet-filtering valutano i pacchetti sulla base della loro
intestazione (header). Si tratta di dispositivi configurabili con una lista ordinata di regole
che permettono o negano il passaggio di un pacchetto sulla base delle informazioni
contenute nell’header, quali:
• indirizzo IP e porta sorgente,
• indirizzo IP e porta destinazione,
• TCP flag,
• IP options.
Molti produttori di router applicano le regole di filtraggio solo sui pacchetti in uscita dal
router, e non su quelli in ingresso. In questo modo, tuttavia, pacchetti artificiosamente
generati aventi come indirizzo sorgente quello di un host della rete interna (attacco di
tipo address-spoofing) sarebbero instradati dal router sulla rete interna come se fossero
effettivamente provenienti dall’host oggetto dello spoofing. Verificando i pacchetti
anche in ingresso, il router può facilmente rilevare che un pacchetto con indirizzo
sorgente uguale a quello di un host interno non può provenire dalla rete esterna, e deve
quindi essere bloccato.
25
8.1.2.2. Packet inspection router
Gli screening router basati sul packet-inspection valutano i pacchetti sulla base del loro
contenuto (payload). Si tratta di dispositivi in grado di comprendere un insieme
predefinito (ed a volte configurabile) di protocolli che viaggiano incapsulati nel
protocollo IP, e in taluni casi controllare lo stato delle relative sessioni (stateful
inspection).
In nessun caso i pacchetti viaggiano direttamente fra client e server. Il flusso dei
pacchetti provenienti da ciascuna delle parti viene:
• intercettato dal proxy;
• interpretato a livello applicativo;
• ricostruito sulla base della conoscenza del protocollo;
• instradato verso la parte opposta.
26
• ricostruendo il traffico, un application gateway minimizza le probabilità di successo
di attacchi basati su debolezze di un server rispetto a particolari sequenze di
messaggi non previste dal protocollo;
• la ricostruzione dei pacchetti in uscita richiede un tempo di processamento che
rende un application gateway solitamente più lento di un packet-inspection router;
• operando a livello di applicazione, un application gateway è in grado di controllare
un numero generalmente più ridotto di protocolli, e richiede la installazione e la
configurazione di un nuovo proxy per ciascun nuovo protocollo da gestire.
8.2.2. Firewall
Con il termine “firewall” si identifica in modo generico un insieme di componenti e di
servizi finalizzati a controllare e limitare il traffico fra una rete da proteggere e l’esterno.
Packet- Internet
filtering
router
Rete interna
27
Lo schema firewall detto "packet-filtering" è una soluzione spesso adottata in quanto
poco costosa. Si tratta tuttavia di uno schema difficilmente configurabile e manutenibile.
Inoltre implica che ogni host deve disporre di meccanismi avanzati di autenticazione
degli utenti.
Rete interna
Rete interna
Email
server
28
comunicazione sicura sul Web. Si esaminano brevemente due dei primi protocolli che
fanno uso delle tecnologie di cifratura: S-HTTP ed SSL.
Questa sezione descrive le principali attività necessarie per la definizione di una politica
di sicurezza per un sistema informatico. Come si vedrà, occorre in sostanza analizzare il
sistema ed il contesto in cui opera, capire da cosa difenderlo e decidere come farlo.
29
sostanza comprendere le finalità della organizzazione, la sua struttura ed il flusso di
lavoro che avviene al suo interno. Parte di tale conoscenza può evidentemente essere
tratta dalla analisi svolta per la realizzazione del sistema informatico in esame.
30
richiedere lo spostamento delle componenti più critiche nei locali che offrono maggiori
garanzie, o l’adeguamento dei locali con porte blindate, inferriate alle finestre, sistemi di
condizionamento dell’aria, etc.
Alcuni parametri per la classificazione delle informazioni ai fini della sicurezza possono
essere
• valore per l'organizzazione: può essere misurato a partire dallo sforzo sostenuto per
ottenerle, dal numero e dalla importanza dei processi che ne dipendono;
• grado di riservatezza: può essere valutato in funzione del danno ipotizzabile in caso
di utilizzo illecito;
• afferenza ad un certo contesto: alcune informazioni possono essere riservate o meno
in funzione del contesto al quale afferiscono.; ad esempio, negli atti dei
procedimenti giudiziari, la residenza di un pentito è da considerare più riservata di
quella di un comune indagato.
31
Il lavoro di classificazione va svolto al giusto livello di astrazione, deve cioè tenere
conto di come i dati elementari sono aggregati nel flusso di lavoro della organizzazione
(ad esempio in pratiche, certificati, verbali).
È possibile che tutte le istanze di uno stesso concetto (ad esempio, sempre nel caso di
procedimenti giudiziari, tutti gli interrogatori) siano collocabili in una unica classe ai fini
della sicurezza. In generale, tuttavia, le classi di sicurezza non coincidono con quelle che
emergono dalla analisi concettuale, e possono raggruppare istanze di concetti diversi o
sottoinsiemi delle istanze di uno stesso concetto. Ad esempio, potremmo voler
considerare come riservati solo gli interrogatori effettuati ad un certo indiziato.
In altre parole, informazioni dello stesso tipo sono generalmente protette in modo
analogo, ma è anche possibile che ciascuna singola informazione venga etichettata con
specifici attributi finalizzati ad istruire il sistema su come proteggerla.
Una condizione necessaria, perché un sistema sia sicuro, è che gli utenti (fatta qualche
eccezione per gli amministratori) possano controllarlo esclusivamente attraverso i servizi
messi a disposizione. Questo evidenzia l’importanza di individuare con precisione tutti i
servizi offerti dal sistema informatico, al fine di verificare poi, in maniera sistematica,
che ogni servizio risponda pienamente a tutte e sole le specifiche di progetto (e non
presenti, ad esempio, side-effects potenzialmente pericolosi).
L'analisi funzionale svolta per la realizzazione del sistema sono generalmente una buona
fonte di informazione per la individuazione dei servizi disponibili.
I risultati dell'analisi delle dipendenze fra risorse sono poi utilizzati anche nella fase di
valutazione del rischio, ed in particolare sono di supporto allo studio della propagazione
dei malfunzionamenti a seguito del verificarsi di eventi indesiderati.
32
9.3. Classificazione degli utenti
La assegnazione di una classe di appartenenza a ciascun utente permette di definire, per
tutti gli utenti di una medesima classe, vincoli comuni ai fini della sicurezza.
Analogamente a quanto visto per le informazioni, la classificazione consente di ignorare
le particolarità irrilevanti del singolo utente, e di imporre vincoli basati sul ruolo che
l’utente stesso riveste nell’ambito del sistema.
È talvolta conveniente prevedere che ciascun utente possa disporre di più account sullo
stesso sistema, tutti afferenti alla sua persona ma caratterizzati da differenti profili di
sicurezza; in questo caso, nel momento in cui accede al sistema con un determinato
account, l’utente dichiara implicitamente con quale ruolo desidera interagire, ed il
sistema gli concederà tutti e soli i diritti necessari a svolgere il lavoro previsto per quel
ruolo.
Nel valutare le autorizzazioni di accesso, dunque, è spesso più conveniente chiedersi, per
ogni tipologia di utente, “di quali servizi può usufruire”, piuttosto che “a quali
informazioni può accedere”.
33
Nei sistemi informatici più sofisticati, tuttavia, sono disponibili servizi parametrici
rispetto ai dati: uno strumento di navigazione all’interno di una base dati, ad esempio,
opera su informazioni la cui tipologia (ed il relativo grado di riservatezza) non è
generalmente determinabile a priori. In questo caso è fondamentale definire, per
ciascuna tipologia di utente, le autorizzazioni di accesso sia ai servizi che alle varie
tipologie di informazione.
Ogni cella della tabella così creata (matrice dei diritti di accesso ai servizi) definisce se,
a quali condizioni ed in quale modalità, una certa tipologia di utente può accedere ad un
certo servizio. Le condizioni che generalmente vengono imposte sono:
• sul tempo : basate su data, ora e durata dell’accesso;
• sulla storia : basate sul numero e la frequenza degli accessi precedenti.
Servizi
CU3
34
Allo scopo di avere una visione complessiva del problema, è conveniente collocare
lungo gli assi di una tabella, analogamente a quanto fatto per l’accesso ai servizi, le
tipologie di utente e le tipologie di informazione individuate durante la fase di analisi.
Ogni cella della tabella così creata (matrice dei diritti di accesso alle informazioni),
definisce se, a quali condizioni ed in quale modalità, una certa tipologia di utente può
accedere alle informazioni di una certa tipologia. Le condizioni che generalmente
vengono imposte sono:
• sul valore, basate sul valore della informazione alle quali si accede;
• sul tempo, basate su data, ora e durata dell’accesso;
• sul contesto, basate sulle proprietà di una combinazione di valori;
• sulla storia, basate sul numero e la frequenza degli accessi precedenti.
Classi di Informazione
CU3
Vale la pena sottolineare come un sistema informatico possa controllare in modo più fine
l’accesso alle informazioni permettendo all’amministratore, in fase operativa, di
etichettare ciascun singolo dato con speciali note aggiuntive che ne definiscono
individualmente la accessibilità. In fase di progetto delle misure di sicurezza, tuttavia, i
singoli dati non sono ovviamente prevedibili, mentre risultano completamente definiti i
tipi di dato che il sistema è in grado di gestire.
Anche nel caso della definizione dei diritti di accesso alle informazioni, la
rappresentazione completa delle autorizzazioni può richiedere più di una matrice, per
specificare l'accesso alle informazioni a diverso livello di dettaglio e le regole valide per
classi di utenza e per singoli utenti.
35
nella sezione "Eventi indesiderati", alla quale rimandiamo il lettore, una preventiva
classificazione degli eventi indesiderati risulta utile per affrontare la loro identificazione
con sistematicità.
Relativamente agli attacchi intenzionali, occorre inoltre partire dal presupposto che
l’attaccante applicherà sempre (in sequenza o in parallelo, sfruttando eventuali effetti
sinergici), tutte le tecniche di cui dispone su tutte le risorse attaccabili. Conviene dunque,
laddove possibile, calcolare anche il rischio legato agli attacchi composti realisticamente
attuabili.
36
Anche nel caso di eventi accidentali, come visto per gli attacchi, conviene talvolta (nel
caso in cui la probabilità combinata sia significativa) valutare anche il rischio legato ad
eventi composti, costituiti cioè da un insieme di eventi elementari che accadono in
sequenza (furto di nastri di backup e successivo guasto di un disco) o in parallelo (inizio
di una transazione e contemporanea interruzione della alimentazione elettrica).
Per un'introduzione alle principali tipologie di contromisura e per alcuni cenni agli
standard esistenti, rimandiamo alla sezione "Contromisure". Di seguito, invece,
approfondiamo gli aspetti legati alla valutazione del costo e della efficacia di una
contromisura.
L'efficacia di una contromisura può essere valutata, in prima analisi, come funzione del
rischio dal quale protegge, cioè dal rischio complessivamente legato agli eventi
indesiderati che neutralizza.
Il costo di una contromisura deve essere valutato ponendo la dovuta attenzione sui
cosiddetti costi nascosti. Oltre al lavoro necessario per individuare ed attuare le
contromisure, infatti, occorre tenere presenti le limitazioni che esse impongono e le
operazioni di controllo che introducono nel flusso di lavoro del sistema informatico e
dell'organizzazione nel suo complesso. Il costo di una contromisura, insomma, deve
essere valutato su vari fronti, sia tecnologici che organizzativi.
Si hanno, in particolare:
• un costo di messa in opera della contromisura: si tratta di un costo “una tantum”
che assume particolare rilevanza laddove la contromisura imponga un riassetto
logistico della organizzazione (adeguamento di locali, trasloco di apparecchiature,
etc.);
• un peggioramento dell'ergonomia della interfaccia utente: aumentare la sicurezza
di un sistema informatico impone generalmente la introduzione o la
complicazione delle procedure di autenticazione degli utenti; l’utente che viene
costretto a digitare una password ogni volta che accede ad un servizio riservato,
ad esempio, troverà il sistema informatico meno piacevole da utilizzare;
37
• un decadimento delle prestazioni del sistema nell’erogare i servizi: allo scopo di
validare le autorizzazioni di accesso, o di cifrare le informazioni riservate, un
sistema informatico può spendere una parte anche consistente della sua potenza
elaborativa; ne consegue un decadimento prestazionale che, superati certi limiti,
si traduce in un calo nella produttività degli utenti;
• un aumento nella complessità di procedure e norme comportamentali come la
registrazione delle presenze o le richieste di intervento tecnico.
Le contromisure così selezionate possono e devono essere integrate nel quadro più
ampio di una politica organica di sicurezza che le collochi e le giustifichi come parte di
un disegno unitario. Per ogni contromisura, in sostanza, deve essere evidenziato il ruolo
preciso che occupa in relazione alle altre contromisure ed alle linee guida cui il disegno
complessivo risponde.
38