07.01.2015 Views

(in)seguridad en VoIP - Asterisk-ES

(in)seguridad en VoIP - Asterisk-ES

(in)seguridad en VoIP - Asterisk-ES

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong><br />

¿Son nuestras comunicaciones seguras<br />

Saúl Ibarra Corretgé<br />


Índice<br />

Seguridad <strong>en</strong> la PSTN<br />

Seguridad <strong>en</strong> <strong>VoIP</strong><br />

Ataques<br />

Herrami<strong>en</strong>tas<br />

Contramedidas<br />

Conclusiones<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

2


¿Estamos seguros <strong>en</strong> la PSTN<br />

Escuchas<br />

Captura de tráfico<br />

SPAM<br />

...<br />

¿Y <strong>en</strong> la <strong>VoIP</strong>, y <strong>en</strong> Internet<br />

Seguridad <strong>en</strong> la PSTN<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

3


Seguridad <strong>en</strong> <strong>VoIP</strong><br />

Aut<strong>en</strong>ticación: ¿Puede un usuario 'robar' la id<strong>en</strong>tidad<br />

de otro<br />

Integridad: ¿El m<strong>en</strong>saje SIP recibido es igual al<br />

<strong>en</strong>viado<br />

Confid<strong>en</strong>cialidad: ¿Puede algui<strong>en</strong> escuchar nuestros<br />

m<strong>en</strong>sajes SIP<br />

No repudio: ¿Sabemos quién es quién<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

4


¡Al ataque!<br />

Term<strong>in</strong>ales<br />

PBX<br />

Red<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

5


Ataques<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

6


Ataques: Fuzz<strong>in</strong>g<br />

Black-Box Test<strong>in</strong>g<br />

Envío de paquetes malformados <strong>en</strong> busca de errores<br />

<strong>en</strong> la programación<br />

Desbordami<strong>en</strong>tos de buffer, sobrescritura de<br />

memoria...<br />

Fallos de segm<strong>en</strong>tación<br />

Herrami<strong>en</strong>tas<br />

PROTOS SIP Fuzzer<br />

<strong>VoIP</strong>ER<br />

SiVuS<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

7


Ataques: Flood<strong>in</strong>g<br />

Ataques de d<strong>en</strong>egación de servicio (DoS) por<br />

<strong>in</strong>undación<br />

La víctima se ve saturada de paquetes <strong>in</strong>servibles y<br />

es <strong>in</strong>capaz de procesar peticiones válidas<br />

Difer<strong>en</strong>tes opciones<br />

Flood<strong>in</strong>g de m<strong>en</strong>sajes SIP<br />

Flood<strong>in</strong>g UDP<br />

Flood<strong>in</strong>g RTP<br />

Herrami<strong>en</strong>tas<br />

Inviteflood<br />

Udpflood<br />

Rtpflood<br />

Sipsak<br />

Sipp<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

8


Ataques: Eavesdropp<strong>in</strong>g<br />

El ataque más temido / impactante<br />

A través de un Man-In-The-Middle previo, el atacante<br />

consigue “ver” toda la <strong>in</strong>formación<br />

Señalización<br />

Flujo multimedia<br />

Se compromete la privacidad del usuario<br />

Análisis de tráfico<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

9


Ataques: SIP Password Crack<strong>in</strong>g<br />

SIP utiliza HTTP Digest (RFC2617) como mecanismo<br />

de aut<strong>en</strong>ticación<br />

S<strong>en</strong>cillo<br />

Efici<strong>en</strong>te<br />

Inseguro<br />

Funcionami<strong>en</strong>to<br />

Se g<strong>en</strong>era el texto del desafío (digest) y se le <strong>en</strong>vía al<br />

usuario que se quiere aut<strong>en</strong>ticar (junto al error 407)<br />

El usuario lo cifra con su <strong>in</strong>formación (realm, usuario,<br />

contraseña) y lo <strong>en</strong>vía<br />

El aut<strong>en</strong>ticador podrá validar las cred<strong>en</strong>ciales gracias al<br />

digest<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

10


Ataques: SIP Password Crack<strong>in</strong>g (2)<br />

D<strong>en</strong>tro de un digest:<br />

Realm: Id<strong>en</strong>tifica el dom<strong>in</strong>io del cual el servidor es<br />

responsable<br />

Nonce: Str<strong>in</strong>g g<strong>en</strong>erado de forma única para cada<br />

desafío (str<strong>in</strong>g arbitrario + marca de tiempo)<br />

Algorithm: De mom<strong>en</strong>to solo esta soportado MD5 -> se<br />

puede romper!<br />

Herrami<strong>en</strong>tas<br />

