660 likes | 866 Views
Sicurezza di rete. Roberto Cecchini INFN, Firenze Ferrara, 28 Maggio 2003. Sicurezza: necessità. Riservatezza: la comunicazione è stata intercettata? autenticazione: l’utente è veramente chi dice di essere? Integrità: i dati ricevuti sono proprio quelli spediti? Non ripudio:
E N D
Sicurezza di rete Roberto Cecchini INFN, FirenzeFerrara, 28 Maggio 2003
Sicurezza: necessità • Riservatezza: • la comunicazione è stata intercettata? • autenticazione: • l’utente è veramente chi dice di essere? • Integrità: • i dati ricevuti sono proprio quelli spediti? • Non ripudio: • il mio interlocutore può ritrattare quello che ha detto? • Disponibilità: • il mezzo di comunicazione è stato reso inutilizzabile? • Autorizzazione: • ogni utente può accedere solo alle risorse cui ha diritto
Sicurezza: principi e strategie 1/4 • Minimi privilegi: • ogni oggetto (utente, programma, ecc.) deve avere solamente i privilegi minimi indispensabili per quello che deve fare. • Difesa in profondità: • non fare affidamento su di un solo meccanismo di sicurezza, per forte che possa sembrare. • Minimizzare i punti di accesso: • un numero ridotto di punti di accesso (uno solo?) rende più facile il controllo. • Cercare l’anello più debole: • essere coscienti dei propri punti deboli e rafforzarli fino a rendere il rischio “accettabile”.
Sicurezza: principi e strategie 2/4 • A prova di errore (Fail-Safe): • quando si verifica un errore (prima o poi succede...) il sistema non deve permettere l’accesso agli intrusi, anche a costo di tener fuori gli utenti legittimi. • Il non espressamente permesso è proibito (Default Deny): • Fail-Safe; • la visione dell’utenza è esattamente l’opposta; • i servizi vengono abilitati uno per uno sulla base delle effettive necessità, tutti gli altri sono disabilitati. • Partecipazione universale • non è possibile (o almeno avrebbe costi elevatissimi) la sicurezza senza la partecipazione degli utenti.
Sicurezza: principi e strategie 3/4 • Diversità di difese: • non solo più di un meccanismo di sicurezza, ma possibilmente di tipi diversi. • Semplicità: • sistemi semplici sono più facili da capire e mantenere; • programmi complessi sono sicuramente afflitti da bug, alcuni dei quali possono avere implicazioni di sicurezza.
Sicurezza: principi e strategie 4/4 • Sicurezza via mancanza di informazioni (Security Through Obscurity)? • Sbagliato • una macchina collegata ad Internet con l’unica protezione che nessuno ne è a conoscenza; • un server in modo che ascolta su di una porta diversa da quella di default; • Corretto • non divulgare i dettagli del proprio NID system; • informazioni dettagliate sul proprio firewall (protocolli ammessi, modello, ecc. ecc.)
Tipologia delle vulnerabilità • Difetti di progettazione nel software o nei protocolli • NFS • manca l’autentificazione del cliente • TCP • IP source routing • Previsione numero di sequenza TCP • Difetti nella realizzazione del software o dei protocolli • mancanza o errati controlli sul contenuto e la dimensione dei dati (buffer overflow); • mancanza o errati controlli sul risultato delle operazioni; • mancanza o errata gestione esaurimento risorse. • Errori nella configurazione del sistema e della rete • FTP anonimo
Attacchi dalla rete • Ormai chiunque può diventare un hacker. • Spesso i sistemi in rete sono mal gestiti o addirittura abbandonati. • IPv4 non è stata progettata pensando alla sicurezza delle applicazioni • sniffing; • intercettazione dei messaggi (password ecc...) • analisi del traffico • IP spoofing: falsificazione indirizzo mittente; • attacchi con un solo messaggio (es. Smurfing) • impersonificazione di un altro host • DNS spoofing • session hijacking: inserimento in una sessione attiva; • man-in-the-middle; • denial of Service (DoS); • SYN flood, mail/UDP/ICMP bombing, ping flood, smurf, ecc. ecc. • Con IPv6 le cose dovrebbero andare meglio...
Protezioni • Host • strumenti di intrusion detection e controllo • COPS, Tiger, tripwire, swatch • “personal” firewall • ipf, ipchains • port / vulnerability scanner • nmap, nessus • Reti locali • firewall • network intrusion detection • Protocolli di connessione • IPSec • SSH • SSL/TLS • PGP, S/MIME
Application Layer (SMTP, Telnet, SSH, FTP, ...) Transport Layer (TCP, UDP, ...) Internet Layer (IP, ICMP) Data Link Layer (Ethernet, FDDI, ATM, ...) TCP/IP
H. IP H. ICMP Dati ICMP Internet Control Message Protocol • Protocollo di servizio per IP • diagnostica Internet • usato da host e router per segnalare condizioni di errore • Usa datagrammi IP • il payload contiene sempre l’header IP e i primi 8 byte del datagramma che ha provocato il messaggio. • vari tipi di messaggio (es. Echo Request/Reply, Host Unreachable, Need to Frag, Time Exceeded, etc..)
Protocolli di trasporto • Concetti per protocolli al livello di trasporto: • Porta • astrazione usata dai protocolli di trasporto per distinguere fra più processi sullo stesso host • intero a 16 bit (0-65535) • per servizi standard identificativo assegnato dalla IANA • Socket • coppia (indirizzo IP, porta) • generalizzazione del meccanismo di accesso a file
Source Port Destination Port 0 4 8 12 16 20 24 28 Length UDP Checksum User Datagram Protocol • Protocollo connectionless (come IP) • nessuna garanzia di consegna • assenza controllo di flusso • assenza di correzione di errore
UDP: problemi • Assenza di correzione di errore • Tutti i controlli sul flusso sono a carico del livello applicativo • Assenza controllo di flusso • Implicazione di sicurezza: IP spoofing • Semplice per attaccante sostituirsi ad host • Host A effettua query a host B • Cattivo (C) risponde ad A ed effettua DoS contro B • Consigliabile filtrare servizi non essenziali
0 4 8 12 16 20 24 28 Trasmission Control Protocol • Protocollo connection-oriented • controllo del flusso • affidabilità della consegna • spoofing più difficile (ma non impossibile!) • Connessione virtuale tra due socket • connessione in chiaro Source Port Destination Port Source Number Acknowledgement Number TCP Flags Window Size Header Length TCP Checksum Urgent Pointer Options
TCP: inizio sessione • Three-Way Handshake Invio ACK y+1 Invio SYN seq=y, ACK x+1 Invio SYN seq=x
TCP sequence guessing • Le connessioni TCP utilizzano un numero di sequenza per riordinare i pacchetti. • Ad ogni nuova connessione viene utilizzato un numero di sequenza (semi-)casuale. • Se l’attaccante riesce a predire il numero di sequenza, può generare dei pacchetti con mittente falsificato formalmente corretti (anche se, ovviamente, non riesce a vedere le risposte). • Perché l’attacco vada a buon fine è necessario che il mittente (vero) non riceva i pacchetti di risposta (o non sia in grado di reagire). • Come protezione, i router non devono far entrare traffico che risulti proveniente dalla rete interna (ingress filtering).
TCP Session Hijacking • Session Hijacking è l’inserimento in una sessione TCP attiva. • Spiando una connessione attiva è possibile sostituirsi ad uno dei due interlocutori. • C spia la connessione tra A e B e registra i numeri di sequenza dei pacchetti • C blocca B (ad es. via SYN Flood): l’utente in B vede interrompersi la sua sessione interattiva • Cinvia pacchetti con il corretto numero di sequenza, con mittente B, in modo che A non si accorga di nulla. • hunt o dsniff automatizzano il processo • I router non devono far entrare traffico che risulti proveniente dalla rete interna (ingress filtering). • Per attaccanti sulla rete interna l’unica difesa è la cifratura dei pacchetti.
Portscan • L’attaccante effettua da remoto un test dello stato delle porte TCP e/o UDP sulla macchina per determinare le porte attive (aperte), che ammettono connessioni in ingresso, e le porte non utilizzate (chiuse). • Una porta aperta individua la presenza di un servizio di rete attivo offerto dall’host • A partire dall’elenco dei servizi offerti l’attaccante può tentare di individuare eventuali vulnerabilità conosciute ed effettuare exploits sulle stesse. • Vengono impiegate diverse tecniche per cercare di sfuggire all’individuazione • Decoy scan • SYN scan • FIN scan • ...
Nmap # nmap -sS -O tStarting nmap V. 2.53Interesting ports on t (192.168.1.1):Port State Service21/tcp open ftp22/tcp open ssh23/tcp open telnet25/tcp open smtp37/tcp open time53/tcp open domain111/tcp open sunrpc113/tcp open auth135/tcp open loc-srv139/tcp open netbios-ssn515/tcp open printer849/tcp open unknown853/tcp open unknown7000/tcp open afs3-fileserverTCP Sequence Prediction: Class=64K rule Difficulty=1 (Trivial joke)Remote operating system guess: HP-UX B.10.20 A with tcp_random_seq = 0
Network mapping con traceroute = Router IP ISP # 1 ISP # 2 Lo scopo è determinare tramite traceroute simultanei da più origini le macchine che isolano dall’esterno la rete interna protetta.
Denial of Service • Attacchi di tipo Denial of Service (DoS): • scopo: rendere inutilizzabile un servizio ouna risorsa (eventualmente per sostituirsi ad essa). • metodo:inibirela connessione alrouter o al server, provocarne il crash o comunque il blocco • Distributed DoS (DDoS) • attacco di tipo DoS proveniente da più sorgenti contemporaneamente • sfruttano molti host compromessi su reti diverse per lanciare attacchi DoS su vittima • Sempre usato IP spoofing • molto difficile rintracciare l’origine dell’attacco
frammenti DoS: ping of death • Invio pacchetti ICMP ping di dimensione maggiore della dimensione massima consentita (65535 bytes) • Attaccante frammenta pacchetti • Frammenti riassemblati da vittima • Ultimo frammento causa overflow Internet vittima attaccante
ECHO requestIP s.: 10.12.5.25 IP d.: 10.2.1.255 DoS: smurf / fraggle • Broadcast storm • Invio di pacchetti ICMP echo all'indirizzo di broadcast di una rete (fraggle usa pacchetti UDP) • Coinvolti solitamente almeno tre siti: • sito origine dell'attacco (“attaccante”) • 2 siti vittime, uno intermedio (“amplificatore”) ed uno “bersaglio” amplificatore (10.2.1.0) attaccante (10.0.1.0) bersaglio (10.12.5.25)
DoS: SYN Flood • Richiestagrande numero di connessioni da host diversi (spoofing), tramite invio pacchetti TCP SYN, senza mai inviare pacchetto di chiusura del “three-way handshake” • causa riempimentocoda di connessione (può bloccare un router) • non è possibile rintracciare origine attacco (mittente falsificato) • nonè possibile usare access-list (ip sorgente variain modo casuale) • Contromisure: aumentare la dimensione della coda diconnessione (SYN ACK queue) e diminuire il tempo di time-out per il "three-wayhandshake". • Filtri contro l’IP spoofing diminuiscono probabilità che propria LAN sia utilizzata come base per questotipo di attacchi
vittima daemon daemon daemon daemon daemon Distributed DoS (DDoS) • Attacchi DoS provenienti contemporaneamente da più sorgenti (anche ~ 1000) • Struttura multi-livello attaccante master demoni vittima attaccante master master master
PGP, S/MIME telnet FTP sftp ssh SSLtelnet SSLFTP http scp https FTP http telnet TCP SSH SSL/TLS TCP TCP TCP IP + IPsec IP IP IP Protocolli
Protocolli • Network level • trasparenti per le applicazioni, che non devono essere modificate • il network layer deve essere modificato • Transport level • viene fornita una libreria di funzioni che può essere utilizzata dai progammi applicativi • necessaria la modifica dei programmi applicativi • Application level • trasparenti per la rete • i servizi di sicurezza devono essere individualmente inclusi in ogni applicazione • necessaria la modifica dei programmi applicativi
IPsec • Autenticazione e cifratura al livello Network • Authentication Header (AH) • autentifica ogni pacchetto; • Encapsulating Security Payload (ESP) • cifra i dati in ogni pacchetto; • Internet Key Exchange (IKE) • protocollo di negoziazione • metodi di autentificazione • metodi di cifratura • consente scambio sicuro di chiavi
ESP Header AH Header TCP Header TCP Header IP Header IP Header Dati Dati ESP Trailer ESP Auth cifrato autenticato IPsec: end-to-end • AH • campi variabili: TOS, Frg offset, TTL, … • ESP • autentificazione facoltativa • l’IP header non è protetto Authentication Header autenticato (tranne per i campi variabili) Encapsulated Security Payload
CA 1 2 ESP Header TCP Header A B Dati IP Header originale ESP Auth ESP Trailer IP Header esterno IPsec: tunnel Gli indirizzi A e B non sono visibili all’esterno dei gateway 1 e 2 Encapsulated Security Payload cifrato autenticato
SSH • Rimpiazza telnet e i comandi “r” (rlogin, rshell) • Versione 1 e Versione 2 (IETF SECSH Working Group); • nella versione 1 richiede una distribuzione “manuale” delle chiavi di host e utenti; • connessione crittografata: protegge da: • IP spoofing; • IP source routing; • DNS spoofing; • sniffing; • man-in-the-middle; • tunneling traffico tcp e X11; • compressione dei dati (facoltativa, utile per connessioni lente). • Molto apprezzato anche dagli hacker, che spesso lo installano sulle macchine compromesse, perché impedisce agli amministratori di capire quali dati vengano trasferiti e per il meccanismo di port forwarding.
SSL/TLS • Secure Sockets Layer (SSL) sviluppato da Netscape Communications • L’ultima versione (V3.0) è del Marzo 1996; • Netscape Communicator, Internet Explorer. • Transport Layer Security (TSL) Working Group (IETF) • versione 1.0 del Gennaio 1999 (RFC 2246). • Utilizza certificati X.509 • Può essere usato per ogni applicazione TCP (ad es. HHTP, Telnet, FTP, POP3, IMAP) • usato da praticamente tutti i server web “sicuri”: https://….. • le vecchie applicazioni “insicure” possono essere usate in modalità tunnel (ad es. stunnel: http://www.stunnel.org)\ • Non interagisce bene con firewall/proxy (man-in-the-middle)
S/MIME1/2 • Permette di inviare e-mail MIME firmati e crittografati • Supportato (tra gli altri) da Communicator e Outlook • Utilizza certificati X.509
Internet NIDS router dialup DMZ LAN esterna server Intranet firewall client client server Internet e Intranet
Router di frontiera • Responsabile dell’inoltro del traffico tra LAN ed Internet. • E’ il primo sbarramento della propria rete • difficile l’aggiramento da parte dell’end-user. • Permette di centralizzare un buon numero di controlli di sicurezza. • Fondamentale la sua protezione • una compromissione può aprire l’accesso alla LAN; • una inadeguata politica di filtraggio può esporre la LAN ad attacchi; • la corruzione delle tabelle di routing può provocare disservizi e accesso non autorizzato a dati. • Un router correttamente configurato può minimizzare effetti derivanti da sito compromesso in attacchi DDoS.
Network Intrusion Detection System • Forniscono informazioni utili su traffico ostile. • Facilitano l’identificazione dell’origine de scansioni e/o attacchi. • Permettono di lanciare allarmi “in tempo reale”. • Non sono una panacea per tutti i problemi di sicurezza. In particolare non sostituiscono: • firewall ben configurati; • security audit regolari; • una politica di sicurezza “seria”. • Producono falsi positivi. • Possono essere “accecati” da attacchi DoS. • Sono in difficoltà con reti veloci • rete di sensori (uno per macchina?).
Firewall • Network device con almeno 2 interfacce di rete • Router o hardware dedicato • Separa zone amministrativamente diverse • LAN esterna (insicura) • DMZ • Intranet • Effettua routing fra le diverse zone • Può effettuare mascheramento indirizzi (NAT) • Filtra traffico fra le diverse zone tramite regole predefinite • Router con filtri è un firewall! • Può mediare accessi a specifiche applicazioni • Proxy server
Screening Router Firewall Rete interna Architetture: Screening Router
Screening Router Firewall Rete Interna Architetture: Screened Host Bastion Host
Router esterno Bastion Host Perimeter Network Router interno Firewall Rete Interna Architetture: Screened Subnet
Firewall: pro e contro • Il sw disponibile non è ancora di qualità adeguata • In molti casi è l’unica protezione possibile • Il costo di un incidente di sicurezza è ben maggiore • Se le applicazioni sono scritte bene i FW non sono di intralcio • In questo modo ogni novità rimane sotto controllo • Il nuovo sw spesso è meno sicuro di quello vecchio • È solo questione di comprare hw più veloce • Anche le macchine interne devono essere ben configurate • I FW non sono lo strumento adatto per bloccare virus e applet • IPV6 è ancora lontano. • Sono troppo complessi • I nuovi servizi sono incompatibili con i FW • Sono di difficile gestione, troppo costosi e rapidamente obsoleti • Bloccano servizi utili e riducono l’utilità di Internet • Ad ogni nuovo servizio il FW deve essere riconfigurato • Il nuovo sw ha incluso il supporto per la sicurezza (ad es. SSL) • Riducono le prestazioni in modo eccessivo • I servizi che vengono fatti passare possono avere problemi di sicurezza • Non è in grado di bloccare i virus o applet ostili • IPV6 renderà i FW obsoleti
Firewall: limitazioni • Scarsa protezione dagli attacchi dall’interno (e dagli utenti...) • È sempre possibile un accesso non autorizzato alla rete esterna (ad es. via modem) • Scarsa o nessuna protezione da virus, applet Java, e controlli ActiveX • Si possono utilizzare tunnel per evitare il blocco di alcuni protocolli
Packet filter • Un device (ad es. un router) che controlla ogni pacchetto IP in arrivo per decidere se inoltrarlo o no. • I filtri si basano sulle seguenti informazioni • semplici • protocollo; • porte; • indirizzi sorgente e destinazione; • flag e opzioni tcp; • non prendono in considerazione la parte dati; • prendono le decisioni pacchetto per pacchetto; • stateful (dinamici) • tengono traccia delle connessioni in corso e possono avere conoscenza dei protocolli più comuni. • la necessità di tenere traccia delle connessioni aperte, ovviamente, aumenta il lavoro del filtro
Bastion Host • È il sistema a cui si devono connettere gli utenti esterni per accedere alle macchine e ai servizi locali. • È particolarmente esposto agli attacchi e quindi deve essere molto curato dal punto di vista della sicurezza • va previsto il caso che il Bastion Host venga compromesso: in altri termini, le macchine interne non devono fidarsene più del minimo indispensabile. • la rete su cui si trova non dovrebbe trasportare traffico confidenziale (potrebbero installare uno sniffer): dovrebbe essere isolata dalla rete interna da un packet filter. • in alternativa potrebbe essere su di uno switch (ma attenzione, anche gli switch permettono snooping! e anche il traffico multicast potrebbe essere di interesse per un intruso)
Bastion Host: servizi • Deve fornire solamente i servizi necessari per accedere ad Internet e quelli che devono essere offerti all’esterno, e niente altro(inclusi account utenti). • Servizi sicuri • possono essere forniti via packet filtering senza interessare il BH (ma questo dipende dal grado di sicurezza desiderato). • Servizi che possono essere resi sicuri • offerti dal BH • SMTP, FTP, HHTP, NNTP, ... (richiedono accesso al DNS) • Servizi intrinsecamente insicuri • devono essere disabilitati o forniti da una macchina vittima • Servizi non utilizzati (almeno non in relazione ad Internet) • devono essere disabilitati
client server proxy Proxy • Un proxy è un software (su di un dual-homed host, o un Bastion Host) che fa intermediario tra il client e il server, dando al client l’impressione di parlare direttamente al server, mentre la connessione passa in realtà dal proxy che fa da intermediario. • Lo scopo è di rendere il più trasparente possibile l’accesso all’esterno, mantenendo nello stesso tempo l’isolamento dei nodi sulla rete interna protetta. • Le modalità di funzionamento sono diverse da servizio a servizio: in generale è necessario un software specifico dalla parte del server, mentre dalla parte del client una di queste possibilità: • software applicativo proxy-aware • sistema operativo proxy-aware • procedure utente proxy-aware • router proxy-aware
Proxy: client proxy-aware • Ad es.: Netscape, Internet Explorer, Lynx • SOCKS e HTTP • Le applicazioni possono essere disponibili solo per qualche piattaforma • Le applicazioni disponibili possono non essere adeguate alle necessità • Il meccanismo non è trasparente: le applicazioni devono essere configurate in modo opportuno
Internet PC NAT PC PC PC Network Address Translation (NAT) • Mapping (dinamico o statico) di un insieme di indirizzi IP nascosti su pool indirizzi pubblici • Indirizzi privati non direttamente raggiungibili da Internet • Il NAT server mantiene tabella con abbinamenti per inoltro pacchetti 192.168.1.3 131.154.6.1<->192.168.1.3 131.154.6.0/25 192.168.1.0/24