Network Intrusion Detection Maurizio Aiello Consiglio Nazionale delle Ricerche Istituto di Elettronica e di Ingegneria dell Informazione e delle Telecomunicazioni
Analisi del traffico E importante analizzare il traffico per diversi motivi: E stato completato il three-way handshake (presenza di server in Intranet, backdoor) In fase post-incidente e utile sapere se sono stati scambiati dati e quanti ne sono stati scambiati (anche se non conosciamo il contenuto dei dati) Chi ha iniziato la connessione? Nel caso udp si possono osservare tentativi di hacking, scansioni di rete e si possono rilevare backdoor. Analisi del metodo utilizzato dagli hackers e successiva chiusura del problema.
Intrusion detection systems (IDS) Gli Intrusion Detection Systems sono strumenti per la rilevazione delle intrusioni. Come cooperano con I firewall e qual e la differenza? I firewall possono essere paragonati ai sistemi di sbarramento (porte, cancelli, serrature etc.), mentre gli IDS ai sistemi di sicurezza attiva (guardie giurate, antifurto) Gli IDS si distinguono in sistemi che operano sulle singole macchine (host based) o sui pacchetti a livello di rete. Noi ci occuperemo dei concetti base della intrusion detection effettuata a livello di rete, senza esaminare nello specifico alcun prodotto software. Pregi e difetti degli IDS host based: Rapidi nell analisi e leggeri Rilevano modifiche ai files Hanno una visione ristretta del problema (solo se stessi, non la rete) Devo installarne uno per host, con relativi problemi di manutenzione (se un hacker entra nella macchina lo spegne)
Pregi e difetti degli IDS network based: Intrusion detection systems (IDS) Posti nel punto appropriato rilevano una grande quantita di attacchi Hanno una ampia visione del problema, trovano attacchi coordinati (DoS) Necessitano di hardware dedicato dato il gravoso compito che devono svolgere Sono necessari strumenti di analisi sofisticata per trovare gli attacchi sommersi in mezzo al traffico regolare. Noi vedremo come vengono effettuati alcuni tipi di attacco via rete e quindi anche in che modo I NIDS riescono a rilevare questi attacchi. Tra le varie metodologie di analisi utilizzate dai Nids c e la signature detection, ovvero si cerca un pattern noto nel traffico di rete. Questo pattern puo essere corrispondente a un DoS, a un buffer overflow, a un port scan etc. La tecnologia e simile a quella degli antivirus (pattern recognition). Altro tipo di analisi e quella che si basa su eventi statistici, cercando anomalie rispetto al funzionamento normale. Esempio: piu di cinque tentativi di connessione al secondo verso diverse macchine implicano un tentativo di intrusione.
Intrusion detection systems (IDS) In ogni caso per poter discriminare correttamente tra anomalia e comportamento normale di rete e necessario conoscere qual e il traffico normale di rete, ovvero conoscere il funzionamento dei protocolli. Questo ci da l occasione di approfondire ICMP e di vedere quali usi (e abusi) normalmente si fanno con questo protocollo. Un NIDS dovrebbe riconoscere e saper distinguere gli abusi dall uso corretto, indipendentemente dalla tecnologia utilizzata.
ICMP: Internet Control Message Protocol TCP e un protocollo in grado di correggere automaticamente alcuni tipi di errore, ad esempio: Porte non realmente attive (tramite invio di reset/ack) Congestionamento del buffer di ricezione (tramite meccanismo di windowing) ICMP viene utilizzato dai protocolli di rete che non sono sufficientemente robusti per correggersi gli errori da soli, ovvero IP e UDP. Analizzerremo in dettaglio alcuni casi singoli, per comprendere qual e il comportamento normale di ICMP, allo scopo di poter identificare gli utilizzi impropri di questo protocollo di rete.
ICMP: Internet Control Message Protocol A che livello ISO/OSI si pone ICMP? Il pacchetto ICMP viene incapsulato all interno di un pacchetto IP; cio ne garantisce la consegna. In ogni caso dal punto di vista logico ICMP viene posto allo stesso livello di IP. 20 bytes header IP header ICMP Parte dati ICMP: dipende dal tipo e dal codice
ICMP: Internet Control Message Protocol Quali sono le peculiarita di ICMP? Non esistono porte o servizi ICMP. Esistono invece type and message code (2 bytes nell header ICMP) che specificano la natura e la funzione del messaggio Non c e il concetto di client e server (un host riceve un icmp message e puo tranquillamente non rispondere). Non c e la garanzia della consegna del messaggio A un messaggio di errore non si risponde con un altro messaggio di errore I messaggi possono non essere univoci (client/server): ad esempio si puo mandare un messaggio in broadcast I messaggi ICMP possono riguardare terze parti (esempio un router informa l host A sul fatto che l host B non e raggiungibile). Per maggiori informazioni su ICMP, come del resto su tutti gli altri protocolli di cui parleremo nel corso vedasi il testo sacro Richard Stevens TCP/IP Illustrated, Volume 1: The Protocols, Addison-Wesley Professional Computing Series.
ICMP: Tecniche di mapping ICMP viene utilizzato normalmente per effettuare il mapping delle reti, in maniera piu o meno intelligente e/o rumorosa. Tireless Mapper: 00:05:58.560000 scanner.net > 192.168.117.233: icmp: echo request 00:06:01.880000 scanner.net > 192.168.117.139: icmp: echo request 00:12:45.830000 scanner.net > 192.168.117.63: icmp: echo request 00:15:36.210000 scanner.net > 192.168.117.242: icmp: echo request 00:15:58.600000 scanner.net > 192.168.117.129: icmp: echo request 00:18:51.650000 scanner.net > 192.168.117.98: icmp: echo request 00:20:42.750000 scanner.net > 192.168.117.177: icmp: echo request 00:26:36.680000 scanner.net > 192.168.117.218: icmp: echo request 00:27:30.620000 scanner.net > 192.168.117.168: icmp: echo request
ICMP: Tecniche di mapping Efficient Mapper: 13:51:16.210000 scanner.net > 192.168.65.255: icmp: echo request 13:51 :17.300000 scanner.net > 192.168.65.0: icmp: echo request 13:51 :18.200000 scanner.net > 192.168.66.255: icmp: echo request 13:51 :18.310000 scanner.net > 192.168.66.0: icmp: echo request 13:51 :19.210000 scanner.net > 192.168.67.255: icmp: echo request 13:53:09.110000 scanner.net > 192.168.67.0: icmp: echo request 13:53:09.940000 scanner.net > 192.168.68.255: icmp: echo request 13:53:10.110000 scanner.net > 192.168.68.0: icmp: echo request 13:53:10.960000 scanner.net > 192.168.69.255: icmp: echo request 13:53:10.980000 scanner.net > 192.168.69.0: icmp: echo request
ICMP: Tecniche di mapping Clever Mapper: 06:34:31.150000 scanner.net > 192.168.21.0: icmp: echo request 06:34:31.150000 scanner.net > 192.168.21.63: icmp: echo request 06:34:31.150000 scanner.net > 192.168.21.64: icmp: echo request 06:34:31.150000 scanner.net > 192.168.21.127: icmp: echo request 06:34:31.160000 scanner.net > 192.168.21.128: icmp: echo request 06:34:31.160000 scanner.net > 192.168.21.191: icmp: echo request 06:34:31.160000 scanner.net > 192.168.21.192: icmp: echo request 06:34:31.160000 scanner.net > 192.168.21.255: icmp: echo request
ICMP: Tecniche di mapping Network mask mapper: 20:39:38.120000 scanner.edu > router.com: icmp: address mask request (DF) 20:39:38:170000 router.com > scanner.edu: icmp: address mask is 0xffffff00 (DF) 20:39:39.090000 scanner.edu > router2.com: icmp: address mask request (DF) 20:39:39:230000 router2.com > scanner.edu: icmp: address mask is 0xffffff00 (DF) 20:39:40.090000 scanner.edu > routerx.com: icmp: address mask request (DF) 20:39:40:510000 routerx.com > scanner.edu: icmp: address mask is 0xffffff00 (DF) Analizziamo ora alcuni comportamenti normali di ICMP, per vedere infine gli abusi. Host o port unreachable: router> sending.host: icmp: host target.host unreachable target.host > sending.host: icmp: target.host udp port ntp unreachable (DF)
ICMP: Utilizzo normale Admin prohibited, nel caso in cui il router diffonda informazioni sulle proprie ACL: router> sending.host: icmp: host target.host unreachable. admin prohibited Redirect nel caso in cui esistano rotte piu efficienti: nonooptimal.router > sending.host :icmp: redirect target.host to net optimal.router Need to frag, se il pacchetto conteneva un DF e la MTU e stata superata: router > sending.host.net: icmp: target.host unreachable - need to frag (mtu 1500) Time exceeded in transit, se per qualche motivo il TTL (Time to live del pacchetto IP) e arrivato a zero: routerx> sending host: icmp: time exceeded in-transit
Smurf Attack!
Tribe Flood Network! Utilizza una serie di host compromessi per lanciare un attacco multiplo; su questi host e stato installato un TFN server, che riceve comandi mediante un pacchetto di tipo ICMP echo reply. Nella parte dati di questo pacchetto sono contenute le istruzioni da eseguire. Il TFN server puo lanciare attacchi DoS (Denial of Service) usando un TCP Syn flood, un UDP flood, un ICMP echo request, uno smurf.
Filtraggio di ICMP entrante? Perche a questo punto non filtrare tutto ICMP entrante in modo da essere sicuri di non subire attacchi? Se blocco in entrata icmp echo request nessuno puo piu fare ping sulle mie macchine. Bene. Se blocco echo reply neanch io posso piu fare ping verso l esterno. Siccome ping verso l esterno e comodo, lascio entrare echo reply. Ecco perche TFN e Loki usano echo reply. Se blocco ICMP time exceedeed in transit (TTL=0) non funziona piu traceroute. Male. Se blocco ICMP host unreachable genero traffico inutile. Se blocco ICMP need to frag non riesco a fare la discovery della MTU lungo il percorso Internet che utilizzo; siccome TCP fa un uso pesante di questa tecnica degrado le performance in maniera significativa.