misurazione del traffico internet - luca.ntop.orgluca.ntop.org/teaching/tm2004.pdf · •quantità...

119
ntop.org Misurazione del Traffico Internet Versione 1.2 Luca Deri <[email protected]>

Upload: dangcong

Post on 16-Feb-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

ntop.org

Misurazione delTraffico Internet

Versione 1.2

Luca Deri <[email protected]>

v 1.2 2ntop.org

Indice Generale

Prima Parte• Dimostrazione dell’utilità del traffic measurement• Necessità di misurare il traffico sia per l’utente finale che per

l’operatore

Seconda Parte• Introduzione all’Internet traffic measurement

Terza Parte• Network troubleshooting: risoluzione dei comuni problemi di rete

ntop.org

Prima Parte

v 1.2 4ntop.org

Prima Parte: Indice

Definizione degli attori nel contesto dellamisurazione del traffico di rete

Capability degli apparati di rete

Confronto dei vari approcci per lamisurazione del traffico di rete

v 1.2 5ntop.org

Attori nella Misurazionedel Traffico di Rete

Utenti vs. (Internet) Service Provider• Utente remoto (Dial-up) vs. TIN/Tiscali

• Microsoft vs. (TIN + Telecom Italia)

• UUNET vs. Telecom Italia

v 1.2 6ntop.org

Requisiti Utente

Monitoraggio della performance applicativa:• Perchè questa pagina web carica cosi’ lentamente?

• Perchè il video multicast non è regolare?

Verificare che il livello di servizio sia adeguato allainfrastruttura di rete disponibile• Ho una banda sufficiente per le mie applicazioni?

Verificare se c’è un attacco in corso• C’è un virus in rete che occupa tutta la banda?

v 1.2 7ntop.org

Requisiti dei Service Provider

Monitorare le attività ed il traffico di rete attuale Applicazione degli SLAs (Service Level

Agreements) pattuiti Rilevazione di fault e problemi di rete. Ingegnerizzare la rete per fornire una migliore

performance Pianificare per bisogni di banda futuri Ricevere feedback dai clienti

v 1.2 8ntop.org

Problemi Aperti nel Campo delTraffic Measurement?

Capacità di misura molto limitata• Sono misurati solo alcuni protocolli• Le misure possono essere fatte solo su alcuni

dispositivi di rete• Le reti ad alta velocità aprono dei nuovi problemi di

performance

Necessità di sviluppare sempre nuovi servizi edapplicazioni basate sulle misurazioni quali:• IP Billing• QoS?

v 1.2 9ntop.org

Caratteristiche degli Apparati End-system

• Completamente sotto il controllo utente• Completamente instrumentabile dall’utente

Apparati di Rete Standard• Accesso limitato agli operatori di rete• Set limitato di funzioni offerte• Insieme limitato di dati che possono essere collezionati

Apparati di Rete Dedicati (Measurement Gears)• Instrumentabili per collezionare dati specifici• Problemi nella loro dislocazione fisica in modo da

“vedere” tutto il traffico di rete

v 1.2 10ntop.org

Approcci per laMisurazione del Traffico

Active vs. Passive

Inline vs. Offline

Per-link vs. End-to-end

Livelli di Aggregazione

v 1.2 11ntop.org

Misure di Rete [1/3] Propagation Time

• Quantità di tempo necessaria per trasmettere un quanto di dati (es.pacchetto) da sorgente a destinazione una volta che i dati sonogià “sul filo”. Il tempo di propagazione dipende dal tipo di mediautilizzato (es. rame, fibra, etc.), dalla velocità del media (es.10Mbit, 100Mbit) e dalla distanza.

Queueing Delay• Quantità di tempo che attendono i dati dentro una device prima di

essere inviati o, una volta ricevuti, trasmessi alle applicazioni (highlayers).

Transmission Time (Delay)• Quantità di tempo necessaria per inviare un quanto di dati (es.

pacchetto) da sorgente a destinazione, inclusi tutti i ritardiintermedi (es. tempo di propagazione + tempo di queueing…)

v 1.2 12ntop.org

Misure di Rete [2/3]

Bandwidth• Misura che descrive la capacità di un link: quantità di dati che

possono essere trasmessi in un quanto di tempo. Es. Mbps, Kbps

Bottleneck Bandwidth• Indica la bandwidth del link più lento in una misurazione end-to-

end. Percio’ la bandwidth totale è limitata dal bottleneckbandwidth.

Throughput• Misura della quantità di dati che possono essere inviati su un link

in una quantità di tempo. Spesso viene usato come fattore per lastima della banda disponibile su un link anche se la bandwidth edil throughtput sono due misure molto diverse.

v 1.2 13ntop.org

Misure di Rete [3/3]

Latenza• Quantità di tempo che impiega un pacchetto per andare da

sorgente a destinazione. Di solito si misura in ms (millisecondi)

Packet loss• Percentuale di pacchetti inviati su un link e non ricevuti dal

destinatario (es. sono stati scartati da un router intermedio). Sispecifica in % (pkt. Persi)/(pkt. Totali).

Jitter• Varianza in un arco di tempo del ritardo tra un pacchetto ed il

successivo in un link monodirezionale.Di solito si misura in ms(millisecondi)

v 1.2 14ntop.org

Stima della Bandwidth

Bandwidth = 16 *(Pl-Ps)/(t2l-t2s-t1l+t1s) [misurata in bps]

Pl = dimensione in bits del pacchetto più grande Ps = dimensione in bits del pacchetto più piccolo t1l = ping time di Pl sull’interfaccia più vicina t1s = ping time di Ps sull’interfaccia più vicina t2l = ping time di Pl sull’interfaccia più lontana t2s = ping time di Ps sull’interfaccia più lontana

Mittente DestinazioneLink da Misurare

v 1.2 15ntop.org

Active Measurement

Le sonde (probes) sono connesse alla rete da monitoraree vengono periodicamente letti i valori da essi misurati.Le misurazioni avvengono iniettando traffico sulla rete.

ping• Connettività, round-trip delay, loss

traceroute• Connettività, path, hop-delay

Applicazioni Utente• Performance a livello HTTP/FTP/Network (es. netperf)

• Pacchetti di probe tra insiemi di host diversi (es. fping)

v 1.2 16ntop.org

Passive Measurement Non viene iniettato traffico ai fini della

misurazione in quanto gli strumenti sonototalmente passivi.

Packet monitors• Tcpdump/Ethereal per Unix/Win32/MacOSX• Sistemi di misura dedicati

• OC3MON, IPMON• Niksun, Netscout

Statistiche di traffico ricavate da router/switch• Cisco NetFlow/Telnet Interface• SNMP

Log generati da server

v 1.2 17ntop.org

Inline vs. Offline Inline Measurements

Metodi che utilizzano un protocollo chetransita sulla stessa rete dove si effettuanole misure (es. SNMP).

Offline MeasurementsMetodi che usano reti diverse da quelladove transita il traffico da misurare (es.lettura dei contatori di un router tramite CLIutilizzando una porta seriale)

