22 ene. 2019

Control y bloqueo de botnets en Mikrotik

Es de público conocimiento que las botnets son, hoy en día, los sistemas más complejos y peligrosos en el mundo informático. Sus objetivos, además de las grandes empresas, son los usuarios domésticos de los proveedores de internet.

Si importar cuál sea el equipo de borde que use el usuario (sea el modem del proveedor o un router configurable) las botnets realizan intentos de conexión a los equipos que son poseedores de la IP pública del ISP.

Tienen protocolos preferidos para el ataque, como Telnet, NTP, SSH; a pesar de la preferencias hay una gran lista que según la temporada son más afectados que otros. A continuación daré una pequeña lista de los protocolos que preferentemente suelen atacar.
  • FTP (TCP/20,21)
  • SSH (TCP/22)
  • Telnet (TCP/23,2323)
  • DNS (UDP/53)
  • TFTP (TCP/69)
  • HTTP (TCP/80,8080,8880)
  • NTP (UDP/123)
  • POP3 (TCP/110,995)
  • IMAP (TCP/143,220,993)
  • HTTPS (TCP/443)
  • RDP (TCP/3389)
  • SMTP (TCP/25,465,587)
  • Winbox (TCP/8291)
  • VNC (TCP/5500,5800,5900)
¿En que nos afecta?, principalmente en nuestra seguridad, tiene que quedar claro que los ISP no nos proporcionan ninguna seguridad ante estos ataques; las botnets intentan establecer conexión con el equipo de borde a pesar que los puertos no estén abiertos.

El segundo problema que tenemos con esto es el consumo de ancho de banda que se utiliza para el intento de conexión, este punto se pudo comprobar realizando algunas configuraciones en un router Mikrotik y el cambio en la velocidad de navegación fue exponencial al momento de activar ciertas reglas.

A continuación, dos ejemplos: las reglas que se crearon para bloquear los intentos de conexión con el protocolo Telnet y SSH:

Esta regla es un filtro en un router Mikrotik. Lo que realiza es agregar a todas las IP que quieran conectarse al equipo y luego las bloquea.

Las IP de los atacantes las guardo por una semana, como pueden ver, en una semana tuve 1528 atacantes que usaron el protocolo Telnet para intenter conectarse a mi router.
Con el protocolo SSH tuve 385 atacantes que usaron el protocolo SSH para intentar conectarse a mi equipo.

Otra cosa de lo que no se salvan los usuarios de los ISP es de los escaneos de puertos que se realizan en nuestro equipo que, para hacerlo, necesitan que nuestro equipo de borde (router o modem) responda las solicitudes del sistema que analiza los puertos.

¿Qué podemos hacer?

Segurizar nuestros sitios y todo equipo que sea poseedor de una IP pública, esto incluye, a servidores que estén en un sistema cloud y tengan también una IP pública. Según cada sistema, buscar bloquear los intentos de conexión de todos los protocolos antes mencionados ya que, lamentablemente, los ISP no están tomando medidas para mitigar esto.

Scripts de Mikrotik

TELNET
add action=add-src-to-address-list address-list=drop_telnet address-list-timeout=1w chain=input
comment="Drop Telnet to WAN" dst-port=23,2323 in-interface=WAN1 protocol=tcp
add action=drop chain=input src-address-list=drop_telnet
SSH
add action=add-src-to-address-list address-list=drop_ssh address-list-timeout=1w chain=input
comment="Drop SHH to WAN" dst-port=22 in-interface=WAN1 protocol=tcp
add action=drop chain=input src-address-list=drop_ssh
ESCANEO DE PUERTOS
add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input
comment="Port scanners to list " disabled=no protocol=tcp psd=21,3s,3,1
add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input
comment="NMAP FIN Stealth scan" disabled=no protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg
add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input
comment="SYN/FIN scan" disabled=no protocol=tcp tcp-flags=fin,syn
add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input
comment="SYN/RST scan" disabled=no protocol=tcp tcp-flags=syn,rst
add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input
comment="FIN/PSH/URG scan" disabled=no protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack
add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input
comment="ALL/ALL scan" disabled=no protocol=tcp tcp-flags=fin,syn,rst,psh,ack,urg
add action=add-src-to-address-list address-list="port scanners" address-list-timeout=2w chain=input
comment="NMAP NULL scan" disabled=no protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg
add action=drop chain=input comment="dropping port scanners" disabled=no src-address-list="port scanners"
Los scripts de Telnet y SSH solamente se necesita cambiar el puerto, el nombre de la source list y el comentario si se desea bloquear los demás puertos.

Martin A. Zárate para Segu-Info

2 comentarios:

  1. Antes de ejecutar esos comandos, hay que moverse a ip-firewall-filter :)

    ResponderEliminar
  2. Hola buenos dias, muy bueno el articulo solo una precisión al momento de escribir "Wimbox (TCP/8291)" lo correcto seria Winbox.

    Saludos

    ResponderEliminar

Gracias por dejar un comentario en Segu-Info
Si vas a dejar una consulta, procura tener habilitado tu perfil en Blogger o deja una forma de contacto.

Gracias por comentar!