monitoraggio di rete con netflow [email protected]

37
Monitoraggio di rete con NetFlow [email protected] http://www.tanasi.it

Upload: robertina-giovannini

Post on 01-May-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Monitoraggio di rete con NetFlow alessandro@tanasi.it

Monitoraggio di rete con NetFlow

[email protected]://www.tanasi.it

Page 2: Monitoraggio di rete con NetFlow alessandro@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)

Page 3: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 4: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 5: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 6: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 7: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 8: Monitoraggio di rete con NetFlow alessandro@tanasi.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

Page 9: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 10: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 11: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 12: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 13: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 14: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 15: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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.

Page 16: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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)

Page 17: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 18: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 19: Monitoraggio di rete con NetFlow alessandro@tanasi.it

Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it

Architettura Enterprise

Page 20: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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!

Page 21: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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...

Page 22: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 23: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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);

}

Page 24: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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/

Page 25: Monitoraggio di rete con NetFlow alessandro@tanasi.it

Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it

Cisco CLI

Numero di flussi attiviin cache

Flussi per secondo

Page 26: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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/

Page 27: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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/

Page 28: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 29: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 30: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 31: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 32: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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!!!

Page 33: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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

Page 34: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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>

Page 35: Monitoraggio di rete con NetFlow alessandro@tanasi.it

Monitoraggio di rete con NetFlow – Alessandro Tanasi aka jekil - http://www.tanasi.it

Domande?

Page 36: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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/

Page 37: Monitoraggio di rete con NetFlow alessandro@tanasi.it

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!! :-)