NETWORK SECURITY Corso di Sicurezza e Privacy A.A. 2007/2008 Docente: Stefano Bistarelli Studente: Fiorella Colacillo matr. 3069170 Corso di Laurea Specialistica in Economia Informatica Università degli Studi “G. d’Annunzio” Chieti-Pescara “ This fortress built by Nature for herself Against infection and the hand of war, This happy breed of men, this little world, This precious stone set in the silver sea, Which serves in the office of a wall, Or as a moat defensive to a house, Against the envy of less happier lands; ” The Tragedy of King Richard the Second THE DRIBBLE CORPORATION Multinazionale che commercializza dispositivi elettronici Politica di sicurezza basata su: Dati sensibili relativi ai piani della compagnia sono segreti Dati riservati forniti dai consumatori (es. carta di credito) visibili solo da personale fidato Diffondersi dei dati richiede necessariamente il beneplacito di dirigenti e avvocati OBIETTIVO: infrastruttura network che appaghi questi requisiti THE DRIBBLE CORPORATION CLASSI DI DATI PD (Public data): Accessibili a tutti DDEP (Development Data For Existing Products): Accessibili solo internamente da dirigenti, avvocati e sviluppatori DDFP (Development Data For Future Products): Accessibili ai soli sviluppatori per sviluppo di nuovi prodotti CpD (Corporate Data): Include informazioni legali e sulle azioni della società CuD (Customer Data): Dati relativi ai consumatori THE DRIBBLE CORPORATION Minimizzare le minacce, ossia che i dati vengano i possesso di entità non autorizzate Ma chi sono le entità non autorizzate? 3 ORGANIZZAZIONI INDIPENDENTI CSG (Customer Service Group): gruppo assistenza clienti DG (Development Group): gruppo di sviluppo CG (Corporate Group): gestiscono brevetti, obbligazioni e tutto ciò inerente alla società CG DG THE DRIBBLE CORPORATION CLASSI DI UTENTI OUTSIDERS (Pubblico): Accesso a dati come prodotto, prezzo SVILUPPATORI: Accesso a DDEP e DDFP DIRIGENTI: Accesso in lettura e in scrittura solo a CpD IMPIEGATI: Accesso a dati relativi ai consumatori Principio della separazione dei privilegi(L'assegnazione dei privilegi deve poter essere effettuata previa verifica di multiple condizioni in modo da poter effettuare una migliore gestione degli stessi.) Controllo di consistenza THE DRIBBLE CORPORATION Outsiders PD DDEP DDFP CpD CuD read write Developers Corporation executive Employees read read read,write read read read read,write read read read,write ORGANIZZAZIONE NETWORK Network partizionato e controlli tra le parti per evitare perdita di informazioni DEF. DMZ è una porzione di Network che separa un network puramente interno da quello esterno ORGANIZZAZIONE NETWORK DMZ Internet Outer firewall Web server Log server INTERNAL Mail server DNS server Corporate data subnet Customer data subnet Inner firewall Internal DNS server Development subnet Internal mail server FIREWALLS E PROXIES DEF. Firewall è un host che interpone l’accesso al network permettendo e impedendo certi tipi di accesso in base alla politica di sicurezza configurata; DEF. Filtering Firewall effettua il controllo di accesso sulla base degli attributi degli headers dei pacchetti come gli indirizzi sorgente, destinazione e varie opzioni DEF. Proxy è un agente o un server intermediario che agisce a favore di un punto d’arrivo impedendo una connessione diretta tra due punti di arrivo DEF. Proxy Firewall utilizza proxies per effettuare il controllo di accesso. Può basare il controllo sul contenuto dei pacchetti, oltre che sugli headers ANALISI INFRASTRUTTURA DI RETE Limitare l’afflusso di informazioni al DMZ Firewall e Dmz controllano accessi da e verso Internet e filtrano il traffico in entrambe le direzioni Celare gli indirizzi del network interno; in generale sono indirizzi IP e il firewall interno può usare un protocollo come Network Address Translation che mappa questi indirizzi host interni verso l’indirizzo Internet del firewall Drib principio del privilegio minimo Ogni processo relativo ad un programma dovrà essere eseguito con solo con i privilegi che gli sono strettamente necessari. CONFIGURAZIONE FIREWALL ESTERNO Obiettivo: restringere l’accesso pubblico alla rete interna e bloccare il traffico verso l’esterno (Meccanismo di controllo di accesso) 3 METODI DI ATTACCO PER PENETRARE IL FIREWALL: 1. Entrare attraverso le porte del web server 2. Entrare attraverso le porte SMTP 3. Sfruttare vulnerabilità del firewall CONFIGURAZIONE FIREWALL INTERNO Meccanismo di controllo di accesso Siccome nella rete interna ci sono i dati più sensibili della Drib che gli esterni non possono vedere, il firewall interno dovrà bloccare il traffico ad eccezione delle entrate autorizzate. Le informazioni che entrano verranno dal DMZ e mai direttamente da Internet Precauzioni assunte dalla Drib per minimizzare le minacce: Disabilitazione della connessione quando non proviene da una prestabilita Accesso pieno agli amministratori (persone fidate) Utilizzo SSH solo per connettersi ai servers DMZ da parte degli amministratori DMZ Nel DMZ risiedono 4 servers: MAIL SERVER WWW SERVER DNS SERVER LOG SERVER DMZ MAIL SERVER Obiettivo: gestire le mail, controllo degli indirizzi e del contenuto 3 fasi quando arriva una mail: 1. Mail proxy riassembla messaggio in intestazione/corpo/allegati 2. Mail proxy scansiona testo e allegati eliminando eventuali worm, virus, bombing 3. Mail proxy controlla indirizzo destinatario che viene riscritto dal server mail e poi inoltrato al server interno La procedura di invio di una mail differisce solo nel passo 3: 3. Mail proxy fa la scansione linee intestazione, tutte le linee che menzionano host interni vengono riscritti per identificare il nome dell’host (es “Drib.org”); poi è inoltrata al firewall per la consegna. (vengono oscurati tutti i dettagli del network della Drib) DMZ WWW SERVER Accetta e richiede servizi da internet Utilizzo protocollo SSH Dati integri (assicurare che le informazioni non siano alterabili da persone non autorizzate) Nella Drib: 1. Viene accettato l’ordine dal web dopo la conferma del consumatore 2. Server web fa partire un programma che controlla il contenuto e lo cifra (con chiave pubblica del sistema interno della sottorete consumatori) 3. Memorizzato in un’area protetta DMZ DNS SERVER Contiene ingressi per: DMZ mail, web e log host Host amministrativi interni Firewall esterno Firewall interno DNS non conosce gli indirizzi del server delle mail interne. E’ il firewall interno che inoltrerà le mail a questo server. Se mail server conosce l’indirizzo del DNS server può ottenere gli indirizzi dei due firewalls e del server degli amministratori. DMZ LOG SERVER Ha una funzione più che altro amministrativa. Questi log possono essere compromessi; chi attacca può cancellare i logs, infatti se i logs sono sulle macchine attaccate, essi li possono intaccare o cancellare Nella Drib: Quando gli altri server si loggano lasciano un messaggio che viene mandato al log server che li memorizza. Il log server li scrive anche su una piattaforma per una precauzione nel caso in cui l’attaccante cerca di cancellare i logs NELLA RETE INTERNA Può essere organizzata in diversi modi; ogni sottorete ha un firewall e un server proprio Nella Drib: Dati e utenti distribuiti lungo 3 sottoreti: Il firewall del network degli svilppatori Il firewall del network della società Il firewall della sottorete consumatori I servers DMZ non comunicheranno mai direttamente con i servers interni Il firewall instraderà i messaggi nel modo più appropriato UN COMMENTO GENERALE SULLA SICUREZZA La politica informale della Drib guida il design dell’architettura del network come la configurazione del software e degli hardware La configurazione del firewall e del server è basata sulla separazione dei meccanismi. Se un meccanismo fallisce ce ne sarà un altro che eviterà che l’attaccante sfrutti la falla. I sw che girano nel firewall è minimizzato e quelli che ci sono fanno solo il necessario ACCESSIBILITA’ E NETWORK FLOODING Drib deve garantire l’accessibilità ai suoi utenti ATTACCHI DI FLOODING: chi attacca cerca di sovraccaricare le risorse di sistema SYN FLOOD E’ il più comune attacco di Flooding Consiste nel rifiuto di eseguire il terzo passo del TCP handshake ACCESSIBILITA’ E NETWORK FLOODING SYN FLOOD Succede quando ad es. il pacchetto viene da sorgenti multiple ma hanno uno stesso destinatario (gli indirizzi sorgente di questi pacchetti è settato a qualche host irragiungibile) Legitimate handshake quando il client riceve il pacchetto del SYN/ACK dal server e risponde con l’ACK appropriato per completare handshake e iniziare la connessione Attack handshake il client non spedirà mai il pacchetto ACK per completare la connessione (è parte del SYN FLOOD) GESTIONE DELLA CONNESSIONE TCP Host client Host server Richiesta di connessione Connessione accordata ACK tempo Quando un pacchetto SYN è ricevuto, il server crea un ingresso nella struttura dati delle connessioni in corso e poi invia il pacchetto SYN/ACK (ricevuta). L’ingresso rimane aperto ad entrambi fin quando non riceve il pacchetto ACK o non incorre in un time-out. Nel caso precedente la connessione è completata, nel secondo è creato un nuovo ingresso per un nuovo pacchetto SYN. SYN FLOOD E’ un attacco che viene compiuto da un utente malevolo che invia diversi pacchetti ma non ritorna il segnale "ACK" al server. Le connessioni sono perciò stabilite solo in parte e utilizzano risorse del server. L'utente che vorrebbe legittimamente connettersi al server, non riesce dal momento che il server rifiuta di aprire una nuova connessione, realizzando così un attacco denial of service. DoS:letteralmente negazione del servizio. In questo tipo di attacco si cerca di portare il funzionamento di un sistema informatico che fornisce un servizio, ad esempio un sito web, al limite delle prestazioni, lavorando su uno dei parametri d'ingresso, fino a renderlo non più in grado di erogare il servizio. LO STATO TCP E ALLOCAZIONI DI MEMORIA Sotto un attacco di SYN FLOOD la struttura dati è tenuta piena di entrate, però non stabilirà mai una connessione. Nuovi SYN creano nuovi ingressi e quelli vecchi verranno eliminati dal time-out La struttura dati contiene la cronologia della connessione in corso. Quando il client risponde con un pacchetto ACK per completare handshake, il server usa questa informazione per verificare che il pacchetto ACK corrisponda al pacchetto iniziale SYN Il SYN FLOOD ha successo quando lo spazio allocato tiene questa informazione di cronologia perché lo riempe prima che ogni tree-way handshake siano completati. I legitimate handshake non possono ottenere spazio nella struttura dati. LO STATO TCP E ALLOCAZIONI DI MEMORIA 2 TECNICHE per rendere accessibile in una maniera più agevolata lo spazio. SYN COOKIE Approach nessuno stato necessita di essere tenuto nel sistema server poiché esso può ricavare le informazioni dal pacchetto ACK del client ADAPTIVE TIME-OUT Approach assume che ci sia un ammontare specifico di spazio per lo stato connessioni in corso. Dopo un ammontare costante di tempo il server cancella le informazioni associate agli attacchi di handshake. (il time-out dipende dallo spazio disponibile) HOSTS INTERMEDI Cerca di ridurre il consumo di risorse usando routers che deviano o eliminano il traffico illegittimo Osservazione: il SYN FLOOD viene gestito prima che raggiunga il firewall a livello di infrastruttura Obiettivo: legittimare gli handshake che raggiungono il firewall ANTICIPARE GLI ATTACCHI Nonostante le misure adottate, la Drib ritiene che i sistemi potrebbero essere compromessi da mezzi inaspettati. Ci si può aspettare che gli attacchi arrivino da internet contro il firewall esterno. DMZ log server ha un meccanismo di rilevamento intrusioni che sonda i log cercando prove di attacco e comportamenti anomali. Attenzione agli attacchi dentro il DMZ (accesso ristretto) ANTICIPARE GLI ATTACCHI La filosofia di ignorare gli attacchi che falliscono sembra essere pericolosa perché quando un attaccante ha successo nel compromettere il sistema, l’attaccante avrà probabilmente provato e fallito numerose volte prima. CONCLUSIONI Abbiamo visto come la Drib ha sviluppato un’infrastruttura di rete partendo da una politica di sicurezza. I server accessibili al pubblico sono sistemi dedicati che provvedono ad un unico servizio I firewalls sono di livello applicativo così che possono controllare i contenuti di ogni connessione; da un lato limitano il traffico verso il server pubblico e dall’altro blocca il traffico esterno in modo da non far raggiungere il server interno