v 1.2 18ntop.org

Per-Link Measurement

Metrica disponibile solo sul link• # pacchetti, # bytes, # packets scartati su una

interfaccia del router nell’ultimo minuto

• # flussi, # of pacchetti/bytes per flusso

Non fornisce statistiche globali di rete ma è utileagli ISP per le loro misurazioni di traffico.

Esempi:• SNMP MIBs

• RTFM (Real-Time Flow Measurement)

• Cisco’s NetFlow

v 1.2 19ntop.org

End-to-End Measurement

Distinzione tra performance di rete ed applicativa• Wire-time vs. web-server performance

Tutti gli measurements per la loro natura sono ditipo end-to-end.• Statistiche per path

• I path sono simmetrici?

• Come si comportano I pacchetti di probe: il link si comportadiversamente a seconda della lunghezza del pacchetto?

• Base per la deduzione della performance a livello dilink

v 1.2 20ntop.org

Aggregazione delle Misure

Definizione di Flusso• Pacchetti con lo stesso (protocollo, src ip & port, dst ip

& port)

Aggregazione di Flussi per• Porta, ToS (Type of Service), Protocollo (es. ICMP,

UDP), AS (Autonomous System)• Indirizzo sorgente e destinazione• Sottorete,ora del giorno

flow 1 flow 2 flow 3 flow 4

v 1.2 21ntop.org

Vantaggi e Svantaggi

Overhead vs. Accuratezza• Più misure sono fatte, più dati sono collezionati

• Più sono aggregati I dati, più grande è la lorogranularità

• Overhead (e.g. cpu load) sui router, switch, end-hosts

Sicurezza vs. Condivisione• Accesso limitato alla rete interna

• Occorre rispettare la privacy degli utenti

• Le misure devono essere tenute protette in modo danon rivelare informazioni sulla rete a potenziali hacker

v 1.2 22ntop.org

Misure e Tecnologie

Le misure del traffico di rete possono essere fatteutilizzando:

protocolli generici di management (es. SNMPMeter MIB)

AAA-Protocols (Authentication, Authorization andAccounting) disegnati esclusivamente per questocompito

Monitoring tools che tengono traccia dell’utilizzodelle risorse di rete (es. Cisco NetFlow).

v 1.2 23ntop.org

AAA-Protocols

Questi protocolli sono nati con Internet per: Autenticare gli utenti remoti che

intendevano accedere alla rete. Impostare meccanismi di sicurezza

compatibili con la policy locale (es. Utentiospiti non possono accedere a risorseprivate).

Tenere traccia dell’uso della rete (es. intermini di tempo o traffico)

v 1.2 24ntop.org

AAA-Protocols: Architettura

v 1.2 25ntop.org

AAA-Protocols TACACS

Il primo protocollo di autenticazione ormai non più utilizzato .

XTACACS (1990)

Protocollo di autenticazione successore di TACACS. Non più

utilizzato.

TACACS+

Protocollo di autenticazione proprietario Cisco successore di

TACACS.

RADIUS

Il protocollo AAA attualmente più diffuso.

DIAMETER (1998)

Nuovo protocollo AAA in corso di sviluppo.

ntop.org

Seconda Parte

v 1.2 27ntop.org

Motivazione

Dare risposta alle seguenti domande:• Quali sono gli strumenti disponibili

• Come vengono fatte le misurazioni

• Cosa viene effettivamente misurato

• Come interpretare i dati raccolti

v 1.2 28ntop.org

Panoramica della 2a Parte

Analisi degli strumenti di misurazione piùdiffusi:• ping, traceroute, tcpdump/Ethereal• OCxMON/CoralReef• SNMP, MIB• RTFM, Cisco’s NetFlow• Routing tables

v 1.2 29ntop.org

Headers TCP/IP

0

Source IP Address

Identification

3115 16

Destination IP Address

Source Port Number Destination Port NumberSequence Number

Time to Live

Total Lengthflags Fragment Offset

Header Checksum

Version HLEN ToS

Urgent Pointer

Protocol

Acknowledgement NumberHeader Reserved Window SizeTCP Flags

TCP Checksum

IP Header

TCP Header

v 1.2 30ntop.org

Internet Control Message Protocol

Utile per riportare errori o condizioni di trafficoanomale

0 7 8 15 16 31

Type Code Checksum

contents depends on type and code

type code description query error0 0 echo reply x8 0 echo request x

11 time exceeded0 time-to-live equals 0 during transit x1 time-to-live equals 0 during reassembly x

v 1.2 31ntop.org

ping

Utilizzato per verificare la raggiungibilità diun host

Algoritmo: invio di pacchetti ICMP (o UDP)• Inviare un ICMP Echo Request verso l’host didestinazione

• L’host di destinazione riceve la richiesta erisponde con un ICMP Echo Reply

• Il comando ping stampa il RTT, TTL, e il # disequenza.

v 1.2 32ntop.org

Esempio di ping

deri@ibook 6> ping fwpisa

PING fwpisa.netikos.com (172.22.4.9): 56 data bytes

64 bytes from 172.22.4.9: icmp_seq=0 ttl=254 time=3.395 ms

64 bytes from 172.22.4.9: icmp_seq=1 ttl=254 time=2.069 ms

64 bytes from 172.22.4.9: icmp_seq=2 ttl=254 time=2.02 ms

64 bytes from 172.22.4.9: icmp_seq=3 ttl=254 time=2.077 ms

^C

--- fwpisa.netikos.com ping statistics ---

4 packets transmitted, 4 packets received, 0% packet loss

round-trip min/avg/max = 2.02/2.39/3.395 ms

v 1.2 33ntop.org

traceroute

Utilizzato per scoprire il forward path verso l’hostdi destinazione.

Algoritmo: utilizza ICMP ed il campo TTLdell’header IP• Invia un pacchetto UDP con TTL=1• Il primo router ritorna un pacchetto ICMP di tipo Time

Exceeded.• Quindi il mittente invia un pacchetto UDP con TTL=2

ed ottiene una risposta dal secondo router.• Si reitera il processo finchè non viene contattato l’host

di destinazione o quando il TTL si esaurisce.

v 1.2 34ntop.org

Esempio di traceroutederi@ibook 8> traceroute www.ntop.orgtraceroute to faeta.unipi.it (131.114.21.9), 30 hops max, 40 byte packets 1 193.43.104.11 (193.43.104.11) 5.667 ms 2.343 ms 1.963 ms 2 195.31.151.65 (195.31.151.65) 4.346 ms 3.246 ms 3.358 ms 3 r-fi21-telecom-finsiel.interbusiness.it (195.31.6.165) 17.78 ms

15.834 ms 15.633 ms 4 r-fi63-fa2.interbusiness.it (212.131.112.248) 20.323 ms 16.767 ms

15.401 ms 5 r-rm99-fi63.interbusiness.it (151.99.99.25) 18.348 ms 18.889 ms

