Ciberataques DrDoS basados en el protocolo PortMapper

Fecha de publicación 12/08/2021
Autor
INCIBE (INCIBE)
Ataques DrDoS basados en PortMapper

Tras el estudio preliminar de los ciberataques de denegación de servicio (DoS), junto con algunas de sus variantes expuestas en el artículo “DrDoS: características y funcionamiento”, en este nuevo artículo se abordará cómo el protocolo de Portmapper es utilizado como una herramienta para desarrollar un ciberataque DoS en su variante DrDoS.

Portmapper

Se trata de un servicio, también conocido como RPCBind, que apareció por primera vez con el sistema BSD 4.3 (Berkeley Distribución 4.3, 1991), basado en ONC RPC (Open Network Computing Remote Procedure Call), y que es usado para realizar peticiones de consulta sobre determinados servicios.

Un servidor portmap convierte el número de programa RPC a números del protocolo DARPA; es decir, cuando un servidor RPC se inicializa genera un listado, asociando los puertos activos de escucha con los números de programa RPC correspondientes. De esta forma, los servicios se identifican contra el servidor portmap para que cuando le llegue una petición de acceso al servicio pueda conocer qué puerto está a la escucha. El servidor portmap consultará su tabla de correspondencias ante una petición de conexión a un servicio y devolverá el puerto al que conectarse. También puede enviar información complementaria, como por ejemplo la versión del servicio que se está ejecutando. Por último, con la información recibida el cliente conecta con el servicio solicitado.

El protocolo portmap funciona en el puerto 111, tanto sobre UDP como sobre TCP.

Esquema de funcionamiento de Portmapper

Ilustración 1. Esquema de funcionamiento de Portmapper

Vector de ataque

El ataque comienza cuando el ciberdelincuente lanza una petición a un servidor con un servicio portmap. Dicha petición ha de ir sobre UDP, dado que el protocolo UDP, al contrario que TCP, no tiene capacidad de autenticar al emisor. Esto permite al atacante realizar técnicas de suplantación de identidad o spoofing para cambiar su dirección IP de origen por la dirección IP de la máquina víctima, de tal forma que, los servidores atienden una petición legítima y responden contra el equipo víctima. El número de peticiones es elevado, lo que hace que sea imposible procesar todos los paquetes de respuesta recibidos.

Además de un elevado número de paquetes de respuesta, para inutilizar el equipo víctima el atacante puede manipular el tamaño de esos paquetes de respuesta, lanzando consultas específicas sobre los servidores portmap engañados. Con ello, se consigue reflejar el ataque y un efecto “amplificador”, al tener que emplear el equipo víctima más tiempo y recursos para procesar los paquetes recibidos.

Esquema del ataque a Portmapper

Ilustración 2. Esquema del ataque a Portmapper

El factor de amplificación dependerá del número de servicios que estén funcionando en el servidor usado como intermediario. La petición de información RPC ocupa entre 68 y 70 bytes; en cambio, el tamaño de la respuesta, según el número de servicios, puede variar entre 486 y 1930 bytes. De esta sencilla forma, el atacante puede incrementar el tamaño del paquete en origen entre 7 y 28 veces cuando llega a la víctima.

Por otro lado, las características de funcionamiento de los servicios de portmap permiten que los atacantes puedan redirigir la inundación de tráfico a cualquier servicio UDP activo en el equipo víctima, modificando en las peticiones los datos sobre el puerto en origen.

Finalmente, además de los perjuicios que puede ocasionar para la víctima la inutilización de sus sistemas atacados, los servidores portmap, que intervienen en el ciberataque, también pueden verse afectados y colapsar debido al elevado número de consultas que pueden recibir, desde una botnet conformada por decenas, cientos o miles de equipos zombis.

Prevención

Para comprobar si el puerto UDP de Portmapper es vulnerable usando NMAP se puede utilizar el siguiente comando:

nmap -Pn -sU -p U:111 --script=rpcinfo [Dirección IP]

