Monitoraggio di rete con NetFlow

Transcript

Monitoraggio di rete con NetFlow
Monitoraggio di rete
con NetFlow
[email protected]
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 libpcap
La cattura completa del traffico è limitata dalle
potenzialità dell'hardware
NetFlow è 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 switching
Implementato 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
Conventional
Switching
NetFlow
Switching
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
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 sorgente
Indirizzo IP destinazione
Porta sorgente
Porta di destinazione
Tipo di protocollo
ToS
Interfaccia logica di input
(ifInput)
L'aggregazione permette
di cambiare queste
chiavi
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 – 4
Supporta statistiche su IPv6,
MPLS, IPSEC, BGP
Real time (o quasi)
Architettura a tier
Non fa packet inspection
Non è una tecnologia IDS /
IPS
Interface
TOS
Protocol
IP
Header
Source
IP Address
Destination
IP Address
TCP/UDP
Header
Data
Packet
Source
Port
Destination
Port
Packet
Payload
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
NetFlow
NetFlow: Casi d'uso
Utilizzo della rete
•Packet Count
•Byte Count
Tempistiche
•Start Timestamp
•End Timestamp
Sorg. / Dest.
•Source IP Address
•Destination IP Address
Applicazioni
•Source TCP/UDP Port
•Destination TCP/UDP Port
➔
➔
➔
➔
Utilizzo di Interfacce
•Input Interface Port
•Output Interface Port
QoS
•Type of Service
•TCP Flags
•Protocol
Routing / Peering
➔
➔
➔
•Next Hop Address
•Source AS Number
•Dest. AS Number
•Source Prefix Mask
•Dest. Prefix Mask
➔
➔
➔
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 pacchetto
Viene creato un'entry nella NetFlow cache che descrive
il flusso
Arrivo di pacchetti appartenenti a flussi conosciuti
Vengono aggiornati i contatori (aggregati se necessario)
Quando il flusso viene terminato le statistiche sono
esportate
Gi0/0
Gi0/1
luser69.a.it
porno.it
Start
Int.
src IP
src
port
dst IP
dst
port
proto
Pkts
sent
Bytes
sent
TCP flags
14:20:12.221
Gi0/0
luser69.a.it
1024
porno.it
80
TCP
5
1029
SYN, ACK, PSH
14:20:12.871
Gi0/1
porno.it
80
luser69.a.it
1024
TCP
17
28712
SYN, ACK, FIN
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Architettura base
Probe
Filtraggio dei
pacchetti per
associare ogni
pacchetto ad
un flusso
Flow cache
Crea, aggiorna e
rimuove flow
records
●
●
●
●
●
Flow key
Flow start time
Flow end Time
Number of packets
...
Exporter
Legge la flow cache,
prepara e esporta
pacchetti NetFlow
Header
info
info
....
NetFlow vX
IETF/IPFIX
Application
Applicazione di
analisi
Collector
Riceve i flussi
esportati.
Interfaccia per le
applicazioni
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 RST
Il 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 export
Versione 5
Formato di export fisso
Nessun tipo di aggregazione
Versione 7
Creata per gli switch Cisco serie 6500 e 7600
Versione 8
Permette diversi tipi di aggregazione, in modo da
esportare e memorizzare in cache solo i dati che
servono
Versione 9
Aggregazione 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 esportati
I soli dati sono esportati in Data Flow Sets
Il Collector si configura con i template che gli
arrivano (autoconfigurazione)
Transports multipli (non solo UDP)
Ogni Data Flow Set è preceduto da un puntatore al
template
Se un template viene perso i dati perdono significato
RFC 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 sviluppo
Non sarà mantenuta la retrocompatibilità
Utilizzo di TCP, UDP, SCTP, TLS, DTLS
Autenticazione 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 12000
Allegerisce il carico sugli
apparati
Adatto a rete ad alta velocità Sampling (esempio 1 ogni 3)
Adatto a soddisfare alcune
esigenze: ad es. network
planning
Creazione dei flussi
3
1
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 elaborata
L'analisi di queste informazioni permette di porre
ipotesi riguardanti anche la sicurezza di rete
Una VLAN di amministrazione è necessaria
L'impatto sulle prestazioni dell'apparato di rete è
modesto
Active Flows in Cache
Additional CPU Utilization
10000
< 4%
45000
<12%
65000
<16%
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 NetFlow
Un host che ne contatta molti in breve tempo (P2P,
worm)
Flussi di lunga durata (VPN, covert channels)
Utilizzo di porte non autorizzate
Anomalie 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 NetFlow
Configurare gli apparati di rete di cui sopra
Setup di un collector o di più collector
Setup 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 NetFlow
Scegliere di conseguenza su che
apparati andare ad abilitarlo
Scegliere le interfacce
Monitorare tutto il traffico
in uscita e in ingresso dalla
LAN
Evitare 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 dedicati
nbox 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 flusso
Sonde 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
Cisco
ip 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
esportati
Ricezione dei pacchetti di export
Memorizzazione su disco o database
Eventuale compressione e rotazione dei flussi
memorizzati
Eventuale filtraggio
Eventuale 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 attivi
in 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 sicurezze
Personalizzabile
http://software.uninett.no/stager/
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
nfsen
Visualizzazione e filtraggio dei dati
Grafici (RRD)
Sistema di detection e alert
Architettura a plugin
http://nfsen.sourceforge.net/
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it
Nerd
Security monitoring tool
Analizza le statistiche NetFlow alla ricerca di attacchi
Allarmistica
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 NetFlow
Flamingo http://flamingo.merit.edu: genera visualizzazioni 3D del
traffico
Panotips http://panoptis.sourceforge.net/: progetto che si prefigge
di rilevare e bloccare gli attacchi DoS e DdoS
Flowscan 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 NetFlow
libipfix http://libipfix.sourceforge.net: libreria C per IPFIX
libfixbuf http://www.cert.org/netsa/tools/fixbuf/: libreria per IPFIX
message format
jflow http://www.net-track.ch/opensource/jflow: libreria java
Net::sflow http://search.cpan.org/author/ELISA/Net-sFlow-0.06/sFlow.pm: libreria
perl per sFlow
NetFlow 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 subinterfaces
Attenzione ai valori origin­as | peer­as
Si 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 forensics
I router Cisco (e molti altri..) hanno NetFlow di
default. A gratis. Usiamolo.
Prodotti open source e commerciali possono venir
utilizzati per analizzare dati NetFlow
Nuovi worms e virus possono essere rilevati senza
avere a disposizione signatures
Il 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]
Non esitate a contattarmi anche solo per far due
chiacchere...
Italian grappa a tutti!! :-)
Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it