Ciberataques DrDoS basados en el protocolo CharGEN
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 CharGEN es utilizado como una herramienta para desarrollar un ciberataque DoS en su variante DrDoS.
CharGEN
El protocolo generador de caracteres, en inglés Character Generator Protocol (CharGEN), fue diseñado para ser utilizado en tareas de depuración y medición, con las que comprobar el estado de las conexiones de una red, el correcto funcionamiento del buffer y las posibles limitaciones electrónicas. También puede ser utilizado para comprobar el ancho de banda y calidad (QoS) de una red, todo ello mediante el envío de un flujo de bytes constante.
Su funcionamiento sigue las especificaciones de la RFC 864, utilizando el puerto 19, al que uno se puede conectar utilizando los protocolos de transporte UDP y TCP. En los sistemas Unix y similares el servicio CharGEN está integrado con la plataforma, no estando activado por defecto, como un programa que proporciona servicios de red en segundo plano, conformando un demonio inetd o xinetd. Para comprobar las conexiones CharGEN, al conectarse a través de una conexión TCP, el servidor envía datos arbitrarios ininterrumpidamente hasta que el otro extremo cierra la sesión y se desconecta del servidor. Cuando la conexión se produce por UDP, el servidor envía datagramas UDP de respuesta, que tienen un número aleatorio de caracteres (entre 0 y 512), siempre que reciba peticiones de servicio del otro extremo del servidor CharGEN.
- Figura 1. Esquema de funcionamiento de CharGEN -
Vector de ataque
El protocolo de transporte UDP hace a los servidores CharGEN susceptibles de sufrir ataques de denegación de servicio o ser utilizados como servidores intermedios para provocarlos. La vulnerabilidad del protocolo CharGEN, ampliamente utilizado en la comunicación con impresoras remotas, es bien conocida y bastante accesible para los atacantes. Tanto es así, que existen algunos troyanos especializados en explotar esta brecha de seguridad, la cual se agrava si hablamos de equipos ofimáticos, como las impresoras, ya que no resultan ser la prioridad de una empresa a la hora de aplicar actualizaciones o parches.
El patrón de ataque para denegación de servicio por CharGEN sigue las mismas pautas que el resto de las variantes de los ataques DrDoS. El atacante identifica el mayor número posible de servidores que tengan activado el servicio CharGEN y que sean de acceso público. Estos equipos actuarán como intermediarios para inutilizar el equipo víctima sobre el que se lanzará el ataque, para lo cual, el atacante se valdrá de una botnet con la finalidad de enviarles miles de peticiones de CharGEN con la dirección IP de origen falseada (sustituida por la dirección IP de la víctima). Cuando los equipos intermedios reciben las peticiones de la botnet, dirigen sus respuestas a la dirección IP de la víctima, la cual recibe los paquetes con un tamaño entre 200 y 1000 veces mayor que cuando fueron generados en la petición original. El elevado número de peticiones lanzadas desde la plataforma de botnet, junto con el incremento del tamaño de las respuestas, provoca inevitablemente el colapso del equipo objetivo final por la imposibilidad de absorber y procesar todo el tráfico que le llega.
- Figura 2. Esquema del ataque a CharGEN -
Por las características de funcionamiento de los servicios de CharGEN, el uso de este protocolo posibilita que los atacantes puedan redirigir la inundación de tráfico a cualquier servicio UDP activo en el equipo víctima, modificando los datos sobre el puerto origen en las peticiones.
Además de los perjuicios que puede ocasionar para la víctima la inutilización de sus sistemas atacados, los servidores CharGEN involucrados en el ataque también pueden verse afectados y colapsar debido al elevado número de consultas recibidas, desde una botnet conformada por decenas, cientos o miles de equipos zombis.
En este sentido, hay que resaltar que los propietarios legítimos de los servidores CharGEN engañados pueden enfrentarse a problemas legales, ya que para la víctima, el origen del ataque DoS se encuentra en los dispositivos CharGEN intermedios y podría interponer reclamaciones al propietario de estos.
Prevención
Cualquier servidor CharGEN con el puerto 19 público en Internet será vulnerable a un ataque DrDoS. Para verificar si un servidor propio está expuesto en Internet se pueden realizar estas dos opciones:
- Buscar en el firewall reglas que permitan el puerto 19 UDP hacia el exterior.
- Ejecutar el siguiente comando de nmap:
sudo nmap -sU -p19 [IP del servidor] -oG –
Si en la salida del comando se incluye la siguiente línea “Ports: 19/open/udp//chargen///”, el servidor tendrá el puerto 19 abierto y, por lo tanto, será vulnerable.
Las medidas preventivas recomendadas para evitar que un servicio de CharGEN propio participe voluntariamente en un ataque DrDoS contra terceros son las siguientes:
- Actualizar el software. Se trata de un protocolo en desuso y la manera más efectiva de mitigar los posibles ataques a través de este servicio es actualizar aquellos equipos que se conectan por medio de este protocolo para que utilicen otras tecnologías de conexión.
- Definir un protocolo de actuación ante incidentes de ataques DrDoS CharGEN: para dar una respuesta rápida y eficaz que minimice los efectos adversos en caso de producirse. Este procedimiento debe ser adecuado a las características de la organización y recoger cómo identificar estos ataques.
- Solicitar al proveedor de servicios de Internet (ISP) filtros antispoofing. Un ISP puede 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 que son susceptibles de ser un ataque de denegación de servicio amplificado.
- Desplegar los servidores con CharGEN detrás de cortafuegos. Hay que establecer una configuración antispoofing en el firewall con reglas que detecten y filtren peticiones dirigidas por UDP al puerto 19 de los dispositivos que usan CharGEN y que tengan las direcciones IP de origen falseadas.
- Limitar la visibilidad del servidor CharGEN en Internet. Un filtrado de direcciones IP limitaría el acceso al servidor para que no sea “público”. Esta medida, al igual que la recomendación anterior, puede ser establecida a través de reglas en el cortafuegos.
- Desplegar sistemas de detección y prevención de intrusiones (IDS/IPS): permitiría 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 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 los 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
Para localizar algún tipo de señal que delate que se está utilizando un dispositivo CharGEN propio para un ataque DrDoS, se puede revisar la caché del dispositivo que genera las sospechas, así como analizar las actividades inusuales relativas al puerto 19, donde trabaja este servicio. Igualmente, se puede realizar un análisis más exhaustivo sobre los paquetes que se están enviando, revisando la dirección IP de origen y el tamaño de esos paquetes.
Si es viable, es recomendable desplegar un gestor de información y eventos de seguridad (dispositivos tipo SIEM), los cuales monitorizan los logs de los equipos y sistemas. De esta manera, se podrá identificar más fácil y rápidamente los posibles equipos afectados. Esta información también puede ser extraída gracias al cortafuegos, siempre que este filtre el puerto 19.
Respuesta y recomendaciones
Si se ha detectado el ataque de DrDoS, es importante tener una serie de medidas previamente definidas que ayuden a la rápida gestión del ataque. Estas medidas deben tener en cuenta los siguientes aspectos:
- Identificar la dirección IP de origen y de destino, así como el puerto de destino. Se debe recopilar toda la información útil para comunicar al ISP con el propósito de que pueda ser bloqueada. Entre esta información se encontrarán las direcciones IP desde donde se están enviando los paquetes modificados.
- Desconectar el dispositivo de la red, deshabilitando la tarjeta de red o directamente apagando el dispositivo.
- Contactar con el proveedor de alojamiento o Internet. Una vez recabada toda la información relevante, se deberá contactar con el proveedor de Internet, que facilitará un bloqueo a dichas direcciones IP y establecerá otras medidas adicionales.
- Bloquear y filtrar el tráfico no deseado. Desde dentro de la red se recomienda habilitar filtros para bloquear todas las peticiones o envíos de direcciones IP no confiables por medio de los firewall y enrutadores. Esto ayudará a mitigar los picos en el consumo de ancho de banda.
- Obtener asistencia técnica: contactar con los proveedores de servicios técnicos de TI que se tengan contratados o los centros de respuesta a incidentes de seguridad de carácter público de referencia (CERT), como puede ser INCIBE-CERT.
Cuando el ataque ha terminado se debe hacer una comprobación de los daños producidos y de las consecuencias provocadas. Se recomienda hacer una investigación de los motivos por los que se ha producido el ataque (si era evitable o no) y si la respuesta al mismo ha sido lo suficiente efectiva y rápida. Hecho lo anterior, se recomienda tomar medidas adicionales que eviten un nuevo ataque.
Por último, los ataques que ocurran deben ser denunciados ante las autoridades competentes para dar cumplimiento a la investigación y procesamiento de cualquier delito telemático. Asimismo, el personal jurídico de la entidad debe ser informado del perjuicio que pueda tener tanto para sí misma como para terceros.