UNIVERSITÀ DEGLI STUDI DI PISA FACOLTÀ DI INGEGNERIA Corso di Laurea in INGEGNERIA DELLE TELECOMUNICAZIONI Tesi di Laurea Sicurezza dei sistemi SIP: analisi sperimentale di possibili attacchi e contromisure Candidato: Francesco Lacerenza Relatori Prof. Ing. Stefano Giordano Ing. Rosario G. Garroppo Ing. Giuseppe Risi Anno Accademico 2005 2006
INDICE Introduzione... 9 Capitolo 1 Generalità del SIP... 12 1.1 Architettura SIP 12 1.2 Metodi e Risposte SIP.. 14 1.3 Campi di intestazione obbligatori nei messaggi SIP 16 1.4 Instaurazione di una sessione SIP 18 Capitolo 2 Problematiche di sicurezza nel SIP.. 20 2.1 Tassonomia degli attacchi 22 2.1.1 Man-In-The-Middle 22 2.1.2 Eavesdropping..... 23 2.1.3 Message tampering...... 23 2.1.4 DoS (Denial of Service)... 24 2.1.5 Spoofing.. 27 2.1.6 Registration Hijacking. 28 2.1.7 Server impersonation... 28 2.1.8 SPAM over Internet Telephony (SPIT). 28 2.1.9 Buffer overflow... 29 2.2 Possibili soluzioni di sicurezza 29 2.2.1 Firewall 30 2.2.2 NAT..... 31 2.2.3 SBC. 33 2.2.4 IDS.. 34 2.3 Soluzioni di sicurezza nel SIP definite nei vari RFC... 36 2.4 Meccanismi di Autenticazione. 36 2.4.1 HTTP Digest Authentication... 37 2.4.2 S/MIME... 38 2.5 Encryption: soluzioni per garantire riservatezza.. 39
2.5.1 Encryption by proxy 40 2.5.2 Encryption end-to-end. 40 2.5.3 Encryption hop-by-hop... 41 2.5.3.1 IPSec 41 2.5.3.2 TLS.. 42 Capitolo 3 Descrizione e caratteristiche dei principali Tools utilizzati per testare l architettura SIP 43 3.1 Confidenzialità... 44 3.1.1 Network Interface Layer..... 44 3.1.2 Network Layer. 45 3.1.3 Transport Layer... 45 3.1.4 Application Layer 45 3.2 Integrità... 46 3.2.1 Network Interface 47 3.2.2 Layer Network Layer.. 47 3.2.3 Transport Layer... 47 3.2.4 Application Layer 47 3.3 Disponibilità. 48 3.3.1 Network Interface Layer. 49 3.3.2 Network Layer 50 3.3.3 Transport Layer... 50 3.3.4 Application Layer 51 3.4 Tools per la sicurezza nel SIP. 52 3.4.1 VoIP Scanning and Enumeration Tools. 52 3.4.2 VoIP Packet Creation and Flooding Tools. 60 3.4.3 VoIP Sniffing Tools 65 3.4.4 VoIP Fuzzing Tools 69 3.4.5 VoIP Signaling Manipulation Tools... 70 3.4.6 VoIP Media Manipulation Tools. 71 3.4.7 Miscellaneous Tools 72
Capitolo 4 Parte Sperimentale: Scanning and Enumeration a VoIP Network. 75 4.1 SER SIP Express Router.. 76 4.2 Discovery dei SIP Device del trial usando il tool SiVuS. 77 4.3 Discovery dei SIP Device del trial usando il tool Smap... 81 4.4 Confronto tra Smap e SiVuS 90 4.5 Analogie tra Smap ed Nmap per la fase di SIP Discovery... 90 4.6 Considerazioni aggiuntive su Smap.. 92 4.7 Scanning della rete del dipartimento 93 4.8 Scanning della rete dell'ateneo 96 4.9 Contromisure. 105 Capitolo 5 Parte Sperimentale: VoIP Fuzzing.. 107 5.1 Ricerca di vulnerabilità del SER utilizzando il tool SiVuS 107 5.2 Fuzzing vs softphone e vs un hard-phone 109 5.3 Fuzzing vs X-Lite. 121 5.4 Contromisure 123 Capitolo 6 Parte Sperimentale: Flood-based Disruption of Service 124 6.1 Flooding di messaggi SIP INVITE verso il SER. 125 6.2 Flooding di messaggi UDP verso il SER. 126 6.3 Flooding di messaggi SIP INVITE verso il softphone X-Lite 126 6.4 Contromisure 127 Capitolo 7 Parte Sperimentale: Signaling and Media Manipulation... 131 7.1 Registration removal 131 7.2 Registration Addition... 132 7.3 Registration Hijacking utilizzando il tool Registration Hijacker. 133 7.4 Registration Hijacking utilizzando il tool SIPp 136
7.5 Cattura della password utilizzata da un utente per registrarsi al SER (breaking Authentication)... 140 7.6 Attacco Man-in-the-Middle.. 142 7.7 Contromisure... 144 7.8 Session Tear Down... 147 7.8.1 Contromisure... 148 7.9 SIP-Phone-Reboot 150 7.9.1 Contromisure... 150 7.10 Spoofing Caller ID... 150 7.10.1 Contromisure. 153 7.11 Inserzione di un flusso RTP. 154 7.11.1 Contromisure. 158 7.12 Tentativo di attacco combinato... 159 Conclusioni.. 161 Bibliografia. 165 Ringraziamenti... 169
INTRODUZIONE L evoluzione delle reti di telecomunicazione sta convergendo verso lo sviluppo di reti multiservizio basate sul protocollo IP. Insieme ai consueti servizi di Internet, come posta elettronica, web e trasferimento dati, si stanno sviluppando i servizi VoIP (Voice over IP). Questi permettono la trasmissione delle informazioni in tempo reale su una rete che sfrutta lo stack protocollare TCP/IP, definendo un infrastruttura alternativa per le comunicazioni telefoniche basate sulle comuni linee telefoniche PSTN (Public Switched Telephone Network). Un tale sviluppo è legato ai notevoli vantaggi che ne conseguono rispetto alle attuali reti telefoniche e che riguardano non solo aspetti economici, ma anche la possibilità di sviluppare nuovi servizi. La riduzione dei costi è strettamente legata alla differenza concettuale che intercorre tra una rete telefonica tradizionale (PSTN), basata sulla commutazione di circuito e una rete IP, a commutazione di pacchetto. Per quest ultima, l assenza di un canale di comunicazione dedicato comporta una riduzione delle risorse di rete necessarie. Un aspetto particolarmente vantaggioso per i gestori del servizio riguarda la diminuzione dei costi di infrastruttura ( la quale risulta singola anziché doppia) e di cablaggio, visto che è sufficiente un unico tipo di cavo per il collegamento dei PC e dei telefoni. Inoltre, sia i servizi dati che telefonici sono forniti sfruttando la stessa tecnologia di rete, ossia quella che sfrutta la pila protocollare TCP/IP e ciò tende a ridurre i costi dal punto di vista della manutenzione e dell aggiornamento delle reti. Un altro vantaggio da considerare è la portabilità del numero telefonico, nel senso che questo non è più legato fisicamente ad una linea telefonica (centrale relativa alla zona di residenza) bensì è associato, tramite configurazione software, ad un indirizzo di rete IP del PC, del terminale o del TIP (Telefono IP) che viene usato in quel particolare momento dall utente. Un concetto fondamentale per lo sviluppo dei servizi VoIP consiste nel decentramento dell intelligenza dalla rete verso la periferia, da ciò la tendenza a rendere meno complicata la rete e più sofisticati i terminali, tanto che i telefoni IP possono reputarsi dotati di propria intelligenza, visto che oltre alle classiche funzioni di un comune telefono, sono in grado di processare ed elaborare le chiamate ricevute, aggiungendo funzionalità che i comuni telefoni, considerati terminali stupidi, non sono in grado di fornire. Tuttavia VoIP non è esclusivamente vantaggi, in quanto sono presenti tutta una serie di possibili difficoltà che potrebbero influire sulla qualità del servizio. Nelle comunicazioni basate su Internet e
di conseguenza sul protocollo TCP/IP, il problema principale che può manifestarsi riguarda la qualità della trasmissione dati e la gestione dei pacchetti trasmessi (ritardi o perdite), dato che il servizio di trasporto è di tipo best effort. In un collegamento basato su TCP/IP, in cui i dati in trasmissione vengono divisi in pacchetti e spediti nella rete Internet per essere poi ricomposti in ricezione, il problema che sopraggiunge è la possibile perdita di pacchetti. Le difficoltà che possono presentarsi nel caso di utilizzo della tecnologia VoIP riguardano problemi di latenza (è necessario ridurre il tempo di transito e di elaborazione dei dati durante le conversazioni) e anche di integrità dei dati, per questo è necessario evitare perdite di informazioni contenute nei pacchetti dati. Un altro aspetto da considerare riguarda la disponibilità del servizio. Si è soliti esprimere questa caratteristica con un parametro, chiamato DownTime, ossia tempo di non disponibilità del servizio. Per le reti PSTN tale valore è molto basso, mentre per le attuali reti IP non raggiunge ancora valori del tutto accettabili. Un serio problema legato al VoIP riguarda la sicurezza informatica. Infatti, basandosi sull utilizzo del protocollo IP, esso eredita tutte le comuni vulnerabilità che colpiscono i sistemi che sfruttano le reti IP. Ad esempio, i dati che transitano sulla rete sotto forma di pacchetti, possono essere intercettati e i computer essere soggetti ad attacchi informatici e tentativi di intrusione. Non ultimo, esistono problemi di sicurezza legati alle vulnerabilità presenti nei protocolli di comunicazione utilizzati dal VoIP. Tutto ciò è motivato dal fatto che utilizzare il VoIP significa aggiungere nuovi e differenti elementi alla tecnologia di rete già presente: telefoni IP da configurare, server dell architettura SIP. Se poi si considera che occorre tener conto di un certo numero di parametri di configurazione, come indirizzi dei terminali, IP o MAC, protocolli di configurazione dei router, regole di filtraggio del traffico dei firewall, etc., e che molti di questi parametri devono avere la possibilità di essere stabiliti in maniera dinamica tutte le volte che un componente della rete o del sistema VoIP riprende a funzionare dopo un periodo di mancato funzionamento, si capisce bene come un attaccante della rete disponga di un vasto numero di possibilità con cui mettere a rischio la sicurezza in tali sistemi. Lo scopo di questa tesi è stato quello di analizzare sperimentalmente i più comuni attacchi che si possono realizzare contro un sistema VoIP (SIP, Session Initiation Protocol, in particolare) e di valutare le possibili contromisure da adottare al fine di impedirne la loro attuazione. Per eseguire le nostre prove ci siamo serviti di un trial sperimentale realizzato in dipartimento e abbiamo utilizzato numerosi tools disponibili direttamente su Internet e appositamente implementati per testare la sicurezza degli apparati SIP.
Nel primo capitolo vengono mostrati in generale i sistemi SIP. Il secondo capitolo affronta le problematiche di sicurezza presenti nel SIP, riportando un ampia tassonomia degli attacchi e presentando possibili soluzioni di sicurezza, sia in termini di specifici protocolli che di dispositivi di rete. Nel terzo capitolo vengono descritti e classificati i principali Tools utilizzati per testare l architettura SIP e per realizzare specifici attacchi. Gli ultimi quattro capitoli racchiudono la parte sperimentale sviluppata durante questo lavoro di tesi. In particolar modo, nel quarto capitolo vengono mostrate le prove di Scanning e di Enumeration di una rete VoIP. Nel quinto capitolo vengono analizzati attacchi di tipo Fuzzing, mentre negli ultimi due capitoli, rispettivamente, attacchi Flood-based Disruption of Service e Signaling and Media Manipulation.