Network Security
Sicurezza delle reti informatiche
Emanuela Falcinelli (S.S.I.S. 2006/2007)
Network security
La sicurezza deve tener conto dell’infrastruttura di rete, dell’organizzazione, delle relazioni dei flussi e delle interazione tra mondi “trusted” (sicuro) ed “untrusted” (insicuro).
Sicurezza nelle reti informatiche: l'importanza del "fattore umano"
La sicurezza delle reti informatiche è anche una questione di atteggiamenti umani.
Se è vero che la sicurezza totale di un sistema informativo può essere considerata un limite difficilmente raggiungibile, lo è ancora di meno mettendo in gioco variabili non controllabili e non prevedibili, tra le quali il "fattore umano" gioca indubbiamente un ruolo di primaria importanza.
Requisiti di sicurezza
Le informazioni che transitano su una rete sicura devono soddisfare tre requisiti di base:
1. confidenzialità dei dati - ovvero la garanzia che l'accesso, il trattamento e l'eventuale cessione dei dati in transito siano conosciuti e gestiti soltanto da chi ha il diritto di farlo;
2. disponibilità delle informazioni - ovvero la possibilità data agli utenti con i relativi diritti di accedere alle informazioni ogniqualvolta ne abbiano necessità, senza limiti e senza ritardi;
3. integrità dei dati - ovvero la garanzia che l'informazione custodita e gestita non subisca manomissioni non autorizzate, perdite o danneggiamenti di alcun tipo.
Questi tre requisiti devono essere tutti soddisfatti per poter affermare che una rete è sicura, e le strategie di difesa, quali che siano dal punto di vista tecnologico, devono garantire il soddisfacimento di questi tre requisiti.
L'analisi del rischio
Quali sono i pericoli per le reti?
Per avviare una concreta azione di sicurezza e prevenzione è opportuno avere un quadro di riferimento chiaro dei rischi.
Il concetto di pericolo per le reti è strettamente legato ai requisiti di sicurezza; in sostanza, si può definire pericolosa qualsiasi azione atta a mettere in pericolo uno dei tre requisiti propri delle reti sicure: confidenzialità, disponibilità e integrità dei dati.
Partendo dai requisiti propri di una rete, si possono individuare delle categorie di rischio per
ciascuno di essi.
host
TCP/UDP IP collegament
fisico Applicazione
ping
Nmap
Requisito Categoria Tipologia dei pericoli
Confidenzialità Minacce d'accesso Intercettazione delle comunicazioni, accesso non autorizzato, usurpazione d'identità
Disponibilità Caduta della rete Attacchi intenzionali, catastrofi naturali, incidenti ambientali, guasti hardware o software
Integrità L'alterazione dei dati Esecuzione di codice maligno, errore umano (dell'operatore o dell'utente)
Attacchi alla confidenzialità: Mapping
Raccolta preliminare di informazioni sulla struttura e sull’organizzazione della rete:
• scoprire quali sono gli indirizzi IP delle macchine (comando “ping”)
• scansione sequenziale porte per vedere quali servizi sono attivi su quali porte
• scoprire quali utenti sono attivi sulla rete
Attacchi alla confidenzialità: IP spoofing
Questo tipo di attacco prevede la falsificazione del mittente (“SourceAddress”) di un “datagram”
(pacchetto IP inviato sulla rete tra due nodi), per camuffare l’ originatore dell’ attacco.
Host A
host
host Chost C host X
Attacchi alla confidenzialità: packet sniffing
Un tipico esempio di questa tipologia di attacco è il “Man-in-the-middle” (attacco dell'uomo in mezzo), nel quale l'attaccante è in grado di leggere, inserire o modificare a piacere, messaggi tra due parti senza che nessuna delle due sia in grado di sapere se il collegamento sia stato compromesso.
L'attaccante deve essere in grado di osservare e intercettare il transito dei messaggi tra le due vittime,è cioè in grado di leggere i pacchetti in transito per poi ricostruire il messaggio originale.
Utilizzo tipico: lettura password.
“Carnivore”, tool ufficiale di packet sniffing per intercettazioni utilizzato da FBI a partire dal 2002 (“Io uccido” – G.Faletti).
Attacchi alla disponibilità: DoS (Denial of Service)
Obiettivo è quello di sovraccaricare un componente o un servizio del sistema fino a farlo collassare, in modo da negare tale servizio, per esempio il disco fisso, processi, sessioni, e-mail, http server.
Si può attuare sui vari livelli del modello TCP/IP:
• A livello trasporti: inondazione di pacchetti TCP SYN
• A livello IP: invio di frammenti IP senza completamento del datagram
• A livello applicazioni: inondazione e-mail o richieste http (es.MyDoom-A, attacco al server di posta elettronica della Cisco)
SSL: Secure Socket Layer
Secure Sockets Layer (SSL) è un protocollo progettato dalla Netscape Communications Corporation, autrice del famoso browser “Netscape Navigator”, per realizzare comunicazioni cifrate su Internet.
Riferendoci alla pila TCP/IP può essere visto come un livello intermedio tra applicazioni e trasporto.
In tal senso viene “utilizzato” dai vari protocolli del livello “Applicazione” per garantire la sicurezza
della trasmissione dei dati.
Quindi i protocolli del del livello “Applicazione” utilizzano la crittografia per fornire sicurezza nelle comunicazioni su Internet e consentono alle applicazioni client/server di comunicare in modo tale da prevenire la manomissione, la falsificazione e l'intercettazione dei dati.
Per esempio quando il protocollo “HTTP” utilizza il protocollo “SSL” gli accessi vengono effettuati sulla porta 443 (non sulla porta 80) e tra il protocollo “TCP” e “HTTP” si interpone un livello di crittografia.
TCP IP HTTP
SSL Record Protocol SSL
handskake SSL Change
Cipher
SSL
Alert
Crittografia
La parola crittografia deriva dalla parola greca kryptós che significa nascosto e dalla parola greca gráphein che significa scrivere, quindi si intuisce che si occupa delle "scritture nascoste", cioè dei metodi per rendere un messaggio "nascostoo" in modo da non essere comprensibile a persone non autorizzate a leggerlo.
La necessità di nascondere messaggi strategici da occhi nemici è antica quanto l'uomo; ci sono tracce di cifrari molto antichi
Il codice atbash (utilizzato dal popolo ebreo) era un semplice cifrario a sostituzione monoalfabetica in cui la prima lettera dell'alfabeto veniva sostituita con l'ultima, la seconda con la penultima, e così via, "invertendo" l'ordine alfabetico delle lettere.
Nel moderno alfabeto italiano, questo significa:
Testo in chiaro: a b c d e f g h i l m n o p q r s t u v z Testo cifrato: Z V U T S R Q P O N M L I H G F E D C B A
Anche Caio Giulio Cesare aveva sviluppato un suo codice crittografico, il cosiddetto cifrario di
Cesare.È un cifrario a sostituzione monoalfabetica in cui ogni lettera del testo in chiaro è sostituita nel testo cifrato dalla lettera che si trova un certo numero di posizioni dopo nell'alfabeto.
In particolare, Cesare utilizzava uno spostamento di 3 posizioni (la chiave era dunque "3"), secondo il seguente schema:
Testo in chiaro a b c d e f g h i l m n o p q r s t u v z Testo cifrato D E F G H I L M N O P Q R S T U V Z A B C
Per cifrare un messaggio, basta prendere ogni lettera del testo in chiaro e sostituirla con la corrispondente lettera della riga "testo cifrato"; per decifrare basta fare viceversa.
Ecco un semplice esempio:
Testo in chiaro: attaccare gli irriducibili galli alla ora sesta Testo crittato: DZZDFFDUH LON NUUNGAFNENON LDOON DOOD RUD VHVZD
Esistono due modi per crittografare un messaggio:
1. crittografia simmetrica (a chiave privata): si usa una sola chiave sia per codificare che decodificare i dati.
2. crittografia asimmetrica (a chiave pubblica): prevede l’utilizzo di due chiavi, una pubblica che sarà accessibile a tutti e una privata che dovrà rimanere segreta
Algoritmi a chiave privata
Gli algoritmi a chiave segreta prevedono l’utilizzo della stessa chiave sia per la codifica che per la decodifica del codice.
Questo implica che mittente e destinatario devono in qualche modo essere a conoscenza della
chiave utilizzata e deve necessariamente accadere che il passaggio avvenga in modo sicuro.
Il problema cruciale per algoritmi a chiave simmetrica è distribuire le chiavi in modo sicuro e su larga scala.
L’intera sicurezza dell’algoritmo si basa sulla segretezza della chiave che deve essere conosciuta solo dai due interlocutori
Problema di come poter distribuire tale chiave in maniera sicura (non attraverso canali intrinsecamente insicuri , es. Internet).
Per questo motivo solitamente si preferisce una modalità di consegna fisica della chiave piuttosto che un invio su qualche canale di comunicazione ma a volte lo scambio può richiedere del tempo.
Questo porta a pensare, a ragione, che la chiave privata resterà invariata per lungo tempo, facilitando l’opera di chi volesse tentare la rottura del codice.
Algoritmi a chiave pubblica
La gestione della segretezza della chiave può diventare un problema di difficile soluzione.
Anche lo scambio preliminare della chiave non è cosa semplice perché trovare un canale di comunicazione sicuro e veloce può risultare un operazione difficile.
Per cercare di dare una soluzione a questo problema, nel 1976 Whitfield Diffide e Martin Hellman proposero il concetto di crittografia a chiave asimmetrica.
L’idea è che ad ogni soggetto vengano rilasciate due chiavi:
• una chiave dovrà essere resa pubblica e accessibile a tutti
• una chiave dovrà essere tenuta segreta e nascosta
Gli algoritmi a chiave pubblica usano una chiave per la crittografia e un’altra chiave per la decrittografia.
Codifica Decodifica
Testo in chiaro
Testo in chiaro Testo
criptato
Chiave privata
Chiave privata
Il mittente A (Alice) ha un testo in chiaro P (messaggio) che deve essere inviato al destinatario B (Bob).
Bob genera una coppia di chiavi correlate:
• una chiave pubblica Kpub che sarà nota a tutti
• una chiave privata Kpri che sarà accessibile solo a Bob
Utilizzando come input il messaggio P e la chiave di crittografia Kpub Alice genera il testo cifrato Solo il destinatario, in possesso della chiave privata corrispondente, potrà invertire la trasformazione recuperando il testo in chiaro.
Con tali algoritmi, a differenza di quelli simmetrici, non è più necessario prevedere un canale sicuro per la trasmissione della chiave, in quanto, essendo la chiave di decifratura distinta da quella di cifratura, è possibile distribuire quest’ultima in maniera non riservata tramite dei server pubblici (chiave pubblica).
Firma digitale
È un sistema di autenticazione di documenti digitali analogo alla firma autografa su carta, si basa sulla crittografia a chiavi asimmetriche.
Il processo di firma digitale consiste in tre fasi:
1. dato il testo in chiaro si applica una funzione particolare che calcola un sunto del messaggio stesso
2. si cifra il sunto ottenuto con la propria chiave privata
3. si invia al destinatario il messaggio in chiaro insieme al sunto firmato con la chiave privata del mittente.
Mazzo delle chiavi pubbliche di Bob
--- --- ---
Testo in chiaro Algoritmo di crittografia
Algoritmo di decrittografia
--- --- ---
Testo in chiaro Chiave privata di Alice
Trasmissione del testo cifrato
Chiave pubblica di Alice
Al destinatario arriva il messaggio in chiaro e il sunto del messaggio firmato dal mittente.
Per verificare che il messaggio non sia stato alterato e provenga proprio da quel mittente deve:
1. applicare la chiave pubblica del mittente al sunto firmato per verificare che il messaggio arrivi proprio dal mittente desiderato (ottenendo così il sunto in chiaro).
2. ricalcolare con la funzione matematica il sunto del messaggio in chiaro ottenendo così un secondo sunto
3. verificare che il sunto calcolato precedentemente e quello inviato dal mittente coincidano;
questo verifica che il messaggio non è stato modificato
Protezione perimetrale della rete
In questo modo si cerca di proteggere tutta la rete da possibili attacchi provenienti dall’esterno (ma non dall’interno!!).
Esistono diverse tecniche di protezione:
• Firewall
• VPN (Virtual Private Network)
Firewall
Firewall in italiano significa “muro tagliafuoco”; è un componente passivo di difesa perimetrale.
Come abbiamo visto all’inizio la rete viene divisa in due
• una, detta esterna, comprende l'intera Internet
• l'altra interna, detta LAN (Local Area Network), comprende una sezione più o meno grande di un insieme di computer locali.
In alcuni casi è possibile che si crei l'esigenza di creare una terza sottorete detta DMZ (o zona demilitarizzata) atta a contenere quei sistemi che devono essere isolati dalla rete interna ma devono comunque essere protetti dal firewall.
Grazie alla sua posizione strategica, il firewall risulta il posto migliore ove imporre delle logiche di traffico per i pacchetti in transito e/o eseguire un monitoraggio di tali pacchetti.
La sua funzionalità principale in sostanza è quella di creare un filtro sulle connessioni entranti ed uscenti.
App
lica un insieme di regole a ogni pacchetto IP in ingresso: elimina (•politica default=discard) o inoltra (politica default=forward) sulla base di alcuni parametri per esempio:
• Indirizzo IP di origine
• Indirizzo IP di destinazione
Il firewall ha alcuni limiti:
• non protegge da minacce interne, sabotaggio
• non protegge da trasferimento file infetti o email con allegati infetti
Virtual Private Network (VPN)
È una tecnica hardware e/o software per realizzare una rete privata di un’organizzazione utilizzando canali e apparati di trasmissione condivisi (Internet).
Le reti VPN utilizzano collegamenti che necessitano di autenticazione per garantire che solo gli utenti autorizzati vi possano accedere.
Utilizzano anche sistemi crittografici per essere sicuri che i dati inviati in Internet non vengano intercettati o utilizzati da altri non autorizzati.
Internet
Perimetro di sicurezza
Firewall
Sede di Torino
Sede di Genova Sede di
Perugia
Sede di Milano Rete pubblica:
Internet
Servizi di Sicurezza per messaggi e-mail
Quando inviamo un messaggio di posta elettronica vorremmo che fossero rispettati i seguenti requisiti:
• Integrità: il messaggio non può essere modificato
• Autenticazione: il mittente possa essere identificato
•