Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Premessa
Questo lavoro nasce al termine di un corso I.F.T.S. (Istruzione e Formazione Tecnica Superiore) dal
titolo “Esperto di Progettazione, Sviluppo e Gestione delle Reti Informatiche” svoltosi a Grosseto
tra settembre 2003 e gennaio 2005. Non è – né vuol essere - il resoconto delle tematiche affrontate
in aula, bensì una presentazione del mondo del “networking” dal punto di vista della sicurezza
informatica.
L’idea di proporre questa tesina, anziché una prova di esercizio o altro, nasce dalla volontà
dell’autore di creare qualcosa di utile non solo per l’esame finale, ma anche per i prossimi “newbie”
che visiteranno Lan Planet (www.lanplanet.it), sito di networking per uso professionale e personale
creato e gestito da Nicola Deboni (studente presso la facoltà di Scienze Matematiche, Fisiche e
Naturali dell'Università di Urbino, in Informatica Applicata); ciò sarà possibile, quando questa
guida (chiamiamola così), una volta terminata e utilizzata in sede d’esame, sarà riadattata ad un
formato più comodo per il web e pubblicata sotto licenza Creative Commons Attribuzione -
NoOpereDerivate License Italia (consultabile su http://creativecommons.org/licenses/by-nd/2.0/it in
forma ridotta o su http://creativecommons.org/licenses/by-nd/2.0/it/legalcode in forma completa),
d’accordo con il gestore del sito.
Per rendere chiaro il mio intento userò la metafora del palazzo in costruzione: durante il corso ci
sono state date inizialmente le fondamenta (insegnamenti sul funzionamento della rete e degli
apparati) e quindi sono stati costruite le stanze, quella della crittografia, quella delle comunicazioni
wireless,…e quella della sicurezza; io vorrei ribaltare questo concetto, presentando la sicurezza
come fondamenta, ed aiutandosi con lo studio delle reti negli approfondimenti che sarebbero
altrimenti incomprensibili.
Usando collegamenti ipertestuali e note “cliccabili” sarà decisamente più semplice per l’autore
scrivere questa guida, come sarà più facile per il lettore la consultazione; mi scuso se per seguire
l’obiettivo previsto, cioè l’avvicinarsi al mondo delle reti passando dalla porta della sicurezza, ho
reso alcuni paragrafi piuttosto complessi, questo problema scomparirà nella versione elettronica.
Elementi di Sicurezza nelle Reti Informatiche 1 baiocco.info
Proprietà astratte di sicurezza:
Dov’è il pericolo?
Contagio di virus
Per quanto sia, per un utente esperto, impensabile aprire un allegato eseguibile giunto in posta da
un mittente sconosciuto, non lo è per un utente alle prime armi: l’Internet Security Threat Report
(ISTR) della Symantec nel marzo scorso ha evidenziato una crescita del 400% nella diffusione di
virus e worm (specialmente in ambiente windows). Le conseguenze di un contagio possono essere le
più svariate (si pensi a Blaster, Welchia o Sasser).
Abuso dall’interno
Molte volte l’abuso si limita al furto di tempo macchina, cioè all’usare le risorse fornite
dall’azienda per scopi personali (anche il solo leggere la propria posta dall’ufficio), ma si
verificano anche casi di dipendenti che cercano deliberatamente (per scontentezza o desiderio di
vendetta verso qualcuno) di danneggiare l’azienda per cui lavorano.
Accessi non autorizzati dall’interno
La possibilità, per quanto remota, che qualcuno possa penetrare entro la sede di una lan aziendale
e sfruttare accessi da insider è da considerarsi, specie nelle realtà più dispersive; più frequente è
invece il caso che utenti normali vengano a conoscenza di password o codici di accesso riservati al
personale addetto alla gestione della rete, e li usino per scopi non legali.
Negazione di servizio (dos)
Questo tipo di attacco consiste nel saturare le risorse di una macchina o di un sistema per far sì
che questo non riesca più ad erogare il servizio previsto. Per quanto semplice è molto difficile da
Cisco CLI
Social Engineering
L’ingegneria sociale si può definire come l'uso di trucchi psicologici per ottenere l'accesso a un
sistema, la capacità di raccogliere da una persona le informazioni necessarie ad un attacco. Oltre
a commettere errori, l’uomo è a volte un grave punto debole della rete a causa della sua naturale
predisposizione alla fiducia, che lo porta, specialmente se sotto stress o oberato di lavoro, a
rivelare ad altre persone, magari via telefono, senza alcuna certezza dell’identità dell’interlocutore
(che sfrutta questa debolezza), codici di accesso o password riservati. Una tecnica molto usata è la
persuasione attraverso lo sfruttamento della paura: minacciando guasti tecnici imputabili alla
persona che non ha fornito i codici di accesso, un malfattore potrebbe circuire un semplice
Elementi di Sicurezza nelle Reti Informatiche 9 baiocco.info
impiegato e costringerlo, facendo leva sulla paura di essere licenziato, o comunque di creare un
problema all’azienda, a farsi rivelare dati riservati con cui poi potrebbe sferrare un attacco alla
rete.
Identificazione
Tecnologie di autenticazione, autorizzazione, tracciabilità
sicurezza perimetrale
Uso di firewall, bastion host
riservatezza dei dati
Uso di VPN, ip tunneling, crittografia
controllo
Uso di intrusion detection systems
politica di sicurezza
Predisposizione di comportamenti e procedure da seguire in caso di problemi
Identificazione:
Cosa è?
Accurata identificazione di utenti, macchine, applicazioni, servizi e risorse
Come si implementa?
Con protocolli di autenticazione come RADIUS, TACACS+ o KERBEROS, con servizi OTP (One
Time Password), con Certificati Digitali e con Smart Card.
Sicurezza Perimetrale:
Cosa è?
Controllo degli accessi ad applicazioni, dati e servizi;
Come si implementa?
Con apparati di rete abilitati al packet filtering o stateful inspection, si completa con soluzioni anti
malfare (virus, trojan, worm) e con il controllo dei contenuti.
Controllo:
Cosa è?
Periodico controllo del livello di sicurezza e affidabilità della rete
Come si implementa?
si esegue con sistemi di controllo intrusioni (IDS), scanner di vario genere (scanport, nmap, …)
Politica:
Cosa è?
Insieme di regole che definiscono l’uso delle risorse da parte degli utenti, i comportamenti che
devono essere tenuti e le procedure da seguire al verificarsi di un dato evento
Come si implementa?
La crescita logica e fisica della rete deve andare di pari passo con l’ampliamento e il miglioramento
dei sistemi di sicurezza; per reti piccole o su cui corrono dati non sensibili può essere sufficiente
l’uso di software capaci di analizzare lo stato della rete, ad alto livello è spesso necessario un
responsabile della sicurezza
Debolezze tecnologiche:
non strutturate
shell scripts, script kiddie, password crackers
strutturate
presone competenti che analizzano e conoscono le vulnerabilità della rete e sviluppano exploit
e script appositi
esterne
individui o organizzazioni che cercano accesso tramite dial-up o da internet
interne
errori nell’attribuzione dei permessi portano persone incompetenti a poter lavorare su
macchine importanti
acquisizione di informazioni
scoperta e mappatura di sistemi e servizi (tramite ping, finger, telnet, portscan,..)
accesso
visione di dati protetti, accesso a sistemi protetti (password cracking, trojan horse,…)
denial of service (dos)
rendere non disponibili una macchina, un servizio o una risorsa (icmp flood, spam,...)
Politica di Sicurezza:
aperta
è permesso tutto ciò che non è esplicitamente negato
restrittiva
L’OSI (Open System Interconnection) è il modello di riferimento per le architetture di rete proposto
da ISO (International Organization for Standardization) con l’obiettivo di definire uno schema
“aperto” per la realizzazione di apparati di rete, così da bloccare i tentativi di far prevalere
protocolli e schemi proprietari da parte delle grandi aziende del settore; a causa della lentezza della
sua nascita, quando ha fatto la sua prima comparsa, il modello IPS (Internet Protocol Suite) aveva
già preso il sopravvento, per cui OSI è rimasto come modello di riferimento, ma non ha mai visto
nessuna implementazione pratica. Il modello è diviso in 7 livelli (qui elencati dal basso verso
l’alto):
Livello 1 FISICO
trasmette sequenze binarie sul canale di comunicazione
Livello 2 COLLEGAMENTO
diviso in LLC (Logical Link Control), interfaccia con il livello 3, e MAC (Medium Access
Control) che gestisce la condivisione del mezzo; crea pacchetti, gestisce l’accesso al canale,
sincronizza tx e rx, gestisce errori e ritrasmissioni
Livello 3 RETE
definisce pacchetti, instradamento e indirizzamento in modo astratto rispetto al mezzo fisico,
conosce la topologia di rete, sceglie il percorso migliore per ogni pacchetto, interfaccia reti
diverse
Livello 4 TRASPORTO
apre e chiude le connessioni, gestisce le connessioni multiple, controlla errori e ordine di
ricomposizione, gestisce la congestione della rete
Livello 5 SESSIONE
instaura, mantiene e conclude il dialogo tra due programmi, gestisce token o turni di
comunicazione
Livello 6 PRESENTAZIONE
gestisce sintassi, cifratura e decifratura dell’informazione da trasmettere
Livello 7 APPLICAZIONE
interfaccia di comunicazione con i programmi, gestisce i trasferimenti di file
Per conoscenza, è giusto sapere che l’IPS (Internet Protocol Suite), meglio conosciuto come
modello TCP/IP è diviso in quattro livelli:
Per capire il funzionamento di certi attacchi è necessario sapere come funziona il protocollo TCP; la
connessione TCP è divisa in tre fasi principali: avvio, scambio dei dati e chiusura.
In modo molto semplice e scarno: quando navighiamo, viene instaurata una connessione TCP tra la
nostra macchina e il server web, viene inviata la richiesta del documento che abbiamo scelto e il
server lo invia (la connessione rimane aperta finchè non usciamo dal sito dove abbiamo prelevato il
documento).
Analizziamo più dettagliatamente la connessione da un computer (con ip 192.168.1.15) al server
web locale (con ip 192.168.1.79):
Il computer apre una porta (la prima libera, diciamo la 1100) sull’interfaccia di rete e da
questa invia un SYN, un pacchetto TCP con il flag syn attivo (a indicare la richiesta di
Elementi di Sicurezza nelle Reti Informatiche 16 baiocco.info
iniziare una connessione), con indicazione delle porte da usare (la 1100 TCP sul computer,
la 80 TCP sul server http)
Il server riceve il pacchetto e invia come risposta un altro pacchetto TCP (dalla sua porta 80
diretto alla mia porta 1100) con i flag SYN e ACK, per comunicare che la connessione è
stata accettata ed p in attesa di conferma da parte del computer
Alla ricezione della conferma da parte del server, il computer rimanda il pacchetto con il
solo flag ACK, a indicare la conferma della connessione, che a questo punto può dirsi
stabilita (3 way handshake)
Dopo lo scambio dei dati (il documento), il computer invia un pacchetto TCP con il flag FIN
per comunicare l’intenzione di chiudere la connessione
Il server, ricevuto il FIN, risponderà con un paccheto con i flag FIN e ACK,
Per terminare la connessione, il computer dovrà successivamente inviare un pacchetto con il
flag ACK
Nel caso la connessione si interrompesse indipendentemente dalle due macchine, o se fosse
presunta tale (pacchetti che arrivano a destinazione oltre un tempo massimo previsto), la
prima ad accorgersene invierebbe all’altra un pacchetto con il flag RST, a indicare che è
necessario ripetere l’handshake
I flag TCP:
SYN
Viene inviato nel primo pacchetto di un host che vuole stabilire una connessione con un altro
(synchronize)
SYN ACK
E’ la risposta di un host che accetta la connessione che gli è stata richiesta (acknowledgement)
ACK
E’ la conferma dell’arrivo di ogni pacchetto
FIN
Viene inviato da un host che vuole chiudere una sessione (finish)
FIN | ACK
E’ la risposta di un host che chiude la connessione
RST
Protezioni possibili:
a livello fisico: protezione fisica del mezzo trasmissivo, cavedi e pozzetti; uso di reti
switched
la difesa del mezzo trasmissivo (sia esso rame, fibra o altro, escluso l’etere) è fondamentale perché
un attaccante potrebbe sfruttare un qualsiasi luogo in cui passano i cavi per ottenere un punto di
accesso “invisibile” e soprattutto una posizione privilegiata (nella struttura logica della rete); nei
casi più gravi l’accessibilità fisica al mezzo potrebbe permetterne la distruzione.
a livello collegamento: cifratura dei dati, uso di ip fissi (no DHCP), controlli su nuovi MAC
(di conseguenza host) connessi
la cifratura dei dati è fondamentale nel caso di comunicazioni wireless (data l’impossibilità di
proteggere il mezzo) ma è importante anche in quelle via cavo, molti apparati permettono di cifrare
l’intero frame ethernet; l’uso di ip fissi (quindi il non uso del DHCP, Dynamic Host Configuration
Protocol, che assegna ad ogni macchina in rete un indirizzo ip in modo automatico) permette di
effettuare controlli più sicuri sugli host connessi; è consigliabile inoltre impostare tool di sicurezza
affinché segnalino eventuali comparse di indirizzi MAC non conosciuti o duplicazioni (a dir poco
sospette) di indirizzi MAC conosciuti
a livello rete: uso di VPN, ip tunneling (GRE, L2TP), SSL o IPSec
le VPN (Virtual Private Network) servono a connettere, come se fossero in rete locale, due (o più)
host attraverso un mezzo condiviso come ad esempio internet; sono di per sé insicure in quanto
usano gli stessi protocolli della rete, ma sono rese molto sicure se utilizzate in combinazione con
protocolli che implicano l’uso di sistemi di cifratura come l’IP Security o il Secure Socket Layer, o
se gestite da un singolo nodo fidato (L2TP)
Smurfing:
Come agisce:
Un host invia pacchetti ICMP ECHO Request all’indirizzo di broadcast della rete contraffacendo
l’ip del mittente
tutti gli host connessi rispondono con ICMP ECHO REPLY inondando sia la rete che l’host
mittente (falsificato), saturandoli
Come impedirlo:
Rifiutare il broadcast ip dall’esterno, identificare il responsabile se nell’interno
Syn Flooding:
Come agisce:
Un host, falsificando il proprio ip invia richieste di connessione ad una macchina da un indirizzo
inesistente finchè non si satura la tabella delle connessioni, bloccando di fatto la macchina
Come impedirlo:
Abbassare il timeout (rischiando di far fuori connessioni valide ma lente), aumentare le dimensioni
della tabella (più che altro un palliativo aggirabile con maggior flood), usare un router come syn
interceptor (che si accerta dell’avvenuto handshake e successivamente passa la comunicazione alla
macchina richiesta), o come syn monitor (termina i collegamenti pendenti con RST)
Ip Spoofing:
Come agisce:
Un host, falsificando il proprio ip (volendo anche il mac) dei propri pacchetti fa credere all’host
vittima di essere il suo interlocutore
Come impedirlo:
Non basare l’autenticazione sugli indirizzi
Sniffing:
Come agisce:
Un host legge i pacchetti destinati ad altri nodi della rete (tecnica molto semplice nelle reti
broadcast e ancora di più se non sono segmentate)
Come impedirlo:
Crittografare i pacchetti, non usare reti broadcast e segmentare il più possibile
Social Engineering:
Come agisce:
Qualcuno sfrutta la naturale inclinazione umana alla fiducia per carpire password o altri dati
sensibili
Come impedirlo:
Creare politiche amministrative di gestione della rete in modo, renderle note e formare al riguardo
gli utenti
Un esempio di attacco
Il DNS (Domani Name Server) traduce gli url (Uniform Resource Locator) in indirizzi ip e
viceversa ed è quindi un servizio indispensabile; usa la porta UDP 53 per le query e la TCP 53 per
le zone transfer; quando è stato inventato, nel 1983, non necessitava di nessun tipo di controlli di
sicurezza, ed anche attualmente ne è completamente sprovvisto (anche se è allo studio una versione
DNS-Sec: http://www.dnssec.net )
Possibile difesa:
WallDNS:
Software che scarta query inverse, query per classi di ip non proprie di internet, pacchetti corrotti o
il cui contenuto è diverso da una singola query; funziona in pratica come un dns con un piccolo
firewall a monte. In pratica maschera i veri nomi degli host fornendo nomi fasulli per compiacere il
richiedente; blocca l’invio di record PTR (Pointer: trasformano gli ip in hostname) a server che
ancora non hanno fornito servizi
Crittografia
E’ impossibile di questi tempi parlare di sicurezza senza volgere uno sguardo al mondo della
crittografia. Iniziamo dando una definizione: “nel networking, il processo di trasmettere in modo
sicuro dati su una rete in modo che se il dato venisse intercettato, non possa venir compreso da
utenti non autorizzati” (M. Tulloch, Microsoft Encyclopedia of Networking).
Storicamente possiamo risalire fino a Cesare, che scambiava messaggi con i suoi generali usando
cifrari a sostituzione (ogni carattere viene sostituito da un altro lontano x posizioni), oggi invece le
tecniche di crittografia sono molto complesse, basate su modelli matematici (che hanno fatto la
fortuna dei loro scopritori).
Riservatezza
deve garantire che solo il destinatario possa leggere l’informazione
Autenticità
deve garantire l’autenticità dell’informazione
Integrità
deve garantire che l’informazione non venga modificata prima della consegna
convenzionale (simmetrica)
le due parti devono condividere la stessa chiave (si pone il problema di come la chiave possa venir
scambiata in sicurezza), gli algoritmi di cifratura possono essere pubblici, le chiavi no
a chiave pubblica (asimmetrica)
sono necessarie due chiavi (una pubblica ed una privata), un messaggio cifrato con la chiave
pubblica può essere decifrato solo con la rispettiva chiave privata (e viceversa)
consegna fisica da A a B
consegna fisica da C (fidato per entrambi) a A e B
A e B hanno una chiave e la usano per scambiarsi una nuova chiave
A e B hanno chiavi per comunicare con C, e C assegna la chiave a A e B
A e B contribuiscono entrambi alla creazione di una nuova chiave comune
Cifrature asimmetriche:
Diffie-Hellman
Nel 1976 Diffie e Hellman inventano il sistema asimmetrico (cifrario a chiave pubblica) : servono
due chiavi (una pubblica e una privata, non ricavabili l’una dall’altra), la chiave per cifrare non è
la stessa di quella per decifrare
RSA
Nel 1978 tre scienziati trovano un modello matematico adatto, basato sul problema complesso
della fattorizzazione in numeri primi: dati due numeri primi è facile trovare il loro prodotto ma è
molto difficile, avendo il prodotto, risalire ai numeri primi che l’hanno generato
La firma elettronica:
Visto il notevole sviluppo delle comunicazioni attraverso la rete, era giusto e necessario stabilire le
modalità di identificazione necessarie a creare una firma digitale, di eguale valore a quella
convenzionale su carta; per farlo si usa una crittografia asimmetrica, in modo da garantire
autenticità ed integrità (non riservatezza).
Il mittente, attraverso una funzione di hash ricava un'impronta digitale del documento da spedire,
chiamata “message digest”, (solitamente un file di dimensione fissa che riassume le informazioni
Certification Authority:
Un certificato digitale è un documento elettronico che associa l'identità di una persona ad una
chiave pubblica. Viene emesso da una autorità di certificazione riconosciuta secondo standard
internazionali (X.509) e viene firmato con la chiave privata dell'autorità. Gli enti che fanno da
autorità devono sottostare a regole rigidissime per quanto riguarda la gestione dei dati personali,
pertanto si possono considerare sicuri.
Premessa: pagina 01
Crittografia: pagina 22
Indice: pagina 26