18.592 ms 6 151.99.101.46 (151.99.101.46) 23.102 ms 22.107 ms 28.286 ms 7 garr-nap.inroma.roma.it (194.242.224.15) 23.42 ms 100.491 ms 25.391

ms 8 roma-rix1.garr.net (193.206.134.225) 191.507 ms 30.183 ms 23.639 ms 9 bo-rm-2.garr.net (193.206.134.37) 29.824 ms 358.839 ms 47.818 ms10 pi-bo.garr.net (193.206.134.74) 42.362 ms 38.577 ms 34.124 ms11 unipi-rc.pi.garr.net (193.206.136.18) 106 ms 230.589 ms 183.566 ms12 eth01-gw.unipi.it (131.114.188.7) 159.475 ms 252.364 ms 236.723 ms13 faeta.unipi.it (131.114.21.9) 111.036 ms * 78.675 ms

v 1.2 35ntop.org

Utilizzo di ping e traceroute

Utili per verificare la raggiungibilità ed il forwardpath nella tabella di routing.

Problemi aperti:• Path asimmetrici (es. in reti con routing dinamico)• ICMP filtering: in questo caso i comandi non

funzionano• Credibilità dei dati forniti dai tool: i pacchetti di probe

sono piccoli e quindi non possono essere veramenteusati per calcolare dati quali throughput e RTT.

v 1.2 36ntop.org

Reverse Traceroute

Al fine di calcolare il reverse traceroute sono disponibilinumerosi server accedibili di solito tramite interfacciaweb:• http:// www.slac.stanford.edu/comp/net/wan-mon/traceroute-srv.html

• http://www.caida.org/analysis/routing/reversetrace/(mappa mondiale dei reverse traceroute server)

v 1.2 37ntop.org

tcpdump

Utilizzato per catturare ed analizzare pacchetti (necessitadi diritti di root).

Modalità di funzionamento: la scheda di rete vieneimpostata in modalità promiscua e passivamente sonocatturati i pacchetti da essa ricevuta. è possibileimpostare dei filtri che limitano la cattura solo a certipacchetti.

Output: ora, host/porta mittente e destinazione, protocollo,payload.

Download:• Unix: http://www.tcpdump.org/• Win32: http://netgroup-serv.polito.it/windump/

v 1.2 38ntop.org

Esempio di tcpdump[ibook:/Volumes/Scrapbook/boot] root# tcpdump

15:54:21.896086 pidc01.netikos.com.domain > 193.43.104.253.49163: 43144NXDomain* 0/1/0 (121)

15:54:21.932486 193.43.104.253.49163 > pidc01.netikos.com.domain: 13120+PTR? 37.104.43.193.in-addr.arpa. (44)

15:54:21.998994 172.22.5.9.netbios-ns > 172.22.7.255.netbios-ns:

>>> NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST

15:54:21.999014 172.22.5.9.netbios-ns > 172.22.7.255.netbios-ns:

>>> NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST

15:54:22.027432 braito.netikos.com.netbios-dgm > 172.22.7.255.netbios-dgm:

>>> NBT UDP PACKET(138) Res=0x110E ID=0x9AD2 IP=172 (0xac).22 (0x16).5(0x5).37 (0x25) Port=138 (0x8a) Length=251 (0xfb) Res2=0x0

SourceName=BRAITO NameType=0x00 (Workstation)

DestName=NETIKOS NameType=0x00 (Workstation)

SMB PACKET: SMBtrans (REQUEST)

^C15:54:22.160100

[…]

137 packets received by filter

0 packets dropped by kernel

[ibook:/Volumes/Scrapbook/boot] root#

v 1.2 39ntop.org

Ethereal [1/2] Sniffer simile a tcpdump dotato di molti decoder per la

maggtior parte dei protocolli di rete.

Download: http://www.ethereal.com/ [Unix/Win32]

v 1.2 40ntop.org

Ethereal [2/2]

Pacchetti

Decoder

Raw

v 1.2 41ntop.org

Packet Capture: libpcap

TCP,UDP

IP,ICMP

EthernetDevice driverBPF driver

filter filter

sniffer sniffer

Copia deipacchetti

kernel

v 1.2 42ntop.org

Esempio di uso di libpcap

pcapPtr = pcap_open_live(deviceName,maxCaptureLen, setPromiscousMode,pktDelay, errorBuffer);

while(pcap_dispatch(pcapPtr, 1, processPacket, NULL) != -1);

void processPacket(u_char *_deviceId,const struct pcap_pkthdr *h,const u_char *p) {…

}

v 1.2 43ntop.org

Problemi con l’utilizzo di Sniffer

Implicazioni di Sicurezza• Viene catturato tutto il traffico di rete e non solo quello

destinato all’host che ospita lo sniffer• Nel caso si utilizzino reti switched si riesce a catturare

solo una porzione del traffico totale (ARP poisoing)• Utilizzo limitato a coloro che hanno diritti di root

NOTA: questo accade anche con ICMP (es. ping) e perquesto tali comandi sono impostati con setuid.

Performance• L’utilizzo di sniffer ha implicazioni sul carico della CPU

in quanto devono essere analizzati tutti ipacchetti/protocolli e non solo quelli diretti all’host

v 1.2 44ntop.org

Traffic Mirror: Soluzioni

Hardware: Hub (Copper Ethernet, Token Ring) Optical Splitter (Optical Fibers) Tap (Copper/Fiber)Software: Switch Port Mirror (1:1, 1:N) Switch VLAN Mirror (N:1) Switch Traffic Filter/Mirroring (Juniper)

v 1.2 45ntop.org

Network Taps

v 1.2 46ntop.org

Packet Capture: Soluzioni

Utilizzo di schede di rete equipaggiate con NPU(Network Process Unit):

1. Esecuzione di codice per trafficaccounting/management sulla scheda (es.IntelIPX Family)

2. Accesso ad alta velocità ai pacchettidirettamente sulla scheda via mmap() senza laloro copia in memoria centrale tramite il busPCI (es. Endace DAG Card)

v 1.2 47ntop.org

Packet Capture: DAG Card

48ntop.org

Linux packet capture è inefficiente quando c’èuna grande quantità di traffico di rete.

Linux Packet Capture [1/4]

Capture

Mode

Linux 2.4

[w/o Polling]

Linux 2.6

w/Polling

FreeBSD

w/Polling

Windows

Libpcap 0,1% 0,8% 74,7% 28,6%

Libpcap

mmap()

1,1%

Kernel

Module

1,5% 9,7%

La tabella illustra la % di pacchetti catturati sul totale inviato.

49ntop.org

Linux kernel polling (Linux 2.6 + NAPI)aiuta ma non è abbastanza.

Molti OSs sono più performanti di Linux.

Problema: senza una sostanzialemiglioramento delle performance, Linuxnon è adatto alla cattura di pacchetti adalta velocità.

Linux Packet Capture [2/4]

50ntop.org

Soluzione: socket (PF_RING) ring buffermmap()-ed in user space

Linux Packet Capture [3/4]

User Space

Kernel

Paccheti Catturati

