2011-07-12 15 views
12

Cuando se utilizan programas de Erlang como ejabberd, se inicia Erlang port mapper daemonepmd y se abre el puerto 4369.¿Cuál es el peor caso cuando el puerto epmd está abierto?

Este puerto es accesible a través de Internet (solo las versiones más recientes de ejabberd permiten configurar que epmd se una a localhost) de forma predeterminada.

La documentación de ejabberd recomienda blocking this port via packet filter rules y comment in the Debian bug tracker llama a este comportamiento predeterminado 'una pesadilla desde el punto de vista de la seguridad'.

¿Cuál es el peor de los casos cuando se está ejecutando ejabberd y el puerto 4369 no está bloqueado?

Digamos que el firewall está mal configurado por accidente o algo así.

¿Cuál sería la cosa más malvada que un atacante Erlang-fluido podría hacer en este puerto?

¿Bajo qué usuario/privilegios se ejecuta el epmd bajo una distribución de Linux (por ejemplo, Debian/Ubuntu)?

Respuesta

1

Puede encontrar las direcciones de origen/destino y el número de puerto de las conexiones activas entre los haces. Esto puede conducir a ataques DoS a las conexiones entre BEAM.

+0

Supongo que un BEAM es algo así como un proceso en Erlang? – maxschlepzig

+0

BEAM es una máquina virtual. BEAM inicia y recibe conexiones TCP para conexiones entre BEAM. Por lo tanto, no es un proceso de Erlang, sino que es un programa Linux o UNIX que se ejecuta como el proceso de Linux de UNIX. – jj1bdx

5

Gran pregunta.

Además del puerto 4369, también debe tener en cuenta los puertos que sugerirá para la comunicación entre nodos real (5001-6024 por defecto). Al igual que todos los servicios de tcp, será vulnerable a los malvados, ya que el software nunca está libre de errores y, por lo tanto, puede ser pirateado. Piensa en SSH y en las vulnerabilidades de desbordamiento del búfer. Como 'epmd' no proporciona muchos servicios, la comunicación entrenado se autentica con un código de cookie seguro y con la edad avanzada de Erlang, no se esperan muchos errores en esa área. Pero un buen pedigrí solo no cuenta en el área de seguridad. ;-)

Mientras escribía, necesita un firewall configurado correctamente para asegurarse de que el servidor no esté expuesto así. Debe asegurarse de que en su proceso de mantenimiento se compruebe minuciosamente el correcto funcionamiento del firewall.

Ah, y ejecuto mi nodo Erlang como usuario no root con permisos de archivo limitados.

Cuestiones relacionadas