Denegaciones de servicio en Asterisk

07/25/2008 1 Por viperEF

Se han encontrado dos vulnerabilidades en Asterisk, ambas calificadas como críticas, que podrían permitir a un atacante local o remoto causar una denegación de servicio en los sistemas vulnerables.

Asterisk es una aplicación de una central telefónica (PBX) de código abierto. Como cualquier PBX, se pueden conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectarlos a un proveedor de VoIP para realizar comunicaciones con el exterior. Asterisk es ampliamente usado e incluye un gran número de interesantes

características: buzón de voz, conferencias, IVR, distribución automática de llamadas, etc. Además el software creado por Digium está disponible para plataformas Linux, BSD, MacOS X, Solaris y Microsoft Windows.

A continuación se explican con más detalle las vulnerabilidades encontradas y corregidas:

* Por medio del envío masivo de peticiones POKE a un sistema vulnerable, un atacante podría acaparar todos los números de llamada (líneas) asociados con el protocolo IAX2, impidiendo el procesamiento del resto de llamadas o peticiones, provocando una denegación de servicio. El fallo está causado porque, de acuerdo con el protocolo IAX2, una vez que el servidor recibe una petición de POKE, este mandaría una respuesta PONG y se quedaría esperando por un paquete ACK con el mismo número de llamada, manteniendo ocupada esa línea. El problema ha sido solucionado usando única y exclusivamente el número de llamada 1 (línea 1) para las peticiones POKE y descartando los paquetes ACK para dicha línea.

El investigador que descubrió la vulnerabilidad hizo público un exploit tan solo dos días después de informar al equipo de Digium acerca de la misma y sin dar tiempo suficiente para la creación de un parche. A los desarrolladores de Asterisk, que se enteraron de la existencia del exploit por medio de terceras partes, no les ha gustado esta forma de proceder y la han tachado de irresponsable al poner en riesgo la usabilidad de los sistemas afectados.

* En cuanto a la segunda vulnerabilidad descubierta, está provocada por la falta de un método de validación de destino (handshake) en el protocolo usado para el envío de actualizaciones del firmware, y podría permitir que un atacante remoto falsificase la dirección desde la que se envía dicha petición, causando que el paquete de actualización mandado por el servidor (con un tamaño de 1040 bytes) tuviera como destino una dirección falsificada. Por medio de múltiples peticiones a distintos servidores, un atacante remoto podría dirigir a un sistema una gran cantidad de paquetes de actualización no deseados, causándole una denegación de servicio.

A continuación se muestra una lista de los productos afectados por los dos problemas de seguridad:

Asterisk Open Source 1.0.x, 1.2.x y 1.4.x.

Asterisk Business Edition A.x.x, B.x.x y C.x.x.

La versión pre-release de AsteriskNOW.

Asterisk Appliance Developer Kit 0.x.x.

s800i (Asterisk Appliance) 1.0.x.

Se recomienda actualizar a las siguientes versiones no vulnerables de los distintos productos:

Para Asterisk Open Source actualizar a las versiones 1.2.30 ó 1.4.21.2, disponibles desde:

ftp://ftp.digium.com/pub/telephony/asterisk

Para Asterisk Business Edition actualizar a las versiones B.2.5.4,

C.1.10.3 ó C.2.0.3, disponibles desde:

http://downloads.digium.com/

Para s800i (Asterisk Appliance) actualizar a la versión 1.2.0.1.

Opina sobre esta noticia:

http://www.hispasec.com/unaaldia/3561/comentar

Más información

Asterisk Project Security Advisory – AST-2008-010: Asterisk IAX ‘POKE’ resource exhaustion http://downloads.digium.com/pub/security/AST-2008-010.html

Asterisk Project Security Advisory – AST-2008-011: Traffic amplification in IAX2 firmware provisioning system http://downloads.digium.com/pub/security/AST-2008-011.html

Exploit público para la vulnerabilidad en el protocolo IAX2 de Asterisk http://downloads.securityfocus.com/vulnerabilities/exploits/30321.pl

Pablo Molina