mmap()(senza lavoroper il kernel)

51ntop.org

Linux Packet Capture [4/4]

Test PlaygroundConstant 93’000 Pkt/sec traffic streamReceiver: nBox with Intel 100Mbit NIC

Cattura a Gbit (> 200’000 pkt/sec) suPentium II (550 Mhz) senza schedeaggiuntive.

Disponibile per Linux 2.4 e Linux 2.6 ahttp://sourceforge.net/projects/ntop/

v 1.2 52ntop.org

Applicazioni a Livello Utente

Mancanza di supporto da parte del kernel enessun accesso ad ICMP.

Esempi di applicazioni• HTTP/FTP downloads [Paxson97]

• Bulk transfer di dati tra un insieme di host utilizzandoHTTP/FTP e raccolta di dati di performance eseguendocontemporaneamente tool quali tcpdump e traceroute

• Pacchetti UDP generati con distribuzione di Poisson• Ping multipli attivi tra diversi router di una rete per il

monitoraggio dello SLA (es. calcolo del valore medio di packetdelay/loss)

v 1.2 53ntop.org

OC3MON e OC12MON

Sistema di monitoraggio passivo con analisi diflussi per reti ad alta velocità• http://www.nlanr.net/NA/Oc3mon/

Architettura Utilizzata• IBM PC con 2 FORE ATM NICs a velocità OC3 speed• NICs connessi con fibra ottica sulla quale passa traffico

di tipo IP-over-ATM

Modalità di Monitoraggio• Raw cell capture (limitata dalla memoria disponibile e

dalla velocità di elaborazione degli host)• Flow analysis: analisi dei flussi catturati

v 1.2 54ntop.org

CoralReef Insieme di librerie, classi Java ed applicazioni

per l’analisi passiva in realtime di traffico di rete• Capacità avanzate di analisi e generazione report circa

il traffico catturato.• http://www.caida.org/tools/measurement/coralreef/

C/C++ ProgramsPerl Programs

CRL.pm & Unpack.pm

Coral Drivers Trace Files libpcap

libcoralFlow Interval Handler Tables

Flows Analysis

Raw traffic stack

Flow stack

v 1.2 55ntop.org

Esempio di Report CoralReef

v 1.2 56ntop.org

Radius [RFC 2139, 1997]

Radius è un acronimo per Remote Authentication Dial InUser Service (RADIUS) specificato in due RFC:

• Protocollo ai AutenticazioneRigney, C., Rubens, A., Simpson, W, and Willens, S.;Remote Authentication Dial In User Service (RADIUS),RFC 2138, January 1997.

• Raccolta Dati di AccountingRigney, C.; RADIUS Accounting, RFC 2139, January1997.

v 1.2 57ntop.org

Radius

Radius è fondamentale perchè: E’ il protocollo più diffuso per implementare

l’autenticazione sugli apparati di rete. E’ il protocollo più utilizzato per il billing su linee

seriali (es. ADSL, Modem). Ha influenzato tutti i modelli di billing dati perchè

permette di fare accounting per tempo diconnessione o volume di dati.

Praticamente tutti gli apparati di rete (esclusi ilow-end) lo supportano.

v 1.2 58ntop.org

Il Protocollo Radius

Network Access

Server

(Radius Client)

AccountingServer

(Radius Server)

Access Request

Access Accept

Accounting Request (Start)

Accounting Response

Accounting Request (Stop)

Accounting Response

Login Session

Logout Session

v 1.2 59ntop.org

Il Protocollo Radius: Messaggi

•Code: Byte che contiene il comando/risposta RADIUS.•Identifier: Byte che identifica il comando/rispsta RADIUS.•Length: Lunghezza in bytes del pacchetto.•Authenticator: Valore utilizzato per autenticare la risposta dalRADIUS server.•Attributes: Parametri del comando/risposta.

v 1.2 60ntop.org

Il Protocollo Radius: Primitive

access-request, (client->server): richiesta di accesso a certi servizi (Es.Autenticazione utente). Possibili risposte:

• access-accept, (server->client): accesso garantito.

• access-reject, (server->client), risposta negativa.

• access-challenge, (server->client): risposta a fronte della quale il server siaspetta una risposta da parte del client incapsulata in una nuova access-request.

accounting request, (client->server): richiesta di memorizzare dati diaccounting nel server. Possibile risposta:

• accounting response, (server->client): il server conferma il client che I datidi accounting (es. Bytes inviati) sono stati memorizzti con successo.

v 1.2 61ntop.org

Il Protocollo Radius:Contenuto dei Messaggi

Access-request: username/password dell’utente remoto encriptaticon una shared key.

Access-response: in caso positivo contiene informazioni qualil’indirzzo IP, netmask, allowed session time, etc. del cient.

Accounting-request (start): viene inviato quando l’utente effettuarealmente il login.

Accounting-request (stop): il client invia al server le seguentiinformazioni:• # di bytes ricevuti dal client (input octets)• # di bytes inviati dal client (output octets)• Durata del collegamento (session time)• # di pacchetti ricevuti dal client (input packets)• # di pacchetti inviati dal client (output packets)• Motivo della disconnessione (es. User logout o time limit)

v 1.2 62ntop.org

Real Time Flow Measurement

Definisce: [RFC 2721, 2722]• Metodi per definire flussi

• Gerarchia di device (meters, meter readers,managers) ai fini della misurazione dei flussi

• Meccanismi per configurare i meter, meterreader e per collezionare dati da meter remoti

v 1.2 63ntop.org

• Manager-Meter: configura e controlla il meter (es. definisce I flussi damisurare)• Manager-Meter Reader: configura e controlla il meter reader (es. definiscecosa devono leggere da quali meter e con quale frequenza di polling)• Meter-Meter Reader: colleziona dati di accounting memorizzati nel Meterleggendo la Meter Flow Table• Meter Reader - Analysis Application: se necessario I valori letti dal meterreader possono essere analizzati ulteriormente attracenso un’applicazione dianalisi esterna (es. Aggregazione e filtraggio dati). Questa applicazione nonviene definita dall’architettura RTFM.

RTFM: Interazioni traComponenti

v 1.2 64ntop.org

Esempio di Regole RTFM [1/2]

DEFINE D1 = 130.89.17.64/29;DEFINE D2 = 130.89.17.72/29;

DEFINE D3 = 130.89.17.80/29;

IF (SourcePeerAddress == D1 && DestPeerAddress == D2) {SAVE SourcePeerAddress/29; SAVE DestPeerAddress/29;

STORE FlowKind := '1'; COUNT;} ELSE IF (SourcePeerAddress == D1 && DestPeerAddress ==

D3) {SAVE SourcePeerAddress/29; SAVE DestPeerAddress/29;

STORE FlowKind := '2'; COUNT;} ELSE NOMATCH;

FORMAT SourcePeerAddress " " DestPeerAddress " " ToOctets" " FromOctets " " FlowKind;

v 1.2 65ntop.org

Esempio di Regole RTFM [2/2]

565423456D1->D3

6456324543D1->D2

