Una vez hayan detectado la dirección ip y puerto de tu servidor como vulnerable a este tipo de ataques, serán incluidos en el proceso de ataque por fuerza bruta, por el que intentarán de forma constante iniciar sesión en tu servidor, probando con diferentes usuarios y contraseñas hasta dar con alguna combinación que le facilite acceso al servidor y así poder, por ejemplo, encriptar los datos de este y luego pedir un rescate.
Una de las primeras soluciones que se suelen aplicar en estos casos, es el cambio de puerto asignado al servicio RDP, pero con esto no harás más que ganar un poco de tiempo, ya que el spybot es capaz de escanear todos los puertos abiertos en una dirección IP e identificar si el servicio que hay detrás es el que busca.
Otras de las medidas que se suelen aplicar es el configurar una política de restricción en el número de intentos de inicio de sesión fallidos por cuenta, pero con esto tan solo conseguiremos el tener todas las cuentas atacadas suspendidas constantemente. Con lo que los usuarios pueden perder productividad.
También existen diferentes soluciones software, como RdpGuard , que detectan cuando se realiza un ataque de este tipo y bloquea en el firewall de Windows la IP del atacante durante un tiempo predefinido. Pero hemos detectado que este tipo software no es del todo fiable, ya que los ataques se han perfeccionado, conseguiendo en muchos de los casos ocultar su dirección ip a este tipo de protección software.
Desde luego, la mejor opción es nunca exponer este tipo de servicios a la red pública o Internet, en todo caso realizarlo detrás de un servicio VPN, a ser posible L2TP sobre IPSeC. Pero no siempre se puede o quiere implantar este tipo de tecnologías. Por ello vamos a mencionar algunas soluciones que a nuestro parecer son la mejor opción para protegeros de este ataque:
La primera y mejor solución que hemos encontrado es el configurar nuestro firewall para detectar los ataques de fuerza bruta sobre el puerto expuesto. En este caso práctico lo vamos a realizar con un RouterBoard Mikrotik RB951G-2Hnd. Para neutralizar estos ataques vamos a hacer uso de las llamadas «Address list», esta funcionalidad nos permite añadir direcciones ip a una agrupación de ips y asignarle a cada una un tiempo de permanencia.
La protección que vamos a implementar funciona de la siguiente forma:
– RDSFASE1: se incluirán en esta lista todas las direcciones IP que intenten realizar una conexión al puerto expuesto RDP por primera vez y durante 1 minuto.
– RDSFASE2: se incluirán las direcciones IP que intenten conectar por el puerto expuesto RDP y ya estén en la RDSFASE1, durante 1 minuto.
– RDSFASE3: se incluirán las direcciones IP que intenten conectar por el puerto expuesto RDP y ya estén en la RDSFASE2, durante 1 minuto.
– RDS-BLOCK: se incluirán las direcciones IP que intenten conectar por el puerto expuesto RDP y ya estén en la RDSFASE3, durante 120 minutos.
– El firewall permitirá el acceso a todas las direcciones IP que intenten realizar una conexión al puerto expuesto RDP y que no estén en la RDS-BLOCK.
Con esto conseguimos que se bloquee durante 120 minutos todas las direcciones IP que conecten por el puerto expuesto RDP mas de 3 veces en un plazo máximo de 3 minutos.
Para aplicar esta configuración en nuestro firewall mikrotik, debemos ejecutar el siguiente código ( en este caso expondremos el puerto 23 redireccionado al 3389 interno, la ip interna de servidor es 192.168.1.100):
1 2 3 4 5 6 7 8 9 10 |
/ip firewall nat add action=add-src-to-address-list address-list=RDS-BLOCK address-list-timeout=1h chain=dstnat dst-port=23 in-interface=pppoe-out2 log=yes log-prefix=\ RDS-BLOCK protocol=tcp src-address-list=RDSFASE3 to-addresses=192.168.1.102 to-ports=3389 add action=add-src-to-address-list address-list=RDSFASE3 address-list-timeout=1m chain=dstnat dst-port=23 in-interface=pppoe-out2 log-prefix=RDPFASE3 protocol=tcp src-address-list=\ RDSFASE2 to-addresses=192.168.1.102 to-ports=3389 add action=add-src-to-address-list address-list=RDSFASE2 address-list-timeout=1m chain=dstnat dst-port=23 in-interface=pppoe-out2 log-prefix=RDPFASE2 protocol=tcp src-address-list=\ RDSFASE1 to-addresses=192.168.1.102 to-ports=3389 add action=add-src-to-address-list address-list=RDSFASE1 address-list-timeout=1m chain=dstnat dst-port=23 in-interface=pppoe-out2 log-prefix=RDPFASE1 protocol=tcp src-address-list=\ !RDSFASE1 to-addresses=192.168.1.102 to-ports=3389 add action=dst-nat chain=dstnat dst-port=23 protocol=tcp src-address-list=!RDS-BLOCK to-addresses=192.168.1.100 to-ports=3389 |
También habrá que abrir el puerto:
1 2 |
/ip firewall filter add action=accept chain=input dst-port=23 protocol=tcp |
En próximos artículos traeremos otras buenas prácticas para protegernos ante este tipo de ataques.