viernes, 17 de febrero de 2012

Siete pasos para mejorar la seguridad SIP en Asterisk

Aqui les dejo unos excelente consejos que escribio Rodrigo A. MArtin para mejoras la seguridad sip en asterisk.

En los últimos meses han aparecido una serie de nuevas herramientas que hace
posible a cualquier novato atacar y cometer fraudes en equipos SIP, incluyendo los
sistemas basados en Asterisk.
Existen herramientas fácilmente disponibles que hacen un barrido de redes en
busca de hosts que ofrezcan servicios SIP, luego, una vez encontrado, realiza un
barrido en busca de extensiones y contraseñas.
Exiten ciertas reglas, de aplicación inmediata, que eliminan muchos de los
problemas de seguridad, protegiendo al servidor Asterisk de los barridos masivos y
los ataques posteriores. Estos métodos y herramientas de protección ya existen,
simplemente hay que aplicarlos.

1) No aceptar pedidos de autenticación SIP desde cualquier dirección IP.
Utilizar las líneas “permit=” y “deny=” de sip.conf para sólo permitir un
subconjunto razonable de direcciones IP alcanzar cada usuario/extensión listado en
el archivo sip.conf. Aún aceptando llamadas entrantes desde “anywhere” (via
[default]) no se debe permitir a esos usuarios alcanzar elementos autenticados.

2) Estblecer el valor de la entrada “alwaysauthreject=yes” en el archivo
sip.conf. Esta opción está disponible desde la versión 1.2 de Asterisk, pero su por
defecto su valor es "no", lo que puede ser potencialmente inseguro. Estableciendo
este valor en "yes" se rechazarán los pedidos de autenticación fallidos utilizando
nombres de extensiones válidas con la misma información de un rechazo de usuario
inexistente. De esta forma no facilitamos la tarea al atacante para detectar
nombres de extensiones existentes utilizando técnicas de "fuerza bruta".

3) Utilizar claves SEGURAS para las entidades SIP. Este es probablemente la
más importante medida de seguridad. Si alguna vez viste programas que generan y
prueban claves por fuerza bruta sabrás que se necesita algo más que palabras y
números para una clave segura. Usar símbolos, números, una mezcla de letras
minúsculas y mayúsculas y al menos 12 caracteres de largo.

4) Bloquear los puertos del Asterisk Manager Interface. Usar “permit=” y
“deny=” en manager.conf para limitar las conexiones entrantes sólo a hosts
conocidos. Una vez más utilizar claves seguras aquí también, 12 caracteres al
menos en una combinación de números, letras y símbolos.

5) Permitir sólo una o dos llamadas por vez por entidades SIP cuando sea
posible. Limitar el uso no autorizado de las líneas voip es una sabia decisión, esto
también es util para el caso que usuarios legítimos hagan pública su clave y pierdan
control de su uso.

6) Los nombres de usuarios SIP deben ser diferentes que sus extensiones.
A pesar de ser conveniente tener una extensión “1234Z que mapee a una entrada
SIP “1234Z la cual es también el usuario SIP “1234Z, esto también facilita a los
atacantes para descubrir nombres de autenticación SIP. En su ligar usar las
direciones MAC del dispositivo, o alguna combinación de frases comunes +
extensión MD5 hash (por ejemplo: desde el shell prompt, hacer “md5 -s
ThePassword5000Z)

7) Asegurarse que el contexto [default] sea seguro. No permitir que
llamadores no autenticados alcancen contextos que les permitan llamar. Permitir
sólo una cantidad limitada de llamadas activas pasen por el contexto default
(utilizar la función “GROUP” como contador). Prohibir totalmente las llamadas no
autenticadas (si es que así lo queremos) estableciendo “allowguest=no” en la parte
[general] de sip.conf.

2 comentarios: