Sei sulla pagina 1di 31

SICUREZZA DELLE RETI (A.A.

2009/2010)

1. RICHIAMI DI TCP/IP
Il MAC address lidentificatore della scheda di rete, non incorpora informazioni di gerarchia o instradamento ed indicato in notazione esadecimale. I primi 24 bit, stabiliti dall IEEE identificano il produttore. Lindirizzo indicato come broadcast : FF-FF-FF-FF-FF-FF. ARP un protocollo che si usa nei segmenti di rete locale con lo scopo di tradurre un indirizzo IP in indirizzo fisico, MAC. Ogni scheda di rete ha un proprio MAC, che la identifica univocamente. Al livello fisico della pila ISO/OSI i frame , che viaggiano allinterno di una rete LAN, sono riconosciuti dal destinatario proprio per lindirizzo MAC di destinazione. Per quanto detto se si vuole inviare un pacchetto IP sulla rete, bisogna conoscere il rispettivo MAC associato. Se tale informazione non conosciuta bisogna effettuare una (messaggio di) query, e attendere la risposta. Ricevuto il pacchetto con quanto richiesto, salvo i dati nella mia ARP table, (ovvero la tabella dove vengono specificate le corrispondenze biunivoche tra indirizzi IP e MAC). Ogni entry della tabella ha un tempo di vita (Time To Live) indicato in un apposito campo, che ne determina la rimozione per essere poi riconvalidata. Di norma tale intervallo temporale settato a 20 min. LARP table funge da vera e propria cache locale per linvio delle informazioni sulla rete, inoltre, pu accadere che un nodo forzi laggiornamento della tabella. Per ARP poison/spoofing ci si riferisce alla manipolazione dellassociazione tra IP e MAC nella tabella. Per poisonare sufficiente rispondere ad una query ARP non essendo titolare dellIP in questione. In questo modo possibile realizzare la tecnica di intrusione denominata Man in the Middle ovvero tipologia di attacco generale per la quale possibile che una comunicazione che si suppone essere stabilita tra due nodi venga invece gestita in maniera nascosta da un terzo. Tali tipi di attacchi sono difficili da individuare poich i nodi A e B non hanno segnali della presenza di C, con conseguenze serie in quanto C gestisce la comunicazione. Il Rischio di un tale attacco comunemente ridotto dal vincolo della presenza fisica sulla stessa rete locale, inoltre meccanismi moderni impediscono tali attacchi (es ARP table statiche). Lettura : ARP poisoning:attacco alle reti locali Francesco Beatino hakin9 2007 Esistono 5 classi di indirizzi IP : A,B,C,D,E come segue :

Nella classe A i primi 8 bit identificano la rete mentre i restanti 24 il numero di host, nella B abbiamo 16 bit per la rete e 16 per gli host, nella C 24 bit per la rete e 8 per gli host (max 255). Esistono alcuni blocchi di indirizzi riservati per luso allinterno di reti private e quindi non instradabili in Internet (i router sono predisposti per scartare qualunque pacchetto IP in arrivo con indirizzi non instradabili).

indirizzi privati

