¿Peligros de abrir una amplia gama de puertos? (mosh)

29

¿Por qué generalmente configuramos los cortafuegos para filtrar todo el tráfico que no permitimos específicamente? ¿Es esto solo una capa adicional de seguridad para la defensa en profundidad que no nos compra nada si no estamos ejecutando malware en nuestro sistema?

¿Existe algún peligro en la apertura, por ejemplo, los puertos 60000 a 61000 para las conexiones UDP entrantes que es significativamente menos segura que la apertura de unos pocos puertos?

Acabo de escuchar sobre mosh que se anuncia como una mejor manera de hacer ssh móvil (a través de wifi / teléfono celular). Mosh usa UDP en lugar de TCP, por lo que si ingresa brevemente a un túnel o cambia su dirección IP (cambiando torres de teléfonos celulares), no tiene que esperar para regresar del control de congestión o establecer una nueva sesión ssh. Básicamente, mosh usa ssh para iniciar remotamente un servidor mosh como usuario sin privilegios, intercambia una clave AES-OCB con ssh y luego envía / recibe paquetes cifrados (con números de secuencia) a un puerto en el rango 60000-61000, que debería configura tu firewall para que se abra.

Me siento un poco incómodo con la apertura de ~ 1000 puertos para conexiones entrantes (UDP), pero no puedo pensar en una buena razón para esto. Si ningún software está escuchando datos en ese puerto, simplemente se ignora, ¿verdad? (En edición: no: en realidad indica al servidor que devuelva una respuesta inalcanzable de destino ICMP (ping)). Supongo que si tuviera malware ejecutándose en mi servidor, podría estar esperando para escuchar las instrucciones de las direcciones IP falsificadas en uno de estos puertos abiertos. Sin embargo, el malware que se ejecuta en sistemas conectados a Internet ya podría establecer conexiones / descargar información de otros servidores de malware (aunque tendría que conocer una dirección IP) y obtener instrucciones, por lo que la seguridad no es mucho menos segura.

EDIT: interesante, acabo de ver esta otra pregunta que me llevó a lea acerca de UDP_flood_attack . Supongo que, además, necesitaría deshabilitar de algún modo el envío de respuestas inalcanzables de destino de ping para los puertos UDP recién abiertos.

    
pregunta dr jimbob 12.04.2012 - 22:47
fuente

4 respuestas

11

Además de la respuesta de Justin sobre la apertura involuntaria de aplicaciones para ser accedidas de forma remota, recuerde que incluso si no hay nada que escuche específicamente una conexión, el sistema operativo SIEMPRE va a estar escuchando, aunque solo sea para enrutar / asignar el mapa al lugar adecuado. Procesar o rechazar o dejar caer silenciosamente el paquete. Por lo tanto, el sistema operativo sigue siendo un vector de ataque específico que puede permanecer desprotegido cuando un firewall permite que el tráfico fluya a un puerto "inactivo".

Sin embargo, todas las cosas son iguales en este escenario, abrir un puerto inactivo o 1000 puertos inactivos hace poca diferencia. Pero, definitivamente, preste atención al consejo de principio de privilegio mínimo.

    
respondido por el logicalscope 12.04.2012 - 23:04
fuente
10

Por lo que tengo entendido, Mosh no necesita mil puertos para funcionar; solo necesita uno (por cliente) Por lo tanto, puede abrir cualquier puerto único y decirle a Mosh que lo use (de el manual ):

mosh -p 60000 my.server

¿Cuál es la razón para seleccionar el puerto al azar? Esto no lo entiendo.

[ACTUALIZACIÓN] no selecciona un puerto aleatorio. Busca en un conjunto de puertos para encontrar el primero abierto ( vea el código ). Si no fuera por esto, tendría que elegir un puerto libre manualmente en un sistema multiusuario.

Esto significa que solo necesitas tantos puertos como usuarios tienes (personas que podrían usar mosh) en tu servidor . Si se trata de su propia caja, solo necesita abrir el puerto 60000.

    
respondido por el Leonid Shevtsov 11.06.2012 - 18:35
fuente
6

El problema es que abrir una gran variedad de puertos puede permitir que un atacante exponga otra aplicación que pueda estar usando esos puertos. Por ejemplo, mi aplicación EMR que se usa para almacenar registros de pacientes podría configurarse para usar ese rango de puertos, pero no quiero que alguien de Internet en el que no se confía pueda explotar esa apertura. Todo se reduce a hacer cumplir los privilegios mínimos tanto como sea posible. En estos escenarios, desearía aprovechar una VPN que tendría ese rango de puertos abierto. Eso se encarga del problema de la autenticación y por lo tanto de la autorización. Si está hablando de su firewall externo en su DMZ, confíe solo en el nivel de protocolo / puerto y, por lo tanto, tiene que ser aún más estricto.

    
respondido por el Justin Andrusk 13.04.2012 - 03:38
fuente
4

Debería ser perfectamente posible minimizar el rango de puertos UDP de mosh en

enlace

Si entendí correctamente, este es el rango desde el cual el proceso del remitente elegirá el puerto UDP. Por lo tanto, debería ser posible compilar una edición de mosh local de "rango estrecho" y tener una política de UDP de firewall local de "rango estrecho" adecuado para mosh.

Lo que me lleva a la meta pregunta: ¿Qué tan limitado es el rango para que Mosh sea útil?

Si entendí correctamente, se necesita un puerto por servidor mosh. Por lo tanto, en el caso de un servidor personal y el uso habitual de tmux (= solo un cliente) se necesita uno para trabajar y otro para arreglar las cosas.

Pero puede que me equivoque, no soy un programador de C y descubrí a Mosh ayer.

    
respondido por el Peter 15.04.2012 - 21:59
fuente

Lea otras preguntas en las etiquetas