Elementi di Sicurezza nelle Reti Informatiche
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.
Prefazione alla versione cartacea
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:
Autenticazione (semplice o mutua)
Si deve essere certi dell’identità del nostro interlocutore e si deve provare la propria
Autenticazione dei dati
Si deve essere certi che i dati che ci arrivano provengano dal nostro interlocutore
Autorizzazione
Ogni utente deve poter accedere solamente alle risorse che gli sono necessarie
Integrità
Si deve essere certi che i dati che ci arrivano non siano stati modificati o sostituiti durante il tragitto
Riservatezza
Dev’essere possibile garantire che solo il destinatario di un messaggio possa leggerlo o quantomeno possa capirlo
Non ripudio (prova legale che dimostra l’identità dell’autore dei dati)
Dev’essere impossibile disconoscere un proprio messaggio o un proprio servizio dato, esattamente come accade per la firma a mano in presenza di testimoni
Disponibilità
Le risorse e i servizi necessari devono essere in grado di soddisfare le richieste
Tracciabilità
Dev’essere possibile sapere in ogni momento quali e quanti utenti stanno fruendo di quali risorse
La soddisfazione di tutti questi requisiti porterebbe alla realizzazione di un sistema perfetto (utopistico), al sicuro da ogni tipo di attacco, escluso l’errore umano.
Dov’è il pericolo?
Fuori dalla LAN: difesa dei confini della LAN
Fuori dalla LAN ma entro l’Extranet: protezione dell’Extranet omologa alla LAN
Dentro la LAN: protezione dell’Intranet
Ovunque: protezione degli applicativi utilizzati
Elementi di Sicurezza nelle Reti Informatiche
2
baiocco.info
Individuare i possibili pericoli e le falle di un sistema, un servizio, o una macchina, permette di organizzare le difese necessarie ad impedire che venga sferrato un attacco; purtroppo gran parte delle difese possibili sono “contromisure” (derivate da esperienze precedenti della comunità) come ad esempio gli antivirus. In ogni caso l’uso di firewall per difendere i confini della propria rete è un valido strumento per preservarne l’inviolabilità, data la loro capacità di riconoscere pacchetti o tentativi di connessioni maligni. Statisticamente un bravo programmatore commette un errore ogni 80 righe di codice scritto, quindi è impensabile che gli applicativi o i gestionali che vengono usati, per quanto ottimi, siano esenti da bugs, per cui un'altra contromisura molto valida è rappresentata da patches e aggiornamenti rilasciati via via dalle software house; questi, se applicati tempestivamente, impediscono che l’ondata di infezioni, solitamente in pieno svolgimento al momento del rilascio, si propaghi anche alla propria rete.
Conseguenze e possibili obiettivi di un attacco:
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 Elementi di Sicurezza nelle Reti Informatiche
3
baiocco.info
contrastare, pur disponendo di molte risorse, specialmente nella sua variante ddos (Distributed Denial of Service) che si differenzia per la molteplicità e la diversità degli attaccanti. Da qualche tempo esistono esempi al limite della legalità, organizzati e dichiarati: sono i NetStrike, vere e proprie manifestazioni di migliaia di utenti che si accordano per richiedere un certo servizio ad una certa macchina in una particolare ora e in un giorno stabilito, con il risultato di mettere fuori uso il servizio in breve tempo (come quello che il 25 aprile scorso è stato sferrato contro il sito del Governo, della Camera e della SIAE per protestare contro la Legge Urbani).
Penetrazione nei sistemi
Tecnicamente complesso, sfruttare errori o bug di applicativi o apparati per ottenere una posizione privilegiata all’interno di una rete o di una macchina, è la cosa peggiore che possa accadere in quanto i privilegi di root (o amministratore) consentono all’attaccante di lavorare sulla macchina vittima come se vi fosse davanti. Recentemente, il 19 dicembre, il sito dell’ISP Wind libero.it è stato defacciato, sfruttando un bug del forum Phpbb2 e del kernel 2.4.20 per ottenere lo status di root sulla macchina che lo ospitava; pochi giorni prima (il 7) era toccato a Picasa, società appena acquisita da Google.
Sabotaggio
Come nella realtà, così nell’informatica, riuscendo a violare alcuni sistemi di sicurezza è possibile danneggiare o ostacolare il funzionamento dell’hardware o del software preso di mira.
Furto di dati
Indipendentemente da come viene perpetrato, il furto di dati sensibili è una calamità per i siti che lo subiscono; dal momento che nessuno è interessato alle foto delle vacanze ospitate su uno spazio gratuito da qualche aspirante fotografo, i dati che solitamente vengono rubati riguardano utenti di siti di e-commerce, home banking, servizi di istituti di credito e simili (contenenti informazioni anagrafiche, numeri di carte di credito e altro); molte volte poi il cracker non è interessato ai dati in sé ma ad ottenere un riscatto dal proprietario del sito: è accaduto a Cd Universe, sito per l’acquisto di cd e dvd online, a cui sono stati sottratti dati di più di 300mila utenti e successivamente chiesto un riscatto; dopo aver rifiutato di pagare, Cd Universe si è visto pubblicare tutti i nomi e i numeri delle carte di credito degli utenti.
Frode
Anche qui, come nel caso del sabotaggio, si applica il tema dell’omologia alla vita reale; sfortunatamente sono molte le persone che si fidano, erroneamente, per poi cadere vittima di frodi più o meno complicate. Recentemente in Italia è esplosa la frode “dei 34 euro”: siti offrono prodotti nuovi, generalmente high-tech, molto costosi, al prezzo di 34 euro, con la promessa che in breve un largo numero di persone metteranno 34 euro e ognuno (per ordine di iscrizione) riceverà Elementi di Sicurezza nelle Reti Informatiche
4
baiocco.info
il prodotto desiderato; è ovviamente una truffa in tutto e per tutto, ma sono molti, purtroppo, ad aver già aderito.
Intercettazione
Intercettare dei dati vanifica la condizione di riservatezza e, se modificati, quella di autenticità, con tutto ciò che ne può conseguire, molto spesso furto di dati o informazioni riservate usate per compiere altre violazioni.
7 dicembre 2004, picasa.google.com defacciata dall’hacker brasiliano Xfaulz
Cause della non-sicurezza:
le tecnologie di attacco si sviluppano rapidamente nel mondo open source
la collaborazione tra gli utenti rende i tool di attacco estremamente più efficaci e le notizie delle scoperte di bug o di exploit si propagano più velocemente in comunità interessate
le strategie di difesa sono reazionarie e poco preventive
Elementi di Sicurezza nelle Reti Informatiche
5
baiocco.info
come precedentemente affermato (nel paragrafo “Dov’è il pericolo?”) gran parte dei sistemi di sicurezza si basa su contromisure e bug fix, il che rende l’idea di quanto non siano protette prima della scoperta di un problema critico
la grande maggioranza delle macchine connesse non sono protette
Internet non è popolata solamente da guru, smanettoni ed esperti di sicurezza: la maggioranza degli utenti è totalmente indifferente alle problematiche della sicurezza e non si rende conto, o non si cura, di essere un pericoloso veicolo di infezione anche solo per aver cliccato su un collegamento ad una animazione divertente o installando un software particolare
il codice viene scritto senza tenere conto di come potrebbe essere usato da un attaccante
L’obiettivo primo di chi scrive software è snellire il codice e rendere il listato il più semplice possibile; il che è anche comprensibile se si pensa a quante righe di codice servono per completare un sistema operativo, un server o anche un programma di masterizzazione. Purtroppo questo va a scapito dell’inattacabilità del codice che, una volta in funzione su macchine importanti, sarà sicuramente studiato nei minimi dettagli da moltissimi possibili attaccanti, fino a trovarne una parte utile al loro scopo.
è estremamente difficile rintracciare e punire i criminali informatici
La diversità da nazione a nazione delle leggi, spesso la loro assenza totale, unita alla difficoltà tecnica di scoprire l’autore dei crimini rende cracker e – qualche volta – hacker estremamente ardui da perseguire.
Cause tecnologiche della non-sicurezza:
Le reti sono insicure
Scarse misure di sicurezza preventiva, apparati e software obsoleti, insicurezza intrinseca.
Le reti locali funzionano in broadcast
Ogni host riceve tutti i pacchetti destinati al proprio segmento di rete, ne consegue un vantaggio per chi volesse sfruttare informazioni dirette ad altri o cercare di congestionare la rete,…
Le comunicazioni non sono cifrate
Leggere le informazioni che passano su una rete broadcast non switchata è estremamente semplice, lo stesso (seppur in forma ridotta) su una rete switchata; se le informazioni rubate fossero però cifrate non si potrebbe leggerle né usarle a proprio vantaggio.
Le connessioni geografiche avvengono su linee condivise e tramite router di terze parti
Elementi di Sicurezza nelle Reti Informatiche
6
baiocco.info
La complessità amministrativa dei collegamenti geografici aumenta la difficoltà nel gestire e ottimizzare interventi che avrebbero l’unico scopo di migliorare la sicurezza globale della rete.
L’autenticazione degli utenti è generalmente molto debole
Nella maggior parte dei casi, si tratti di accesso a macchine, informazioni o altro, l’unica forma di autenticazione prevista è composta dal duo username e password; l’username è solitamente non nascosto, disponibile sfogliando il sito o facilmente intuibile conoscendo la vittima; la password, che fortunatamente alcuni impongono essere di minimo 6-8 caratteri, è comunque un’autenticazione debole, facilmente superabile con attacchi brute force (si provano tutte le combinazioni possibili con software appositi) o con un po’ di social engineering, conoscendo chi l’ha scelta. Anche in grandi aziende molte volte le password, nei vari livelli di gestione hardware e software, coincidono e sono facili da ricordare, per facilitare la vita a chi ci lavora (ma sfortunatamente anche a chi volesse sfruttare questa debolezza!).
Non c’è nessuna autenticazione lato server
Quando usiamo un servizio nessuno ci garantisce che il server che lo fornisce sia in realtà quello da noi scelto; prendiamo come esempio una normale visita ad un sito: nel momento stesso in cui apriamo il browser, questo fa una query al DNS da noi impostato per ottenere l’indirizzo ip del sito che si apre nella nostra pagina iniziale; ma chi ci assicura che le informazioni inviate dal DNS ci arrivino integre? E chi ci assicura che le riposte arrivino proprio dal DNS che abbiamo querato e non da uno shadow server tra noi e lui?Nessuno.
Il software contiene (inevitabilmente) bug
Come già espresso sia nel paragrafo “Cause della non sicurezza”, la complessità del codice presente nei software che usiamo e la non abitudine dei programmatori a scrivere codice sicuro causano la scoperta (postuma rispetto al rilascio dell’applicativo) di falle che possono essere usate da eventuali attaccanti per ottenere privilegi non permessi (possesso della macchina, possibilità di eseguire codice arbitrario,…)
Elementi di Sicurezza nelle Reti Informatiche
7
baiocco.info
DNS Shadow Server
Cause ulteriori della non-sicurezza:
I problemi e le falle non vengono individuati da chi protegge e amministra la rete
Una scarsa preparazione impedisce una corretta difesa, così come non tenersi costantemente informati; infatti non installando rapidamente gli aggiornamenti (specie bug fix e patches) si lascerebbe via libera a chi volesse (e sapesse) sfruttarli malignamente.
L’uomo tende a commettere errori
Nessuno è perfetto, pur essendo un motto molto vecchio, riassume pienamente il concetto; l’errore umano, specie nelle configurazioni di hardware o software, e nella scritta del software, è possibile, anzi molto probabile. Testare la propria rete via via o farla analizzare da un esperto può ridurre al minimo le possibilità di errore.
si usano interfacce e architetture complesse che aumentano la possibilità di un errore umano
La semplicità nel configurare hardware e software destinato a mantenere inviolata la propria rete non è di questo mondo: sono necessarie una buona preparazione, esperienza, e molta attenzione. Spesso ci si trova ad avere a che fare con configurazioni complicate senza un’interfaccia grafica (che sarebbe di troppo), specie nelle configurazioni di apparati di rete (si veda sotto la CLI, Command Line Interface, della Cisco), ma anche con applicativi importanti, come Sendmail, server Elementi di Sicurezza nelle Reti Informatiche
8
baiocco.info
di posta per ambiente *nix molto quotato ma ritenuto molto difficile da configurare (anche attraverso la GUI offerta dal tool di configurazione webmin), tanto che è stato creato un software, M4, per semplificarne la configurazione che, con l’uso di macro, crea il file sendmail.cf, il quale va poi inserito nell’apposita direttrice (solitamente etc/sendmail).
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.
Elementi chiave di una rete sicura:
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.
Riservatezza dei Dati: Cosa è? Elementi di Sicurezza nelle Reti Informatiche
10
baiocco.info
Comunicazioni confidenziali e autenticate, protette da possibili intercettazioni Come si implementa? Con tecnologie di tunneling ip (GRE, L2TP) ma soprattutto con IPSec e VPN
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
Le debolezze di una rete:
Debolezze tecnologiche:
debolezza del tcp/ip
es: syn flood
debolezza del sistema operativo
es: bugs
debolezza della rete
es: apparati mal configurati, identificazioni approssimative
Debolezze nella configurazione: Elementi di Sicurezza nelle Reti Informatiche
11
baiocco.info
accessi non controllati
es: ACL non attivate
password semplici
es: password di dominio pubblico
errate configurazioni hardware e/o software
es: errori di valutazione o nella configurazione
Debolezze nella politica:
nessuna politica prevista
es: aziende piccole che credono di non essere soggette a possibili attacchi o malfunzionamenti
hardware e/o software non adatto
es: applicativi vecchi o che necessitano di sistemi operativi vecchi, parte hardware mai aggiornata
nessun disaster recovery plan
es: eccessiva sicurezza nei mezzi di difesa della rete
Minacce alla rete (tipologie):
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
Elementi di Sicurezza nelle Reti Informatiche
12
baiocco.info
Attacchi alla rete (tipologie):
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:
Una valida politica di sicurezza deve:
controllare l’attuale stato della sicurezza di rete
definire i confini all’interno dei quali agire
definire i comportamenti permessi e quelli vietati
definire quali siano gli strumenti e le procedure necessari
definire i ruoli del personale
definire come gestire eventuali incidenti
Una valida politica di sicurezza deve contenere:
politica di uso delle risorse hardware e software accettabile
politiche di identificazione e autenticazione
politica di uso di Internet e della LAN
politica di accesso remoto
procedure di gestione degli incidenti
Modelli di politiche di sicurezza teoriche:
aperta
è permesso tutto ciò che non è esplicitamente negato
restrittiva Elementi di Sicurezza nelle Reti Informatiche
13
baiocco.info
combinazione di divieti e permessi specifici
chiusa
è vietato tutto ciò che non è esplicitamente permesso
Organizzazione di una LAN:
host pubblici con indirizzi IANA
Internet Assigned Numbers Authority, organismo responsabile dell'assegnazione degli indirizzi IP
host privati con indirizzi privati
classi riservate per reti private: classe A (una rete di oltre 16 milioni di indirizzi): 10/8 classe B (16 reti per un totale di circa un milione di indirizzi): 172.16/12 classe C (256 reti per circa 65mila indirizzi): 192.168/16
proxy o NAT per accedere da host privati a servizi pubblici
Proxy: macchina che si interpone tra client e server, inoltrando le richieste e le risposte dall'uno all'altro (riceve una richiesta da un host con ip privato, inoltra la richiesta con il proprio ip pubblico, riceve la risposta e la inoltra all’host privato richiedente); richiede la consapevolezza dell’esistenza da parte degli host con indirizzo privato; permette di selezionare protocolli, utenti e richieste da far passare. NAT: Network Address Translation, funzione di traduzione di ip privati in ip pubblici (si dice statico se ad ogni ip privato corrisponde un ip pubblico o dinamico se a più indirizzi privati corrisponde un solo ip pubblico), limita le prestazioni in termini di velocità della rete ma non necessita modifiche agli applicativi né conoscenza da parte degli host privati.
filtro sui router verso le reti pubbliche
evita il propagarsi di informazioni dalla LAN
divisione dei nameserver
sono necessari due DNS, uno pubblico (con ip pubblico, nomi e indirizzi ip di host pubblici, collegato al DNS mondiale) e uno privato (con ip privato, nomi e indirizzi ip di host privati e pubblici, che usa il DNS pubblico come forwarder)
Elementi di Sicurezza nelle Reti Informatiche
14
baiocco.info
Sicurezza e i modelli OSI, IPS:
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: Elementi di Sicurezza nelle Reti Informatiche
15
baiocco.info
Livello 1 HOST TO NETWORK
non definito (corrisponde ai livelli OSI 1 e 2)
Livello 2 INTERNET (IP)
corrisponde al livello OSI 3
Livello 3 TRANSPORT (TCP)
corrisponde al livello OSI 4
Livello 4 APPLICATION
corrisponde al livello OSI 7
I due modelli a confronto
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
Elementi di Sicurezza nelle Reti Informatiche
17
baiocco.info
Viene inviato da un host che riceve un pacchetto non previsto e impone di iniziare nuovamente l’handshake
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)
Elementi di Sicurezza nelle Reti Informatiche
18
baiocco.info
Tipi di attacco
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 Elementi di Sicurezza nelle Reti Informatiche
19
baiocco.info
Connection Hijacking: Come agisce: Qualcuno prende il controllo di un canale di comunicazione per leggere, modificare o eliminare pacchetti Come impedirlo: Codificare i pacchetti ai livelli 2 e 3 del modello OSI
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 )
Elementi di Sicurezza nelle Reti Informatiche
20
baiocco.info
Funzionamento di un DNS 1. L’host richiede l’ip associato ad un url 2. Il dns, non avendo quell’informazione, effettua a sua volta la query ad un altro dns 3. Il secondo dns, conoscendo l’informazione richiesta, invia la risposta al primo dns 4. Il dns invia la risposta all’host
DNS Shadow Server: sniffing per intercettare le query spoofing per generare false risposte
DNS Cache Poisoning: si attira una vittima a querare il dns dell’attaccante, e si forniscono risposte anche a query non effettuate per forzare o sovrascrivere la cache della vittima Elementi di Sicurezza nelle Reti Informatiche
21
baiocco.info
Entrambe queste possibilità possono essere sfruttate per portare un attacco dos verso un nodo della rete.
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).
La crittografia può soddisfare la condizione di:
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 Elementi di Sicurezza nelle Reti Informatiche
22
baiocco.info
I sistemi di cifratura si dividono in due grandi parti:
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)
La distribuzione delle chiavi nelle cifrature simmetriche:
Un problema di fondo riguarda la distribuzione delle chiavi: mittente e destinatario debbono accordarsi in qualche modo sulla chiave, altrimenti dovrebbero scambiarsi la chiave prima di aver creato i presupposti di una comunicazione sicura, di fatto rendendola insicura. Si possono pensare cinque modi per uno scambio sicuro:
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
Alcuni algoritmi a chiave simmetrica:
DES Data Encryption Standard (1977)
Cifrario a blocchi di 64 bit, chiave a 56 bit (piccola per le attuali capacità di calcolo)
3DES Triple DES (1985)
Tre chiavi e tre esecuzioni di DES, chiave a 168 bit
IDEA International Data Encryption Algorithm (1991)
Chiave a 128 bit, usato per PGP
BLOWFISH (1993) Elementi di Sicurezza nelle Reti Informatiche
23
baiocco.info
Facile, veloce, necessita di 5kb per girare, chiavi fino a 448 bit
RC5 (1994)
Velocissimo, leggero, lunghezza della chiave variabile, molto sicuro
Cifrature asimmetriche:
Possono essere sfruttate per due fini:
riservatezza
A cifra il messaggio con la chiave pubblica di B, che lo legge con la propria chiave privata
autenticazione
B cifra il messaggio con la propria chiave privata, A lo legge con la chiave pubblica di B
Alcuni algoritmi a chiave asimmetrica:
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 Elementi di Sicurezza nelle Reti Informatiche
24
baiocco.info
contenute nel documento), dopodiché utilizza la propria chiave privata per codificarla: quella sarà la firma che A dovra allegare al documento inviato a B per permettergli di constatarne l’autenticità e l’integrità.
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.
Elementi di Sicurezza nelle Reti Informatiche
25
baiocco.info
Indice e argomenti trattati:
Premessa:
pagina 01
Proprietà astratte di sicurezza:
pagina 02
Dov’è il pericolo?
pagina 02
Conseguenze e possibili obiettivi di un attacco:
pagina 03
Cause della non-sicurezza:
pagina 05
Cause tecnologiche della non-sicurezza:
pagina 06
Cause ulteriori della non-sicurezza:
pagina 08
Elementi chiave di una rete sicura:
pagina 10
Le debolezze di una rete:
pagina 11
Minacce alla rete (tipologie):
pagina 12
Attacchi alla rete (tipologie):
pagina 13
Politica di Sicurezza:
pagina 13
Organizzazione di una LAN:
pagina 14
Sicurezza e i modelli OSI, IPS:
pagina 15
Protezioni possibili:
pagina 18
Tipi di attacco:
pagina 19
Un esempio di attacco:
pagina 20
Crittografia:
pagina 22
Indice:
pagina 26
Elementi di Sicurezza nelle Reti Informatiche
26
baiocco.info