Il CIDR (Classless Inter-Domain Routing) un nuovo schema di indirizzamento introdotto nel 1993 per sostituire lo schema classfull secondo il quale tutti gli indirizzi IP appartengono ad una specifica classe (classe A, B e C).Questo nuovo schema di indirizzamento consente una migliore gestione degli indirizzi di rete che diventano sempre pi scarsi con il crescere di Internet ed inoltre migliora le prestazioni dell'instradamento IP grazie ad una pi efficiente organizzazione delle tabelle di routing.Permette, in un indirizzo IP, di definire quale parte indichi la sotto rete e quale gli host.La notazione usata per esprimere indirizzi CIDR la seguente: a.b.c.d/x, dove x il numero di bit (contati partendo da sinistra) che compongono la parte di indirizzo della rete. I rimanenti y = (32 x) bit consentono di calcolare il numero di host della sottorete pari a (2y 2). Il ( 2) della precedente formula dovuto al fatto che il primo e l'ultimo indirizzo di ogni rete non sono assegnabili ad alcun host, in quanto riservati rispettivamente come indirizzo della rete in generale (usato ad esempio nelle tabelle dei router) e come indirizzo di broadcast (ovvero un indirizzo che comprende indistintamente ogni altro indirizzo all'interno di quella rete: viene usato ad esempio in alcuni protocolli di routing). Per cui si possono avere:

Andiamo a veder come fatto un pacchetto TCP e lassociazione standard tra porte e servizi:

La struttura del pacchetto IP presenta alcuni campi (urg,ack,psh,rst,syn,fin) che hanno utilizzi specifici: SYS: ACK: FIN: RST: PSH: URG: richiesta di connessione, sempre il primo pacchetto di una comunicazione TCP conferma del pacchetto precedente,sia esso dati SYN o FIN. indica lintenzione di del mittente di terminare la sessione in maniera concordata. reset della sessione. operazione di push, i dati vengono subito inviati senza bufferizzarli dati urgenti, vengono inviati con precedenza sugli altri.

Le specifiche TCP riportate nella RFC 793 determinano le seguenti condizioni:

Altre tipologie di pacchetti sono quelli UDP e ICMP come segue.

Header UDP

Header ICMP

Messaggi ICMP

Frammentazione IP
Quando un pacchetto IP deve essere inviato e supera il valore di MTU (Maximum Trasmission Unit), ovvero la dimensione massima dei pacchetti ammessi da una rete (es: ethernet mtu=1500 byte), deve necessariamente essere frammentato. A questo punto viene duplicato lheader IP per ogni parte e vengono attivati i flag allinterno dellintestazione IP che permetter di ricostruire al destinatario il pacchetto originario. Questi campi sono : Identification: valore identificativo, uguale per tutti i frammenti di un pacchetto originario che dovr essere riassemblato a destinazione.

Flags: un bit MF per indicare il more fragments , settato a 1 per tutti i frammenti tranne lultimo che ha il flag a 0. Un secondo bit DF per indicare dont fragment , cio per istruire i router che, se fosse necessaria la frammentazione, il datagram va scartato e non frammentato.

OFFSET: rappresenta la posizione relativa dei dati nei diversi frammenti rispetto la posizione dei dati nel datagram originario.

In relazione alla frammentazione IP nascono diverse problematiche:

Frammento iniziale mancante : il frammento iniziale lunico ad avere lheader del livello di trasporto
(TCP,UDP,ICMP). Potrebbe essere bloccato dalla politica di sicurezza (tipo di servizio vietato), per cui gli altri frammenti non avendo lheader dello stato di trasporto superano la verifica. Frammento finale mancante: nessuna spiegazione, possibile datagram IP manipolato volutamente. Offset ripetuti: molti frammenti passano attraverso il firewall e raggiungono lhost di destinazione.

Problema. Consideriamo lIP di destinazione: 192.168.133.0 -> broadcast per sistemi BSD. Il nostro router BSD riceve i frammenti e li mantiene in cache in attesa di riassemblare il datagram originale. Il frammento iniziale e finale non arrivano impedendo il riassemblaggio. Molti frammenti con stesso FRAG ID continuano ad arrivare, impedendo il timeout del router e generando un denial of service . (vedi anche ROSE ATTACK)

SCANSIONI
Alcune informazioni relative agli indirizzi IP sono di dominio pubblico e facilmente reperibili in Internet. Alcuni strumenti per effettuare ci sono:

WHOIS: dati della persona che ha registrato un dominio,DNS. NSLOOKUP: Indirizzi IP di un dominio. ARIN Web Search (USA) o RIPE web Search (EU) dati sulla classe di indirizzi assegnati ad un certo
dominio.

TRACEROUTE: Visualizza tutti i router attraversati da un pacchetto fino ad una data destinazione (oppure
fino a quando viene rigettato). PING: verifica se un dato indirizzo IP corrisponde ad un host attivo e raggiungibile.

Una informazione necessaria a preparare molte intrusioni consiste nel conoscere lo stato delle porte. Ad una eventuale interrogazione possiamo ottenere diverse risposte:

Accepted o Open : Lhost destinatario genera una risposta che indica che un servizio in ascolto su quella porta. Denied o Closed: Laccesso allhost bloccato oppure non c un servizio in ascolto su tale porta. Dropped o Blocked: Il tentativo di connessione stato terminato da qualche componente di rete.

NMAP il sistema pi noto per interrogare le porte.

Lo scanner delle porte mirato ad uno specifico sito od organizzazione. Pu essere effettuato su intere classi A o B di indirizzi IP o mirato a verificare le risposte da una porta predefinita. Lo Scan non determina una intrusione, bens un segnale di allarme. Lobiettivo di uno scan quello di raccogliere le informazioni, analizzare le vulnerabilit, monitorare levoluzione. Alcune delle reazioni possono essere : contattare loriginatore o bloccare gli indirizzi di origine. Gli scan possono essere di vario tipo: TCP scan: Si tratta di cercare di aprire una connessione TCP e analizzarne il risultato. Se la connessione ha successo, allora la porta dellhost open, viceversa closed. I log dellhost di destinazione mostreranno queste connessioni completate, seguite dalla loro interruzione.

TCP SYN SCAN: Invia il normale SYN di apertura di una connessione TCP. Se riceve il SYN/ACK risponde con un RST (detta anche Half-open scan, perch viene iniziata una regolare connessione TCP ma non terminata). Se si riceve il SYN/ACK, allora la porta dellhost destinatario open, viceversa closed. Non tutti i sistemi operativi riportano nei log i casi di connessioni half-open.

TCP FIN scan: Invio di pacchetti isolati con il flag FIN a 1.

Xmas scan: Invio di pacchetti con i flag FIN,URG e PSH a 1.

Null scan: Invio di pacchetti con tutti i flag a 0. Per gli ultimi 3 tipi di scan le specifiche TCP (RFC 793) prevedono che questi pacchetti vengano scartati senza risposta se la porta aperta, venga risposto con un RST se la porta chiusa. Alcuni sistemi operativi (es. Windows, HP/UX,IRIX) non rispettano le specifiche TCP e rispondono con un RST in ogni caso. Queste informazioni spesso non compaiono nei log. ACK scan: Invio di pacchetti isolati di ACK. Le specifiche prevedono che venga risposto con un RST se la porta raggiungibile , altrimenti vengano scartati senza risposta. E utilizzato con SYN scan per verificare il tipo di firewall , statefull o static packet filter.

UDP scan: Serve per determinare le porte UDP aperte. Viene inviato un pacchetto UDP di 0 byte di dati, se la porta chiusa viene risposto con un messaggio ICMP port unreachable , diversamente si assume che la porta sia aperta.

IDLE scan : Tecnica di scan per verificare le porte TCP aperte. uno scan complesso in cui c' uno Scanner, uno Zombie ed un Target. 1. 2. 3. lo Scanner invia un SYN/ACK allo Zombie, ed attende il relativo RST. Salva il valore IP identification che ogni stack associa ad una connessione lo Scanner invia un SYN al Target, specificando per come IP sorgente l'IP dello Zombie lo Scanner invia un SYN/ACK allo Zombie, ed attende il relativo RST

A questo punto si confrontano gli IP identifier letti nel passo 1, con quello letto nel passo 3. provenienti dallo Zombie. Se la porta sul Target aperta, esso avr risposto con SYN/ACK allo Zombie. Ma lo Zombie, non sapendo che cosa farsene di quella connessione non voluta, avr risposto RST. E siccome tutto ci avvenuto immediatamente DOPO il passo numero 1, allora lo Zombie avr incrementato di 1 il suo IP identifier, e quindi al passo 3 lo Scanner legger un IP identifier pi grande di 2 rispetto a quello ricevuto al passo 1. Se invece la porta chiusa, il Target avr inviato un RST, e lo Zombie l'avr accettato senza fare nulla. Quindi, al passo 3, generer in risposta allo Scanner un IP Identifier che sar maggiore solamente di 1 rispetto a quello del passo 1. La legge non punisce lesecuzione di un portscan, in s. In altri termini, non esiste nel codice penale una norma che dica vietato fare portscan. Ci non toglie che unazione del genere diventerebbe sanzionabile penalmente se fosse diretta a compiere un reato (es accesso abusivo punito dallart 615 ter del codice penale). In questo caso , anche se laccesso abusivo non dovesse verificarsi per fatti indipendenti dalla volont dellagente , saremmo dinanzi lipotesi del delitto tentato. Nmap utilizza sequenze di pacchetti anomali, non rispondenti alle specifiche del protocollo TCP oppure pacchetti/sequenze note per provocare reazioni dipendenti dalle singole implementazioni dello stack TCP. In questo modo, analizzando le risposte, riescono a predire, con discreta approssimazione, il sistema operativo e talvolta la sua specifica versione

OS Fingerprinting
Si inviano pacchetti anomali, e si vede come risponde il sistema. Siccome si sa che i SO rispondono in un certo modo a certi pacchetti, si in grado di identificarli. Fyodor, autore di nmap, ha passato l'estate ad aggiornare questi database di fingerprinting) Per Spoofing si intendono tecniche che consentono di presentarsi con lidentit altrui. Esistono diverse tecniche di Spoofing:

Email Spoofing: Far apparire una email come proveniente da qualcuno diverso dal mittente. 6

Web Spoofing: Far apparire un sito web come uno di una diversa organizzazione. IP Spoofing: Generare pacchetti di rete con indirizzo IP sorgente diverso da quello assegnato.
Il Phishing combina le tecniche di Email spoofing e Web spoofing Il Source Routing un'opzione del protocollo IP che permette al mittente di specificare (nello header IP max 36 byte-> 9 indirizzi IP) quale routing dovr seguire un pacchetto in Internet. Esistono due tipologie di Source Routing:

Loose source routing: vengono specificati alcuni indirizzi IP attraverso i quali il pacchetto dovr passare. Permesso il routing anche su altri indirizzi oltre a quelli specificati. Strict source routing: il pacchetto pu passare solo da host indicati.

Le contromisure contro lIP spoofing sono principalmente 2 :

INGRESS FILTERING: (filtraggio del traffico in ingresso) Nessun pacchetto con Ip address interno alla rete
pu essere ricevuto come proveniente dallesterno. EGRESS FILTERING: (filtraggio del traffico in uscita) Nessun pacchetto con IP address non appartenente alla rete pu uscire dalla stessa rete.

Il TCP SESSION HIJACKING (letteralmente : dirottare una sessione) consiste nel dirottare una sessione attiva tra un client e un server dove lintrusore pu impersonare un client legittimo o proseguire la comunicazione con il server nella medesima sessione apparendo un client legittimo, il tutto rendendolo inattivo. Questa tecnica viene eseguita al fine di evitare la fase di autenticazione, effettuata dal reale client e sfruttare i suoi privilegi per accedere a informazioni riservate.

Mitnick attack
Un server predisposto ad accettare connessioni da un client. 1. 2. 3. 4. 5. L'Intrusore invia un SYN al Server, con IP spoofato del client Il Server risponde con SYN/ACK al client Il client legittimo risponderebbe con RST perch non sa niente della connessione ma prima di fare ci, l'Intrusore invia un ACK con IP spoofato al Server, e IP identifier CORRETTO La connessione viene quindi accettata e prosegue, e l'Intrusore invia comandi remoti al server

Tutto ci si basa sulla predicibilit dei numeri di sequenza che identificano le connessioni IP. La specifica dice solo che devono essere diversi per ogni connessione, e ovviamente c' chi li genera in modo banale e chi invece li genera in modo serio. In questo attacco, tutto va a buon fine SOLO SE al passo 4 l'Intrusore in grado di imbroccare il sequence number che il client avrebbe scritto. Altra conseguenza che il client legittimo viene isolato dalla comunicazione, e non pu pi fare nulla. Il SYN FLOODING una tipologia di denial-of-services, nel caso di Mitnick un pacchetto ogni decimo di secondo. Le contromisure a tale attacco vengono effettuate con lutilizzo di comunicazioni crittate (SSL), protocolli sicuri (SSH), limitare i tipi di connessioni con firewall, limitare la possibilit di accessi remoti e metodi di autenticazione forti.

IPSEC
Nel 1994 lInternet Architecture Board pubblica un report (rfc 1636) nel quale si sottolinea lesigenza di avere una maggiore e migliore sicurezza in Internet, nello specifico fu raccomandato di includere meccanismi di autenticazione a livello IP della prossima generazione, protocollo pubblicato con il nome di IPv6. Fortunatamente, tali funzionalit di sicurezza furono progettate per essere utilizzabili sia dallattuale IPv4 e dal futuro IPv6. IPSEC pu crittare e/o autenticare tutto il traffico a livello IP fornendo la possibilit di rendere sicure le comunicazioni su LAN, su WAN private e pubbliche e su Internet. Esempi di utilizzo sono:

Comunicazioni tra sedi aziendali attraverso Internet Accessi Remoti a basso costo Comunicazioni con partner aziendali Accessi Applicativi Sicuri (es. E-Business)

La caratteristica rilevante di IPsec che pu cifrare e autenticare tutto il traffico a livello IP, adattandosi quindi ad una notevole gamma di applicazioni. Possono , pertanto, essere rese sicure tutte le applicazioni distribuite , incluse quelle per connessioni remote , applicazioni client/server, posta elettronica , trasferimento di file, accesso al web, e cos via. Unorganizzazione dispone di LAN disseminate sul territorio. Il traffico su queste LAN sicuro. Per il traffico esterno, effettuato tramite WAN pubblica o privata, sono invece utilizzati i protocolli IPsec .Questi protocolli operano allinterno dei dispositivi di rete , quali ad esempio router o firewall, che connettono ciascuna LAN con lesterno. I dispositivi di rete IPSec cifrano e comprimono tutto il traffico diretto alla WAN,e decifrano e decomprimono il traffico in arrivo dalla WAN; queste operazioni sono effettuate in modo trasparente rispetto sia alle workstation sia ai server connessi sulle LAN. La trasmissione sicura possibile anche nel caso di utenti singoli che si collegano alla WAN utilizzando la rete telefonica. Per garantire la sicurezza necessario che le workstation di tali utenti implementino i protocolli IPSec. Le funzionalit del protocollo IPSec devono obbligatoriamente essere fornite in IPv6, mentre sono opzionali nel caso di IPv4 . In entrambi i casi , tali funzionalit di sicurezza sono realizzate mediante intestazioni aggiuntive, chiamate intestazioni di estensione, che seguono lintestazione IP principale. Lintestazione di estensione relativa allautenticazione nota con il nome di Intestazione di Autenticazione (AH authentication header) mentre quella per la cifratura conosciuta come ESP (encapsulating security payload) che pu esser in due versioni,o solo crittazione o crittazione e autenticazione. IPSec fornisce un insieme di servizi di sicurezza a livello IP. Tale funzionalit ottenuta consentendo a un sistema di selezionare i protocolli di sicurezza che gli occorrono, di decidere gli algoritmi (di crittazione e/o autenticazione) da utilizzare per i servizi e di predisporre tutte le chiavi di cifratura necessarie per fornire i servizi richiesti. Un concetto chiave per i meccanismi IP di autenticazione e di riservatezza lassociazione di sicurezza (SA , security association). Una SA consiste in una connessione logica unidirezionale tra il mittente e il ricevente che offre servizi di sicurezza al traffico lungo tale connessione. Se necessaria unassociazione paritetica , al fine di effettuare scambi sicuri in entrambe le direzioni , necessario utilizzare due associazioni di sicurezza. Nellambito di una SA si pu utilizzare uno tra i protocolli AH e ESP, ma non entrambi. Una SA identificata univocamente da tre paramentri:

Indice dei parametri di sicurezza (SPI) : una stringa di bit contenuta negli header sia AH che di ESPla quale
identifica la SA Indirizzo IP di destinazione: attualmente solo indirizzi IP unicast sono supportati, identifica il destinatario nella SA (utente o componente di rete) Identificatore del protocollo di sicurezza: Indica se la SA utilizza AH o ESP.

Sia AH che ESP supportano due modalit duso differenti:

1. Trasport mode: IPsec in transport mode fornisce sicurezza per i protocolli di livello superiore
(TCP,UDP, applicativi). Le funzionalit di sicurezza si applicano al payload del pacchetto IP . Di conseguenza, autenticazione e crittazione non sono applicate allheader del pacchetto IP. Trasport mode viene utilizzato principalmente in comunicazioni dirette tra host sorgente e destinatario non mediate da altri componenti dellarchitettura di sicurezza.

2. Tunnel mode: IPSec in tunnel mode protegge lintero pacchetto IP (header+payload). Il pacchetto IP
originale viene considerato come il payload di un nuovo pacchetto IP, il quale avr un nuovo header IP. Il pacchetto IP originale viene quindi instradato attraverso il nuovo pacchetto IP che lo ingloba (tunnel). Il nuovo pacchetto IP pu avere indirizzi IP sorgente/destinazione diversi rispetto al pacchetto originale. Tunnel mode usato principalmente quando almeno uno tra sorgente e destinatario un gateway (firewall, router) che implementa IPSec. In questo modo, la comunicazione viene protetta durante il transito su una rete non sicura.

AH
Il protocollo AH, come detto, fornisce due funzionalit principali quella di integrit, ovvero garantisce che se il pacchetto viene modificato rispetto alloriginale ci viene rilevato, e di autenticazione, ossia identifica univocamente sorgente e/o destinatario. AH aggiunge un proprio header a quello IP standard.

Header AH

Lheader AH composto dai seguenti campi:

Next header (8 bit): Indica il tipo di intestazione che segue immediatamente lintestazione in questione. (es.
tcp, udp.)

Payload lenght (8 bit): Indica la lunghezza dellAH ottenuta sottraendo due unit alla lunghezza , espressa in
parole di 32 bit, di AH. Ad esempio , la lunghezza di default per il campo relativo ai dati di autenticazione 96 bit, ovvero 3 parole di 32 bit. Con una intestazione di lunghezza fissa pari a 3 parole, nellintestazione sono contenute in totale sei parole, e la lunghezza del campo payload assume quindi valore 4. 16 bit riservati: riservati per utilizzi futuri. SPI (32 bit): Identifica la Security Association (SA) tra sorgente e destinatario. Sequence Number (32 bit): Il valore di un contatore.

Authentication Data(variabile, multiplo di 32): Contiene lIntegrity Check Value (ICV), oppure il MAC
relativo al pacchetto in questione. Un attacco di replay (Replay Attack) ha luogo quando un avversario ottiene una copia di un pacchetto autenticato e lo trasmette successivamente alla legittima destinazione. La ricezione di duplicati di pacchetti IP autenticati pu provocare malfunzionamenti nei servizi o avere altre conseguenze indesiderate. Il campo numero di sequenza contenuto nellAH stato concepito per contrastare questo tipo di attacco. In primo luogo illustreremo come il mittente genera il numero di sequenza e poi come viene elaborato dal destinatario. Quando si costituisce una nuova SA, il mittente inizializza a 0 un contatore utilizzato per generare i numeri di sequenza. Ogni volta che viene spedito un pacchetto su questa SA, il mittente incrementa il contatore e inserisce il corrispondente valore nel campo numero di sequenza. Questo significa che il primo valore da utilizzare 1 . Se il servizio anti-replay abilitato (caso default), il mittente non deve consentire che il valore del numero di sequenza compia un intero ciclo raggiungendo il valore 2 ^32 1, ritornando quindi a 0. Se ci fosse consentito, ci sarebbe pi di un pacchetto valido con lo stesso numero di sequenza. Quando viene raggiunto il limite di 2^32-1, il mittente dovrebbe terminare la SA corrente e negoziare una nuova SA con una nuova chiave. Dato che IP un servizio privo di connessione e non affidabile, non garantisce che i pacchetti siano recapitati nello stesso ordine con cui sono stati spediti e nemmeno che tutti i pacchetti raggiungano effettivamente la destinazione. Per questo, il documento IPSec relativo allautenticazione impone che il ricevente realizzi una finestra di dimensione W , con un valore di default per W pari a 64. Il lato destro della finestra rappresenta il numero di sequenza pi alto ricevuto fino a quel momento per un pacchetto valido. Tale numero denotato con N. Per ogni pacchetto con un numero di sequenza compreso nellintervallo N-W+1 a N ricevuto correttamente (cio correttamente autenticato), viene contrassegnato il corrispondente slot nella finestra. Ogni volta che viene ricevuto un nuovo pacchetto , il processo continua iterativamente come di seguito illustrato: 1. 2. 3. Se il pacchetto ricevuto nuovo , e ricade allinterno della finestra, viene verificato il MAC. Se il pacchetto autenticato, viene contrassegnato lo slot corrispondente nella finestra. Se il pacchetto ricevuto nuovo e ricade a destra della finestra, viene verificato il MAC. Se il pacchetto autenticato, la finestra viene spostata in avanti in modo che il numero di sequenza di tale pacchetto ne costituisca il limite destro, e viene contrassegnato lo slot corrispondente. Se il pacchetto ricevuto alla sinistra della finestra , oppure lautenticazione non va a buon fine, il pacchetto non viene preso in considerazione; tale azione rappresenta un evento registrabile.

10

Il campo dati di autenticazione contiene un valore, chiamato valore per la verifica di integrit (ICV). Questo un MAC o una versione tronca di un codice generato da un algoritmo MAC. La misura di protezione prende il nome di message authentication . Una tecnica molto comune di message authentication prevede luso di una chiave simmetrica Kab condivisa tra originatore A e destinatario B. Quando A deve inviare un messaggio M a B, calcola il MAC (message authentication code) come funzione del messaggio M e della chiave condivisa Kab. Quindi A invia a B il messaggio M e il MACm. Il destinatario B esegue sul messaggio M e la chiave Kab la stessa funzione usata da A e compara il valore del MAC calcolato con quello ricevuto. I due devono coincidere. Nel caso in cui i due MAC coincidano, il destinatario B ha garanzia che : Il messaggio M non stato alterato Loriginatore effettivamente A

Perch ci sia vero deve essere vera lassunzione che prevede che la chiave Kab sia unica e a conoscenza del solo originatore A. Inoltre occorre che la funzione che genera il MAC non sia invertibile. HMAC calcola un MAC tramite luso di funzioni hash unidirezionali garantendo sia lintegrit che autenticazione . Anzich utilizzare un algoritmo crittografico simmetrico, viene utilizzata una funzione di hash unidirezionale che utilizzi una chiave segreta K. (problema: MD5 e SHA1 non sono progettate per prendere in input un secondo parametro). Il MAC calcolato considerando i seguenti elementi:

1. I campi dellheader IP il cui valore non viene modificato durante il routing (no TTL). I valori dellheader
IP modificabili vengono considerati aventi valore 0 per il calcolo.

2. I campi dellheade AH tranne lauthentication data che viene considerato a 0.


3. Tutti i dati degli header di livello superiore, compresi quelli applicativi, che non vengono modificati durante il trasporto.

AH: TRANSPORT MODE

Nel caso di AH in modalit trasporto, se si utilizza IPv4, AH inserita tra lintestazione IP originaria e il payload IP, come illustrato. Lautenticazione copre lintero pacchetto, ad eccezione dei campi modificabili nellintestazione IPv4 che sono posti a zero per il calcolo del MAC. Nel caso IPv6,AH vista come un payload end-to-end; questo significa che non viene elaborata ed esaminata dai router intermedi. Per tale ragione, AH posta dopo lintestazione base IPv6 e dopo le intestazioni di estensione relative allhop-by-hop. Nel caso di AH in modalit Tunnel viene autenticato lintero pacchetto IP originario e AH collocata tra lintestazione IP originaria e una nuova intestazione IP esterna. Lintestazione IP interna contiene gli indirizzi della sorgente e della destinazione originaria, mentre lintestazione IP esterna pu contenere indirizzi IP diversi (ad esempio di firewall o di altri gateway di sicurezza). Se si utilizza la modalit tunnel , AH protegge lintero pacchetto IP interno,

11

compresa la sua intestazione IP. Lintestazione IP esterna e, nel caso di IPv6, le intestazioni di estensione IP esterne sono protette con lesclusione dei campi modificabili o non prevedibili. In entrambi i casi lheader IP conterr un campo protocol che indicher al destinatario la tipologia dellheader che segue quello primario. Naturalmente se si utilizza IPSec il primo header IP indicher (sia in modalit transport che tunnel) che segue lintestazione AH. Nellheader AH a sua volta verr specificato che lheader che segue : IP ,se si in modalit tunnel mode o TCP, se si in modalit tran sport mode. Da sottolineare che per lutilizzo di IPSec con il protocollo AH non possibile utilizzare reti con NAT in quanto questultimo va a modificare, in ogni pacchetto, proprio quelle informazioni protette da AH ovvero IP sorgente e IP di destinazione. ESP : Encapsulated Security Payload ESP fornisce servizi volti ad assicurare la riservatezza, inclusa quella del contenuto dei messaggi e una parziale riservatezza del flusso di traffico. Opzionalmente, ESP pu anche fornire servizi di autenticazione.

Vediamo ora da cosa composto lheader ESP mostrato in figura:

SPI: Identifica la Security Association (SA) tra sorgente e destinatario; Sequence Number: Il valore di un contatore (anti-replay) Payload data: segmento del livello di trasporto (TCP) o pacchetto IP (tunnel) protetto con cifratura Padding: diversi usi, spiegazione successiva. Pad Lenght: Il numero di byte del campo Padding Next Header: Identifica il tipo di dati contenuti nel campo Payload (es. tcp o udp) Authentication Data: (multiplo di 32 bit) Contiene lICV (Integrity Check Value) del pacchetto IP.

I dati contenuti nei campi Payload, Padding e Next header vengono crittati da ESP. Gli algoritmi supportati sono: DES (in modalit CBC),3DES,RC5,3-IDEA,CAST,Blowfish,AES. Il Padding , in generale, un insieme di byte che servono solo come riempitivo, normalmente non hanno un significato se non quello di completare altri dati fino a far raggiungere, complessivamente, una dimensione fissa. In ESP il campo Padding viene utilizzato per completare il payload per raggiungere un certo numero di byte , come richiesto da alcuni algoritmi crittografici. Inoltre ESP richiede che Payload+Padding sia multiplo di una word di 32 bit e che Pad Lenght e Next Header siano allineati con una word da 32 bit. ESP: trasport mode

12

ESP in modalit trasporto utilizzato per cifrare e, opzionalmente, autenticare i dati trasmessi tramite IP. Quando si trasmette in modalit trasporto in IPv4 , lintestazione ESP collocata nel pacchetto IP immediatamente prima dellintestazione del livello trasporto, mentre i campi di completamento, lunghezza di completamento e intestazione successiva, sono collocati dopo il pacchetto IP (trailer ESP). Se viene scelta lautenticazione, il campo dati di autenticazione di ESP aggiunto dopo i campi precedentemente menzionati. Sia lintero segmento a livello trasporto sia i campi sopra descritti sono cifrati.Lautenticazione copre tutto il testo cifrato ed anche lintestazione ESP. Per quanto riguarda IPv6 , ESP visto come un payload end-to-end. Ci implica che i router intermedi non effettuano alcuna elaborazione o esame. Lintestazione ESP collocata dopo quella base IPv6 e dopo le intestazione hop-by-hop di instradamento e frammentazione. Lintestazione di estensione relativa alle opzioni di destinazione pu essere collocata sia prima sia dopo lintestazione ESP, in dipendenza dal significato che si vuole attribuire. La cifratura copre oltre che lintero segmento a livello di trasporto e il trailer ESP, anche lintestazione relativa alle opzioni di destinazione, nel caso in cui tale intestazione compaia dopo lintestazione ESP. Anche in questo caso, lautenticazione copre sia il testo cifrato sia lintestazione ESP. I campi dellintestazione sono: ESP header: campi SPI e sequence number ESP trir: (ESP trailer) I campi Padding, Pad length e Next header ESP auth: (presente solo nel caso di cervizio di autenticazione) contiene HMAC(come AH) Loriginatore critta i dati composti dallintero segmento TCP/IP pi lESP trailer. Il segmento TCP/UDP originale viene sostituito dalla versione cifrata (payload ESP). Se richiesta anche lautenticazione , HMAC viene aggiunto in ESP auth. Il pacchetto cos formato viene indirizzato al destinatario. Il routing avviene in maniera standard perch i router non necessitano dei dati crittati. Il destinatario processa normalmente l header IP (non crittato). Successivamente sulla base dello SPI contenuto nellESP Header (non crittato), il nodo destinazione decifra la rimanente parte di pacchetto al fine di ricostruire il segmento di livello trasporto in chiaro. Se lalgoritmo crittografico richiede un vettore di inizializzazione, questo viene aggiunto in testa al payload e non crittato.

ESP: tunnel mode

13

ESP in modalit tunnel utilizzato per cifrare un intero pacchetto IP. Loriginatore prepara il pacchetto IP interno (quello trasmesso in tunnel) analogamente a quanto farebbe in una normale trasmissione non IPSec (quindi indirizso IP del dest. finale). Loriginatore aggiunge quindi LESP Header e critta i dati composti dallintero pacchetto IP pi lESP trailer. Leventuale HMAC viene aggiunto in ESP auth. Il nuovo header IP, contenente come indirizzo IP destinatario lindirizzo del gateway IPSec, viene quindi aggiunto e il pacchetto inviato. Il gateway destinatario processa normalmente lheader IP esterno e ne decritta il contenuto cifrato del pacchetto. Il pacchetto IP interno viene quindi instradato nella rete interna. Ogni SA tra un originatore e un destinatario pu implementare AH o ESP ma non entrambi. Si potrebbe per volere ESP per trasmetter IPSec ad un gateway e AH per la successiva trasmissione interna. Le SA possono essere combinate secondo 2 modalit:

1. Transpor mode adiacenti : Nel caso di SA combinate con la modalit transport mode adiacenti, si hanno due
protocolli IPSec in transport mode annidati aventi AH come Security Association esterna e ESP (senza auth) come Security Association interna; il pacchetto risulter come in figura. Vantaggi: AH copre lheader IP rispetto allauth ESP

2. Tunnel IP iterati : Nel caso di SA combinate con questa modalit si sfrutta la possibilit di annidare diversi
tunnel IP (ovvero inserire un intero pacchetto IP come payload di un pacchetto IP esterno), ognuno con modalit IPSec diversa. Ad esempio ESP in tunnel mode comme tunnel IP esterno e AH in tran sport mode come tunnel IP interno. In questo modo si proteggono le informazioni di autenticazione le quali vengono trasmesse cifrate.

14

Le specifiche IPSec assumono che tutte le implementazioni supportino 4 configurazioni:

1. Host-Host: originatore e destinatario implementano IPsec in maniera trasparente ad ogni router intermedio. 2. Gateway-Gateway: originatore e destinatario non implementano IPSec che invece viene implementato tra
gateway in modalit tunnel mode.

3. Host remoto-Gateway-Host: un host remote rispetto ad una rete aziendale si connette al gateway IPSec per 4.
comunicare con risorse nella LAN. H-G in tunnel mode e G-H in transport mode Host-Gateway-Gateway-Host: Tutti implementano IPSec. In mod. Tunnel tra i gateway e transport tra G-H

Il funzionamento tradizionale di IPSec prevede luso di 4 chiavi simmetriche corrispondenti alle SA di trasmissione e di ricezione sia di AH che di ESP. Larchitettura di IPSec richiede il supporto per due tipi di gestioni delle chiavi: Uno manuale dove lamministratore configura manualmente ogni sistema con le chiavi da utilizzare. Laltro automatico dove le chiavi possono essere generate dinamicamente e automaticamente scambiate allatto della richiesta di comunicazione IPSec. Nel caso di gestione automatica:

1. Internet Security Association and Key Management Protocol (ISAKMP): definisce il contesto e formati 2. 3.
per la negoziazione di attributi di sicurezza (RFC 2408) Oakley Key Determination Protocol: E un protocollo di gestione delle chiavi basato sullalgoritmo Diffieman (RFC 2412) Internet Key Exchange Protocol (IKE): E il protocollo di scambio delle chiavi stesse (RFC 4306)

VPN
Linterconnessione tra sedi o siti aziendali geograficamente remoti sempre stata uno degli scopi primari dello sviluppo delle reti di computer. Sempre pi per sorta lesigenza di farla in maniera sicura. Fino a qualche tempo fa si pensava di utilizzare linee dedicate, sia proprietarie che noleggiate da fornitori di servizi. In questo modo linterconnessione avviene su reti fisicamente private rispetto a Internet. I vantaggi risultavano essere lestensione della rete aziendale, sicurezza equivalente alla LAN o garantita dal fornitore. Questa soluzione risultava essere molto costosa, spesso impraticabile quando le distanze non sono brevi. Il progresso di Internet in termini di affidabilit e banda trasmissiva, la diffusione di collegamenti veloci e a banda larga ha permesso di considerare luso di Internet per la realizzazione di WAN virtuali:Virtual Private Network (VPN). I vantaggi sono legati sicuramente ad una struttura gi esistente anzich realizzazione o noleggio di connessioni dedicate, costi enormemente inferiori al dispetto di una qualit e affidabilit del servizio non sempre garantite, oltre alla scarsa sicurezza. Le configurazioni di reti VPN sono di diverso tipo:

HOST-TO-HOST: VPN sullintero canale di comunicazione tra due host.(Es. Client/Server) HOST-TO-GATEWAY: VPN tra un host remote e un gateway aziendale. GATEWAY-TO-GATEWAY: VPN solo tra gateway aziendali.
Sempre pi spesso laffidabilit e la qualit del servizio sono garantiti dagli ISP con tipologie di contratto differenti o attraverso accordi specifici. Naturalmente la sicurezza fisica di una LAN non garantita in Internet. Ci a creato la necessit di soluzioni tecnologiche aggiuntive per rendere connessioni su di una VPN a livello di sicurezza comparabile ad una LAN. Le due funzionalit possono essere in contrasto tra loro: maggiore sicurezza consuma risorse computazionali e riduce la banda trasmissiva utilizzabile per i dati, riducendo , potenzialmente, la qualit del servizio. Rispetto ai livelli dello stack TCP/IP, diversi meccanismi di sicurezza possono essere utilizzati per rendere sicuro il canale di comunicazione: Application Layer : crittazione a livello applicativo come PGP o protocolli sicuri quali SSH. Transport Layer: SSL la tipica soluzione per rendere sicuri i canali a livello di trasporto. Network Layer: IPSec garantisce cponfidenzialit e autenticazione a livello IP Data Link Layer: L2TP (layer 2 tunneling protocol) estensione di ppp.

Delle molte implementazioni del concetto di VPN, solo alcune in realt sono rilevanti in ambito aziendale: Connessioni SSH standard e SSH Tunnel

15

Connessioni SSL standard, SSL Tunnel e SSL proxy Desktop remoto IPSec SSH un protocollo applicativo basato su TCP (22/tcp) che consente shell remoti e trasferimento di file crittando lintera sessione di comunicazione. Usa autenticazione basata su username/password o chiave pubblica. Le versioni al momento disponibili sono : SSH1 e SSH2. Supportato da qualunque piattaforma, diffusissimo e facile da integrare e da gestire da parte dei firewall. Spesso utilizzato anche come protocollo per la configurazione remota di dispositivi di sicurezza. Come ogni protocollo SSH ha presentato serie vulnerabilit nel corso degli anni. SSH1 considerato poco sicuro , SSH2 preferibile ma anchesso ha delle vulnerabilit. Si consiglia di evitare connessioni SSH da remoto a dispositivi critici (router, gateway,firewall) con privilegi di root. SSH ha una funzionalit importante chiamata port forwarding : una porta locale di un client scelta arbitrariamente pu essere associata ad una connessione SSH diretta ad un particolare server remoto (indirizzo IP e porta applicativa). Dopo che la connessione SSH stabilita, il client utilizza la porta locale per stabilire una connessione applicativa (pop3, X11). Il traffico applicativo viene trasmesso in tunnel attraverso la connessione SSH. Questo si chiama Tunnel SSH: specifico di una particolare porta remota, quindi occorre configurare un diverso tunnel SSH per ogni host/porta remota. Tale servizio funziona solo per applicazioni TCP. La maggior parte dei client SSH attuali supportano il port forwarding. La configurazione di una porta applicativa locale con tale tecnologia pu causare una grave vulnerabilit nel caso un attaccante sia in grado di connettersi alla porta del client configurata per il PF. In questo caso la connessione del client verrebbe reinderizzata in tunnel SSH al server configurato nel PF. Tale problematica pu essere risolta configurando la porta locale per il port forwarding in modo tale da accettare solo connessioni locali. La porta locale pu essere scelta arbitrariamente . E comodo selezionare come tale la porta standard che verr trasportata in tunnel SSH (es 110/tcp per POP3). In questo modo nella configurazione del servizio applicativo occorrer solo specificare che il server da contattare non il server remoto ma il localhost. Mentre connessioni standard SSH sono semplici da gestire dal punto di vista dellarchitettura di sicurezza, gli SSH tunnel comportano diverse difficolt e possono richiedere molte modifiche alla protezione perimetrale. Il motivo che ogni tunnel SSH ha una combinazione host/porta_destinazione differente, e quindi deve essere abilitato singolarmente nelle policy dei firewall. Se il numero elevato (decine i centinaia) la gestione pu rilevarsi estremamente gravosa e le politiche risultanti dei firewall troppo poco restrittive dovendo abilitare tale numero di porte. Una funzionalit utile di SSH Tunnel la possibilit di annidamento, ovvero di avere un SSH Tunnel inserito in un altro SSH Tunnel.

Secure Socket Layer/Transport Security Layer VPN


SSL stato creato da Netscape. Una volta raggiunto il consenso pubblico a sottomettere il protocollo al processo di standardizzazione Internet, allinterno di IETF stato costituito il gruppo di lavoro TLS per lo sviluppo di uno standard comune. Si pu considerare la prima versione di TLS essenzialmente come un SSLv3.1 . SSL progettato per far uso del protocollo TCP al fine di fornire un servizio di sicurezza end-to-end affidabile. Il protocollo SSL non un unico protocollo, ma piuttosto costituito da due livelli di protocolli. SSL Record fornisce servizi di sicurezza di base a un certo numero di protocolli di pi alto livello. In particolare, il protocollo http pu operare sopra SSL. Il protocollo contiene altri 3 protocolli di pi alto livello: Handshake, Change cipher spec e Alert . Due concetti fondamentali sono quello di connessione e di sessione. La prima un trasporto che fornisce una tipologia opportuna di servizio ed associato ad una sessione; la seconda unassociazione fra un Client e un Server. Le sessioni sono create dal protocollo Handshake e definiscono un insieme di parametri crittografici di sicurezza, che possono essere condivisi fra molteplici connessioni. Le sessioni si utilizzano per evitare una costosa negoziazione di nuovi parametri di sicurezza per ciascuna connessione. Luso di SSL Proxy la modalit pi diffusa nellutilizzo di SSL per VPN. Permette una comunicazione sicura a pi applicazioni utilizzando ununica metodologia. Il funzionamento molto semplice: 1. Gli utenti (web browser) stabiliscono una sessione HTTPS con lSSL Proxy aziendale 2. Autenticazione degli utenti sul proxy server (con username e password) 3. Esecuzione di applicazioni e connessioni con host remoti. Il vantaggio rilevante di una VPN realizzata con SSL Proxy rispetto ad IPsec la facilit di realizzazione lato client. I client devono avere solo un web browser, nessun software proprietario o dedicato. Questo vantaggio scompare quando

16

vengono usati protocolli diversi da HTTPS i quali sono poco supportati dai software pi diffusi. La soluzione con SSL Proxy buona anche dal punto di vista dellarchitettura di sicurezza: I client remoti accedono al Proxy con un unico protocollo (HTTPS di solito) , permettendo quindi una semplice configurazione dei firewall. Dal proxy dovranno essere consentite solo le connessioni previste dalla VPS con SSL Proxy (specificando destinatari e porte). Il Proxy un componente critico perch autorizzatoad aprire connessioni , quindi, deve essere configurato in modo sicuro e deve essere sempre protetto da firewall.

Soluzioni di Desktop remoto a sessione singola


Sono tool specifici, spesso basati su implementazioni e protocolli proprietari. Alcuni sono forniti come utility dei sistemi operativi (Win XP, Linux), altri sono tool stand-alone (es. pcAnywhere, LapLink). Permettono laccesso ad Desktop remoto di un host solo ad un client alla volta (sessione singola), non accessi contemporanei. Possono essere utilizzati per VPN perch molti offrono meccanismi di Tunnel sicuri, sia basati su protocolli proprietari che su protocolli standard (es https). Altri offrono meccanismi di tunnel non crittati (es VNC). Per le VPN questi devono essere a loro volta integrati con SSH o SSL tunnel. Soluzioni di Desktop remoto possono risultare estremamente critiche per la sicurezza aziendale data la facilit di installazione da parte di utenti non autorizzati e , per alcuni, la difficolt di gestione corretta da parte dei firewall. Nel corso degli anni questi tool hanno mostrato diverse vulnerabilit. Le soluzioni di Desktop remoto con tunnel in protocolli standard (es. HTTPS) sono difficili da riconoscere con luso di firewall , tale funzione infatti necessit di FW con analisi del payload (rari, meno efficienti, difficolt di configurazione). Sono invece pi facilmente gestibili le soluzioni di Desktop Remoto con protocolli proprietari anche se presentano maggiori vulnerabilit, minore robustezza, specifiche non pubbliche. Per evitare lapertura di tali porte sul FW possibile: Incapsulare il protocollo proprietario in tunnel SSH diretto ad un Server SSH server della screened subned. Usare il protocollo proprietario di Remote Desktop dal SSH server a host della rete interna. Vi sono inoltre i Terminal Server , ovvero tool che permettono accessi contemporanei al Desktop Remoto di un host (sessioni multiple). Sono tool di livello superiore rispetto ai precedenti a sessione singola (Citrix Metaframe, Windows Terminal Server) e forniscono a pi client accesso a interfacce virtuali anzich alla GUI fisica. Dispongono quasi sempre di meccanismi di crittazione delle connessioni (SSL) e usano un server dedicato. Un Terminal Server ovviamente una risorsa critica. Normalmente consentono di accedere a risorse ed applicazioni aziendali sensibili (sistemi di gestione, database). E quindi indispensabile configurarlo in maniera sicura , dislocare una screened subnet e proteggere con opportune politiche di firewalling. Le VPN che usano IPsec come tecnologia per rendere sicure le connessioni sono senza dubbio quelle pi importanti: tecnologia avanzata, protezione a livello IP, protocolli e algoritmi standard e pubblici e ampia integrazione con dispositivi di rete. Tutte le tecnologie (IPSec, SSH e SSL) permettono di implementare VPN attraverso soluzioni standard. SSH e SSL VPN richiedono la configurazione di un nuovo tunnel per ogni applicazione che client e server vogliono usare; IPSec VPN richiede la configurazione di una connessione IPSec unica tra client e server, attraverso la quale qualunque applicazione pu essere gestita. Le applicazioni VPN IPSec standard incontrano difficolt nellambito di reti con NAT in quanto questultimo cambia i valori IP e quindi il valore HMAC del protocollo risulter invalidato. Per ovviare al problema (presente nella quasi totalit delle reti aziendali moderne) si utilizzano: Concentratori VPN: dispositivo dedicato a funzioni di server IPSec; Firewall integrati con VPN Server: integrazione delle funzioni di firewall e concentratore VPN in un unico dispositivo; Router : Alcuni router hanno anche funzioni di server IPSec . Questi permettono di stabilire VPN gateway to gateway tra router. Molto critica per la riduzione del throughput dovuta a traffico IPSec. Indipendentemente dalla specifica tecnologia per VPN usata, esiste una criticit di fondo che il concetto stesso di VPN non pu risolvere: Chi usa il client VPN fidato?

17

Le VPN non risolvono il problema di usi impropri del client o accessi a risorse aziendali non autorizzati. Il client VPN pu essere usato in maniera impropria sia volontariamente (utente ostile) che allinsaputa del legittimo proprietario (computer infettato da worm o compromesso e gestito remotamente da un attaccante).

Two factor authentication


E un protocollo di autenticazione che richiede due forme di autenticazione per accedere ad un sistema (qualcosa che si possiede+qualcosa che si conosce Es: username/passwd + verifica biometrica, username/password+token fisico). Lobiettivo di rendere non pi sufficiente conoscere username e password per accedere ad un sistema, ma indispensabile anche il possesso fisico di una credenziale. Il meccanismo di autenticazione implementato da RSA SecurID prevede che lutente disponga di un apposito token hardware o software il quale genera una passcode ad intervalli regolari (30 o 60 secondi), visualizzata sullapposito display. La passcode viene digitata al posto della tradizionale password in combinazione con uno username o PIN a conoscenza dellutente. Questa tecnologia necessita di integrazione tra token e ACE/SERVER dovuta al fatto che il passcode generato dal token e usato per lautenticazione deve coincidere con il corrispondente passcode generato dallACE/SERVER per quellutente nello stesso momento. Gli intervalli di validit dei passcode sono molto ristretti (30 o 60 secondi), scaduti i quali un nuovo passcode viene creato. Il token dotato di un identificatore unico cablato al suo interno e di un clock interno che esprime il tempo in formato UTC. Lid del token corrisponde ad un record del database dellACE/Serve. Il rempo, calcolato aggiungendo al tempo di sistema dellACE/Server un offset specifico di ogni token che rappresenta il disallineamento esistente tra il clock interno al token e il tempo di sistema del server. Per validare il passcode di un utente, il server confronta il passcode digitato con quello calcolato internamente. Teoricamente tali valori dovrebbero coincidere in ogni istante di tempo. Nella pratica tuttavia, mentre il tempo di sistema, comprendente anche data e time zone, del server deve essere necessariamente corretto rispetto allUTC, ed esistono strumenti per garantire tale requisito (NTS), il clock del token pu facilmente essere disallineato rispetto allUTC e, poich fisicamento isolato, non possibile re-sincronizzarlo. Per risolvere tale problema il server calcola una finestra di validit, autenticando lutente rispetto ad un intervallo di passcode, calcolati tenendo conto del possibile disallineamento dei clock. Alla prima autenticazione di un utente, il server stabilisce a quale intervallo di clock corrisponde il passcode inviato dallutente e calcola la finestra di validit come scostamento rispetto al tempo di sistema del server. Tale scostamento prende il nome di synchronization offset e viene memorizzato nel token record del database del server per essere usato alle successive autenticazioni.

VULNERABILITA
Le vulnerabilit note, relative a servizi di rete e ad applicazioni specifiche, sono migliaia. Tutte dipendono dalla specifica implementazione del produttore che periodicamente rilascia patch per correggerle. Il Common Vulnerabilities and Exposures larchivio on-line di riferimento per identificare univocamente la vulnerabilit (burocratico, formale e non sempre aggiornato tempestivamente sito: http://www.cve.mitre.org/cve/ ). National Vulnerability Database (NVD) contiene vulnerabilit di CVE e di US-CERT (http://nvd.nist.gov/ ). Altr fonti sono:

Security Focus Vulnerabilities (http://www.securityfocus.com/vulnerabilities ) Secunia (http://secunia.com/ ) Eeye (http://www.eeye.com/html/research/advisories/index.html ) SANS (http://isc.sans.org/ )

Gestire le vulnerabilit descritte da SANS TOP 20 List rappresenta il livello minimo di protezione che ogni organizzazione dovrebbe raggiungere. Avere una categorizzazione delle vulnerabilit importante per poter fissare delle priorit nelle contromisure da adottare. Consideriamo le categorie adottate da SANS e i criteri seguiti per tali categorie. Classificazione delle vulnerabilit Le linee-guida che utilizza SANS per dare un valore ad una vulnerabilit sono: diffusione dei sistemi coinvolti

18

tipo di sistema (lato server o lato client) e privilegio (user o root) configurazione di default valore di criticit (Critica, Alta,Moderata, Bassa) Impatto sullinfrastruttura di rete Grado di difficolt Probabilit di attacco

Due concetti fondamentali sono:

Ciclo di vita di una vulnerabilit: Una vulnerabilit attraversa fasi diverse della sua evoluzione che ne
determinano la criticit e la diffusione: Creazione, quando si scrive il codice di un sw Scoperta Condivisione (documenti in rete) e automatizzazione (tool automatici) Pubblicazione patch e upgrade dei sistemi

Finestra temporale di esposizione di un sistema : Il tempo nel quale un sistema pu risultare vittima di attacchi
informatici a causa di una vulnerabilit dipende sia da fattori indipendenti che dipendenti dalla gestione del sistema stesso. In generale nessuna vulnerabilit causata esclusivamente da problemi delle tecnologie di rete (TCP/IP, seq, .etc), ma si riferiscono a problemi dei singoli sistemi: gestione della memoria (buffer overflow), interfacciamento col database (sql injection) , gestione degli input (directory traversal), shell ed esecuzione remota di comandi.

FIREWALL
I firewall rappresentano un mezzo efficace per proteggere un sistema locale o una rete di sitemi da attacchi perpetrarli attraverso la rete stessa. Un Firewall posizionato tra la rete locale e Internet al fine di stabilire un collegamento controllato e innalzare una barriera di sicurezza tra i due. E possibile configurarlo per impostare determinate politiche di accesso. Lo scopo di tale barriera proteggere la rete locale da attacchi esterni e fornire un solo punto di ingresso dove si possono collocare opportuni meccanismi di sicurezza e audit. Tutto il traffico dallinterno allesterno e viceversa deve passare attraverso il FW. Lunico traffico a cui consentito il passaggio attraverso il FW quello che rispecchia le politiche locali. Il FW immune alle penetrazioni, ci implica lutilizzo di un sistema trusted ovvero luso di un sistema operativo sicuro. Un FW costituisce un punto di riferimento per effettuare il monitoraggio di eventi legati alla sicurezza, inoltre pu costituire una piattaforma per IPSec, utilizzando la modalit tunnel pu essere creato per realizzare vere e proprie VPN. Solo i componenti esterni al firewall sono direttamente accessibili, di fatto si consentono solo connessioni da Internet alla rete DMZ (sinonimo di Screened Subnet ovvero il termine con cui indichiamo i segmenti accedibili dallesterno con connessioni esterne alla rete ma filtrati dal firewall, letteralmente Demilitarized Zone) , ma non da Internet verso la rete interna. In definitiva possiamo affermare che un firewall realizza una separazione in zone aventi diverso grado di sicurezza nella architettura di rete. Un FW definisce un singolo punto di entrata che mantiene gli utenti non autorizzati al di fuori della rete protetta, proibisce a servizi potenzialmente vulnerabili di entrare o uscire dalla rete, e fornisce protezione contro diverse tipologie di attacchi di rete. Lutilizzo di un singolo punto di entrata rende pi agevole la gestione della sicurezza in quanto le capacit di sixurezza sono consolidate allinterno di un singolo sistema o di un insieme di sistemi.

Static Packet Filtering


E la prima tecnologia adottata per i sistemi di firewall. Attualmente superata dalla tecnologia stateful nonostante il suo utilizzo ancora presente in sistemi di fascia bassa e nei router, per la sua semplicit e per lo scarso impatto sulle performance dei sistemi. Si tratta di un filtraggio del traffico, in ambedue le direzioni, basato unicamente sulle informazioni contenute negli header dei singoli pacchetti. I valori dei paramentri degli header vengono confrontati con le regole definite in una ACL (Access control list) e ammessi o scartati secondo il risultato del confronto. Ogni pacchetto quindi viene esaminato singolarmente, indipendentemente dai pacchetti precedentemente e successivamente ricevuti. Spesso per alcuni servizi si impone che le comunicazioni vengano regolate in modo che le risorse aziendali

19

accedano ad Internet, ma non il contrario. Attraverso i FLAG dellheader TCP possiamo supportare la politica di sicurezza. A questo livello risulta fondamentale conoscere le modalit di connessione dei vari protocolli, come TCP che utilizza un handshake a 3 vie (syn ack/syn - ack), bloccando i pacchetti sulla base della sorgente o del destinatario indicatovi. E importante sapere che le connessioni connectionless (UDP e ICMP) possono essere sia unidirezionali che bidirezionali, in funzione delle varie applicazioni (PING-bidirezionale, DNS query-UDP bidirezionale, Source QuenchICMP unidirezionale). Le tecniche pi comunemente utilizzate sono:

o o o o

Spoofing : controllo indirizzi Ip sorgente Tentate connessioni: controllo degli indirizzi IP, delle porte di destinazione e dei flag TCP Traffico ICMP: tipo e codice del messaggio Source Routing: impedisce traffico con lopzione source routing attiva.

Tali funzioni spesso vengono implementate in un Border router invece che da un componente specificatamente dedicato alla funzione di firewall. Abbiamo quindi affermato che il filtraggio di pacchetti di solito realizzato come un insieme di regole che si basano su verifiche di alcuni campi IP o TCP. Se il pacchetto corrisponde a una delle regole, questa viene invocata per stabilire se il pacchetto deve essere inoltrato oppure scartato. Se non esiste corrispondenza con alcuna delle regole, viene eseguita unazione di default. Questa pu essere scelta in base a due politiche. Default= scartare. Ci che non espressamente permesso viene proibito. Default=inoltrare. Ci che non espressamente proibito viene permesso. La prima politica la pi conservativa . Inizialmente tutto bloccato, e i servizi devono essere aggiunti caso per caso. La seconda politica aumenta la facilit di utilizzo da parte degli utenti ma fornisce un minor grado di sicurezza, al momento in cui si manifesta. Prima di analizzare ogni protocollo nel dettaglio vediamo alcuni semplici esempi, assumendo che in ogni caso la politica dottata sia default=scartare.

ACL
Le ACL definiscono le regole per il filtraggio statico dei pacchetti in transito. Semantica: Accept/Deny Criterio TOP-DOWN di filtraggio: o La prima regola verificata produce la decisione sul pacchetto o Il test del pacchetto continua fino a che una regola corrisponde alle caratteristiche del pacchetto oppure fino a che la lista di regole termina o Di norma esiste una regola di DEFAULT. Secondo gli standard CISCO si hanno:

Standard ACL : Numerate tra 0 e 99 , filtrano solo gli indirizzi IP sorgente Extended ACL: Numerate tra 100 e 199, filtrano IP sorgente, destinatario, protocollo, porte UDP e TCP e TIPO/CODICE messaggi ICMP.

Il formato standard ACL composto da : Access-list, numero, azione, sorgente, [wild card] |any Numero: da 0 a 99 per ACL standard Azione: Permit o Deny Sorgente: indirizzo IP sorgente Wild Card: determina la parte dellindirizzo da verificare e quella da ignorare. E simile alla netmask ma con semantica dei valori invertita per cui valore binario 1: equivale al bit dellindirizzo IP che non deve essere verificato, 0 a quello dellindirizzo che deve essere verificato. Esempio: Access-list 20 permit 192.168.1.0 0.0.0.0.255 (255=111111111)

20

Il formato Extended ACL definito: Access-list,numero,azione,tipo,sorgente,[wild card],opzioni,destinazione, [wild card] [log] Numero: da 100 a 199 per ACL estende Azione: permit/deny Sorgente: indirizzo Ip sorgente Destinazione: indirizzo IP destinazione Type: IP, UDP o TCP Opzioni: Porte TCP/UDP, tipo/codice ICMP, operatori speciali Log: Opzionale.Scrive un messaggio in un log per ogni pacchetto verificato da una regola.

Loperatore Estabilished permette di filtrare il traffico in ingresso se i flag RST o ACK sono attivi, in questo modo si permette lingresso di tali pacchetti solo in presenza di una sessione TCP gi stabilita, evitando attivit di scanning. Formalismo Temi desame: Direzione: indica la direzione del traffico (IN/OUT) IP sorgente/destinatario: valori degli indirizzi o uso di variabili (possono essere utilizzati anche i seguenti acronimi: DMZ, Internal, Private, External, WebServer) Protocollo: TCP, UDP, ICMP, IP Porta sorgente / destinatario: valore o range (es. >1023) FLAG ACK: se il protocollo TCP , il suo valore pu essere 0,1 o 0/1; ** per altri protocolli. Azione: Permit/Deny E molto diffuso luso di variabili alle quali assegnare valori di parametri, tipicamente indirizzi IP e sottoreti. E buon uso utilizzare variabili nelle regole di firewall anzich i valori.

Packet Filtering: Telnet


Vogliamo autorizzare solo connessioni Telnet dallinterno della rete aziendale verso lesterno. Filtrare il traffico solo sulle porte sorgenti e di destinazione, pu portare a una politica di sicurezza troppo permissiva. Direzione OUT IN IN Ip sorgente Internal Any Any Ip dest. Any Internal Any Protocollo TCP TCP Any Porta sorg. >1023 23 Any Porta dest. 23 >1023 Any Flag ack Azione Permit Permit Deny

**

Supponiamo che la seconda regola sia : IN Any Internal TCP 23 >1023 Permit . Questa regola permette connessioni generate da qualunque host esterno e dirette a qualunque host interno aventi porta sorgente 23/TCP e porta destinataria >1023. La politica dunque troppo blanda. Occorre limitare ai soli server telnet autorizzati: tlnSrv:= 159.149.70.13 Direzione OUT IN IN Ip sorgente Internal tlnSrv Any Ip dest. tlnSrv Internal Any Protocollo TCP TCP Any Porta sorg. >1023 23 Any Porta dest. 23 >1023 Any Flag ack 1/0 1 ** Azione Permit Permit Deny

Compatibilmente con le specifiche relative alla fornitura dei servizi, la politica di un FW deve essere la pi stringente possibile.

Packet Filtering : applicazioni semplici 21

Applicazioni come Telnet, SSH,rlogin,etc. sono semplici da gestire. Per loro natura implicano ruoli ben definiti (client/Server) e il pattern di scambio dei messaggi un semplice request/reply. Altre applicazioni possono avere protocolli pi elaborati, ad esempio perch prevedono ruoli client e server multipli o perch basate su pattern di scambio di messaggi pi sofisticati.

SMTP
Nella rete aziendale un solo server SMTP autorizzato a gestire la posta elettronica con lesterno. Le condizioni sono date dal fatto che il funzionamento del protocollo SMTP semplice, standard e utilizza il pattern request/reply. Inoltre client interni alla rete non passano per il FW. Se funziona come Telnet basta invertire interno con esterno. Definiamo dunque le variabili smtpSrv:= 159.149.70.23 e External :=not(159.149.70.0/24)

Direzione IN OUT Any

Ip sorgente External smtpSrv Any

Ip dest. smtpSrv External Any

Protocollo TCP TCP Any

Porta sorg. >1023 25 Any

Porta dest. 25 >1023 Any

Flag ack 1/0 1 **

Azione Permit Permit Deny

Il principio di base molto semplice: Un Mail Server riceve e invia posta da e verso altri Mail Server. Altri Mail Server si connettono al Mail Server aziendale agendo da client. Il Mail Server aziendale si connette ad altri Mail Server agendo da Client. (Abbiamo 2 connessioni TCP da gestire, non una) . Proprio perch le connessioni TCP da gestirte sono 2 la tabella precedente risulta incompleta.

Direzione IN OUT OUT IN Any

Ip sorgente External smtpSrv smtpSrv External Any

Ip dest. smtpSrv External External SmtpSrv Any

Protocollo TCP TCP TCP TCP Any

Porta sorg. >1023 25 >1023 25 Any

Porta dest. 25 >1023 25 >1023 Any

Flag ack 1/0 1 1/0 1 **

Azione Permit Permit Permit Permit Deny

FTP
FTP e' un servizio basato esclusivamente su TCP. FTP e' inusuale perch utilizza 2 porte: una porta 'dati' ed una porta 'comandi' o porta di 'controllo', quindi 2 connessioni una comandi e risposte, l'altra relativa ai dati. Tradizionalmente la porta 21 e' la porta comandi la 20 la porta dati. La confusione inizia quando non sempre la porta 20 e' la porta dati. FTP attivo: In questa modalit il client (ad esempio il programma Unix ftp) si connette da una porta random non privilegiata, cio con N maggiore di 1023, alla porta comando del FTP server cio alla porta 21. Poi inizia ad ascoltare dalla porta (M) e la invia il comando del protocollo:"PORT M" al FTP server dalla connessione di controllo. Il server si connetter indietro alla porta dati specificata dal client dalla sua porta dati locale cio dalla porta 20. Problema sui firewall: Il principale problema con FTP in modalit attiva cade sulla configurazione del firewall nel lato client del ftp. Il programma FTP client non esegue la connessione alla porta dati del server ma semplicemente esso dice al server quale porta sta "ascoltando" e poi e' il server FTP a iniziare a connettersi alla porta specificata dal client. In questo caso la configurazione del firewall lato cliente "va" aperta su una porta random (M) altrimenti potrebbe rifiutarla come richiesta di connessione "non sollecitata". FTP passivo:

22

Per risolvere il problema di un server che si connette al client, un metodo differente e' stato sviluppato per le connessioni FTP denominato "passivo" o PASV dal comando ftp utilizzato dal client per dire al server che utilizza il modo passivo. In questo modo, il client inizia ambedue le connessioni al server risolvendo il problema dei firewall, lato client, che bloccano le connessioni provenienti da sistemi "sconosciuti", nel caso dell'active, quella appunto proveniente dal ftp server. Quando inizia la connessione FTP, il client apre due porte random, non privilegiate cioe' maggiori di 1024, la N e la (M). La prima connessione contatta il server sulla porta 21 ma poi invece di inviare il comando PORT e permettere al server di connettersi all'indietro con la sua porta dati, esegue il comando PASV. (spiegazione tratta da wikipedia: PASV mette il server in ascolto su una porta che non e' quella predefinita in attesa di una connessione dati)) Il server FTP ricevuto questo comando apre una porta random non privilegiata cioe' maggiore di 1024 (P) ed invia il comando PORT P indietro al client. Il client a questo punto inizia la connessione dalla porta (M) alla porta P del server per trasferire i dati. Problema sui firewall: La configurazione del firewall lato client non ha problemi con la modalita' passiva perche' e' il firewall lato server che deve essere "aperto" per accettare richieste di connessioni a porte "random" (la porta P ne nostro caso).

SPF: FTP in modalit Normale


Le connessioni FTP sono caratterizzate da 2 connessioni: la prima relativa ai comandi e la seconda dedicata allo scambio dati. Consideriamo la seguente politica: Direzione OUT IN IN OUT Any Ip sorgente Internal External External Internal Any Ip dest. External Internal Internal External Any Protocollo TCP TCP TCP TCP Any Porta sorg. >1023 21 20 >1023 Any Porta dest. 21 >1023 >1023 20 Any Flag ack 1/0 1 1/0 1 ** Azione Permit Permit Permit Permit Deny

Questa policy pu causare un serio problema di sicurezza. La seconda connessione, relativa al canale dati, viene aperta dal server verso il client: ftpserver:20->ftpclient:xxxx (porta del client) La politica di gestione connessione da interno a esterno non applicabile al caso in oggetto (ovvero connessione da esterno a interno e porta di destinazione della connessione non determinata a priori). Il rischio che il seguente: intrusore :20-> Vittima:xxxx Le porte >1023 sono usate da servizi molto diffusi e da trojan.

SPF: FTP in modalit Passiva


La seconda connessione, relativa al canale dati, viene aperta dal client verso il server: ftpclient:YYYY -> ftpserver: XXXX La politica di gestione connessioni solo da interno a esterno torna ad essere applicabile. Oggi molti FTP supportano la modalit passiva e la utilizzano di default (Es Web browser). Direzione OUT IN OUT IN Any Ip sorgente Internal External Internal External Any Ip dest. External Internal External Internal Any Protocollo TCP TCP TCP TCP Any Porta sorg. >1023 21 >1023 >1023 Any Porta dest. 21 >1023 >1023 >1023 Any Flag ack 1/0 1 1/0 1 ** Azione Permit Permit Permit Permit Deny

RPC : Remote Procedure Call (RPC)

23

RPC, acronimo di Remote Procedure Call, un meccanismo generale per la gestione di applicazioni clientserver. Fu inventata da Sun Microsystem nei primi anni 80. Lo della sua invenzione era quello di fornire al programmatore un meccanismo per accedere a risorse remote con la semplice chiamata a procedura. Oggigiorno sono disponibili tre versioni di RPC: SunRpc, DceRpc e Ms RPC funzionamento: Semplificando in modo estremo il funzionamento della RPC possiamo dire che si tratti di un meccanismo attraverso il quale si possono eseguire delle elaborazioni remote. Dal lato servente si trova il Portmapper, in ascolto sulla porta 111, mentre dal lato cliente ci sono una serie di programmi che, per un servizio RPC qualunque, devono prima interpellare il Portmapper remoto il quale fornisce loro le informazioni necessarie per stabilire una connessione con il demone competente. Per questo motivo ogni procedura RPC individuata da due parametri: 1) Numero di programma; 2) Numero di versione. Attraverso questi parametri il portmapper un grado di rispondere al client informandolo sul numero di porta da utilizzare per quel programma. Ogni numero di programma individua un gruppo di procedure simili, ciascuna con un diverso numero di procedura. Andando nei dettagli, possiamo descrivere varie fasi della Remote Procedure Call: Il client chiama una procedura locale sul suo sistema nota come stub del client. Questa procedura servira' per standardizzare i pacchetti per il server: la loro costruzione prendera' il nome di marshaling. Tali messaggi vengono passati al server utilizzando il protocollo UDP o TCP a seconda del servizio rpc. Il server avvia una sua procedura di stub che permette di disassemblare tali pacchetti e di ricostruirli in un formato piu' congeniale al server e alla sua architettura. La stub del server esegue la procedura richiesta dal client con i parametri passati dal client. Il server restituisce il risultato di tale chiamata alla sua stub. La stub del server manda il risultato della procedura al client con il protocollo di trasporto utilizzato. La stub del client riceve il pacchetto/i contenenti i risultati della procedura visti come se fossero stati eseguiti sul client. Il portmapper In Unix il portmapper RPC un server che contiene la lista dei programmi RPC registrati e la porta e il protocollo su cui sono in ascolto. Il portmapper converte i numeri del programma RPC in numeri di porta del protocollo TCP/IP (o UDP/IP). Deve essere in funzione al fine di eseguire chiamate RPC (che quello che fa il software del client NIS/NIS+) ai server RPC (come un server NIS o NIS+) su quella macchina. Quando un server RPC in esecuzione, comunica a portmap su quale numero di porta in ascolto e quali numeri di programmi RPC pronto a servire. Quando un client desidera fare una chiamata RPC ad un dato numero di programma, prima contatta porta sulla macchina server al fine di determinare il numero della porta dove i pacchetti RPC potranno essere inviati. In definitiva il server RPC (attraverso PortMapper, nel caso di Unix), determina dinamicamente la porta (>1023) da assegnare al servizio RPC. Il problema dato dal fatto che non si conosce a priori la porta che il server RPC assegner al servizio. Il rischio quindi dato dal fatto che un intrusore pu connettersi al server interno RPC.

24

Stateful Filtering
Una connection table, mantiene lo stato delle connessioni attive, inoltre vengono controllate le informazioni degli header di livello 3 e 4 dei singoli pacchetti. Ogni pacchetto viene esaminato sia singolarmente che in relazione ai pacchetti precedentemente ricevuti e appartenenti alla stessa sessione. Principio di funzionamento di uno stateful filter: - Se il server/porta nello stato di LISTEN si deve controllare lACL - Se il server/porta nello stato di ESTABILISHED i pacchetti possono essere autorizzati verificando le informazioni della connection table. Quindi :

- Ricezione di un SYN -> verifica dellACL (come per Packet Filter) 25

- Se connessione non autorizzata-> Deny - Se connessione autorizzata -> Accept e scrittura di una entry nella connection table - Ricezione di pacchetti successivi-> verifica della connection table
Ci che effettivamente deve essere controllato in una Politica di questo tipo la definizione delle sole regole relative allapertura delle connessioni TCP (pacchetto SYN), non serve specificare le regole per le risposte come nel Packet Filter (gestite automaticamente controllando la connection table) Stateful Filtering e UDP UDP un protocollo connectionless: non possiede informazioni di stato, per questo motivo viene gestito uno pseudostato correlando semplicemente indirizzi IP e porte (sorgente/destinazione) . Non avendo un protocollo di terminazione viene settato un time-out predefinito. Diversi sistemi di stateful firewall hanno un supporto anche per il filtraggio applicativo. Il FW deve interpretare il protocollo applicativo, comportando un calo delle performance della rete. Spesso implementato in maniera semplificata per compensare il calo di performance: solo un insieme limitato di protocolli standard viene interpretato. Se non interpreta la semantica dello scambio applicativo pu essere facilmente bypassato con tunnel applicativi. Spesso i moduli per il filtraggio applicativo sono offerti come plug-ins addizionali. Possiamo concludere dicendo che Static Packet Filtering offre una protezione migliore nonostante una definizione pi semplice della politica. E utilizzato in tutti i FW moderni anche se impatta notevolmente sulle prestazioni del router/firewall. La limitazione principale dovuta dallo scarso o nullo supporto per il filtraggio applicativo.

Proxy

Una tecnica di Proxy serve per introdurre un componente che media le comunicazioni tra altri due componenti. Un proxy disaccoppia la comunicazione tra due componenti rendendola indiretta. Agisce sia da Client che da Server. Esistono diverse tipologie di proxy : Web proxy, Anonymizing Proxy, Reverse Proxy (garantiscono laccesso da utenti esterni a risorse interne), Proxy Firewall. Nel caso del Reverse Proxy le connessioni da utenti esterni vengono re direzionate al proxy che effettua lautenticazione, verifica, filtraggio etc, dopodich pu avvenire linoltro al Web Server. Il Proxy Firewall pu essere usato per analizzare i dati delle applicazioni perch opera a livello applicativo. Le performance sono molto critiche. LAnalisi sicuramente migliore rispetto ad uno Stateful firewall.

FTP Bounce Attack


Il comando PORT di FTP ha la sintassi: PORT h1,h2,h3,h4,p1,p2 dove h1..4 sono i 4 componenti dell'IP, mentre p1 e p2 indicano la porta tramite l'operazione p1*256 + p2. L'idea di questo attacco di accedere ad un FTP, "rimbalzando" su un FTP chiamato Gonzo. Supponiamo che il Target rifiuti la nostra connessione, per qualche motivo, ma accetti quella di Gonzo. Come prima cosa, devo creare uno script coi comandi che mi servono e che voglio inviare all'FTP Target. In questo script, in particolare, dico di aprire la connessione DATI verso il MIO computer. Poi, mi connetto all'FTP Gonzo, e upload questo script. Successivamente invio a Gonzo un comando PORT in cui specifico l'IP del Target, e la porta COMANDI del Target. Dico quindi a Gonzo che voglio RECUPERARE il file contenente il mio script. Gonzo, da bravo server, lo invia sulla sua connessione DATI, che in realt la connessione COMANDI su Target! Questo vuol dire che Gonzo fa eseguire il mio script su Target. Siccome il mio script contiene i comandi che aprono la connessione DATI verso il MIO computer, allora Target eseguir quello che gli dico io, e invier il traffico al mio computer.

26

Questo attacco ora viene prevenuto, facendo s che non si possa accettare un comando PORT che specifica un IP diverso da quello della connessione Comandi.

Network Address Traslation


Consente di convertire gli indirizzi IP nel passaggio tra due interfacce del firewall. Tipicamente viene usato per sfruttare le classi di indirizzi IP riservate e non instradabili (172.16 , 10. e 192.168). Il NAT non propriamente una soluzione per la sicurezza della rete aziendale , ma una tecnica di gestione della rete. Fornisce un beneficio rilevante: maschera gli indirizzi effettivamente utilizzati allinterno della rete. Esistono diversi tipi di NAT: - NAT Statico: Indirizzi IP interni vengono mappati staticamente in indirizzi pubblici. Lassociazione predefinita e fissa. - NAT dinamico: Lassociazione tra indirizzo IP interno e indirizzo IP pubblico avviene dinamicamente a runtime - PAT (Port Address Translation) Lassociazione tra connessione interna(Host-> Proxy) e connessione esterna (Proxy-> Internet) avviene modificando la porta sorgente.

Aspetti Architetturali
Spesso ci che si vuole proteggere allinterno di un sistema informatico rappresentato da risorse, sottoforma di informazioni (carte di credito, progetti, info finanziarie etc), o da servizi erogati quali e-business, finanziari, di gestione etc. A questo scopo i sistemi si distinguono in : Server, Workstation, apparati di rete, altro. Ogni Server deve essere individuato con precisione insieme a tutti i servizi applicativi forniti. Nel caso di applicazioni multilivello e distribuite, necessario comprendere con esattezza: il ruolo applicativo e le funzionalit di ogni server, tutte le modalit di comunicazione con altri sistemi. A livello di Workstation indispensabile un livello di protezione locale : antivirus, personal FW. Se una WS contiene dati aziendali critici bisogna adottare misure pi stringenti (policy aziendali, gardening, connessioni protette), se invece le WS accedono a sistemi critici, bisogna adottare unautenticazione forte, connessioni protette e policy aziendali. La configurazione degli Apparati di rete deve essere documentata e mantenuta sempre aggiornata, devono essere chiaramente individuati i ruoli dei singoli apparati e tutte le connessioni fornite. E importante valutare, in caso di interconnessioni esterne, il grado di sicurezza e di fiducia con partner esterni. Luso di connessioni IP si sta diffondendo a molti dispositivi che fino a poco tempo fa non ne facevano uso . Ad esempio le stampanti connesse in rete hanno spesso servizi di gestione come FTP, Telnet o SNMP configurati con password di default. La percezione del chi/osa rappresenta la principale minaccia per la sicurezza IT: tale percezione cambia periodicamente a fronte di eventi esterni. Spesso lultima e pi recente fonte di attacchi cattura lattenzione generale e condiziona le scelte del momento. Tutte le possibili fonti di rischio devono essere ugualmente prese in considerazione e valutate. Architetture di sicurezza Architettura costituita da border router e firewall. Il BR pu svolgere filtraggi semplici e statici quali ingress e egress filtering e pu essere configurato in maniera sicura (non ammettere source routing, rifiutare ping). Il Firewall pu essere dotato di pi interfacce di rete: rappresente un single point of failure per lintera rete se non ridondato. Configurazione e gestione possono risultare attivit complesse.

27

Architettura con firewall multipli. I punti di forza sono dovuti dal fatto che prodotti diversi compensano le rispettive vulnerabilit, dal rafforzamento della separazione in zone a diverso grado di sicurezza, dalla migliore protezione da attacchi interni, dal controllo pi dettagliato degli accessi alle risorse. I punti di debolezza sono: costi elevati (hw,sw,assistenza, personale), gestione di pi componenti differenti. In unarchitettura con FW a cascata forte la separazione delle diverse zone della rete. Utile per un numero limitato di livelli come separazione in macro-zone della rete. La gestione risulta complessa in quanto i FW hanno policy dipendenti le une dalle altre. Larchitettura con FW in parallelo rende le zone ancor pi fortemente separate , permettendo tecnologie di filtraggio differente per le diverse zone. Permette una completa indipendenza delle politiche dei FW. C la possibilit di unire le due tecniche descritte in ununica ibrida. La zona di sicurezza consiste in un raggruppamento logico di risorse sistemi,reti o processi per le quali si accetta un uguale livello di rischio. Per la definizione della zona di sicurezza occorre identificare : Il livello di rischio accettabile delle risorse che viene stabilito sulla base di ci che conviene allazienda ed in base alla natura/ruolo delle risorse. I raggruppamenti omogenei di risorse. Il concetto di zona di sicurezza applicato ad unarchitettura di rete pi generale e pu essere adottato, ad esempio, localmente, nellhardening di un server. Infatti alternative alluso di server dedicati a singole applicazioni sono ad esempio: La virtualizzazione di Server attraverso luso di macchine virtuali per cui si definiscono ambienti indipendenti ed isolati. Zone di sicurezza Multiple: Lidea di base di partizionare la rete aziendale in sottoreti , ciascuna delle quali corrispondente ad una zona di sicurezza, e regolare attraverso politiche di firewalling la comunicazione tra di esse. In aggiunta al controllo delle comunicazioni, la suddivisione in sottoreti permette di avere domini di broadcast separati. Limitare il dominio di broadcast permette di ridurre le (molte) vulnerabilit associate al suo uso. Questo partizionamento avviene a fronte di unanalisi della rete aziendale che rispecchier lutilizzo e la struttura della rete stessa e dellorganizzazione. Tipicamente si opera una prima suddivisione tra risorse preposte a fornire o supportare servizi per utenti esterni alla rete aziendale e risorse per servizi dedicati alloperativit interna dellazienda. Allinterno di ogni macro-zona lulteriore suddivisione pu seguire criteri: - Funzionali: risorse che svolgono funzioni simili - Organizzativi: risorse allocate in settori / dipartimenti aziendali - Geografici : risorse localizzate vicine Tipiche suddivisioni sono tra Server aziendali e workstation, server applicativi e database, sottoreti di produzione e sottoreti di test / collaudo, sottoreti per lamministrazione, produzione, commerciale etc. Spesso si mantengono separate le risorse di gestione della rete (macchine degli amministratori, log server, tool di management). La suddivisione tra zone di sicurezza per servizi pubblici e servizi interni coinvolge servizi che sono utilizzati da entrambe le zone. Caso tipico la posta elettronica e DNS. A questo punto occorre scegliere se continuare a gestirli con un unico componente o sdoppiarli in due componenti da sincronizzare. Avere due componenti nella gestione della posta elettronica, uno nella zona pubblica e uno in quella privata, permette di scegliere software differenti. Ognuno dei due componenti pu essere configurato in maniera appropriata e specifica. Il componente nella zona pubblica agisce da semplice relay, quindi le email rimangono nella zona pi protetta. Il mail relay pu agire da gateway antivirus e antispam. Il mail relay riceve la posta sia dallesterno che dallinterno della rete e la invia nuovamente. La posta in ingresso viene indirizzata al mail server della rete interna. DNS esterno: Serve richieste di utenti esterni alla rete aziendale e fornisce le informazioni pubbliche. Riceve query da utenti esterni per informazioni riguardo host pubblicamente accessibili della rete aziendale. DNS interno: Serve gli utenti e i servizi della rete interna. Riceve query da utenti interni per informazioni su host sia della intranet aziendale che di Internet. Per le query che il DNS Interno non in grado di risolvere pu sia contattare il DNS Esterno che DNS predefiniti (dellISP). (query ricorsive). Entrambi i due DNS mantengono informazioni differenti (lesterno solo quelle pubblice, linterno tutte quelle della intranet) e hanno connessioni con zone a diverso grado di sicurezza. I DNS sono da sempre uno dei target preferiti per intrusioni. Tra i motivi la natura pubblica del servizio, che se compromesso, pu essere usato come testa di ponte per estendere lintrusione a componenti interni. Altro motivo dovuto alla possibilit di corrompere le informazioni fornite dal servizio. Questi attacchi sono denominati DNS Spoofing e si compongono di diverse varianti, tra cui:

28

- DNS Cache Poisoning: Un Dns conserva in maniera permanente solo i record delle macchine del dominio sul
quale autoritativo, per ogni altro nome deve generare una query ad altri dns. Le risposte da altri dns vengono conservate in una cache per un certo tempo e per questo soggette a compromissione (cache poisoning). Il principio di funzionamento dellattacco di configurare un DNS esterno in maniera scorretta, tale da tentare un zone transfer (trasferimento di tutte le informazioni di dominio) verso il DNS da compromettere. Lattacker configura un DNS per un proprio dominio contenente informazioni fasulle. Lattacker invia una dns query al DNS vittima chiedendo di risolvere lindirizzo www.attacker.org . Il DNS server vittima, a sua volta contatter il DNS autoritativo per il dominio attacker.org, ovvero il DNS dellattacker. Il DNS dellattacker risolve la query e nella risposta restituisce non solo lIP richiesto, ma anche lassociazione fasulla. Il DNS server vittima ora pu rispondere allattacker ma contemporaneamente memorizza in cache le associazioni ottenute compresa quella fasulla. Il DNS server vittima, fino a che la cache non viene aggiornata, restituir unassociazione fasulla tutti i client che lo interrogheranno. E una tecnica molto comune, evitabile semplicemente configurando i DNS a non accettare alcun zone transfer da DNS che non siano autenticati.

- DNS ID Spoofing: Un Client quando esegue una DNS query genera anche un identificativo pseudo-casuale
che il DNS server copier nella risposta. La comunicazione avviene via UDP, mentre TCP si usa solo per zone transfer. (problema: attacco man-in-the-middle) Lattacker tra utente e DNS server ed in grado di sniffare la DNS Query, leggendone lID. Lattacker pu facilmente creare un pacchetto UDP con una risposta DNS, contenente lID corretto e una falsa associazione. Le limitazioni sono dovute al fatto che la risposta dellattacker deve giungere al client prima di quella del DNS server. Lattacker deve essere in grado di sniffare la query DNS. Lattacco possibile a causa dellassenza di autenticazione del DNS server (lindirizzo IP usato dallattacker sar spoofed), tuttavia per il suo successo ci sono forti limitazioni fisiche. NIDS : Architetture e funzionalit Data la natura di un componente di monitoraggio, un NIDS un componente che complementa altre soluzioni per la sicurezza aziendale contribuendo a formare unarchitettura a diversi livelli di sicurezza. Gli aspetti architetturali da considerare sono: - Quanti sensori installare nella rete: costo e complessit di gestione - Dove installarli - Come gestire i dati: analisi e logging centralizzato Vs analisi e logging distribuito Posizionamento Il posizionamento esterno al border router serve a rilevare il traffico diretto alla rete fornendo una informazione completa e non filtrata da alcun dispositivo. La maggiore mole di dati ed allarmi favorisce unalta incidenza di falsi allarmi. Il posizionamento tra border router e firewall: Memorizza tutto il traffico in entrata tranne quello filtrato da ACL del router.Molti falsi allarmi. Sulla rete dei servizi pubblici, dietro il firewall: rileva tutto il traffico autorizzato dal firewall e diretto ai servizi pubblici. Sulla intranet: Viene monitorato tutto il traffico che entra ed esce dalla intranet sia da reti pi esposte (DMZ), sia quello dalla intranet. Rileva usi non leciti interni alla rete aziendale. Su di un segmento critico della rete aziendale : Monitoraggio delle connessioni dirette ad alcune risorse particolarmente critiche della rete aziendale per le quali si richiede un livello di sicurezza pi elevato. La tipica risposta di un NIDS al verificarsi di un evento che verifica una firma la generazione di un allarme mediante la scrittura di un corrispondente log. La scrittura su log prevede naturalmente che tali segnalazioni vengano successivamente analizzate. Esistono molti strumenti, sia open-source che integrati nei prodotti commerciali, di analisi dei log prodotti da un NIDS. Tipicamente vengono mostrati grafici, statistiche ecc. Lo scopo pertanto quello di

29

eseguire unanalisi successiva allalert, non unazione di contenimento real time. Linvio di email a un amministratore unaltra modalit di risposta diffusa. Unaltra modalit di allarme implica la generazione automatica di azioni allo scopo di rispondere attivamente ad una presunta intrusione senza richiedere lintervento diretto di un operatore. Classici esempi sono la terminazione di una sessione o laggiornamento del firewall. Reset di sessione significa che il NIDS deve possedere un meccanismo per forzare la terminazione della connessione in corso tra client e server. Questo deve essere fatto inviando un pacchetto contenente un RST ad entrambe le parti coinvolte nella connessione. Tali pacchetti devono apparire ai riceventi come inviati dalle corrispondenti controparti, non dal NIDS, altrimenti verrebbero ignorati, quindi devono contenere valori corretti per i numeri di sequenza e di ack, ecc. LAggiornamento del firewall significa che la rilevazione di un allarme pu essere sfruttata per riconfigurare automaticamente le regole di un firewall un problema pu essere quello di bloccare le connessioni provenienti da sorgenti legittime. I sistemi di risposta automatica possono essere superati. Lintrusion Detection per sua natura unattivit che necessariamente richiede una forte componente di analisi e di gestione manuale da parte di operatori specializzati. La presenza dei NIDS ha fatto si che venissero sviluppate tecniche per bypassare il controllo. Una tecnica quella di impostare il time out del sistema vittima con un valore pi grande rispetto al NIDS, a questo punto per il NIDS due frammenti di uno stesso pacchetto sono interpretati come se fossero due pacchetti distinti. Negli ultimi anni il mercato ha visto la nascita di nuovi dispositivi cosiddetti IPS (Intrusion Prevention System) . La definizione di IPS tuttoggi una terminologia di natura largamente commerciale che spesso nasconde soluzioni gi note e di efficacia limitata. Sono poche le soluzioni realmente sofisticate in termini di prevenzione. Il pi noto e diffuso NIDS utilizzato in moltissime realt aziendali al pari di molti tool commerciali SNORT. E open source e (parzialmente) freeware. A pagamento sono forniti gli aggiornamenti tempestivi delle signature , freeware gli stessi aggiornamenti ma dopo un periodo di tempo maggiore. Lessere open-source fornisce il vantaggio fondamentale della definizione delle firme che possono essere analizzate e modificate a piacere.

30

Caratteristiche di un Internet Worm Un Internet Worm un sw malevolo che automatizza un'intrusione. Ha le seguenti caratteristiche: in grado di sniffare e scansionare altri sistemi per trovare nuovi target offre un'interfaccia per i comandi in grado di automatizzare l'intrusione (solito concetto dell'opportunismo: si attacca chi semplice da attaccare) in grado di autopropagarsi

Per fare un esempio, il Sapphire Worm nel 2003 ha infettato il 90% degli host infettabili nel giro di 10 minuti, e aveva anche un bug nella generazione degli indirizzi da testare. L'unico suo limite erano le dimensioni della banda...

31