argus: il (quasi-)nids per chi non può permettersene uno Roberto Cecchini INFN, Sezione di Firenze Paestum, 11 Giugno 2003 argus Tassonomia nids • • Misuse detection – ricerca di pattern specifici o sequenze di eventi (signatures); • veloci e con pochi falsi positivi; • non possono rivelare quello che non conoscono già: necessitano di continui aggiornamenti; Anomaly Detection – ricerca di deviazioni dall’uso “normale” del sistema, utilizzando una serie di “modelli” continuamente aggiornati; • permettono di rilevare anche attacchi di cui non si ha una conoscenza specifica; • producono molti falsi positivi; • hanno bisogno di una lunga fase di apprendimento; • per reti complesse l’uso “normale” può essere random Paestum, 11/6/2003 1 argus Non tutti si possono permettere un nids... • Ciclo di vita di snort (tipico) – installazione (con entusiasmo) (~2000 regole!). – loop: • analisi delle segnalazioni (decine di MB) – quante scansioni mi hanno fatto oggi? – aiuto! sul PC di Tizio c’è Replicator3k!!!! (quasi mai vero...) • riduzione drastica delle regole; • aggiunta nuove regole (le vulnerabilità spuntano come i funghi); – installazione db (acid o simili): • impari lotta con tabelle che scoppiano e dischi che si riempiono (quasi sempre durante il fine settimana). • – abbandono (con scoramento). – arrivo del vero attacco. Sogno: un sistema centralizzato di configurazione e analisi. Paestum, 11/6/2003 2 argus In (possibile) alternativa... • argus (Audit Record Generation and Usage System) – progettato alla Carnegie Mellon University (1993); • Computer Emergency Response Team; – real time flow monitor; – genera audit data per le transazioni di rete: • connectivity, capacity, demand, loss, delay, jitter; • supporto xml; – utilizzabile per: • • • • security; accounting; performance analysis; network operations management. Paestum, 11/6/2003 3 argus Server • argus – ascolta dall’interfaccia di rete (o legge un file di tcpdump & co.); – scrive su uno o più file e/o socket; • il file di output può essere spostato senza problemi (via cron, p.e.); – conserva solo dati riepilogativi delle transazioni; • microflow audit record (state e time interval); – possibile selezionare i dati (sintassi di tcpdump); • <bool> <qualifier> id <bool> <qualifier> id ... • <qualifier>: host,net,port,ttl,dst,src,protocol,frag,fragonly,syn, synack,fin,finack,reset,retrans,echo,unreach,redirect,... – supporto per tcpwrappers e SASL. Paestum, 11/6/2003 4 argus Clienti • ra, ramon, rasort, ragator, ... – leggono i file prodotti dai server o dai socket (anche compressi); – possibile selezionare i dati (sintassi di tcpdump); – se ne possono scrivere altri (c’è un template) od eseguire elaborazioni specifiche sui dati (il formato è documentato) • • • • scansioni lente network mapping connessioni per host ... Paestum, 11/6/2003 5 argus Pro e contro • • Non è un nids kosher. Non emette allarmi e non fa analisi sul payload dei pacchetti • È molto pratico per scoprire che cosa è successo (vedi esempi). Produce relativamente poco output (comprimibile 3÷4:1). I server possono essere installati nei punti interessanti senza troppi problemi. • • – anche se può selezionarli per alcune loro caratteristiche. Paestum, 11/6/2003 6 argus Architettura Raccolta e analisi dei dati Paestum, 11/6/2003 7 argus Esempi d’uso • • 1/5 Chi è che si è collegato a 192.168.1.4 dopo che me l’hanno bucata? ra –t 20–23 –c -r argus.030523 - host 192.168.1.4 20:49:36 * tcp 20:50:51 tcp 20:51:12 tcp 21:14:59 tcp 21:15:10 tcp 21:26:25 * tcp 22:40:11 * tcp SrcAddr Dir DstAddr SrcB DstB S 172.16.5.1.1031 -> 192.168.1.4.23 56659 41352 CLO 192.168.1.4.1067 -> 172.16.6.3.21 141 1332 CLO 192.168.1.4.1068 <- 172.16.6.3.20 0 2451 CLO 192.168.1.4.1071 -> 172.16.1.4.21 109 410 CLO 192.168.1.4.1072 <- 172.16.1.4.20 0 8145 CLO 172.16.5.2.1028 -> 192.168.1.4.23 1658 146227 CLO 172.16.5.2.1053 -> 192.168.1.4.23 45893 90861 CLO Che cosa ha combinato questo MacAddress mai visto? ra –r argus.030602 – ether host 0:50:da:40:b4:68 Paestum, 11/6/2003 8 argus Esempi d’uso • 2/5 Ci sono dei demoni stacheldraht in funzione? ra –mnt 15-15:05 –Slocalhost SrcMacAddr 0:50:da:40:b4:68 0:50:da:40:b4:68 0:50:da:40:b4:68 0:50:da:40:b4:68 0:50:da:40:b4:68 0:50:da:40:b4:68 0:50:da:40:b4:68 0:50:da:40:b4:68 0:50:da:40:b4:68 0:50:da:40:b4:68 0:50:da:40:b4:68 0:50:da:40:b4:68 DstMacAddr 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 0:50:a2:dc:b4:0 SrcAddr 192.168.1.8 192.168.1.9 192.168.1.1 192.168.1.0 192.168.1.9 192.168.1.8 192.168.1.0 192.168.1.1 192.168.1.8 192.168.1.9 192.168.1.0 192.168.1.1 Dir <-> <-> <-> <-> <-> <-> <-> <-> <-> <-> <-> <-> DstAddr 172.16.3.80 172.16.3.53 172.16.3.80 172.16.3.53 172.16.3.53 172.16.3.80 172.16.3.53 172.16.3.80 172.16.3.80 172.16.3.53 172.16.3.80 172.16.3.53 SB 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 DB 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 1042 S ECO ECO ECO ECO ECO ECO ECO ECO ECO ECO ECO ECO MacAddress uguali, ma IP Address diversi!!! Paestum, 11/6/2003 9 argus Esempi d’uso • 3/5 Dove diavolo sono i demoni stacheldracht e chi li comanda? ra –I –r argus.030529 – icmp and not src net 192.168.1 SrcAddr 172.16.2.23 192.168.50.220 172.16.134.198 192.168.10.177 172.16.23.18 172.16.24.177 172.16.169.25 192.168.134.26 134.155.50.220 192.168.134.198 172.16.99.143 Paestum, 11/6/2003 -> <-> -> <-> -> <-> <-> -> <-> -> -> DstAddr 192.168.1.9 192.168.1.54 192.168.1.22 192.168.1.54 192.168.1.132 192.168.1.54 192.168.1.54 192.168.1.14 192.168.1.54 192.168.1.214 192.168.1.15 SP DP SrcB DstB 1 0 70 0 ECR 1 1 98 98 ECO 4 0 280 0 ECR 1 1 142 142 ECO 1 0 70 0 ECR 1 1 142 142 ECO 1 1 98 98 ECO 1 0 70 0 URH 1 1 98 98 ECO 1 0 70 0 URH 12 0 1164 0 URP 10 argus Esempi d’uso • 4/5 Chi è che si è mangiata tutta la banda ieri? ramon –N 10 –M TopN –c –r argus.030604 SrcAddr SrcPkt DstPkt SrcBytes DstBytes 192.168.1.219 429684 832920 31680850 1245395656 172.16.176.210 828739 425633 1244871272 28939506 192.168.1.104 652295 378529 974191063 26205407 192.168.145.120 834 737926 95706 947338895 192.168.1.70 737407 209 946716419 130462 192.168.1.36 2923774 2747960 421277041 434180200 172.16.88.78 332581 538842 23609271 791520963 192.168.1.213 721348 860443 48842368 713372023 172.16.91.104 819282 651879 675655989 38530671 192.168.1.230 318447 180814 445905502 23039420 Paestum, 11/6/2003 11 argus Esempi d’uso • 5/5 Chi è che si è mangiata tutta la banda ieri? ramon –N 10 –M Matrix –c –r argus.030603 SrcAddr 172.16.176.210 172.16.88.78 192.168.1.213 192.168.1.70 192.168.145.120 192.168.1.70 172.16.215.189 192.168.1.19 192.168.145.119 192.168.145.102 Paestum, 11/6/2003 Dir <-> <-> <-> -> <<-> <-> <-> <-> <-> DstAddr SrcBytes DstBytes 192.168.1.219 1244871272 28939506 192.168.1.104 21437643 786178114 172.16.91.104 38490549 674396140 192.168.145.120 521420532 0 192.168.1.70 0 460724958 172.16.247.90 7201122 259695171 192.168.1.230 5631822 242035666 192.168.145.202 109521480 39960540 172.16.14.114 118154705 17867549 172.16.213.146 3402251 130322384 12 argus Riferimenti • • • • • argus: http://www.qosient.org/argus/ snort: http://www.snort.org/ acid: http://acidlab.sourceforge.net/ T.H. Ptacek e T.N. Newsham, Insertion, Evasion and Denial of Service: Eluding Network Intrusion Detection http://www.insecure.org/stf/secnet_ids/secnet_ids.html Newman, Snyder, Thayer, Crying wolf: False alarms hide attacks, Network World, 24 Jun 2002 (http://www.nwfusion.com/techinsider/2002/0624security1 .html) Paestum, 11/6/2003 13