From OctetsTo OctetsFlow Kind

Tabella memorizzata nel Meter e prodotta a partiredalla configurazione precendente

v 1.2 66ntop.org

Cisco NetFlow [1/3]

Approccio analogo a RTFM. Standard aperto per la misurazione di flussi IP

definito da Cisco Systems. Con RMON è lo standard industriale per la

misurazione del traffico di rete. Esistono varie versioni. La più diffusa è la

versione 5. La più recente è la versione 9. Le sonde NetFlow sono di solito implementate

nei router/switch ma esistono anche sondeesterne (es. nProbe)

v 1.2 67ntop.org

Cisco NetFlow [2/3]

NetFlow non è basato su SNMP.

Il probe invia le informazioni sui flussi alcollector utilizzando UDP.

In ogni pacchetto possono esserememorizzati più flussi (es. con NetFlow v5si riescono a memorizzare 30 flussi perpacchetto).

v 1.2 68ntop.org

Cisco NetFlow [3/3] Memorizza statistiche sui flussi a livello di

interfaccia e li invia al collezionatore via UDP Aggregazione a livello di route

• Es. AS, protocol port, src prefix, dst prefix, prefix

Raccomandato sugli access routers più che suibackbone router (troppo carico CPU)

I flussi collezionati sono inviati ad unFlowCollector• Non è possibile accedere ai dati via MIB/SNMP• è possibile aggregare ulteriormente flussi nel collector• Altri costruttori (es. Juniper) supportano NetFlow

v 1.2 69ntop.org

Esempio di Report NetFlow

v 1.2 70ntop.org

Cisco NetFlow v5 [1/2]

struct netflow5_record {

struct flow_ver5_hdr flowHeader;

struct flow_ver5_rec flowRecord[30];

} NetFlow5Record;

struct flow_ver5_hdr {

u_int16_t version; /* Current version=5*/

u_int16_t count; /* The number of records in PDU. */

u_int32_t sysUptime; /* Current time in msecs since router booted */

u_int32_t unix_secs; /* Current seconds since 0000 UTC 1970 */

u_int32_t unix_nsecs; /* Residual nanoseconds since 0000 UTC 1970 */

u_int32_t flow_sequence; /* Sequence number of total flows seen */

u_int8_t engine_type; /* Type of flow switching engine (RP,VIP,etc.)*/

u_int8_t engine_id; /* Slot number of the flow switching engine */

};

v 1.2 71ntop.org

Cisco NetFlow v5 [2/2]struct flow_ver5_rec { u_int32_t srcaddr; /* Source IP Address */ u_int32_t dstaddr; /* Destination IP Address */ u_int32_t nexthop; /* Next hop router's IP Address */ u_int16_t input; /* Input interface index */ u_int16_t output; /* Output interface index */ u_int32_t dPkts; /* Packets sent */ u_int32_t dOctets; /* Octets sent */ u_int32_t First; /* SysUptime at start of flow */ u_int32_t Last; /* and of last packet of the flow */ u_int16_t srcport; /* TCP/UDP source port number (.e.g, FTP, Telnet, etc.,or equivalent) */ u_int16_t dstport; /* TCP/UDP destination port number (.e.g, FTP, Telnet, etc.,or equivalent) */ u_int8_t pad1; /* pad to word boundary */ u_int8_t tcp_flags; /* Cumulative OR of tcp flags */ u_int8_t prot; /* IP protocol, e.g., 6=TCP, 17=UDP, etc... */ u_int8_t tos; /* IP Type-of-Service */ u_int16_t dst_as; /* dst peer/origin Autonomous System */ u_int16_t src_as; /* source peer/origin Autonomous System */ u_int8_t dst_mask; /* destination route's mask bits */ u_int8_t src_mask; /* source route's mask bits */ u_int16_t pad2; /* pad to word boundary */};

v 1.2 72ntop.org

Flusso NetFlow v5 [1/2]

Cisco NetFlow Version: 5

Count: 30

SysUptime: 1518422100

Timestamp: May 7, 1993 08:49:48.995294598

CurrentSecs: 736757388

CurrentNSecs: 995294598

FlowSequence: 9751

EngineType: 0

EngineId: 0

SampleRate: 0

pdu 1/30 [ …… ]

v 1.2 73ntop.org

Flusso NetFlow v5 [2/2]pdu 1/30 SrcAddr: 10.16.237.114 (10.16.237.114) DstAddr: 213.92.16.87 (213.92.16.87) NextHop: 10.158.100.1 (10.158.100.1) InputInt: 4 OutputInt: 1

Packets: 5 Octets: 627 StartTime: 1518415.920000000 seconds EndTime: 1518416.352000000 seconds SrcPort: 3919 DstPort: 80 padding

TCP Flags: 0x1b Protocol: 6 IP ToS: 0x00 SrcAS: 0 DstAS: 0 SrcMask: 16 (prefix: 10.16.0.0/16) DstMask: 0 (prefix: 0.0.0.0/32)

paddingpdu 2/30 [ ……………………… ]

v 1.2 74ntop.org

Flusso NetFlow v9 [1/2]Cisco NetFlow Version: 9 Count: 4 SysUptime: 1132427188 Timestamp: Aug 18, 2000 23:49:25.000012271 CurrentSecs: 966635365

FlowSequence: 12271 SourceId: 0 FlowSet 1/4 FlowSet 1/4 Template FlowSet: 0 FlowSet Length: 164 Template Id: 257

Field Count: 18 Field (1/18) Type: LAST_SWITCHED (21) Length: 4 Field (2/18) Type: FIRST_SWITCHED (22) Length: 4

Field (3/18) [ …… ]

v 1.2 75ntop.org

Flusso NetFlow v9 [2/2]Cisco NetFlow Version: 9 Count: 1 SysUptime: 1133350352 Timestamp: Aug 19, 2000 00:04:48.000012307 CurrentSecs: 966636288

FlowSequence: 12307 SourceId: 0 FlowSet 1/1 Data FlowSet (Template Id): 257 FlowSet Length: 52 pdu 1 EndTime: 1133334.000000000 seconds

StartTime: 1133334.000000000 seconds Octets: 84 Packets: 1 InputInt: 15 OutputInt: 0 SrcAddr: 172.18.86.77 (172.18.86.77) DstAddr: 11.10.65.130 (11.10.65.130)

Protocol: 1 IP ToS: 0x00 [ … ]

v 1.2 76ntop.org

NetFlow v5 vs. v9

SiNoMPLS/VLAN

IP v4/v6NoIPv6

Dipende dalFormato

48 BytesDimensioneFlusso

Si (NuoviFlowset Field)

NoEstensibilità

User DefinedFissoFormato Flusso

V9V5

v 1.2 77ntop.org

sFlow [1/4]

RFC 3176 proposto da InMon Inc.

Definisce:• Il formato dei pacchetti sFlow (UDP, noSNMP).

• Un MIB SNMP per accedere ai dati collezionaticon sFlow

Architettura simile a NetFlow: il probe inviai pacchetti sFlow al collector (no polling).