En cualquier caso, las recomendaciones para evitar que un servidor propio se haga susceptible de participar en un ataque DrDoS son las siguientes:

  • Actualizar el servidor portmap. Hay que evaluar la necesidad de mantener los servicios de portmap porque existen otros protocolos más evolucionados, como NFSv4, que son más seguros y pueden cumplir un desempeño similar sin necesidad de interactuar con portmap.
  • Definir un protocolo de actuación por incidentes de ataques DrDoS portmap: para plantear y definir cómo se ha de actuar frente a un ataque de denegación de servicio que afecte a los servidores portmap propios, adecuándolo a las características de la organización, y recogiendo también cómo identificar estos ataques.
  • Solicitar al proveedor de servicios de Internet (ISP) filtros antispoofing. Los proveedores de servicios de Internet pueden rechazar tráfico portmap con direcciones falsificadas no accesibles a través de la ruta real del paquete. Esto evitará que el propio portmap reciba y atienda consultas susceptibles de ser un ataque de DrDoS.
  • Desplegar los servidores con portmap detrás de cortafuegos. El firewall debe configurarse con reglas que detecten y filtren peticiones dirigidas por UDP al puerto 111 del servidor portmap, que tengan las direcciones IP de origen falseadas, mediante una configuración antispoofing.
  • Limitar la visibilidad del servidor portmap en Internet. Siempre que sea posible se debe limitar el acceso al servidor para que no sea público mediante el filtrado de direcciones IP, valiéndose de las reglas de filtrado de un cortafuegos.
  • Desplegar sistemas de detección y prevención de intrusiones (IDS/IPS), con el fin de monitorizar las conexiones y alertar de la detección de tráfico inusual en los protocolos asociados a portmap.
  • Desplegar sistemas de monitorización de salud de equipos: para monitorizar tanto situaciones puntuales de uso intensivo de los recursos red, procesador y memoria RAM, como indicios de sobrecarga producida por ataque de denegación de servicio en estos servidores.
  • Medidas de protección en hosting: informarse de las medidas de protección que el proveedor de servicios de Internet o hosting tienen implementadas o se puedan contratar para reducir el impacto de los ataques DoS. Asimismo, se debe verificar con el proveedor que se encuentran desplegadas y activadas y determinar quién es el responsable de su configuración y administración.

Detección y evidencias

Los indicios de que un servidor portmap propio está participando en un ataque DrDoS se hallan en su propia actividad. Una actividad intensa e inusual relacionada con el tráfico UDP en el puerto 111 disparará todas las alertas. El análisis del tráfico respecto a la dirección origen de las consultas que se reciben (en todos los paquetes la misma o con claros indicios de haber sido falsificada), confirman la participación en el ataque reflejado.

En el caso de que el ataque haya pasado desapercibido en el momento de producirse, y haya sospechas de su ejecución, se podrán encontrar trazas del suceso en el registro de actividad del servidor portmap (logs).

Los logs asociados al demonio de portmap son accesibles según la plataforma del sistema operativo sobre el que funciona y debe consultarse la documentación del fabricante para saber exactamente cómo se almacenan estos registros de auditoría.

Respuesta y recomendaciones

Si resulta que uno está siendo víctima de un ataque de denegación de servicio distribuido por medio de una amplificación de servidor de nombres, o un servidor propio no está disponible debido a su participación como medio de amplificación, se recomienda realizar las siguientes acciones, que deberían estar recogidas en el protocolo de actuación y gestión de incidentes para este tipo de ataque:

  • Revisar el origen de las direcciones IP de origen y destino, así como puertos de destino: reunir toda la información que se considere que pueda resultar de utilidad para comunicársela al proveedor de servicios de Internet para que proceda a su bloqueo. Dicha información puede extraerse del firewall.
  • Contactar con el proveedor de Internet o hosting. El suceso debe comunicarse a dicho proveedor, al que se le transmitirá la información necesaria para aplicar filtros de tráfico necesarios para detener el ataque.
  • Obtener asistencia técnica: contactar con los proveedores de servicios técnicos de TI que se tengan contratados o con los CERT de referencia, como INCIBE-CERT.

Una vez que el ataque haya cesado, el servicio haya vuelto a la normalidad y se haya retomado la configuración de resolución de nombres habitual, se debe investigar las causas de lo sucedido, identificar las posibles vulnerabilidades existentes y establecer medidas que eviten un nuevo ataque, prestando atención al bastionado de los servidores portmap expuestos en Internet.

Asimismo, independientemente de las consecuencias e impacto que haya podido provocar el ataque, este debe ser comunicado a las autoridades para que pueda ser investigado y perseguido. Los propietarios legítimos de los servidores portmap engañados pueden enfrentarse a problemas legales ante reclamaciones de las víctimas, ya que para ellas, esos servidores son el origen del ciberataque.