(in)seguridad en VoIP - Asterisk-ES
Transcripción
(in)seguridad en VoIP - Asterisk-ES
(in)seguridad en VoIP ¿Son nuestras comunicaciones seguras? Saúl Ibarra Corretgé <http://www.saghul.net> Índice Seguridad en la PSTN Seguridad en VoIP Ataques Herramientas Contramedidas Conclusiones (in)seguridad en VoIP – voip2day 2k8 2 Seguridad en la PSTN ¿Estamos seguros en la PSTN? Escuchas Captura de tráfico SPAM ... ¿Y en la VoIP, y en Internet? (in)seguridad en VoIP – voip2day 2k8 3 Seguridad en VoIP Autenticación: ¿Puede un usuario 'robar' la identidad de otro? Integridad: ¿El mensaje SIP recibido es igual al enviado? Confidencialidad: ¿Puede alguien escuchar nuestros mensajes SIP? No repudio: ¿Sabemos quién es quién? (in)seguridad en VoIP – voip2day 2k8 4 ¡Al ataque! Terminales PBX Red (in)seguridad en VoIP – voip2day 2k8 5 Ataques (in)seguridad en VoIP – voip2day 2k8 6 Ataques: Fuzzing Black-Box Testing Envío de paquetes malformados en busca de errores en la programación Desbordamientos de buffer, sobrescritura de memoria... Fallos de segmentación Herramientas PROTOS SIP Fuzzer VoIPER SiVuS (in)seguridad en VoIP – voip2day 2k8 7 Ataques: Flooding Ataques de denegación de servicio (DoS) por inundación La víctima se ve saturada de paquetes inservibles y es incapaz de procesar peticiones válidas Diferentes opciones Flooding de mensajes SIP Flooding UDP Flooding RTP Herramientas Inviteflood Udpflood Rtpflood Sipsak Sipp (in)seguridad en VoIP – voip2day 2k8 8 Ataques: Eavesdropping El ataque más temido / impactante A través de un Man-In-The-Middle previo, el atacante consigue “ver” toda la información Señalización Flujo multimedia Se compromete la privacidad del usuario Análisis de tráfico (in)seguridad en VoIP – voip2day 2k8 9 Ataques: SIP Password Cracking SIP utiliza HTTP Digest (RFC2617) como mecanismo de autenticación Sencillo Eficiente Inseguro Funcionamiento Se genera el texto del desafío (digest) y se le envía al usuario que se quiere autenticar (junto al error 407) El usuario lo cifra con su información (realm, usuario, contraseña) y lo envía El autenticador podrá validar las credenciales gracias al digest (in)seguridad en VoIP – voip2day 2k8 10 Ataques: SIP Password Cracking (2) Dentro de un digest: Realm: Identifica el dominio del cual el servidor es responsable Nonce: String generado de forma única para cada desafío (string arbitrario + marca de tiempo) Algorithm: De momento solo esta soportado MD5 -> se puede romper! Herramientas SIPdump y SIPcrack Cain & Abel John The Ripper (in)seguridad en VoIP – voip2day 2k8 11 Ataques: Exploits Pequeños programas o scripts que se aprovechan de una vulnerabilidad para atacar un servicio Ataques DoS Vulnerabilidades de Asterisk -> ASA Asterisk 1.4.0 se cae si se llega un INVITE con el Content-Length en negativo Xlite 1103 Al enviarle un INVITE con el Content-Length >= 1073741823 se pone a consumir RAM y decae el rendimiento del sistema ... (in)seguridad en VoIP – voip2day 2k8 12 Ataques: Errores de configuración Asterisk ;allowguest=no ; Allow or reject guest calls (default is yes) Contextos adecuados al nivel de privilegios del usuario. T: Allow the calling user to transfer the call by hitting the blind xfer keys (features.conf) OpenSER/Kamailio/OpenSIPS/... Tenemos todo el control a muy bajo nivel Auntenticación de RE-INVITEs Comprobaciones de to tag ... (in)seguridad en VoIP – voip2day 2k8 13 Ataques: SPIT Spam Over Internet Telephony ¡Hola amigo! ¿Desea ser tan feliz como yo? Pues ya puede serlo enviando 1 dolar a Hombre Feliz al 742 de Evergreen Terrace , no lo dude ¡la felicidad eterna esta a solo un dolar! --Homer J. Simpson (in)seguridad en VoIP – voip2day 2k8 14 Ataques: Servicios Los servidores Asterisk normalmente incluyen muchos servicios DHCP TFTP E-Mail ... El ataque a estos servicios puede comprometer la integridad del sistema (in)seguridad en VoIP – voip2day 2k8 15 Ataques: Otros Toll fraud Register hijacking Media and signalling mangling Call teardown ... (in)seguridad en VoIP – voip2day 2k8 16 Herramientas (in)seguridad en VoIP – voip2day 2k8 17 RTPflood, INVITEflood, UDPflood Herramientas básicas de flooding Ataque DoS por inundación Paquet loss Latencia Jitter Uso (enviamos 1.000.000 de paquetes): udpflood 192.168.1.3 192.168.1.251 9 5060 1000000 inviteflood br0 200 192.168.21 192.168.1.251 1000000 rtpflood 192.168.1.3 192.168.1.251 9 16384 1000000 15000 2000 1886986910 (in)seguridad en VoIP – voip2day 2k8 18 RTPflood, INVITEflood, UDPflood Consecuencias Interrupción del servicio No recuperación Degradación del funcionamiento (in)seguridad en VoIP – voip2day 2k8 19 Sipsak y SIPp Herramientas estándar para benchmarking y testing de SIP También las podemos usar para hacer flooding ;) Uso: sipsak -F -s sip:[email protected] sipp 192.168.1.111 (pulsar ++++) (in)seguridad en VoIP – voip2day 2k8 20 Ettercap Herramienta popular para realizar ataques MitM (Man In The Middle) Para capturar señalización / flujo multimedia necesitamos ponernos “en medio” Uso: Habilitamos el forwarding de paquetes IP echo 1 > /proc/sys/net/ipv4/ip_forward Nos ponemos “en medio” :) ettercap -o -T -P repoison_arp -M arp:remote / 192.168.1.111/ // ¡Ahora podemos capturar todo el tráfico! :) (in)seguridad en VoIP – voip2day 2k8 21 SIPdump y SIPcrack Herramientas para capturar tráfico SIP y crackear las contraseñas Alternativas Wireshark John The Ripper Uso: sipdump -i eth0 superdump.pcap mkfifo mififo john --incremental=alpha --stdout=8 > mififo sipcrack -w mififo superdump.pcap Ejemplo: Password 'saghul' crackeado ¡en 118s! (in)seguridad en VoIP – voip2day 2k8 22 VoIPER Potente fuzzer con muchos casos de prueba Testing para detectar fallos en software y hardware Uso: python fuzzer.py -f SIPInviteCommonFuzzer -i 192.168.3.101 -p 5060 -a sessions/scen1 -c 0 python fuzzer.py -f SIPInviteCommonFuzzer -c 2 -i 192.168.3.101 -p 5060 -a sessions/scen2 -m 1024 python torturer.py -i 192.168.1.2 -p 5060 -c 0 -t invalid (in)seguridad en VoIP – voip2day 2k8 23 SIPVicious Conjunto de herramientas de seguridad en VoIP Svmap (escaneador SIP) Svcrack (crackeador de contraseñas) Svwar (enumerador de extensiones) Uso: svmap.py 192.168.1.1-254 svwar.py -e200-299 192.168.1.111 svcrack.py -u200 dict.dat 192.168.1.111 (in)seguridad en VoIP – voip2day 2k8 24 Wireshark Potente herramienta de análisis de redes Plugins para VoIP Análisis de tráfico Podemos analizar los streams RTP ¡Si el audio es g711, podemos escucharlo! Ettercap + Wireshark = EAVESDROPPING Escuchas no autorizadas (in)seguridad en VoIP – voip2day 2k8 25 Wireshark(2) (in)seguridad en VoIP – voip2day 2k8 26 Wireshark(3) (in)seguridad en VoIP – voip2day 2k8 27 Cain & Abel Herramienta completa de cracking con funcionalidades de VoIP ARP Pisoning con 1 click ¡Eavesdropping con cualquier codec! (in)seguridad en VoIP – voip2day 2k8 28 SiVuS Herramienta de auditoría, seguridad y generación de tráfico SIP Permite testear dispositivos SIP en busca de vulnerabilidades (in)seguridad en VoIP – voip2day 2k8 29 SiVuS(2) (in)seguridad en VoIP – voip2day 2k8 30 SiVuS(3) (in)seguridad en VoIP – voip2day 2k8 31 SiVuS(4) (in)seguridad en VoIP – voip2day 2k8 32 Herramientas para ataques a servicios DHCP Si se agota el rango los terminales no podrán solicitar una nueva IP Dhcpx dhcpx -i eth0 -vv -D 192.168.1.254 TFTP TFTP no requiere autenticación Los terminales siempre piden los ficheros con un nombre concreto Se puede automatizar un ataque por fuerza bruta (in)seguridad en VoIP – voip2day 2k8 33 Herramientas: Asterisk Números de teléfono + scripting + callfiles = SPIT (in)seguridad en VoIP – voip2day 2k8 34 Contramedidas (in)seguridad en VoIP – voip2day 2k8 35 SIP sobre TCP/TLS Evitamos el flooding (en gran medida) Números de secuencia Three way handshake Si se usa TCP es necesario que TODOS los terminales usen exclusivamente TCP. Posibilidad de usar TLS (RFC2246) Cifrado de la señalización Mecanismo fuerte de autenticación ¡Ojo! No es end-to-end Se garantiza la autenticidad, confidencialidad, integridad y no repudio A menos que sea un insider (in)seguridad en VoIP – voip2day 2k8 36 SRTP y ZRTP Objetivo de SRTP (RFC3711): Asegurar el tráfico RTP Cifrado Autenticación Integridad Mecanismo de clave maestra y claves derivadas para el cifrado (AES) Obtención de la primera clave maestra ZRTP MIKEY (in)seguridad en VoIP – voip2day 2k8 37 SRTP y ZRTP (2) ZRTP: Draft lanzado por Phil Zimmerman, John Callas y Alan Johnston en 2006 Especifica un mecanismo de intercambio de claves basado en Diffie-Hellman La negociación se realiza a nivel de RTP (inband) Agnóstico a la señalización (H323, Jabber,...) No se necesitan claves compartidas ni estructura PKI (claves efímeras) Una vez negociadas las claves la comunicación se cifra mediante SRTP (in)seguridad en VoIP – voip2day 2k8 38 Túneles VPN Posibilidad de establecer conexiones seguras en medios hostiles Internet Relativamente sencillas de implementar Bajo coste Algunos terminales implementan soluciones VPN Snom 370 (OpenVPN) (in)seguridad en VoIP – voip2day 2k8 39 VLANs Nos permiten separar las redes Voz Datos Restricciones de acceso Filtrado por MAC Filtrado por puerto 802.x QoS ... No imposibilitan los ataques pero lo ponen más difícil :) (in)seguridad en VoIP – voip2day 2k8 40 Sistemas de Detección de Intrusos (IDS) Sistema para detectar accesos no autorizados Sistema IDS/IDP Software Libre Plugins libres (Community) Plugins propietarios (VRT) Plugins para VoIP y SIP Comunity (in)seguridad en VoIP – voip2day 2k8 41 Personas Alguien que configure bien tu sistema ;) (in)seguridad en VoIP – voip2day 2k8 42 Conclusiones (in)seguridad en VoIP – voip2day 2k8 43 Conclusiones Mantener un sistema 100% seguro es complicado $$$ La gente no suele preocuparse mucho por la seguridad Preguntas en Asterisk-ES Las herramientas actuales (algunas) requieren amplios conocimientos por parte del atacante Es necesario disponer de acceso a recursos privilegiados La VoIP tradicional (todo sobre UDP) es INSEGURA PERO, sabremos solucionarlo ;) (in)seguridad en VoIP – voip2day 2k8 44 Fin “The power to destroy a thing is the absolute control over it.” -- Paul Atreides (in)seguridad en VoIP – voip2day 2k8 45 Referencias Hacking Exposed: VoIP (David Endler & Mark Collier) Presentación de Txipi (http://www.slideshare.net/txipi) http://www.voipsa.org/Resources/tools.php Todas las imágenes son propiedad de sus respectivos autores. (in)seguridad en VoIP – voip2day 2k8 46 Licencia Saúl Ibarra Corretgé - http://www.saghul.net Reconocimiento - No comercial - Compartir igual: El material creado por un artista puede ser distribuido, copiado y exhibido por terceros si se muestra en los créditos. No se puede obtener ningún beneficio comercial y las obras derivadas tienen que estar bajo los mismos términos de licencia que el trabajo original. (in)seguridad en VoIP – voip2day 2k8 47