v 1.2 78ntop.org

sFlow [2/4]

La sonda sFlow è fondamentalmente unosniffer che cattura 1 pacchetto ogni X (es.ratio 1:400): packet sampling.

Tale pacchetto viene inviato al collector informato sFlow.

Periodicamente la sonda invia altripacchetti sFlow che contengono statistichesull’interfaccia di rete al fine di fare lanormalizzazione dei dati.

v 1.2 79ntop.org

sFlow [3/4]typedef struct _INMFlow_sample { u_int32_t sequence_number; /* Incremented with each generated flow */ u_int32_t source_id; /* fsSourceId */ u_int32_t sampling_rate; /* fsPacketSamplingRate (e.g. 400 for 1:400) */ u_int32_t sample_pool; /* Total number of packets that could have been

sampled (i.e. packets skipped by sampling process + total number of samples) */

u_int32_t drops; /* Number of times a packet was dropped due to lack of resources */

u_int32_t input; /* SNMP ifIndex of input interface. 0 if interface is not known. */

u_int32_t output; /* SNMP ifIndex of output interface, 0 if interface is not known. */

u_int32_t packet_data_tag; /* enum INMPacket_information_type */ INMPacket_data_type packet_data; /* Sampled packet payload */[..]} INMFlow_sample;

v 1.2 80ntop.org

sFlow [4/4]

Con opportune formule statistiche, dopoun piccolo periodo di tempo, un collectorsFlow riesce a fornire statistiche attendibilisebbene venga analizzata solo una piccolaparte del traffico.

sFlow è scalabile (basta incrementare ilratio) anche su reti a 10 Gbit e superiori.

v 1.2 81ntop.org

Routing Tables

Essenziali per ogni analisi del traffico basato suindirizzi• Flussi aggregati per prefix, AS, PoP, ingress/egress

interface.

Modalità di collezionamento informazioni sullerouting table• Interrogando protocolli di routing dinamico.• Passive routing protocol speaker: rimuove route

vecchie o non utilizzate.• Possibilità di accedere alle route di un router remoto

via router login o SNMP.

v 1.2 82ntop.org

Topologia di Internet

EGP (External Gateway Protocol) - usato tra AS(Autonomous Systems) per scambiare informazioni dirouting in modo da forwardare correttamente il traffico traASs. Esempio: BGP.

Grande ISP

Grande ISP

ISP Medio

dialupISP Piccolo ISP

EGP

v 1.2 83ntop.org

Scambio delleInformazioni di Routing

R Border router

Internal router

BGPR2

R1

R3

A

AS1

AS2

Puoi raggiungere larete A tramite me

traffic to A

Routing Table su R1:dest next hopA R2

v 1.2 84ntop.org

Protocolli di Routing

R Border router

Internal router

R1

AS1

R4

R5

B

AS3

E-BGP

R2R3

A

AS2 Annuncio B

IGP: Interior GatewayProtocol.Esempio: OSPF

I-BGP

v 1.2 85ntop.org

Routing Tables

Tabelle BGP• Connettività tra AS e AS• Esempi di tabelle BPG pubbliche:http://www.antc.uoregon.edu/route-views[Route Views Project]

Tabelle OSPF• Connettività interna ad un AS

Forwarding Tables• Mapping tra porte input -> output port.

v 1.2 86ntop.org

Routing e Misurazione Traffico

Al contrario degli utenti finali, per gli igrandi ISP il traffico costa in base alladestinazione (modello telefonico).

Esistono accordi di “peering” con altri ISPche permettono di avere prezzi particolarise il traffico passa tramite loro.

Dividere/aggregare per network/ASpermette di capire come gira il traffico equindi per stipulare accordi di peering.

v 1.2 87ntop.org

Path Characterization

Che cos’è• Capacità di caratterizzare le caratteristiche di un

cammino (path) end-to-end attraverso Internet.

Misure per la Caratterizzazione• Bandwidth

• Latenza

• Packet loss

• Jitter

• One-way delay, RTT (Round Trip Time)

v 1.2 88ntop.org

Path Characterization: Pathchar