SIPdump y SIPcrack<br />

Ca<strong>in</strong> & Abel<br />

John The Ripper<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

11


Ataques: Exploits<br />

Pequeños programas o scripts que se aprovechan de<br />

una vulnerabilidad para atacar un servicio<br />

Ataques DoS<br />

Vulnerabilidades de <strong>Asterisk</strong> -> ASA<br />

<strong>Asterisk</strong> 1.4.0 se cae si se llega un INVITE con el<br />

Cont<strong>en</strong>t-L<strong>en</strong>gth <strong>en</strong> negativo<br />

Xlite 1103<br />

Al <strong>en</strong>viarle un INVITE con el Cont<strong>en</strong>t-L<strong>en</strong>gth >=<br />

1073741823 se pone a consumir RAM y decae el<br />

r<strong>en</strong>dimi<strong>en</strong>to del sistema<br />

...<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

12


Ataques: Errores de configuración<br />

<strong>Asterisk</strong><br />

;allowguest=no ; Allow or reject guest calls<br />

(default is yes)<br />

Contextos adecuados al nivel de privilegios del<br />

usuario.<br />

T: Allow the call<strong>in</strong>g user to transfer the call by<br />

hitt<strong>in</strong>g the bl<strong>in</strong>d xfer keys (features.conf)<br />

Op<strong>en</strong>SER/Kamailio/Op<strong>en</strong>SIPS/...<br />

T<strong>en</strong>emos todo el control a muy bajo nivel<br />

Aunt<strong>en</strong>ticación de RE-INVITEs<br />

Comprobaciones de to tag<br />

...<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

13


Ataques: SPIT<br />

Spam Over Internet Telephony<br />

¡Hola amigo! ¿Desea ser tan feliz como yo Pues<br />

ya puede serlo <strong>en</strong>viando 1 dolar a Hombre Feliz al<br />

742 de Evergre<strong>en</strong> Terrace , no lo dude ¡la felicidad<br />

eterna esta a solo un dolar!<br />

--Homer J. Simpson<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

14


Ataques: Servicios<br />

Los servidores <strong>Asterisk</strong> normalm<strong>en</strong>te <strong>in</strong>cluy<strong>en</strong><br />

muchos servicios<br />

DHCP<br />

TFTP<br />

E-Mail<br />

...<br />

El ataque a estos servicios puede comprometer la<br />

<strong>in</strong>tegridad del sistema<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

15


Ataques: Otros<br />

Toll fraud<br />

Register hijack<strong>in</strong>g<br />

Media and signall<strong>in</strong>g mangl<strong>in</strong>g<br />

Call teardown<br />

...<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

16


Herrami<strong>en</strong>tas<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

17


Herrami<strong>en</strong>tas básicas de flood<strong>in</strong>g<br />

Ataque DoS por <strong>in</strong>undación<br />

Paquet loss<br />

Lat<strong>en</strong>cia<br />

Jitter<br />

RTPflood, INVITEflood, UDPflood<br />

Uso (<strong>en</strong>viamos 1.000.000 de paquetes):<br />

udpflood 192.168.1.3 192.168.1.251 9 5060 1000000<br />

<strong>in</strong>viteflood br0 200 192.168.21 192.168.1.251 1000000<br />

rtpflood 192.168.1.3 192.168.1.251 9 16384 1000000<br />

15000 2000 1886986910<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

18


RTPflood, INVITEflood, UDPflood<br />

Consecu<strong>en</strong>cias<br />

Interrupción del servicio<br />

No recuperación<br />

Degradación del funcionami<strong>en</strong>to<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

19


Sipsak y SIPp<br />

Herrami<strong>en</strong>tas estándar para b<strong>en</strong>chmark<strong>in</strong>g y test<strong>in</strong>g<br />

de SIP<br />

También las podemos usar para hacer flood<strong>in</strong>g ;)<br />

Uso:<br />

sipsak -F -s sip:saghul@192.168.1.111<br />

sipp 192.168.1.111 (pulsar ++++)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

20


Ettercap<br />

Herrami<strong>en</strong>ta popular para realizar ataques MitM (Man<br />

In The Middle)<br />

Para capturar señalización / flujo multimedia<br />

necesitamos ponernos “<strong>en</strong> medio”<br />

Uso:<br />

Habilitamos el forward<strong>in</strong>g de paquetes IP<br />

echo 1 > /proc/sys/net/ipv4/ip_forward<br />

Nos ponemos “<strong>en</strong> medio” :)<br />

ettercap -o -T -P repoison_arp -M arp:remote /<br />

192.168.1.111/ //<br />

¡Ahora podemos capturar todo el tráfico! :)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

21


