Monitoraggio di rete con NetFlow
[email protected]://www.tanasi.it
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
NetFlow: Introduzione
Esigenza di rispondere alle domande chi, cosa, dove, quando e come?Il monitoraggio di reti a bassa velocità (100Mb/s) è possibile con i comuni tool basati sulle libpcapLa cattura completa del traffico è limitata dalle potenzialità dell'hardwareNetFlow è un protocollo per il monitoraggio passivo di flussi di rete anche ad alta velocità (1Gb/s e più)Inventato da Cisco (Daren Kerr e Barry Bruins) per aumentare la velocità dello switchingImplementato dalla maggior parte dei produttori di apparati di rete (Cisco, Juniper, Enterasys, Extreme)
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
NetFlow: Origini
NetFlow è stato ideato come metodo per aumentare le performances nella fase di switching path
Ogni pacchetto viene gestito singolarmente
Ogni processo deve essere applicato su ogni pacchetto
Nessuna informazione sullo stato
Ogni pacchetto è identificato in un flusso
I processi vengono applicati una volta sola sul flusso
Informazioni sullo stato del flusso
Net FlowSw it ching
Convent ionalSw it ching
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Caratterizzazione di un Flusso
Flusso unidirezionale di pacchetti IP caratterizzato dai seguenti elementi (default):Indirizzo IP sorgenteIndirizzo IP destinazionePorta sorgentePorta di destinazioneTipo di protocolloToSInterfaccia logica di input
(ifInput)
L'aggregazione permettedi cambiare questechiavi
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
NetFlow: Features
Fornisce statistiche sul traffico di rete ispezionando gli header dei livelli 2 – 4Supporta statistiche su IPv6, MPLS, IPSEC, BGPReal time (o quasi)Architettura a tierNon fa packet inspectionNon è una tecnologia IDS / IPS
TCP/UDP Header
Interface
Source IP Address
IP Header
SourcePort
Data Packet
DestinationPort
Protocol
Packet Payload
TOS
NetFlowDestination IP Address
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
NetFlow: Casi d'uso
• Packet CountPacket Count• Byte CountByte Count
• Packet CountPacket Count• Byte CountByte Count
• Start TimestampStart Timestamp• End TimestampEnd Timestamp
• Start TimestampStart Timestamp• End TimestampEnd Timestamp
• Type of ServiceType of Service• TCP FlagsTCP Flags• ProtocolProtocol
• Type of ServiceType of Service• TCP FlagsTCP Flags• ProtocolProtocol
• Input Interface PortInput Interface Port• Output Interface PortOutput Interface Port
• Input Interface PortInput Interface Port• Output Interface PortOutput Interface Port
• Source IP AddressSource IP Address• Destination IP AddressDestination IP Address
• Source IP AddressSource IP Address• Destination IP AddressDestination IP Address
• Source TCP/UDP PortSource TCP/UDP Port• Destination TCP/UDP PortDestination TCP/UDP Port
• Source TCP/UDP PortSource TCP/UDP Port• Destination TCP/UDP PortDestination TCP/UDP Port
• Next Hop AddressNext Hop Address• Source AS NumberSource AS Number• Dest. AS NumberDest. AS Number• Source Prefix MaskSource Prefix Mask• Dest. Prefix MaskDest. Prefix Mask
• Next Hop AddressNext Hop Address• Source AS NumberSource AS Number• Dest. AS NumberDest. AS Number• Source Prefix MaskSource Prefix Mask• Dest. Prefix MaskDest. Prefix Mask
Utilizzo della rete
Tempistiche
Utilizzo di Interfacce
QoS
Sorg. / Dest.
Applicazioni
Routing / Peering
User (IP) monitoring Application monitoring Traffic analysis Attack Detection Chargeback Billing Attack mitigation Billing AS Peer monitoring Traffic engineering Network Planning
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
NetFlow: Funzionamento
Arrivo di un nuovo pacchettoViene creato un'entry nella NetFlow cache che descrive il flusso
Arrivo di pacchetti appartenenti a flussi conosciutiVengono aggiornati i contatori (aggregati se necessario)
Quando il flusso viene terminato le statistiche sono esportate
SYN, ACK, FIN2871217TCP1024luser69.a.it80porno.itGi0/114:20:12.871
SYN, ACK, PSH10295TCP80porno.it1024luser69.a.itGi0/014:20:12.221
TCP flagsBytes sent
Pkts sent
protodst port
dst IPsrc port
src IPInt.Start
Gi0/0 Gi0/1
luser69.a.it porno.it
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Architettura base
Filtraggio deiFiltraggio deipacchetti per pacchetti per associare ogniassociare ognipacchetto ad pacchetto ad un flussoun flusso
Filtraggio deiFiltraggio deipacchetti per pacchetti per associare ogniassociare ognipacchetto ad pacchetto ad un flussoun flusso
Probe
Crea, aggiorna eCrea, aggiorna erimuove flowrimuove flowrecordsrecords
Crea, aggiorna eCrea, aggiorna erimuove flowrimuove flowrecordsrecords
Flow cache
Flow key Flow start time Flow end Time Number of packets ...
....
Legge la flow cache,Legge la flow cache,prepara e esportaprepara e esportapacchetti NetFlowpacchetti NetFlow
Legge la flow cache,Legge la flow cache,prepara e esportaprepara e esportapacchetti NetFlowpacchetti NetFlow
Exporter
info infoHeader
Riceve i flussi Riceve i flussi esportati.esportati.Interfaccia per le Interfaccia per le applicazioniapplicazioni
Riceve i flussi Riceve i flussi esportati.esportati.Interfaccia per le Interfaccia per le applicazioniapplicazioni
Collector
NetFlow vX IETF/IPFIX
Applicazione diApplicazione dianalisianalisiApplicazione diApplicazione dianalisianalisi
Application
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Export di un flusso
I flussi memorizzati all'interno della cache dell'apparato vengono esportati se:Il flusso viene terminato dall'arrivo di pacchetto contenente il
flag FIN o RSTIl flusso è inattivo oltre una soglia di timeout: cioè nessun
pacchetto relativo al flusso è stato catturato (default 15 sec)Il flusso è attivo ma è scaduto un timeout predefinito che
impone l'export del flusso (default 30 min)Cache management nel caso la flow cache sia piena, i primi
flussi ad essere esportati sono i più vecchi
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Versioni di NetFlow
La versione specifica il formato del pacchetto di exportVersione 5
Formato di export fisso
Nessun tipo di aggregazione
Versione 7Creata per gli switch Cisco serie 6500 e 7600
Versione 8Permette diversi tipi di aggregazione, in modo da esportare e memorizzare in cache solo i dati che servono
Versione 9Aggregazione flessibile basata su template definiti dall'utente
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
NetFlow v9
Si basa sul concetto di template personalizzabili che definiscono semanticamente i dati esportatiI soli dati sono esportati in Data Flow SetsIl Collector si configura con i template che gli arrivano (autoconfigurazione)Transports multipli (non solo UDP)Ogni Data Flow Set è preceduto da un puntatore al templateSe un template viene perso i dati perdono significatoRFC 3954 “Cisco Systems NetFlow Services Export Version 9”, IPR statement
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
IPFIX
IETF draft[1] per “Find or develop a basic common IP Traffic Flow measurement technology to be available on (almost) all future routers”NetFlow v9 è stato scelto come base per lo sviluppoNon sarà mantenuta la retrocompatibilitàUtilizzo di TCP, UDP, SCTP, TLS, DTLSAutenticazione mutua con certificati X.509
[1] http://www.ietf.org/html.charters/ipfix-charter.html
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Sampled NetFlow
Viene scelto in modo deterministico o pseudocasuale un sottoinsieme dei pacchetti che transitano (campionamento)Uso di Traffic Class (campionamento specifico per ogni traffic class)Funzionalità introdotta nei Cisco serie 12000Allegerisce il carico sugli apparatiAdatto a rete ad alta velocitàAdatto a soddisfare alcuneesigenze: ad es. networkplanning
Sampling (esempio 1 ogni 3)
3 1
Creazione dei flussi
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Considerazioni
NetFlow fornisce una gran mole di informazioni, che però deve essere elaborataL'analisi di queste informazioni permette di porre ipotesi riguardanti anche la sicurezza di reteUna VLAN di amministrazione è necessariaL'impatto sulle prestazioni dell'apparato di rete è modesto
<16% 65000
<12%45000
< 4%10000
Additional CPU UtilizationActive Flows in Cache
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Un attacco DoS..
Router#show ip cache flow
SrcIf SrcIPaddress SrcP SrcAS DstIf DstIPaddress DstP DstAS Pr Pkts B/Pk
29 192.1.6.69 77 aaa 49 194.20.2.2 1308 bbb 6 1 40
29 192.1.6.69 77 aaa 49 194.20.2.2 1308 bbb 6 1 40
29 192.1.6.61 2222 aaa 49 194.20.2.2 1308 bbb 6 1 40
29 192.1.6.61 2222 aaa 49 194.20.2.2 1308 bbb 6 1 40
29 192.1.6.61 2222 aaa 49 194.20.2.2 1308 bbb 6 1 40
29 192.1.6.120 1024 aaa 49 194.20.2.2 1308 bbb 6 1 40
29 192.1.6.120 1024 aaa 49 194.20.2.2 1308 bbb 6 1 40
29 192.1.6.120 1024 aaa 49 194.20.2.2 1308 bbb 6 1 40
Alcune tipologie di attacchi (ad es. DoS) sono modellizzabili.
Utilizzo di NetFlow anche per la sicurezza di rete, l'elaborazione dei dati permette di rilevare attacchi e anomalie di rete.
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Security? Senza payload?
Ricerca di pattern nel traffico NetFlowUn host che ne contatta molti in breve tempo (P2P, worm)Flussi di lunga durata (VPN, covert channels)Utilizzo di porte non autorizzateAnomalie sull'uso della banda (DoS, warez)Comunicazioni non autorizzate (due macchine che normalmente non dovrebbero parlare)
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
L2 e Security Monitoring
Inoltre per identificare e tracciare attacchi:Layer2 IP header
Source MAC address (frame ricevuti dal router)
Destination MAC address (frame spediti dal router)
Received VLAN ID (802.1q e Cisco ISL)
Transmitted VLAN ID (802.1q e Cisco ISL)
Extra Layer 3 IP header Time-to-Live
Identification field
Packet length
ICMP type
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Parte pratica
Come implementare un'infrastruttura di monitoraggio basata su NetFlow:Decidere su quali apparati di rete e su quali interfacce abilitare
NetFlowConfigurare gli apparati di rete di cui sopraSetup di un collector o di più collectorSetup di una o più applicazioni di analisi dei dati e di
allarmistica
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Architettura Enterprise
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Dove abilitare NetFlow
Decidere cosa si vuole ottenere da NetFlowScegliere di conseguenza su cheapparati andare ad abilitarloScegliere le interfacceMonitorare tutto il trafficoin uscita e in ingresso dallaLANEvitare il doppio conteggio!
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Hardware
Apparati di rete con supporto per NetFlow (ormai tutti i grandi produttori)Sistemi (computer) con schede di rete specifiche:
Endace http://www.endace.com: capacità di selezione e filtering on board, full packet capture
AMP (Analytic Metadata Producers) sono NetFlow capture devices sviluppate all'NSA, fingerprinting, deep inspection
COMBO6 http://www.liberouter.org/card_combo6.php
Sistemi embedded dedicatinbox http://ntop.ethereal.com/nBox.html
e altri...
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
NetFlow probes
Primo elemento della catena deputato a associare ogni pacchetto in transito ad un flussoSonde inserite dai vendor negli apparati di rete (spesso
software proprietario)Software
nProbe http://www.ntop.org/nProbe.html: buone performances
fProbe http://fprobe.sourceforge.net/: basato sulle libpcap
fProbe-ulog http://fprobe.sourceforge.net/: basato su libipulog (Netfilter)
pfflowd http://www.mindrot.org/projects/pfflowd: basato su pf di OpenBSD
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Configurazione router
Ciscoip flow-export version <version> [origin-as|peer-as|bgp-nexthop]
ip flow-export destination <address> <port>ip flow-cache timeout inactive <seconds>ip flow-cache timeout active <minutes>ip flow-cache entries <number>
Juniper cflowd collector-host-address {
Autonomous-system-type (origin|peer);port port-number;version version-number;(local-dump | no-local-dump);
}
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Collectors
Hanno il compito di memorizzare i flussi NetFlow esportatiRicezione dei pacchetti di exportMemorizzazione su disco o databaseEventuale compressione e rotazione dei flussi memorizzatiEventuale filtraggioEventuale relay verso i livelli più alti dell'architettura
Software:nfdump http://nfdump.sourceforge.net/
flowd http://www.mindrot.org/projects/flowd/
flow-tools http://www.splintered.net/sw/flow-tools/
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Cisco CLI
Numero di flussi attiviin cache
Flussi per secondo
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Stager
Aggrega e presenta statistiche di rete Monitoraggio di rete (usa anche SNMP e ping) Non adatto al monitoraggio delle sicurezzePersonalizzabile
http://software.uninett.no/stager/
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
nfsen
Visualizzazione e filtraggio dei datiGrafici (RRD)Sistema di detection e alertArchitettura a plugin
http://nfsen.sourceforge.net/
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Nerd
Security monitoring toolAnalizza le statistiche NetFlow alla ricerca di attacchiAllarmistica
http://www.nerdd.org
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
...e altri..
nTop http://www.ntop.org/: può funzionare anche come collector NetFlowFlamingo http://flamingo.merit.edu: genera visualizzazioni 3D del trafficoPanotips http://panoptis.sourceforge.net/: progetto che si prefigge di rilevare e bloccare gli attacchi DoS e DdoSFlowscan http://www.caida.org/tools/utilities/flowscan/: produce semplici grafici
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Programming
Librerie per la programmazione di applicazioni che usano il protocollo NetFlowlibipfix http://libipfix.sourceforge.net: libreria C per IPFIXlibfixbuf http://www.cert.org/netsa/tools/fixbuf/: libreria per IPFIX message
formatjflow http://www.net-track.ch/opensource/jflow: libreria javaNet::sflow http://search.cpan.org/author/ELISA/Net-sFlow-0.06/sFlow.pm: libreria perl per
sFlowNetFlow Simulator http://sourceforge.net/projects/netflowsim
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Tricks
Nelle ultime versioni di IOS ci sono comandi alcuni comandi per l'analisi integrati nella CLI (top ten talkers ad es.)ip flow ingress|egress sulle subinterfacesAttenzione ai valori origin-as | peer-asSi può accedere via SNMP ad alcuni dati NetFlow di un apparato di rete (casi d'emergenza, sampling adattivo?)Spesso basta memorizzare dati aggregati (grande risparmio di spazio)Sincronizzare tutti gli apparati con un server NTP
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Conclusioni
NetFlow mette a disposizioni dati per monitoraggio di rete, auditing, network forensicsI router Cisco (e molti altri..) hanno NetFlow di default. A gratis. Usiamolo.Prodotti open source e commerciali possono venir utilizzati per analizzare dati NetFlowNuovi worms e virus possono essere rilevati senza avere a disposizione signaturesIl monitoraggio di rete si deve fare!!!
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Riferimenti
CISCO NetFlow: http://www.cisco.com/en/US/products/ps6601/products_ios_protocol_group_home.html
RFC 3917: Requirements for IP Flow Information Export (IPFIX) ftp://ftp.rfc-editor.org/in-notes/rfc3917.txt
RFC 3954: Cisco Systems NetFlow Services Export Version 9 ftp://ftp.rfc-editor.org/in-notes/rfc3954.txt
IPFIX Version Numbers http://www.iana.org/assignments/ipfix-parameters
IPFIX Information Elements http://www.iana.org/assignments/ipfix
SWITCH NetFlow References http://www.switch.ch/network/projects/completed/TF-NGN/floma/references.html
FloMA: Pointers and Software http://www.switch.ch/network/projects/completed/TF-NGN/floma/software.html
Free NetFlow Tools List http://www.networkuptime.com/tools/netflow/
NetFlow Performance Analysis http://www.cisco.com/en/US/tech/tk812/technologies_white_paper0900aecd802a0eb9.shtml
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Riferimenti (2)
User and Test Report on the Netflow Probe http://www.surfnet.nl/publicaties/surfworks2005/indi-2005-012-48.pdf
Autonomous NetFlow Probe http://www.terena.nl/tech/task-forces/tf-csirt/meeting16/netflow-probe-lhotka.pdf
Free NetFlow Tools http://www.networkuptime.com/tools/netflow
Detecting Worms and Abnormal Activities with NetFlow http://www.securityfocus.com/infocus/1796
<spam>NetFlow sul mio blog http://www.lonerunners.net/blog/plugin/tag/netflow
</spam>
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Domande?
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Licenza
Questo documento viene rilasciato sotto licenza Alcoolware, la quale non è altro che una normale licenza Creative Commons Attribute-NonCommercial-ShareALike [1] ma con l'aggiunta che se mi incontrate dobbiamo andare a bere qualcosa.
In sintesi è liberamente distribuibile per usi non commerciali, copiabile e modificabile purchè citiate l'autore e la fonte.
Se volete distribuire questo documento sul vostro sito siete pregati per favore di comunicarmelo in modo che possa spedirvi le nuove versioni.
[1] http://creativecommons.org/licenses/by-nc-sa/2.0/
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Dove reperisco queste slides?
Le slides di questa presentazione sono già disponibili su:http://www.lonerunners.net/slides
Per informazioni:http://www.tanasi.it
[email protected] esitate a contattarmi anche solo per far due
chiacchere...
Italian grappa a tutti!! :-)