Ataque DDoS con ntp reflection y mitigación

Los ataques de denegación de servicio (DoS) o denegación de servicio distribuida (DDoS) son ataques que se pueden llevar a cabo de forma relativamente sencilla. Sin embargo esta facilidad no significa que el impacto de estos ataques sea menor, todo lo contrario, pueden llegar a tener un gran impacto, como ha sido el caso del reciente ataque DDoS con ntp reflection.

Desde SVT Cloud Services, a través de nuestro servicio CloudJacket, llevamos varios días observando un crecimiento en este tipo de ataques. La técnica es similar a la que se ha usado para ataques de DDoS pero con el servicio DNS.

CloudJacket - Servicio 7x24 de protección activa contra ataques y amenazas
CloudJacket – Servicio 7×24 de protección activa contra ataques y amenazas

Aprovechando la naturaleza del protocolo UDP, que es el protocolo de transporte en el que trabaja ntp (puerto UDP/123), que no está orientado a la conexión ya que no lleva a cabo el proceso de three-way handshake como hace el protocolo TCP, el atacante puede realizar peticiones falsas al servicio ntp e incluso haciendo spoofing de la dirección IP para que las respuestas se amplifiquen a otros hosts, en este caso víctimas.

CloudJacket detectando ataque DDoS con ntp reflection
CloudJacket detectando ataque DDoS con ntp reflection

Si a esta técnica unimos que el servicio ntp tiene una funcionalidad llamada Monitor List (monlist) que permite hacer consulta de los monitores de sincronización del servidor y que el tamaño de la respuesta a esta consulta es muy superior al tamaño en bytes de la petición, tenemos el escenario perfecto para lanzar un ataque DDoS a través de servidores NTP que tengan esta funcionalidad activa.

Nmap cuenta con un script llamado ntp-monlist que podemos usar para comprobar si el servidor es vulnerable. Además Metasploit también cuenta con un módulo auxiliar llamado ntp_monlist que también podemos usar para hacer las pruebas.

Script ntp-monlist de Nmap
Script ntp-monlist de Nmap

Con un simple sniffer como tcpdump podríamos comprobar como el tamaño en bytes de la respuesta puede llegar a ser hasta 10 veces mayor que el tamaño de la petición, y en servidores ntp con mayor número servidores de sincronización esta amplificación puede ser mucho mayor. Hay expertos que hablan de hasta 400 veces.

Para mitigar este ataque, o al menos que nuestros servidores ntp no formen parte de un ataque DDoS con ntp reflection, debemos de actualizar la versión del ntp donde se deshabilita por defecto la funcionalidad de monlist, o si no es posible actualizar, añadir la directiva noquery a nuestro fichero de configuración.

A continuación os dejamos un vídeo con una pequeña prueba de concepto del ataque, donde se explica además cómo comprobar si nuestro servidor ntp es vulnerable, mediante el script de Nmap y el módulo auxiliar de Metasploit.

Como siempre, esperamos que sea de vuestro interés y agrado.

Saludos!