SIPdump y SIPcrack<br />

Herrami<strong>en</strong>tas para capturar tráfico SIP y crackear las<br />

contraseñas<br />

Alternativas<br />

Wireshark<br />

John The Ripper<br />

Uso:<br />

sipdump -i eth0 superdump.pcap<br />

mkfifo mififo<br />

john --<strong>in</strong>crem<strong>en</strong>tal=alpha --stdout=8 > mififo<br />

sipcrack -w mififo superdump.pcap<br />

Ejemplo: Password 'saghul' crackeado ¡<strong>en</strong> 118s!<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

22


<strong>VoIP</strong>ER<br />

Pot<strong>en</strong>te fuzzer con muchos casos de prueba<br />

Test<strong>in</strong>g para detectar fallos <strong>en</strong> software y hardware<br />

Uso:<br />

python fuzzer.py -f SIPInviteCommonFuzzer -i<br />

192.168.3.101 -p 5060 -a sessions/sc<strong>en</strong>1 -c 0<br />

python fuzzer.py -f SIPInviteCommonFuzzer -c 2 -i<br />

192.168.3.101 -p 5060 -a sessions/sc<strong>en</strong>2 -m 1024<br />

python torturer.py -i 192.168.1.2 -p 5060 -c 0 -t <strong>in</strong>valid<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

23


Conjunto de herrami<strong>en</strong>tas de <strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong><br />

Svmap (escaneador SIP)<br />

Svcrack (crackeador de contraseñas)<br />

Svwar (<strong>en</strong>umerador de ext<strong>en</strong>siones)<br />

Uso:<br />

svmap.py 192.168.1.1-254<br />

svwar.py -e200-299 192.168.1.111<br />

svcrack.py -u200 dict.dat 192.168.1.111<br />

SIPVicious<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

24


Wireshark<br />

Pot<strong>en</strong>te herrami<strong>en</strong>ta de análisis de redes<br />

Plug<strong>in</strong>s para <strong>VoIP</strong><br />

Análisis de tráfico<br />

Podemos analizar los streams RTP<br />

¡Si el audio es g711, podemos escucharlo!<br />

Ettercap + Wireshark = EAV<strong>ES</strong>DROPPING<br />

Escuchas no autorizadas<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

25


Wireshark(2)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

26


Wireshark(3)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

27


Ca<strong>in</strong> & Abel<br />

Herrami<strong>en</strong>ta completa de crack<strong>in</strong>g con<br />

funcionalidades de <strong>VoIP</strong><br />

ARP Pison<strong>in</strong>g con 1 click<br />

¡Eavesdropp<strong>in</strong>g con cualquier codec!<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

28


SiVuS<br />

Herrami<strong>en</strong>ta de auditoría, <strong>seguridad</strong> y g<strong>en</strong>eración de<br />

tráfico SIP<br />

Permite testear dispositivos SIP <strong>en</strong> busca de<br />

vulnerabilidades<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

29


SiVuS(2)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

30


SiVuS(3)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

31


SiVuS(4)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

32


Herrami<strong>en</strong>tas para ataques a servicios<br />

DHCP<br />

Si se agota el rango los term<strong>in</strong>ales no podrán solicitar<br />

una nueva IP<br />

Dhcpx<br />

dhcpx -i eth0 -vv -D 192.168.1.254<br />

TFTP<br />

TFTP no requiere aut<strong>en</strong>ticación<br />

Los term<strong>in</strong>ales siempre pid<strong>en</strong> los ficheros con un<br />

nombre concreto<br />

Se puede automatizar un ataque por fuerza bruta<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

33


Herrami<strong>en</strong>tas: <strong>Asterisk</strong><br />

Números de teléfono<br />

+<br />

script<strong>in</strong>g<br />

+<br />

callfiles<br />

=<br />

SPIT<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

34


Contramedidas<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

35


Evitamos el flood<strong>in</strong>g (<strong>en</strong> gran medida)<br />

Números de secu<strong>en</strong>cia<br />

Three way handshake<br />

Si se usa TCP es necesario que TODOS los<br />

term<strong>in</strong>ales us<strong>en</strong> exclusivam<strong>en</strong>te TCP.<br />

SIP sobre TCP/TLS<br />

Posibilidad de usar TLS (RFC2246)<br />

Cifrado de la señalización<br />

Mecanismo fuerte de aut<strong>en</strong>ticación<br />

¡Ojo! No es <strong>en</strong>d-to-<strong>en</strong>d<br />

Se garantiza la aut<strong>en</strong>ticidad, confid<strong>en</strong>cialidad,<br />

<strong>in</strong>tegridad y no repudio<br />

