Universidad Politécnica de Madrid Universidad Politécnica de Madrid

Escuela Técnica Superior de Ingenieros
en Topografía, Geodesia y Cartografía

El profesor Ramón Alcarria nos comenta el proyecto de investigación sobre prevención de ciberataques en el que está trabajando

Diseño de sistema de detección de ataques de Denegación de Servicio (DoS) con técnicas de Aprendizaje Máquina

27.10.2021

* Por el Dr. Ramón Pablo Alcarria Garrido

La ciberseguridad es un gran campo de investigación, muy popular actualmente debido a la proliferación de ciberataques. Los atacantes utilizan técnicas cada vez más complejas, lo que dificulta su detección y mitigación. Esto ha provocado que el número de ataques exitosos y dañinos aumente cada año. Si un dispositivo final es atacado en el peor de los casos, dejará de funcionar; sin embargo, si el ataque se dirige a los servidores del sistema, el daño es mucho mayor. Si un servidor deja de funcionar puede dejar miles de dispositivos sin servicio, sufrir un robo de información personal de los clientes, tener control sobre los dispositivos ... Por ello, una investigación realizada por el Grupo GISAI ha tenido como principal objetivo el diseño e implementación de un sistema de detección de ataques DoS utilizando técnicas de Aprendizaje Máquina, mediante (i) la integración de funciones de detección en los núcleos de los sistemas operativos y (ii) el entrenamiento de un modelo de Inteligencia Artificial especializado en la detección de ataques y su notificación a los administradores del sistema.

El sistema de detección DoS consta de 4 componentes o subsistemas, según la Figura 1. Toda la arquitectura está diseñada en una distribución Linux y compatible con mecanismos de generación de máquinas virtuales para facilitar su posterior implementación dentro de cualquier servidor.

figura1
Figura 1 – Metodología para el diseño de la solución

El componente de recolección se encarga de recolectar los datos necesarios para el sistema. La herramienta elegida es eBPF [1], que puede monitorizar el tráfico en tiempo real recibido por los servidores y proporciona suficiente información (direcciones y puertos remotos, latencia en comunicaciones, bytes recibidos y transmitidos y estado de las conexiones) para distinguir el tráfico normal del tráfico de ataque.

El componente de cálculo, a partir de la información recogida en el paso anterior, extrae las características más representativas de un ataque DoS. La primera es el número de conexiones recibidas por unidad de tiempo. Un ataque produce habitualmente un elevado número de conexiones abiertas y un tiempo entre apertura y cierre de conexión más elevado. La segunda característica es el número de Bytes, aunque este valor es más significativo en ataques volumétricos también es un factor diferenciador a tener en cuenta para detectar ataques lentos (slow) y bajos (low).

El componente de análisis utiliza un modelo de perceptrón multicapa, que ofrece adecuados resultados para clases desequilibradas [2]. El perceptrón multicapa es una red neuronal formada por al menos tres capas, la primera en la capa de entrada, la última en la capa de salida y las capas ocultas en el medio. La Figura 2 muestra el diseño de este componente de Aprendizaje Máquina. Aunque como entrada solo se introducen 10 variables debido a las capas ocultas, se crean un total de 115 parámetros entrenables.

figura2
Figura 2 – Resumen del modelo de aprendizaje maquina utilizado

Finalmente, el componente de notificación recibe información del componente de análisis de que se ha detectado un ataque, y envía una notificación al servidor de notificaciones para que pueda tomar las medidas necesarias para mitigar el ataque. El servidor de notificaciones es un servidor web simple que muestra todas las alarmas que ocurren en el sistema. Ofrece una interfaz de programación (API) para mostrar los eventos de ataque que se envían con el módulo de detección de ataques. El servidor de notificaciones puede observarse en la Figura 3, y está programado en Node.js. La visualización de notificaciones en tiempo real se consigue gracias a la librería Socket.io.

figura3
Figura 3 – Página principal del servidor de notificaciones.

Los resultados de ejecución de distintos ataques sobre esta infraestructura nos han permitido observar como el sistema detecta los ataques producidos por las herramientas slowhttptest [3] y Async Hulk [4] de forma inmediata. Sin embargo, no produce falsos positivos cuando se realiza una interacción normal con el servidor.

Como conclusiones del trabajo, esta investigación pretende contribuir a los sistemas de detección de ciberataques, en particular a los ataques por Denegación de Servicio. Para ello utiliza técnicas novedosas de inteligencia artificial, con las que ha contribuido a proyecto europeo TOSS (TOtal System Shield) [5] aprobado en la convocatoria EIT Digital 2019 y que ha finalizado en diciembre de 2020. Los trabajos futuros, en esta línea de investigación, van de la mano de mejorar el sistema de análisis para soportar nuevos tipos de ataques. Para ello se seguirá investigando en técnicas de aprendizaje máquina y mejores fuentes de datos para un entrenamiento óptimo.

 

Palabras clave
Ciberseguridad, aprendizaje máquina, denegación de servicio, ciberataque, DoS.

Área de conocimiento
1203-Ciencia de los ordenadores

Enlaces de interés

[1] Gregg, Brendan. BPF Performance Tools: Linux System and Applicaiton Observability. s.l.: Addison-Wesley Professional, 2019. Available at: https://amzn.to/2OWoQQX

[2] Zongyuan Zhao, Shuxiang Xu, Byeong Ho Kang, Mir Md Jahangir Kabir, Yunling Liu, Rainer Wasinger. Investigation and improvement of multi-layer perceptron neural networks for credit scoring, Expert Systems with Applications, Volume 42, Issue 7, 2015, Pages 3508-3516. https://doi.org/10.1016/j.eswa.2014.12.006

[3] Herramienta Slowhttptest attack: https://github.com/shekyan/slowhttptest

[4] Herramienta Async Hulk: https://github.com/Hyperclaw79/HULK-v3

[5] http://gisai.upm.es/proyectos/toss-total-system-shield/