Pathchar [ftp://ftp.ee.lbl.gov/pathchar/]• Invia una serie di pacchetti di dimensioni diverse a

tutti i router della route da analizzare• Viene misurato il tempo di risposta minimo, e per ogni

hop:• Hop delay• Bandwidth• Queueing

• Studiando il RTT in funzione della dimensione delpacchetto si riesce a calcolare la bandwidth

• Lunghi tempi di calcolo a causa dei calcoli complessie del numero di pacchetti di probe da inviare ai fini diottenere misurazioni realistiche.

Altri Package: pchar, pipechar.

v 1.2 89ntop.org

Network Throughput: IPerf

Iperf [http://dast.nlanr.net/Projects/Iperf/]• Architettura client/server: lo stesso binario viene

avviato in due modalità diverse.• Il client invia pacchetti TCP/UDP verso il server il quale

riceve I pacchetti• Il client puo’ specificare la porta, la dimensione della

TCP windows, la durata del test, e la quantità di dati dainviare.

• Statistiche: bandwidth, packet delay/loss, jitter.• Svantaggi:

• Il server deve essere installato sull’host di destinazione• Il tool non puo’ essere utilizzato (in quanto non installabile) sui

router

v 1.2 90ntop.org

Network Throughput: Bing

Bing [http://www.cnam.fr/reseau/bing.html]• Banwidth Ping: tool per la misura della banda

disponibile basato su ping.

Algoritmo• Siamo su A e dobbiamo calcolare la banda tra gli host L1 e L2:

A <----> ( Internet ) <---> L1 <---> L2• Il tool calcola il RTT A<->L1 e A<->L2. Da queste misurazioni si

calcola il RTT L1<->L2.• Ripetendo i calcoli per pacchetti di dimensioni diverse si riesce a

calcolare la bandwidth tra L1 e L2

Limitazioni• L’algoritmo non funziona su route asimmetriche• Altri Package: Treno [http://ai3.asti.dost.gov.ph/sat/treno.html]

v 1.2 91ntop.org

Traffic Data Collection [1/2]

Il collezionamento periodico di dati èfondamentale per:• Avere una storia del traffico passato ai fini di

reingegnerizzare la rete in base al traffico ed alle suevariazioni (es. picchi)

• Fare backtrace in caso di anomalie o di attacchi di rete• Generare informazioni per sistemi di IP accounting e

billing.• Produzioni di report periodici.

v 1.2 92ntop.org

Traffic Data Collection [2/2]

Politiche di Collezionamento• Intervallo di collezionamento non più piccolo di5 minuti (minimo impatto su performance)

• Al fine di analizzare bene i dati è necessariovisualizzarli con intervalli di tempo diversi

Giorno Mese Anno

v 1.2 93ntop.org

Data Collection: MRTG

MRTG [http://www.mrtg.org/]• Multi Router Traffic Grapher: tool percollezionare tramite SNMP dati di traffico darouter e produrre statistiche e grafici circa i daticollezionati.

• Possibilità di collezionare dati anche da deviceche non ‘parlano’ SNMP.

• Disponibilità di interfaccia Perl e WWW perl’accesso ai dati collezionati.

v 1.2 94ntop.org

Data Collection: RRD

RRD [http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/]

• Round Robin Database: Tool per memorizzare evisualizzare serie di dati su cui è basato MRTG.

• I dati sono memorizzati in maniera molto compatta inmaniera che non si espandano nel tempo (automaticdata aggregation) e con dimensione fissa del file.

• Interfaccia Perl/C per l’accesso ai dati collezionato eper produrre grafici.

v 1.2 95ntop.org

Esempio di RRD Perl

$rrd = "$dataDir/$agent-$ifIndex.rrd";

if(! -e $rrd) { RRDs::create ($rrd, "--start",$now-1, "--step",20,

"DS:bytesIn:COUNTER:120:0:10000000", "DS:bytesOut:COUNTER:120:0:10000000",

"RRA:AVERAGE:0.5:3:288"); $ERROR = RRDs::error;

die "$0: unable to create `$rrd': $ERROR\n" if $ERROR;}

RRDs::update $rrd, "$now:$ifInOctets:$ifOutOctets"; if ($ERROR = RRDs::error) {

die "$0: unable to update `$rrd': $ERROR\n";}

v 1.2 96ntop.org

Data Collection: Esempi di Grafici MRTG/RRD

v 1.2 97ntop.org

Integrated Monitoring: Cacti

Cacti [http://www.raxnet.net/products/cacti] èun tool open source capace di:

Collezionare dati tramite da SNMP ed altresorgenti non-SNMP.

Configurazione via web e loromemorizzazione in un database SQL.

Memorizzazione dei dati collezionatidentro files in formato RRD.

Estensibilità mediante scripts + XML

v 1.2 98ntop.org

Cacti: Data Collection

v 1.2 99ntop.org

Cacti: Data Sources

v 1.2 100ntop.org

Cacti: RRD Graph Templates

v 1.2 101ntop.org

Cacti: Data Graph

v 1.2 102ntop.org

Network Troubleshooting

Localizzazione degli Amministratori• Dov’è un host ed a chi appartiene il dominiodov’è registrato ?

Problemi di Configurazione• Routing table e connettività

v 1.2 103ntop.org

Dov’é un Host?

Associazione tra indirizzo IP e nomederi@tar:~$ nslookup 131.114.21.22Server: localhostAddress: 127.0.0.1

Name: jake.unipi.itAddress: 131.114.21.22

Associazione tra host e Proprietario• nslookup -type=SOA• WAIS [Wide Area Information System]http://www.ai.mit.edu/extra/the-net/wais.html• WHOIS [RFC-812]

v 1.2 104ntop.org

Esempio di Utilizzo WHOISderi@ibook:~$ whois unipi.itdomain: unipi.itx400-domain: c=it; admd=garr; prmd=unipi;org: Università degli Studi di Pisaorg-unit: Centro SERRA - Servizio per la Rete di Ateneo (SERRA Network)descr: SERRA provides network connections for the Pisa Universityadmin-c: GP287-ITNICtech-c: SS103-ITNICtech-c: PC5-ITNICpostmaster: SS103-ITNICzone-c: SS103-ITNICzone-c: PC5-ITNICnserver: 131.114.21.10 serra.unipi.itnserver: 131.114.21.15 nameserver.unipi.itnserver: 193.205.245.8 dns2.nic.itdom-net: 131.114.0.0remarks: Fully-managedmnt-by: GARR-MNTcreated: before 960129changed: [email protected] 19940630changed: [email protected] 19970321source: IT-NIC[…]deri@ibook:~$

v 1.2 105ntop.org

Configurazione di Rete

Configurazione delle schede di reteUnixderi@jabber 151> ifconfig -alo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000iprb0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 193.43.104.16 netmask ffffff00 broadcast 193.43.104.255iprb0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 172.22.4.16 netmask ffff0000 broadcast 172.22.255.255

WindowsC:\> ipconfig /allConfigurazione IP di Windows

Nome host . . . . . . . . . : penguin.netikos.com Server DNS. . . . . . . . . : 172.22.4.10 172.22.16.10 Tipo nodo . . . . . . . . . : Ibrido ID Scope NetBIOS. . . . . . : IP Routing abilitato. . . . : No WINS Proxy abilitato. . . . : No Risoluzione NetBIOS con DNS : Si[….]

v 1.2 106ntop.org

Configurazione del Routing

Problema: necessità di verificare lo stato dellarouting table attualmente utilizzata

Solutione: netstat/routederi@jabber 149> netstat -rn

Routing Table: IPv4 Destination Gateway Flags Ref Use Interface-------------------- -------------------- ----- ----- ------ ---------193.43.104.0 193.43.104.16 U 1 638 iprb0195.103.245.0 193.43.104.37 UG 1 997156.54.249.0 172.22.4.9 UG 1 2156.54.176.0 193.43.104.222 UG 1 010.6.0.0 172.22.4.78 UG 1 10172.22.0.0 172.22.4.16 U 1 2989 iprb0:1224.0.0.0 193.43.104.16 U 1 0 iprb0default 193.43.104.11 UG 1 1521127.0.0.1 127.0.0.1 UH 10 280460 lo0

v 1.2 107ntop.org

Configurazione ARP

La configurazione della ARP table è utile per:• Riconoscere se ci sono indirizzi duplicati (duplicated

ARP entry)• Verificare esitono problemi di risoluzione di indirizzi

come:• Installazione abusiva di un ARP proxy• Blocco ARP da parte di firewall, screening router

• Utilizzo: Unix/Win32deri@jake 201> arp -aeth01-gw.unipi.it (131.114.21.8) at 00:E0:16:87:94:83 [ether] on eth0pisanino.unipi.it (131.114.21.15) at 08:00:20:76:2C:79 [ether] on eth0

v 1.2 108ntop.org

Stato Connessioni IP Locali [1/3]

Motivazione• ènecessario conoscere lo stato delle connessioni

quando:• Gli applicativi non si avviano in quanto trovano le porte

“occupate”

• C’è un gran traffico di rete e si deve capire chi stà parlando conchi

• Una connessione è lenta e si pensa ci sia del traffico in coda inattesa di essere inviato/ricevuto

• Ci sono troppe porte occupate e si deve capire se/quali ci sonoapplicativi che utilizzano tali porte

v 1.2 109ntop.org

Stato Connessioni IP Locali [2/3]

Netstat• Applicativo che mostra in maniera simbolica lo stato

della rete e delle connessioni.deri@localhost 23> netstat -anActive Internet connections (including servers)Proto Recv-Q Send-Q Local Address Foreign Address (state)tcp 0 0 193.43.104.253.49154 193.43.104.16.139 ESTABLISHEDtcp 0 0 127.0.0.1.911 127.0.0.1.1033 ESTABLISHEDtcp 0 0 *.3473 *.* LISTENtcp 0 0 127.0.0.1.1033 127.0.0.1.846 ESTABLISHEDtcp 0 0 127.0.0.1.846 127.0.0.1.1033 ESTABLISHEDtcp 0 0 *.22 *.* LISTENtcp 0 0 *.21 *.* LISTENudp 0 0 *.49164 *.*udp 0 0 127.0.0.1.49162 127.0.0.1.901udp 0 0 127.0.0.1.49161 127.0.0.1.901udp 0 0 *.901 *.*udp 0 0 *.2222 *.*udp 0 0 127.0.0.1.1033 *.*udp 0 0 *.514 *.*Active LOCAL (UNIX) domain socketsAddress Type Recv-Q Send-Q Inode Conn Refs Nextref Addr 1017f18 stream 0 0 0 1017ce8 0 0 1017ce8 stream 0 0 0 1017f18 0 0 1017ee0 stream 0 0 11651c8 0 0 0 /var/run/pppconfd[…]

v 1.2 110ntop.org

Stato Connessioni IP Locali [3/3]

lsof [http://freshmeat.net/projects/lsof/]• lsof (list open files) è un tool Unix che mostra i

descrittori aperti e lo stato delle connessioni di reteassociate ai vari processi attivi.

deri@localhost 24> lsof -iCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEloginwind 245 deri 6u inet 0x012864ec 0t0 TCP localhost:846->localhost:1033 (ESTABLISHED)Finder 258 deri 10u inet 0x0121f970 0t0 UDP *:*Finder 258 deri 11u inet 0x01284f6c 0t0 TCP *:* (CLOSED)Finder 258 deri 12u inet 0x0121f8a0 0t0 UDP *:*Finder 258 deri 13u inet 0x01284a0c 0t0 TCP *:* (CLOSED)LaunchCFM 266 deri 40u inet 0x0128577c 0t0 TCP *:3473 (LISTEN)LaunchCFM 266 deri 41u inet 0x0121fcb0 0t0 UDP *:2222

v 1.2 111ntop.org

Stato Porte IP Remote [1/3]

Definizione• Si definisce port scanning l’attività di riconoscere lo

stato delle porte di un host remoto

MotivazioneIn alcuni casi è necessario conoscere lo statodelle porte TCP/UDP su un sistema remoto per:• Risolvere problemi di connettività (es. un’applic. locale

non riesce a connettere ad un server remoto)• Conoscere lo stato di un sistema remoto al fine di

violarlo (hackers only)• Verificare da remoto se un sistema ha attivato dei

servizi non previsti (e quindi dedurre se è stato violatoo configurato male)

v 1.2 112ntop.org

Stato Porte IP Remote [2/3]

Caveat• Visto che il port scanning è spesso un’attività ostile, è

bene effettuare tale attività solo su computerautorizzati.

OS Fingerprinting• Capacità di riconoscere il tipo di sistema operativo

effettuando un’analisi di tipo pattern matching su comesi comporta uno stack IP a fronte dell’invio di richieste(es. portscan) legali (dal punto di vista dell’IP) o meno.

v 1.2 113ntop.org

Stato Porte IP Remote [3/3]

Tools:• strobe [ftp://ftp.debian.org/debian/dists/stable/source/net/]

• hping [http://www.kyuzz.org/antirez]

• Nmap [http://www.insecure.org/]deri@jabber 150> nmap tarStarting nmap V. 2.54BETA7 ( www.insecure.org/nmap/ )Interesting ports on tar (193.43.104.13):(The 1513 ports scanned but not shown below are in state: closed)Port State Service9/tcp open discard13/tcp open daytime21/tcp open ftp22/tcp open ssh23/tcp open telnet25/tcp open smtp37/tcp open time[…]Nmap run completed -- 1 IP address (1 host up) scanned in 1 second

v 1.2 114ntop.org

OS Fingerprinting

Fingerprinting AttivoInvio di pacchetti di probe ed identificazionedell’host in base alle risposte ricevute. Es.nmap -O <host>

Fingerprinting Passivo

Identificazione dell’OS creando una stringa(fingerprint) costruita utilizzando parametri deipacchetti TCP contenenti I flag di tipo SYN oSYN/ACK. Es. Ettercap(http://ettercap.sourceforge.net/)

v 1.2 115ntop.org

OS Fingerprinting: Ettercap [1/2]

WWWW:MSS:TTL:WS:S:N:D:T:F:LEN:OS

WWWW: 4 digit hex field indicating the TCP Window Size

MSS : 4 digit hex field indicating the TCP Option Maximum Segment Size

if omitted in the packet or unknown it is "_MSS"

TTL : 2 digit hex field indicating the IP Time To Live

WS : 2 digit hex field indicating the TCP Option Window Scale

if omitted in the packet or unknown it is "WS"

S : 1 digit field indicating if the TCP Option SACK permitted is true

N : 1 digit field indicating if the TCP Options contain a NOP

D : 1 digit field indicating if the IP Don't Fragment flag is set

T : 1 digit field indicating if the TCP Timestamp is present

F : 1 digit ascii field indicating the flag of the packet

S = SYN

A = SYN + ACK

LEN : 2 digit hex field indicating the length of the packet

if irrelevant or unknown it is "LT"

OS : an ascii string representing the OS

v 1.2 116ntop.org

OS Fingerprinting: Ettercap [2/2]

# Esempio di host fingerprint

0200:0000:40:WS:0:0:0:0:S:LT:Linux 2.0.35 - 2.0.370200:05B4:40:00:0:0:0:0:S:2C:Linux 2.0.35 - 2.0.38

0200:05B4:40:00:0:0:0:0:S:LT:Linux 2.0.380200:05B4:40:34:0:0:0:0:S:LT:Linux 2.0.33

0200:05B4:40:WS:0:0:0:0:S:2C:Linux 2.0.34-38

0200:05B4:40:WS:0:0:0:0:S:LT:Linux 2.0.360200:05B4:FF:WS:0:0:0:0:A:2C:Router 3Com 812 ADSL

0564:0564:40:WS:1:0:1:1:A:38:Linux 2.40564:0564:80:WS:1:1:1:0:A:LT:Windows 2000

0564:6405:40:00:0:1:1:1:A:3C:Solaris0564:6405:40:WS:0:1:1:1:A:38:Mac OS

v 1.2 117ntop.org

Security Scanner [1/2]

Motivazione• Uno dei metodi più efficaci per sapere se unamacchina è sicura o se è stata compromessa,è di effettuare uno scan dei servizi ai fini ditrovare dei problemi di sicurezza.

Implementazione• Effettuare lo scan remoto verificando se l’hostsotto esame ha vulnerabilità note o se giraversioni insicure dei servizi.

v 1.2 118ntop.org

Security Scanner [2/2]

Tools• Satan [http://www.cs.ruu.nl/cert-uu/satan.html]

• Nessus [http://www.nessus.org/]

• Saint [http://www.wwdsi.com/saint/]

v 1.2 119ntop.org

Passive Network Monitoring:ntop [www.ntop.org]