A m<strong>en</strong>os que sea un <strong>in</strong>sider<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

36


SRTP y ZRTP<br />

Objetivo de SRTP (RFC3711): Asegurar el tráfico<br />

RTP<br />

Cifrado<br />

Aut<strong>en</strong>ticación<br />

Integridad<br />

Mecanismo de clave maestra y claves derivadas para<br />

el cifrado (A<strong>ES</strong>)<br />

Obt<strong>en</strong>ción de la primera clave maestra<br />

ZRTP<br />

MIKEY<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

37


SRTP y ZRTP (2)<br />

ZRTP: Draft lanzado por Phil Zimmerman, John<br />

Callas y Alan Johnston <strong>en</strong> 2006<br />

Especifica un mecanismo de <strong>in</strong>tercambio de claves<br />

basado <strong>en</strong> Diffie-Hellman<br />

La negociación se realiza a nivel de RTP (<strong>in</strong>band)<br />

Agnóstico a la señalización (H323, Jabber,...)<br />

No se necesitan claves compartidas ni estructura PKI<br />

(claves efímeras)<br />

Una vez negociadas las claves la comunicación se<br />

cifra mediante SRTP<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

38


Túneles VPN<br />

Posibilidad de establecer conexiones seguras <strong>en</strong><br />

medios hostiles<br />

Internet<br />

Relativam<strong>en</strong>te s<strong>en</strong>cillas de implem<strong>en</strong>tar<br />

Bajo coste<br />

Algunos term<strong>in</strong>ales implem<strong>en</strong>tan soluciones VPN<br />

Snom 370 (Op<strong>en</strong>VPN)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

39


VLANs<br />

Nos permit<strong>en</strong> separar las redes<br />

Voz<br />

Datos<br />

Restricciones de acceso<br />

Filtrado por MAC<br />

Filtrado por puerto 802.x<br />

QoS<br />

...<br />

No imposibilitan los ataques pero lo pon<strong>en</strong> más<br />

difícil :)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

40


Sistemas de Detección de Intrusos (IDS)<br />

Sistema para detectar accesos no autorizados<br />

Sistema IDS/IDP<br />

Software Libre<br />

Plug<strong>in</strong>s libres (Community)<br />

Plug<strong>in</strong>s propietarios (VRT)<br />

Plug<strong>in</strong>s para <strong>VoIP</strong> y SIP<br />

Comunity<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

41


Personas<br />

Algui<strong>en</strong> que configure bi<strong>en</strong> tu<br />

sistema ;)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

42


Conclusiones<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

43


Conclusiones<br />

Mant<strong>en</strong>er un sistema 100% seguro es complicado<br />

$$$<br />

La g<strong>en</strong>te no suele preocuparse mucho por la<br />

<strong>seguridad</strong><br />

Preguntas <strong>en</strong> <strong>Asterisk</strong>-<strong>ES</strong><br />

Las herrami<strong>en</strong>tas actuales (algunas) requier<strong>en</strong><br />

amplios conocimi<strong>en</strong>tos por parte del atacante<br />

Es necesario disponer de acceso a recursos<br />

privilegiados<br />

La <strong>VoIP</strong> tradicional (todo sobre UDP) es INSEGURA<br />

PERO, sabremos solucionarlo ;)<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

44


F<strong>in</strong><br />

“The power to destroy a th<strong>in</strong>g is the absolute<br />

control over it.”<br />

-- Paul Atreides<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

45


Refer<strong>en</strong>cias<br />

Hack<strong>in</strong>g Exposed: <strong>VoIP</strong> (David Endler & Mark Collier)<br />

Pres<strong>en</strong>tación de Txipi (http://www.slideshare.net/txipi)<br />

http://www.voipsa.org/Resources/tools.php<br />

Todas las imág<strong>en</strong>es son propiedad de sus<br />

respectivos autores.<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

46


Lic<strong>en</strong>cia<br />

Saúl Ibarra Corretgé - http://www.saghul.net<br />

Reconocimi<strong>en</strong>to - No comercial - Compartir igual: El<br />

material creado por un artista puede ser distribuido,<br />

copiado y exhibido por terceros si se muestra <strong>en</strong> los<br />

créditos. No se puede obt<strong>en</strong>er n<strong>in</strong>gún b<strong>en</strong>eficio<br />

comercial y las obras derivadas ti<strong>en</strong><strong>en</strong> que estar bajo<br />

los mismos térm<strong>in</strong>os de lic<strong>en</strong>cia que el trabajo orig<strong>in</strong>al.<br />

(<strong>in</strong>)<strong>seguridad</strong> <strong>en</strong> <strong>VoIP</strong> – voip2day 2k8<br />

47

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!