(in)seguridad en VoIP - Asterisk-ES
(in)seguridad en VoIP - Asterisk-ES
(in)seguridad en VoIP - Asterisk-ES
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
(<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