Misurazione del Traffico Internet - luca.ntop.orgluca.ntop.org/Teaching/tm2004.pdf · •Quantità...
Transcript of Misurazione del Traffico Internet - luca.ntop.orgluca.ntop.org/Teaching/tm2004.pdf · •Quantità...
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
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 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.
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 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 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)
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 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 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 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 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/]