Software di Packet-Filtering e Port-Filtering su reti TCP/IP Come filtrare il traffico di rete in transito sulle interfacce presenti, frapponendosi tra la scheda Ethernet ed il TCP/IP stack Università degli studi dell’Insubria Facoltà di Informatica 11 luglio 2007
INQUADRAMENTO DELLA RETE DEL CLIENTE INFRASTRUTTURA DI RETE IN FASE DI MIGRAZIONE DA PROTOCOLLI X.25 AD IP
VANTAGGI DELLA MIGRAZIONE DA X.25 A IP AMMODERNAMENTO TECNOLOGICO DELL’INFRASTRUTTURA DI RETE AMMODERNAMENTO TECNOLOGICO DELL’INFRASTRUTTURA DI RETE OTTIMIZZAZIONE DEI PROCESSI DI GESTIONE E MANTENIMENTO OTTIMIZZAZIONE DEI PROCESSI DI GESTIONE E MANTENIMENTO RIDUZIONE DEI COSTI RIDUZIONE DEI COSTI MAGGIORE ADERENZA AGLI STANDARD MAGGIORE ADERENZA AGLI STANDARD
PROBLEMATICHE RISCONTRATE PROPAGAZIONE DI CODICE MALIZIOSO PROPAGAZIONE DI CODICE MALIZIOSO NON OTTIMALE SEGREGAZIONE DEL TRAFFICO DI RETE NON OTTIMALE SEGREGAZIONE DEL TRAFFICO DI RETE PROBLEMI DI SICUREZZA PROVENIENTI DAI CLIENT (sui quali il ciente non è in grado di detenere un controllo dal punto di vista giurico) PROBLEMI DI SICUREZZA PROVENIENTI DAI CLIENT (sui quali il ciente non è in grado di detenere un controllo dal punto di vista giurico) NECESSITA’ DI UN SOFTWARE IN GRADO DI INSEDIARSI TRA LA SCHEDA DI RETE ED IL TCP/IP STACK, IN GRADO DI CONTROLLARE E LIMITARE IL TRAFFICO DI RETE IN OGNI SINGOLO DISPOSITIVO END-POINT
WINPKFILTER (NTKERNEL resources) SVILUPPO DI UN SOFTWARE DI PACKET FILTERING CON CONTROLLO ACCESSI A LIVELLO DI INDIRIZZAMENTO DI RETE E PORTE LOGICHE SVILUPPO DI UN SOFTWARE DI PACKET FILTERING CON CONTROLLO ACCESSI A LIVELLO DI INDIRIZZAMENTO DI RETE E PORTE LOGICHE UTILIZZO DI DEVICE DRIVER IN GRADO DI INTEGRARSI TRA IL DEVICE DRIVER ETHERNET ED IL TCP/IP STACK UTILIZZO DI DEVICE DRIVER IN GRADO DI INTEGRARSI TRA IL DEVICE DRIVER ETHERNET ED IL TCP/IP STACK ESECUZIONE A LIVELLO DI KERNEL = IMPATTO MINIMO RISORSE ESECUZIONE A LIVELLO DI KERNEL = IMPATTO MINIMO RISORSE COMPATIBILIA’ CON WIN 98 (S.O. DEI CLIENT) COMPATIBILIA’ CON WIN 98 (S.O. DEI CLIENT) API PER PROGRAMMAZIONE IN VC++ API PER PROGRAMMAZIONE IN VC++ LICENZA USD LICENZA USD 3.495
FUNZIONALITA’ Possibilità di scelta dell’interfaccia di rete da monitorare Possibilità di scelta dell’interfaccia di rete da monitorare Definizione di white-lists di indirizzi IP Definizione di white-lists di indirizzi IP Definizione di white-lists di porte TCP e UDP Definizione di white-lists di porte TCP e UDP Logging dei pacchetti e protocolli bloccati Logging dei pacchetti e protocolli bloccati Possibilità di far transitare pacchetti di protocolli di servizio atti al corretto funzionamento della rete (es. ARP) Possibilità di far transitare pacchetti di protocolli di servizio atti al corretto funzionamento della rete (es. ARP)
ETHERNET Apertura del pacchetto Ethernet ed analisi dei bit che indicano il protocollo successivo (quello contenuto nel campo “dati” del pacchetto Ethernet stesso) Apertura del pacchetto Ethernet ed analisi dei bit che indicano il protocollo successivo (quello contenuto nel campo “dati” del pacchetto Ethernet stesso)
ARP, RARP, IP ARP: risoluzione MAC address da indirizzo IP ARP: risoluzione MAC address da indirizzo IP RARP: opposto di ARP (Reverse Address Resolution Protocol) RARP: opposto di ARP (Reverse Address Resolution Protocol) IP: - header checksum IP: - header checksum - IP destinatario = IP locale - IP sorgente in white-list - procollo successivo: - TCP - TCP - UDP - UDP - ICMP - ICMP - IGMP - IGMP - casi particolari e pacchetti frammentati - casi particolari e pacchetti frammentati
TCP, UDP, DHCP, ICMP, IGMP ICMP: protocollo di servizio (ping, tracert) ICMP: protocollo di servizio (ping, tracert) IGMP: protocollo di gestione gruppi multicast IGMP: protocollo di gestione gruppi multicast Verifica IP destinatario = 224.*.*.* TCP e UDP: verifica porta sorgente e porta destinazione TCP e UDP: verifica porta sorgente e porta destinazione DHCP (su UDP porte 67 e 68): per un certo periodo di tempo il client non ha IP ( ). Accetto i pacchetti senza IP destinati all’indirizzo locale di livello datalink se sono UDP porta 68 e l’IP sorgente (server DHCP) è in white list DHCP (su UDP porte 67 e 68): per un certo periodo di tempo il client non ha IP ( ). Accetto i pacchetti senza IP destinati all’indirizzo locale di livello datalink se sono UDP porta 68 e l’IP sorgente (server DHCP) è in white list
PACKET FRAGMENTATION MTU: Maximum Transmission Unit (tipicamente Ethernet 1500 bytes) Se il pacchetto è più grande viene FRAMMENTATO Campi Header IP coinvolti: -Identificazione: indice riassemblamento datagramma -Flags: 0 riservato, 1 may fragment / don’t fragment, 2 last fragment / more fragments -Offset di frammentazione: offset di posizionamento misurato in ottetti Rappresentazione binaria 0x20B9 = Offset (13 bits): = 185 ottetti * 8 = 1480 bytes
COMPLESSITA’ SVILUPPI FUTURI Poche risorse disponibili sui client del cliente, impossibilità di utilizzare pacchetti già pronti sul mercato (già sviluppati e solo da configurare), necessità di un nuovo prodotto “custom” Poche risorse disponibili sui client del cliente, impossibilità di utilizzare pacchetti già pronti sul mercato (già sviluppati e solo da configurare), necessità di un nuovo prodotto “custom” Grande mole di traffico di rete da gestire, disposizione dei client ovunque in tutta Italia Grande mole di traffico di rete da gestire, disposizione dei client ovunque in tutta Italia Sviluppo del software in un laboratorio composto da macchine virtuali, simulazione di grandi moli di traffico mediante “traffic generators” Sviluppo del software in un laboratorio composto da macchine virtuali, simulazione di grandi moli di traffico mediante “traffic generators” Elevato numero di protocolli presenti Elevato numero di protocolli presenti Attenzione ai casi particolari (bloccare tale traffico di rete significava bloccare il funzionamento della rete stessa) Attenzione ai casi particolari (bloccare tale traffico di rete significava bloccare il funzionamento della rete stessa) Possibilità di utilizzo anche in altri sistemi operativi (es. Windows XP) mediante piccoli accorgimenti e modifiche Possibilità di utilizzo anche in altri sistemi operativi (es. Windows XP) mediante piccoli accorgimenti e modifiche Filtro di altri protocolli che verranno utilizzati in futuro sulla rete ed eventualmente di protocolli di nuova implementazione Filtro di altri protocolli che verranno utilizzati in futuro sulla rete ed eventualmente di protocolli di nuova implementazione Possibilità di scendere maggiormente in dettaglio nei controlli effettuati estendendo le verifiche ad altri campi dei pacchetti in transito Possibilità di scendere maggiormente in dettaglio nei controlli effettuati estendendo le verifiche ad altri campi dei pacchetti in transito Implementazione servizio NAT Implementazione servizio NAT Distribuzione white-lists mediante ftp su tutti i client, possibilità di gestione centralizzata e blocco immediato di indirizzi e porte Distribuzione white-lists mediante ftp su tutti i client, possibilità di gestione centralizzata e blocco immediato di indirizzi e porte
GRAZIE Stefano Nichele