scieee AI-readable full text Open interactive document viewer

IceWall

Mourenza Rivero, Santiago

Abstract

En este documento se van a abordar cuestiones relativas a la seguridad informática para conseguir crear un modelo basado en inteligencia artificial que ayude en la tarea de detectar y frenar ataques en redes. Para conseguir este objetivo, se va a utilizar un conjunto de datos para entrenar un modelo que dirá qué tipo de ataque está ocurriendo para elegir un postproceso adecuado para frenar dicho ataque.

Full text

IceWall Trabajo de Fin de Grado Curso 2023–2024 Autor Santiago Mourenza Rivero Director Jose Luis Vazquez-Poletti Juan Carlos Fabero Jiménez Grado en Ingeniería Informática Facultad de Informática Universidad Complutense de Madrid IceWall Trabajo de Fin de Grado en Ingeniería Informática Autor Santiago Mourenza Rivero Director Jose Luis Vazquez-Poletti Juan Carlos Fabero Jiménez Convocatoria: Junio 2024 Grado en Ingeniería Informática Facultad de Informática Universidad Complutense de Madrid 14 de Mayo de 2024 Dedicatoria A mi amigo Miguel Ángel por estar siempre cuándo lo he necesitado, incluso en la revisión de este trabajo. Y a Claudia por leerse este documento y acompañarme mientras lo redactaba. v Agradecimientos A mis padres por apoyarme durante estos 5 años de carrera, incluso en los momentos dónde aguantarme fue una ardua tarea. A mi hermano por tener que soportar a un compañero de piso que pasa de cantante a organizador de eventos sociales en un segundo. A mis amigos por darme momentos en los que dejar de pensar en todo el trabajo que tenía que hacer y darme ánimos para continuar. Y por último a mí, que incluso con todo en contra y mil dudas he conseguido llegar hasta aquí que, al fin y al cabo, es sólo el inicio de lo que me queda por conseguir. vii Resumen IceWall En este documento se van a abordar cuestiones relativas a la seguridad informática para conseguir crear un modelo basado en inteligencia artificial que ayude en la tarea de detectar y frenar ataques en redes. Para conseguir este objetivo, se va a utilizar un conjunto de datos para entrenar un modelo que dirá qué tipo de ataque está ocurriendo para elegir un postproceso adecuado para frenar dicho ataque. Palabras clave Seguridad, Redes, Sklearn, PortScan, Botnet, DDoS, CICIDS2017 ix Índice de figuras 3.1. MétodoConnect ............................. 6 3.2. MétodoStealth .............................. 6 3.3. MétodoACK ............................... 7 3.4. MétodoFIN................................ 8 3.5. MétodoNULL............................... 8 3.6. MétodoXMAS .............................. 9 3.7. Handshake 3 vías frente TCP SYN flooding . . . . . . . . . . . . . . 10 3.8. AtaqueDDoS............................... 11 3.9. Cortafuegos Filtrado . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.10. Cortafuegos proxy ............................. 13 3.11. Proxy web................................. 14 3.12. Conexión TCP con SOCKS . . . . . . . . . . . . . . . . . . . . . . . 15 4.1. División de paquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2. Grupo pequeño de ataques . . . . . . . . . . . . . . . . . . . . . . . . 24 4.3. Grupo medio de ataques . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.4. Grupo grande de ataques . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.5. Matriz de confusión después del entrenamiento. . . . . . . . . . . . . 33 4.6. Matriz de confusión para un ataque PortScan. . . . . . . . . . . . . . 34 4.7. Matriz de confusión para un ataque DDoS. . . . . . . . . . . . . . . . 34 A.1. Características del conjunto de datos 1 . . . . . . . . . . . . . . . . . 45 A.2. Características del conjunto de datos 2 . . . . . . . . . . . . . . . . . 46 B.1. Características de all_data ........................ 47 B.2. Características de bot ........................... 48 xvii B.3. Características de DDoS ......................... 48 B.4. Características de DoS GoldenEye .................... 49 B.5. Características de DoS Hulk ....................... 49 B.6. Características de DoS Slowhttptest ................... 50 B.7. Características de DoS slowloris ..................... 50 B.8. Características de FTP-Patator ..................... 51 B.9. Características de Heartbleed ....................... 51 B.10.Características de Infiltration ...................... 52 B.11.Características de PortScan ....................... 52 B.12.Características de SSH-Patator ..................... 53 B.13.Características de Web Attack ...................... 53 C.1. Accuracy promedio por Ataque . . . . . . . . . . . . . . . . . . . . . 55 C.2. F1-score promedio por Ataque . . . . . . . . . . . . . . . . . . . . . . 56 C.3. Precisión promedio por Ataque . . . . . . . . . . . . . . . . . . . . . 56 C.4. Recall promedio por Ataque . . . . . . . . . . . . . . . . . . . . . . . 57 C.5. Accuracy promedio en all_data ..................... 58 C.6. F1-score promedio en all_data ...................... 59 C.7. Precisión promedio en all_data ..................... 59 C.8. Recall promedio en all_data ....................... 60 C.9. Accuracy promedio en all_data ..................... 61 C.10.F1-score promedio en all_data ...................... 62 C.11.Precisión promedio en all_data ..................... 62 C.12.Recall promedio en all_data ....................... 63 C.13.Accuracy promedio en all_data ..................... 64 C.14.F1-score promedio en all_data ...................... 65 C.15.Precisión promedio en all_data ..................... 65 C.16.Recall promedio en all_data ....................... 66 Índice de tablas 3.1. Firewall y NIDS/NIPS . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.1. Características CICIDS2017 . . . . . . . . . . . . . . . . . . . . . . . 22 4.2. Mejores algoritmos por cada ataque para la métrica accuracy ..... 29 4.3. Mejores algoritmos por cada ataque para la métrica F1-Score ..... 30 4.4. Mejores algoritmos por cada ataque para la métrica precision ..... 30 4.5. Mejores algoritmos por cada ataque para la métrica recall ...... 31 4.6. Mejores algoritmos entre todas las métricas. . . . . . . . . . . . . . . 31 4.7. Datos del modelo final con AdaBoost. . . . . . . . . . . . . . . . . . . 32 xix Cap´ ıtulo 1 Introducción y objetivos “No vive el que no vive seguro” — Francisco de Quevedo En el mundo de la seguridad y las redes, hay infinidad de procesos que los usuarios no comprenden pero asumen que funcionan correctamente y hacen uso de ellos sin pararse a pensar en la cantidad de cosas que podrían fallar o las vulnerabilidades que personas con intenciones maliciosas pueden explotar. Ataques como el DDoS (Distributed Denial of Service) se cobran víctimas a diario haciendo que diferentes empresas, como entidades bancarias, sufran una denegación de servicio. Ataques de este tipo constan de una fase previa dónde se infectan diferentes equipos (botnet) para hacer un ataque coordinado consiguiendo así privar de servicio a la entidad atacada. Generalmente el usuario del equipo infectado no es consciente de que su dispositivo forma parte de una botnet. En este ejemplo, y en tantos otros, no deja de ser el desconocimiento el causante de que el ataque sea exitoso. Está claro que partimos de la premisa de que no van a dejar de existir estos ataques, por lo que la idea es conseguir una defensa lo suficientemente buena para evitar que sean llevados a cabo. Para ello existen herramientas como cortafuegos o IDS (Intrusion Detection Systems) que nos permiten filtrar ataques de red de manera que, por mucho que se intente, no dejan pasar los paquetes que conseguirían el objetivo del ataque. El problema que tienen estas herramientas es que, hasta cierto punto, no son autónomas ya que tiene que haber expertos que revisen tanto que las reglas de filtrado son correctas como los registros de trazas. Esto puede ocasionar que se cometan algunos errores que podrían ser solucionados con algún tipo de automatización, ya sea por la eficiencia del método aplicado o por simplificar la detección de ataques para así ayudar al tratamiento a posteriori de los datos de un ataque. Estos errores pueden ser de múltiples tipos, desde que el experto pueda no darse cuenta de detalles cruciales que terminen generando vulnerabilidades en un sistema, hasta fallos en las herramientas difícilmente previsibles. 1 2Capítulo 1. Introducción y objetivos 1.1. Objetivos En este trabajo vamos a limitarnos a buscar la manera de mejorar la defensa frente a diferentes ataques de red. Para ello será importante conocer datos, como los ataques, sus características, así como maneras de defenderse para evitar que resulten críticos. Esta materia es algo que se lleva estudiando desde hace mucho tiempo pero siempre es posible dar nuevos enfoques de cara a mejorar lo que ya existe. Es por ello por lo que como objetivos principales se va a buscar: Revisar y analizar los tipos de ataques y formas de mitigarlos. Entrenar un modelo de machine learning que permita identificar qué tipo de ataque se está produciendo. Crear códigos de postprocesado que permitan defender de uno o dos de los posibles ataques. Comprobar la utilidad o no de una herramienta de este estilo, en caso de ser posible. 1.2. Plan de trabajo Para llegar a los objetivos propuestos se va a seguir un plan basado en diferentes fases de desarrollo. Estas fases son las siguientes: Fase 1 - Datos y preproceso: Durante esta etapa se escoge un conjunto de datos y se le hace un preproceso para que sea correcto de cara a poder entrenar un modelo con algoritmos de MachineLearning utilizando la libería Sklearn. Fase 2 - Entrenamiento y decisiones de parámetros: En esta segunda etapa se pretende hacer diversos entrenamientos mediante el conjunto de datos preprocesado para ver qué parámetros son los que mejor modelo predictivo generan. Una vez con ello se guardará dicho entrenamiento para poder hacer predicciones de ataques basados en nuevos conjuntos de datos. Fase 3 - Postproceso de PortScan y DDoS: Una vez detectado el tipo de ataque se le hará un postproceso para mitigar el ataque. En este caso se van a implementar dos códigos de postproceso, uno para PortScan y otro para DDoS. Se han elegido estos dos tipos de ataque por ser ejemplos sencillos que sirven para ejemplificar la idea que se pretende implementar de forma integral. En el caso de PortScan o exploración de puertos se espera detectar qué máquina intentando comprobar el estado de los puertos y bloquearle la posibilidad de acceso a esta información. Por otro lado en DDoS o denegación de servicio distribuída se espera frenar la llegada de múltiples paquetes para evitar que el servicio colapse. Chapter 2 Introduction and Objectives “One does not truly live if one does not live securely” — Francisco de Quevedo In the realm of security and networking, there are countless processes that users may not fully understand but often take for granted, assuming they will work correctly. Without considering the numerous potential failures or vulnerabilities, users unknowly expose themselves to risks that malicious actors can exploit. One such risk involves Distributed Denial of Service (DDoS) attacks, which occur daily and have severe impacts on various entities, including banks, by disrupting their services. These attacks usually start with a preliminary phase where multiple devices are infected to form a botnet. This botnet then carries out a coordinated attack, crippling the targeted service. Typically, the owners of these infected devices are unaware that their devices are being used in such a manner. In this case, and many others, the success of an attack is often due to a lack of knowledge. We operate under the assumption that such attacks will not cease. Therefore, the strategy is to develop a defense robust enough to stop these attacks. Tools like firewalls and Intrusion Detection Systems (IDS) are crucial for this purpose. They help filter network attacks in such a way that, no matter the effort performed, they prevent the transmission of packets that could fulfill the attack’s objective. These tools have, to a certain extent, a lack of autonomy because they require experts to verify the accuracy of filtering rules and to review trace logs. Such reliance can lead to errors that might be mitigated through automation, which would enhance the method’s efficiency or simplify the process of attack detection, thus improving post-attack data analysis. The types of errors encountered can vary widely, from experts missing critical details that introduce system vulnerabilities, to unpredictable tool failures. 3 4Chapter 2. Introduction and Objectives 2.1. Requirements In this study, we will explore methods to improve defenses against various network attacks. It will be crucial to collect information about the types of attacks, their characteristics, and defensive methods to prevent these from escalating. While this topic has been extensively studied, there is always room for innovative perspectives to enhance current methodologies. The main objectives of this exploration will be: Review and analyze the various types of network attacks and explore methods to mitigate them. Train a machine learning model to accurately identify the type of attack as it occurs. Develop post-processing codes aimed at defending against one or two specific potential attacks. Evaluate the utility and effectiveness of such a tool, if possible. 2.2. Workplan To achieve the proposed objectives, a plan based on different developement phases will be followed. These phases are as follows: Phase 1 - Data and Preprocessing: During this stage, a dataset is preprocessed to ensure it is suitable for training a model using Machine Learning algorithms with the Sklearn library. Phase 2 - Training and Parameter Selection: In this second stage, various training sessions are conducted using the preprocessed dataset to determine which parameters produce the best predictive model. Once determined, this training will be saved to make predictions on new datasets. Phase 3 - Post-procesing for PortScan and DDoS: After detecting the type of attack, post-processing will be performed to mitigate the attack. In this case, two post-processing codes will be implemented, one for PortScan and another for DDoS. The two types of attacks selected, PortScan and DDoS, can be used as examples to illustrate the broader concept planned for implementation. For PortScan attacks, the objective is to identify which machine is attempting to inspect the status of ports and subsequently block its access to this information. In contrast, for Distributed Denial of Service (DDoS) attacks, the goal is to prevent the influx of multiple packets simultaneously to avoid service disruption. Cap´ ıtulo 3 Estado de la cuestión En este capítulo se va a explicar en qué estado se encuentran acualmente las tecnologías asociadas a la defensa de ataques de red y por qué la idea que se presenta es necesaria. 3.1. Ataques En esta sección vamos a comentar los diferentes ataques más importantes para así comprender en un futuro cómo pueden ser bloqueados o buscar contramedidas más eficientes. 3.1.1. PortScan o exploración de puertos El ataque PortScan o exploración de puertos consiste en que el atacante envía paquetes a un conjunto de puertos de la víctima. La respuesta a dichos paquetes da información al atacante del estado del puerto. Con esto puede aprender sobre el sistema y detectar así vulnerabilidades. Hay diferentes tipos de exploración de puertos, dependiendo de cómo se efectúen (Moreno Vozmediano, 2023c) (Fyodor, 2005) (Kostas, 2018). Método connect: Este método consiste en establecer una conexión TCP con la víctima para después ser cerrada con un RST. Las posibles respuestas de la víctima son las siguientes: •Acepta la conexión, es decir, devuelve SYN-ACK. Esto nos indica que el puerto está abierto. •Rechaza la conexión, es decir, devuelve RST. Esto nos indica que el puerto está cerrado. •No responde nada o responde con ICMP destino inalcanzable, es decir, el puerto está filtrado por un cortafuegos. 5 12 Capítulo 3. Estado de la cuestión De red: Esta implementación protege toda una red mediante un dispositivo ubicado entre la red interna e internet, que es el que controla el tráfico. La forma de implementarse es o bien un software instalado en un equipo con un sistema operativo convencional o con un aparato hardware dedicado con un sistema operativo básico. Otra información importante a destacar son los tipos de cortafuegos, como son los de filtrado y proxy. Vamos a comentarlos dando datos sobre ellos, así como dar ejemplos para que sea más sencillo entender el concepto: Filtrado Filtran los paquetes basándose en las cabeceras de los protocolos de red (stateless) o en el estado de la conexión (stateful). Solamente permite entrar/salir paquetes de internet hacia/desde el servidor. No filtra comunicaciones con máquinas internas, dado que no ve el trafico de la intranet. En la Figura 3.9, podemos ver un diagrama. Stateless Este tipo de cortafuegos se basa en la configuración de una lista de reglas que se aplican a cada paquete que pasa por el mismo. El objetivo es comprobar los campos de las cabeceras de los protocolos para dejar pasar o bloquear los paquetes. En la configuración, las reglas van a estar en orden y se va a ir contrastando con los campos del paquete para ver si coinciden, en caso de no ser así, el cortafuegos tendrá una política por defecto que acepta o bloquea el paquete. Para la configuración de estas reglas utilizaremos nftables más adelante (Fabero Jiménez, 2023). La política por defecto suele seguir una de dos estrategias. Una de ellas es denegar por defecto todo paquete que no esté permitido, es decir, al final de la cadena de reglas, de no haber coincidencia con ninguna, se descarta el paquete. La otra es permitir por defecto. Por lo general siempre se utiliza la de rechazar por defecto por ser más segura y restrictiva con el tráfico desconocido. Stateful Este tipo de cortafuegos comparte todas las características del anterior pero añade algo fundamental, tiene en cuenta el estado de las conexiones. Para ello se crea una tabla de entrada por cada conexión en estado established. Con esto se puede permitir el tráfico hacia puertos efímeros únicamente si hay una conexión establecida previamente con dichos puertos. A su vez también se identifican paquetes relacionados con conexiones establecidas previamente. Es importante decir que para UDP también funciona aunque no se establezca una conexión como tal. Esto se suele hacer mediante tablas de estado que mantienen información de las conexiones realizadas recientemente, así aunque no esté la conexión establecida se considera como tal. 3.2. Contramedidas 13 Figura 3.9: Uso del cortafuegos de filtrado. Fuente: Moreno Vozmediano (2023a) página 10. Proxy Actúan como intermediarios entre origen y destino, creando conexiones de transporte distintas (interna y externa). Intercepta paquetes y los inspecciona antes de enviarlos al destino. Complementa a un cortafuegos de filtrado como podemos ver en la Figura 3.10. Las máquinas internas pueden conectarse a servidores externos de forma indirecta mediante el servidor proxy. Los hay de dos tipos, de aplicación y de circuito. Figura 3.10: Uso del cortafuegos proxy complementario. Fuente: Moreno Vozmediano (2023a) página 10. 14 Capítulo 3. Estado de la cuestión Aplicación Es un intermediario relativo a aplicación, por ejemplo para solicitar el acceso a una web. En este ejemplo el cliente solicia al proxy el acceso a la web, este redirige la petición al servidor web, el cual envía de vuelta la infomación solicitada. Es entonces cuando, finalmente, el proxy envía al cliente los datos de la web. Con un diagrama como el de la Figura 3.11 se entiende mejor el funcionamiento. Figura 3.11: Ejemplo de solicitud a servidor proxy web. Fuente: Dhavaji (2021). Las características principales de este cortafuegos son: El filtrado del contenido no deseado o comandos peligrosos. El permiso o no del acceso a servidores externos. La posibilidad de implementación de autenticación de usuarios. Se permite el uso de caché para acelerar las respuestas. Es más seguro que el filtrado de paquetes, pero introduce sobrecarga en cada conexión. Específico de cada portocolo de aplicación. Relativo a circuito Tiene la función de ser un intermediario en la capa de transporte. No permite una conexión TCP de extremo a extremo, la comunicación entre el cliente y el servidor reales se hace a través del proxy de forma indirecta. Es conocido a su vez como cortafuegos proxy transparente1ya que no modifica la solicitud o respuesta más allá de lo necesario para la autenticación e identificación de proxy. Un ejemplo conocido de este tipo de cortafuegos es SOCKS como podemos ver en la Figura 3.12. 1Este término se define en la página de IBM poniendo de ejemplo SOCKS 3.2. Contramedidas 15 Figura 3.12: Ejemplo de establecimiento de conexión TCP con proxy relativo a circuito SOCKS. Fuente: Stephen Huang y Cao (2020) página 4. 3.2.2. Sistemas de detección y prevención de intrusiones Definimos una intrusión como cualquier acceso no autorizado a un sistema o a la utilización maliciosa de sus recursos de información. El objetivo de una intrusión es conseguir el acceso al sistema para causar daños, obtener información o utilizar el sistema para realizar otros ataques. Para ello vamos a ver sistemas que nos ayuden a deterner o prevenir estas intrusiones. Podemos clasificarlos como Intruder Detection System (IDS) o Intruder Prevention System (IPS) (Moreno Vozmediano, 2023b). Sistemas de detección de intrusos : IDS pasivo Es un dispositivo o aplicación software que se encarga de monitorizar un sistema o una red para detectar cualquier tipo de actividad maliciosa y de alertar o notificar cuando se detecten estas actividades. Hay dos tipos de IDS: HIDS (Host-based IDS): Monitoriza la actividad de un único sistema. NIDS (Network-based IDS): Monitoriza la actividad de una red. 3.2.3. Sistemas de prevención de intrusos: IPS o IDS activo Con el tiempo, además de monitorizar y enviar alertas, los IDS empezaron a efectuar acciones cuando se detecta una intrusión. Vamos a hablar de dos tipos: 16 Capítulo 3. Estado de la cuestión NIPS (Network-based IPS): protege una red utilizando detección basada en firmas. La detección basada en firmas busca patrones almacenados en una base de datos para comprobar de qué tipo de ataque está ocurriendo. Por ejemplo se busca si la combinación de flags TCP coincide con los usados durante una exploración de puertos. NBA (Network Behaviouts Analysis): protege una red utilizando detección de anomalías. La detección de anomalías busca desviaciones del comportamiento normal, clasificando como anómala o normal la actividad de los diferentes usuarios. Un ejemplo de actividad anómala es el consumo excesivo de ancho de banda. Una vez definidos estos sistemas vamos a ver qué acciones realizan los NIDS/ NIPS. Para poder detectar o prevenir ataques es necesario que estén continuamente analizando el tráfico de red, en particular en NIDS funciona como un rastreador de red (sniffer) para hacer esto. Con la idea de no sobrecargar la herramienta se utilizan filtros para no tener que analizar en bruto todo el tráfico. Una vez hecho esto se aplican reglas para detectar anomalías en el tráfico y por último generar alertas cuando algún paquete o secuencia de paquetes coincide con las reglas. En particular, NIPS puede descartar el tráfico en vez de notificarlo. 3.2.4. NIDS/NIPS y Cortafuegos : ¿Diferentes o compatibles? Firewall NIDS/NIPS Limita el acceso entre redes, previniendo intrusiones. Identifica cuándo una intrusión está teniendo lugar, generando una alerta (NIPS puede descartar). No identifica cuándo un ataque está ocurriendo en la red. Es capaz de detectar ataques en tiempo real. Se basa en reglas simples; filtrado por IP, puerto origen, etc. Se basa en reglas complejas como la detección de anomalías o la detección basada en firmas. Limitada a las reglas configuradas. Puede detectar ataques desconocidos mediante análisis de comportamiento. Puede operar en modo de estado y sin estado. Operación en tiempo real para detectar intrusiones. Tabla 3.1: Comparación entre un Firewall y un NIDS/NIPS 3.3. Alternativas sin inteligencia artificial 17 3.3. Alternativas sin inteligencia artificial En esta sección vamos a ver algunas herramientas similares a Icewall que existen actualmente en el mercado y que no utilizan inteligencia artificial para llevar a cabo su objetivo. 3.3.1. Snort Descripción Snort (Cisco, 2024) es una herramienta de código abierto para análisis de tráfico. Puede funcionar como rastreador o registrador de red, NIDS o NIPS. La similitud que tiene con el sistema que planteamos es que dado un flujo de paquetes genera alertas sobre posibles ataques de red. Características Snort utiliza un motor de detección basado en reglas que se actualiza de manera regular para poder reconocer las últimas vulnerabilidades y técnicas de ataque. 3.3.2. Suricata Descripción Al igual que Snort,Suricata (OISF, 2024) es otra solución que permite la detección de intrusiones y la prevención de amenazas de red. Es capaz de monitorizar el tráfico de red a tiempo real y clasificarlo en benigno y maligno basándose en reglas predefinidas. Características Destaca por su capacidad de realizar análisis con multithreading, lo que permite manejar mucho tráfico de forma simultánea con técnicas de detección basadas en anomalías y firmas. 3.3.3. Zeek Descripción Zeek (The Zeek Project, 2024) (anteriormente llamado Bro) es un framework de análisis de seguridad en redes que se centra en el análisis de comportamientos y el registro de actividades en red, en vez de las soluciones basadas en firmas (Snort y Suricata). 18 Capítulo 3. Estado de la cuestión Características Es ideal para entornos de red avanzados ya que permite una gran personalización para detectar anomalías específicas. 3.3.4. Alternativas con inteligencia artificial Para completar la sección anterior vamos a ver unas herramientas que existen en el mercado pero que en este caso sí utilizan inteligencia artificial para su objetivo, es por ello que se aproxima aún más a la idea que se busca en Icewall. 3.3.5. Cisco Firepower Descripción Cisco Firepower (Cisco Firepower, 2018) es un sistema de firewall de próxima generación que integra múltiples capas de defensa de seguridad en una sola plataforma. Utiliza un enfoque basado en amenazas, proporcionando visibilidad y control de aplicaciones, usuarios y url a través de sus capacidades de prevención de intrusiones y filtrado de contenido. Los dispositivos Firepower operan con el software Cisco Firepower Threat Defense, que incluye protección avanzada contra malware (AMP), prevención de intrusiones de siguiente generación (NGIPS) y capacidades de filtrado de url. Características Consta de un rendimiento excepcional, incluso con funciones avanzadas de defensa de amenazas activas, una gestión eficiente y la capacidad de escalar para cumplir con las demandas de diferentes entornos, desde pequeñas oficinas hasta grandes centros de datos. Además, su arquitectura modular permite adaptarse a necesidades específicas de rendimiento y seguridad. Utiliza la inteligencia artificial en AMP y NGIPS, esto ayuda en el análisis y la detección automática de amenazas, permitiendo una respuesta más rápida y efectiva a incidentes de seguridad. 3.3.6. Palo Alto Networks Next-Generation Firewall Descripción Al igual que la alternativa de Cisco,Palo Alto Networks (Palo Alto Networks, 2024) combina cortafuegos, prevención de intrusiones además de funciones de seguridad basadas en la nube. 3.4. Comparativa con IceWall 19 Características El funcionamiento de estos NGFW se centra en la prevención de amenazas mediante el uso integrado de inteligencia de seguridad generada a partir de una gran cantidad de información de clientes. Esto permite detectar amenazas conocidas y desconocidas, incluso en tráfico encriptado. Además, con el soporte de aprendizaje automático integrado, los firewalls pueden adaptar y mejorar continuamente sus capacidades de detección y respuesta ante amenazas emergentes. 3.3.7. Darktrace Descripción Dentro de las ya vistas, Darktrace (DarkTrace, 2023) es la solución más avanzada ya que utiliza la inteligencia artificial para detectar ataques a tiempo real. La plataforma de seguridad ActiveAI se especializa en la visibilidad continua de todo el entorno digital de una organización, permitiendo una respuesta adaptada a las necesidades propias del enterno. Características El sistema de Darktrace aprende de manera continua en base a los patrones de cada dispositivo y usuario dentro de una red para así detectar comportamientos anómalos. Utiliza aprendizaje no supervisado, lo que permite detectar ataques sin necesidad de datos de entrenamiento previos o modelos específicos. 3.4. Comparativa con IceWall El objetivo que tiene IceWall es utilizar inteligencia artificial para detectar ataques que están ocurriendo en una red para poder aplicar técnicas concretas para el ataque detectado y así frenar la actividad maliciosa de una forma personalizada y eficiente. Hemos podido ver que en el mercado encontramos soluciones en las que se utiliza inteligencia artificial para llevar esta tarea a cabo. No obstante, al ser desarrolladas por empresas que comercializan su uso, nos impide tener acceso a las implementaciones y por ello a no comprender su funcionamiento interno. Vamos a intentar comprender de qué manera funcionan los modelos predictivos de detección de ataques mediante el reconocimiento de patrones dependiendo el tipo de ataque. En los capítulos posteriores se irá explicando más en profundidad el funcionamiento de la implementación, pero es necesario una comparación con alternativas ya existentes. Las fases de funcionamiento de Icewall serán: preprocesado de datos, entrenamiento para encontrar patrones, detección de ataques, postprocesado y mitigación. Cap´ ıtulo 4 Proceso de entrenamiento En este capítulo vamos a abordar toda la parte relativa al entrenamiento del modelo. Comenzaremos con un preprocesado de los datos, elección de los algoritmos concretos, análisis de los resultados y entrenamiento del modelo final. Con esto obtendremos un modelo con una configuración óptima para detectar qué ataque está ocurriendo en un tráfico específico. 4.1. Introducción al conjunto de datos CICIDS2017 El conjunto de datos CICIDS2017 (Canadian Institute for Cibersecurity Intrusion Detection Systems) fue creado por el Instituto de Cyberseguridad de la Universidad de Nuevo Brunswick en Canadá. Este conjunto de datos consiste en el tráfico generado entre los días 3 y 7 de Julio de 2017. Toda la información contenida en los datos se resume en el contenido de la Tabla 4.1. Figura 4.1: Porcentaje de paquetes malignos y benignos. 21 28 Capítulo 4. Proceso de entrenamiento Recall: Lo definimos como la fracción Recall = T P T P +F N donde TP representa los verdaderos positivos y FN los falsos negativos. El mejor valor de recall es el 1 y el peor es 0.5 F1 Score: Esta medida se puede interpretar como una media armónica de la precisión y el recall, dónde alcanza su mejor valor en el 1 y el peor en el 0. La fórmula es F1 = 2·T P 2·T P +F P +F N donde TP representa los verdaderos positivos, FP los falsos positivos y FN los falsos negativos.6 Accuracy: La definimos como la fracción Accuracy = T N +T P F P +T N +T P +F N donde TP representa los verdaderos positivos, FP los falsos positivos, TN los verdaderos negativos y FN los falsos negativos.7 Se van a guardar estos datos en un archivo llamado results_1.csv que por columnas tiene el ataque, algoritmo, accuracy, precisión, recall,F1-Score y tiempo. Esto será utilizado después de haber completado todos los entrenamientos para comprobar que algoritmo deberemos utilizar para el entrenamiento final. Vamos a crear un archivo de las mismas características para los siguientes entrenamientos. 4.5.2. Entrenamiento sobre la función de entrada de todos los datos En esta parte vamos a entrenar de diversas maneras el archivo all_data.csv para extraer datos dependiendo de características y algoritmos (Kostas, 2018). Primer Entrenamiento: Este entrenamiento va a utilizar los mismos algoritmos que el apartado anterior, en cambio va a utilizar las características resultantes de combinar las cuatro primeras de cada ataque y como son 12 ataques tenemos un total de 48 que, eliminando repeticiones, resulta en 18 más el “Label”. Los resultados se guardarán en el archivo results_2.csv. Segundo Entrenamiento: Este entrenamiento va a seguir combinando los mismos algoritmos pero con otras características. Ahora vamos a tomar las características sobre el fichero de todos los ataques. Se van a escoger siete características más relevantes de ente entrenamiento junto con el campo “Label”. Los datos resultantes serán guardados en el archivo results_3.csv. 5La información sobre el recall está en la documentación de scikit-learn. 6La información sobre el F1 Score está en la documentación de scikit-learn. 7La información sobre el accuracy está en la documentación de scikit-learn. 4.5. Entrenamiento con Machine Learning 29 Tercer Entrenamiento: En esta versión se van a tomar para los algoritmos Naive Bayes, QDA y MLP unas características determinadas atendiendo a los datos previamente calculados que tienen un peso relevante para el entrenamiento. En cambio, para Random Forest, ID3, AdaBoost y Nearest Neighbors se considera que han de tener una misma lista de características de 7 elementos extraídos de las características del conjunto de todos los datos. Los resultados se guardarán en un archivo llamado results_Final.csv. 4.5.3. Análisis de los resultados del entrenamiento Una vez terminadas las fases de entrenamiento vamos a analizar los archivos resultantes para poder ver la eficiencia de cada algoritmo para elegir el mejor de entre todos para entrenamiento final. Creamos para esta tarea diferentes gráficas para poder observar los valores de las métricas y así comparar dichos algoritmos. Para crear estas gráficas, haremos un promedio de las características por ataque y algoritmo, podemos ver el resultado en el Anexo B. Una vez creadas vamos a ver por cada métrica qué algoritmos resultan mejores para cada ataque. Tras esta clasificación, vamos a hacer un resumen general dónde extraeremos el algoritmo más eficiente para los datos y entrenamientos dados. Bot AdaBoost DDoS ID3 DoS GoldenEye Random Forest DoS Hulk AdaBoost / ID3 DoS Slowhttptest AdaBoost DoS slowloris AdaBoost FTP-Patator Random Forest Heartbleed AdaBoost/ID3/Naive Bayes/Nearest Neighbors/ QDA/Random Forest Infiltration Random Forest PortScan Nearest Neighbors SSH-Patator AdaBoost Web Attack Random Forest Tabla 4.2: Mejores algoritmos por cada ataque para la métrica accuracy 30 Capítulo 4. Proceso de entrenamiento Bot AdaBoost DDoS ID3 DoS GoldenEye Random Forest DoS Hulk ID3 DoS Slowhttptest AdaBoost DoS slowloris AdaBoost FTP-Patator AdaBoost/ID3/MLP/Nearest Neighbors/ Random Forest Heartbleed AdaBoost/ID3/Naive Bayes/Nearest Neighbors/ QDA/Random Forest Infiltration Random Forest PortScan ID3/Nearest Neighbors/Random Forest SSH-Patator AdaBoost/ID3/Random Forest Web Attack Ada Boost Tabla 4.3: Mejores algoritmos por cada ataque para la métrica F1-Score Bot AdaBoost DDoS ID3 DoS GoldenEye Random Forest DoS Hulk AdaBoost DoS Slowhttptest AdaBoost DoS slowloris AdaBoost/ID3 FTP-Patator AdaBoost/ID3/MLP/Nearest Neighbors/ Random Forest Heartbleed AdaBoost/ID3/Naive Bayes/Nearest Neighbors/ QDA/Random Forest Infiltration Random Forest PortScan ID3/Nearest Neighbors/Random Forest SSH-Patator AdaBoost/ID3/Random Forest Web Attack Random Forest Tabla 4.4: Mejores algoritmos por cada ataque para la métrica precision 4.5. Entrenamiento con Machine Learning 31 Bot AdaBoost DDoS ID3 DoS GoldenEye Random Forest DoS Hulk ID3/Nearest Neighbors DoS Slowhttptest AdaBoost DoS slowloris AdaBoost FTP-Patator AdaBoost/ID3/MLP/Nearest Neighbors/ Random Forest Heartbleed AdaBoost/ID3/Naive Bayes/Nearest Neighbors/ QDA/Random Forest Infiltration Random Forest PortScan ID3/Nearest Neighbors SSH-Patator ID3 Web Attack AdaBoost Tabla 4.5: Mejores algoritmos por cada ataque para la métrica recall Ahora vamos a hacer una tabla que sirva de resumen de las que acabamos de ver como son la Tabla 4.2,Tabla 4.3,Tabla 4.4 yTabla 4.5. En este resumen que recogemos en la Tabla 4.6 podemos ver que el algoritmo que más veces ha resultado ser el mejor es AdaBoost, por lo que este va a ser con el que entrenemos el modelo con el que nos servirá para predecir los ataques. Nos fijamos en que, por ejemplo, DDoS y PortScan tienen diferentes algoritmos óptimos, no obstante más adelante observaremos que el comportamiento de AdaBoost es bueno para predecir estos ataques. Bot AdaBoost DDoS ID3 DoS GoldenEye Random Forest DoS Hulk ID3 DoS Slowhttptest AdaBoost DoS slowloris AdaBoost FTP-Patator Random Forest Heartbleed AdaBoost/ID3/Random Forest Infiltration Random Forest PortScan Nearest Neighbors SSH-Patator ID3 Web Attack AdaBoost Tabla 4.6: Mejores algoritmos entre todas las métricas. 32 Capítulo 4. Proceso de entrenamiento 4.5.4. Entrenamiento del modelo predictor Vamos a entrenar con AdaBoost el archivo all_data.csv con las mismas características que hemos obtenido de los entrenamientos anteriores. En este caso vamos a centrarnos en distinguir los ataques y analizar la matriz de confusión resultante. De cara a poder hacer un código de postprocesado adecuado nos vamos a centrar en distinguir: Benigno,DDoS,PortScan yOtros Ataques. Esto es muy probable que genere confusión al distinguir la categoría Otros Ataques. Esto es normal porque tienen peculiaridades que estamos agrupando en una misma clase, de cara a mejorar la clasificación tendríamos que poder elegir entre los diferentes ataques utilizando un diccionario más amplio, no obstante esto se haría posteriormente cuando se quisiesen tratar más ataques y no únicamente los dos que hemos elegido como ejemplo. Hemos ejecutado este código varias veces para obtener el mejor resultado posible para luego guardar el estado de entrenamiento para poder hacer predicciones sobre otros conjuntos de datos. Este entrenamiento tiene las métricas que se observan en la Tabla 4.7. Accuracy F1-Score Precisión Recall 0.84 0.66 0.75 0.73 Tabla 4.7: Datos del modelo final con AdaBoost. Vamos a analizar la matriz de confusión de la Figura 4.5 para ver si se han detectado correctamente los ataques: Benigno: Observamos que lo mejor clasificado en este modelo son los paquetes benignos. Es fácil que esto ocurra debido a la alta densidad de paquetes benignos dentro del dataset, incluso habiendo controlado la cantidad de ellos de cara al entenamiento. Podría decirse que se confunde un poco con PortScan, pero la diferencia entre los datos es muy grande por lo que la confusión no es relevante. DDoS: Del mismo modo este ataque se clasifica bastante bien. Casi todos los paquetes DDoS se han identificado como tal y hay una parte que se confunde con paquetes benignos. No obstante, se clasifica lo suficientemente bien. PortScan: Este ataque prácticamente no tiene confusión, es decir, el modelo que hemos entrenado es capaz de detectar de manera muy precisa cuando un ataque se trata de un PortScan. Otros Ataques: Vemos que debido a las diversas características de los ataques restantes la confusión es total. Se prevé que si identificamos correctamente los ataques la confusión se reduce. 4.5. Entrenamiento con Machine Learning 33 Ahora para comprobar un caso particular vamos a recuperar el modelo entrenando que dio lugar a la anterior matriz de confusión. Vamos a alimentar este modelo con datos que representaran un ataque de exploración de puertos. Una vez hecho esto analizamos la nueva matriz de confusión (Figura 4.6) para ver que ha funcionado correctamente el modelo para un caso particular. Del mismo modo vamos a alimentar el modelo con datos de un ataque de tipo DDoS. El resultado podemos observarlo en la Figura 4.7. Dónde vemos que la gran mayoría de los paquetes detectados son correctos aunque hay una pequeña confusión con paquetes benignos. Ahora viendo que clasifica correctamente podemos pasar a la implementación de un código de postprocesado para bloquear, en casa caso, el ataque pertinente. Figura 4.5: Matriz de confusión después del entrenamiento. 34 Capítulo 4. Proceso de entrenamiento Figura 4.6: Matriz de confusión para un ataque PortScan. Figura 4.7: Matriz de confusión para un ataque DDoS. 4.6. Postprocesado y funcionamiento final 35 4.6. Postprocesado y funcionamiento final Con todo lo que hemos hecho hasta ahora sabemos que un conjunto de datos está siendo atacado o no y con que tipo de ataque en particular. Ahora tenemos que procesar los datos de manera que se frene el ataque en que se ha detectado. Este proceso tiene que ser personalizado para cada ataque debido a sus peculiaridades, es por ello por lo que vamos a centrarnos en PortScan y DDoS. 4.6.1. Bloqueo de PortScan El código que bloquea el PortScan utilizará el archivo que representa al viernes por la tarde dónde sabemos que ha habido un ataque de este tipo, cosa que ha sido confirmada con el modelo predictor obtenido en el capítulo 4. Lo primero que vamos a hacer es filtrar por protocolo ya que en caso de no ser UDP oTCP sabemos que esos paquetes no están relacionados con un ataque de exploración de puertos. Una vez hemos hecho esto vamos a quedarnos con los campos Source IP,Destination Port yTimeStamp por ser los datos relevantes para las reglas pertinentes. Ahora vamos a bloquear diferentes ip en base a dos parámetros: N:= Número de puertos. K:= Intervalo de tiempo en minutos. Tenemor que ir contando en intervalos de tiempo de Kminutos. En el caso de que en esas ventanas de tiempo detectemos más de Npuertos distintos entonces vamos a asumir que las ip cumpliendo estas características son sospechosas. Una vez terminado ese proceso se va a bloquear con una regla nftables dichas ip. La regla es la siguiente: nft add rule ip filter input ip saddr {ip} drop Para entender bien lo que hace esta regla expliquemos brevemente en que consiste. Como indica add rule ip estamos añadiendo una regla que se aplicará en la capa ip. Ahora es necesario indicar que la regla se añadirá a la tabla de filtrado de paquetes para los que sean detectados como entrantes, filter input. Ahora queda por elegir el criterio de coincidencia de la regla que, en este caso, es la ip origen; saddr (source address). En caso de que se cumpla entonces vamos a descartar dicho paquete, de ahí el drop (Fabero Jiménez, 2023). 36 Capítulo 4. Proceso de entrenamiento 4.6.2. Bloqueo de DDoS El código para bloquear el DDoS utilizará el archivo que representa al viernes por la tarde, en este caso, al que registra un ataque de este tipo confirmado además por el predictor. En primer lugar vamos a filtrar de nuevo por protocolo del mismo modo que en exploración de puertos. En este caso es importante destacar que el ataque se hará sobre un único puerto que es al que se pretende denegar el servicio. Nos vamos a quedar con los datos que representan a la cantidad de veces que una ip envía un datagrama a un puerto en específico. Con estos datos vamos a elegir cual de estos puertos ha sido el más atacado. Una vez encontrado este puerto vamos a elegir las ip que se contabilizan por encima de un umbral, en ese caso se considerará sospechosa y se bloqueará por cierto tiempo. Estos parámetros de bloqueo serán el tiempo que representamos como Ty el umbral de número de paquetes enviados N. Por lo que generamos la siguiente regla: nft add rule ip filter input ip saddr {ip} drop ip saddr {ip} time after {T}h counter drop La única diferencia a la regla generada para escaneo de puertos es que en este caso se pretende bloquear la ip durante un tiempo Tdeterminado. 4.6.3. Funcionamiento de IceWall Ahora que hemos implementado el modelo predictor y los códigos de postprocesado, ya es posible detectar y prevenir ataques, siempre y cuando los datos de entrada estén preprocesados como se espera. 1 Preprocesado de los datos Del mismo modo que ya hemos hecho, en un nuevo conjunto de datos se necesita un preprocesado para que el entrenamiento pueda realizarse. Es importante para esta tarea que los datos de entrada tengan la misma forma que los que ya se han utilizado, es decir, las mismas cabeceras. No es un problema si cambiase ya que lo único que habría que hacer es adaptar el código de preproceso al ámbito en el que se esté trabajando. Ahora con un archivo de entrada que entienda el modelo podemos continuar. 2 Predicción del ataque Ahora que tenemos los datos de entrada y un modelo entrenado tenemos que utilizarlo para que nos indique que ataque se está produciendo. Para ello hay que volver a cargar el archivo que contiene al modelo e introducirle los datos para observar las predicciones. Hemos realizado previamente con PortScan y DDoS esta tarea, 4.6. Postprocesado y funcionamiento final 37 donde hemos confirmado que el modelo predice correctamente sobre conjuntos de datos dónde se están produciendo estos ataques. Ahora sabiendo que ataque está ocurriendo pasamos a elegir el código de postprocesado adecuando. 3 Mitigación del ataque Cuando el modelo predictor nos devuelve el ataque que está ocurriendo, entonces se utiliza el código de postprocesado de dicho ataque para que lo bloquee de manera personalizada. Con esto ya tendríamos todo el proceso de IceWall completado y ahora volveríamos a repetir todo para los nuevos datos que se vayan leyendo. En resumen, el proceso de IceWall va a ser un bucle que lea datos de una red y vaya efectuando los pasos previamente comentados para mitigar los ataques que van ocurriendo. Es importante destacar que es necesario aportar los archivos de datos que se pretenden preprocesar para su funcionamiento, es decir, no funciona a tiempo real aunque la previsión futura es que así sea. 44 BIBLIOGRAFÍA OISF. Suricata ids/ips. https://suricata.io/features/, 2024. Palo Alto Networks. Palo alto networks next-generation firewall. https://www.paloaltonetworks.com/network-security/ next-generation-firewall, 2024. Stephen Huang, S.-H. yCao, Z. Detecting malicious users behind circuit-based anonymity networks. 2020. The Zeek Project. The zeek network security monitoring tool. https://zeek.org/, 2024. Ap´ endice A Lista de características y explicaciones Figura A.1: Lista de características y explicaciones del conjunto de datos CICIDS2017 - Primera Parte. 45 46 Apéndice A. Lista de características y explicaciones Figura A.2: Lista de características y explicaciones del conjunto de datos CICIDS2017 - Segunda Parte. Ap´ endice B Importancia de características por ataque Bwd Packet Length Std Flow IAT Min Fwd Packet Length Std Flow IAT Std Total Length of Bwd Packets Flow Bytes/s Bwd Packet Length Max Total Length of Fwd Packets Flow Duration Flow IAT Mean Fwd IAT Total Fwd Packet Length Min Fwd Packet Length Mean Flow IAT Max Flow Packets/s Total Backward Packets Bwd Packet Length Mean Fwd Packet Length Max Total Fwd Packets Bwd Packet Length Min Features 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 Importance all_data Attack - Feature Importance importance Figura B.1: Características de all_data 47 48 Apéndice B. Importancia de características por ataque Bwd Packet Length Mean Flow IAT Max Flow Duration Flow IAT Mean Flow IAT Min Flow Bytes/s Flow IAT Std Flow Packets/s Fwd IAT Total Fwd Packet Length Mean Total Backward Packets Total Length of Bwd Packets Total Length of Fwd Packets Total Fwd Packets Bwd Packet Length Std Bwd Packet Length Max Fwd Packet Length Max Bwd Packet Length Min Fwd Packet Length Min Fwd Packet Length Std Features 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 Importance Bot Attack - Feature Importance importance Figura B.2: Características de bot Fwd Packet Length Max Total Length of Fwd Packets Bwd Packet Length Min Flow IAT Min Flow IAT Mean Bwd Packet Length Mean Flow Duration Total Backward Packets Flow IAT Max Flow Bytes/s Fwd IAT Total Flow IAT Std Flow Packets/s Fwd Packet Length Std Fwd Packet Length Mean Bwd Packet Length Max Total Length of Bwd Packets Fwd Packet Length Min Bwd Packet Length Std Total Fwd Packets Features 0.0 0.1 0.2 0.3 0.4 0.5 0.6 Importance DDoS Attack - Feature Importance importance Figura B.3: Características de DDoS 49 Bwd Packet Length Std Flow IAT Min Fwd Packet Length Min Flow IAT Mean Total Backward Packets Flow IAT Std Flow IAT Max Fwd IAT Total Flow Duration Flow Packets/s Flow Bytes/s Fwd Packet Length Max Bwd Packet Length Mean Total Length of Fwd Packets Fwd Packet Length Mean Total Fwd Packets Total Length of Bwd Packets Bwd Packet Length Max Bwd Packet Length Min Fwd Packet Length Std Features 0.0 0.1 0.2 0.3 0.4 0.5 0.6 Importance DoS GoldenEye Attack - Feature Importance importance Figura B.4: Características de DoS GoldenEye Bwd Packet Length Std Flow Duration Flow IAT Min Total Backward Packets Total Length of Bwd Packets Flow IAT Std Fwd IAT Total Flow IAT Mean Flow IAT Max Flow Packets/s Total Fwd Packets Flow Bytes/s Bwd Packet Length Max Bwd Packet Length Mean Bwd Packet Length Min Fwd Packet Length Max Fwd Packet Length Mean Fwd Packet Length Std Total Length of Fwd Packets Fwd Packet Length Min Features 0.0 0.1 0.2 0.3 0.4 0.5 0.6 Importance DoS Hulk Attack - Feature Importance importance Figura B.5: Características de DoS Hulk 50 Apéndice B. Importancia de características por ataque Flow IAT Mean Fwd Packet Length Min Bwd Packet Length Std Bwd Packet Length Mean Total Length of Bwd Packets Bwd Packet Length Max Flow IAT Min Total Fwd Packets Flow IAT Std Fwd Packet Length Mean Bwd Packet Length Min Fwd Packet Length Std Total Length of Fwd Packets Fwd Packet Length Max Flow Duration Flow IAT Max Fwd IAT Total Flow Bytes/s Total Backward Packets Flow Packets/s Features 0.0 0.1 0.2 0.3 0.4 0.5 0.6 Importance DoS Slowhttptest Attack - Feature Importance importance Figura B.6: Características de DoS Slowhttptest Flow IAT Mean Bwd Packet Length Mean Total Fwd Packets Total Length of Bwd Packets Bwd Packet Length Std Flow IAT Min Bwd Packet Length Max Flow Bytes/s Fwd Packet Length Max Total Backward Packets Fwd IAT Total Fwd Packet Length Std Total Length of Fwd Packets Fwd Packet Length Mean Flow IAT Max Flow Duration Flow IAT Std Flow Packets/s Fwd Packet Length Min Bwd Packet Length Min Features 0.0 0.1 0.2 0.3 0.4 Importance DoS slowloris Attack - Feature Importance importance Figura B.7: Características de DoS slowloris 51 Fwd Packet Length Max Fwd Packet Length Std Fwd Packet Length Mean Bwd Packet Length Mean Total Length of Bwd Packets Flow Duration Bwd Packet Length Max Flow IAT Min Bwd Packet Length Std Total Length of Fwd Packets Flow IAT Max Fwd IAT Total Total Backward Packets Fwd Packet Length Min Flow IAT Mean Total Fwd Packets Flow Packets/s Flow IAT Std Flow Bytes/s Bwd Packet Length Min Features 0.00 0.02 0.04 0.06 0.08 Importance FTP-Patator Attack - Feature Importance importance Figura B.8: Características de FTP-Patator Total Backward Packets Bwd Packet Length Mean Bwd Packet Length Max Total Length of Bwd Packets Total Fwd Packets Bwd Packet Length Std Flow Duration Fwd IAT Total Total Length of Fwd Packets Fwd Packet Length Max Flow IAT Min Fwd Packet Length Std Fwd Packet Length Mean Fwd Packet Length Min Flow Bytes/s Flow Packets/s Flow IAT Mean Flow IAT Std Flow IAT Max Bwd Packet Length Min Features 0.00 0.01 0.02 0.03 0.04 0.05 Importance Heartbleed Attack - Feature Importance importance Figura B.9: Características de Heartbleed 52 Apéndice B. Importancia de características por ataque Total Length of Fwd Packets Fwd Packet Length Mean Fwd Packet Length Max Flow Duration Flow IAT Max Flow IAT Std Flow IAT Min Bwd Packet Length Std Total Backward Packets Flow Bytes/s Bwd Packet Length Max Fwd IAT Total Bwd Packet Length Min Flow IAT Mean Fwd Packet Length Std Flow Packets/s Total Fwd Packets Bwd Packet Length Mean Total Length of Bwd Packets Fwd Packet Length Min Features 0.00 0.02 0.04 0.06 0.08 0.10 0.12 0.14 Importance Infiltration Attack - Feature Importance importance Figura B.10: Características de Infiltration Flow Bytes/s Total Length of Fwd Packets Bwd Packet Length Std Flow IAT Mean Flow IAT Max Flow Duration Fwd Packet Length Max Bwd Packet Length Min Fwd Packet Length Std Fwd IAT Total Bwd Packet Length Mean Total Length of Bwd Packets Bwd Packet Length Max Total Fwd Packets Fwd Packet Length Mean Flow Packets/s Total Backward Packets Flow IAT Min Flow IAT Std Fwd Packet Length Min Features 0.00 0.05 0.10 0.15 0.20 0.25 0.30 Importance PortScan Attack - Feature Importance importance Figura B.11: Características de PortScan 53 Flow IAT Mean Fwd Packet Length Max Flow Duration Flow IAT Max Total Length of Fwd Packets Flow IAT Std Fwd IAT Total Flow Packets/s Flow IAT Min Flow Bytes/s Fwd Packet Length Mean Total Backward Packets Fwd Packet Length Std Total Fwd Packets Total Length of Bwd Packets Fwd Packet Length Min Bwd Packet Length Max Bwd Packet Length Mean Bwd Packet Length Std Bwd Packet Length Min Features 0.0000 0.0002 0.0004 0.0006 0.0008 Importance SSH-Patator Attack - Feature Importance importance Figura B.12: Características de SSH-Patator Total Length of Fwd Packets Bwd Packet Length Std Bwd Packet Length Max Flow Bytes/s Fwd Packet Length Std Flow IAT Max Fwd Packet Length Mean Flow IAT Min Fwd IAT Total Fwd Packet Length Max Flow Packets/s Flow IAT Mean Flow Duration Total Fwd Packets Flow IAT Std Bwd Packet Length Mean Total Backward Packets Total Length of Bwd Packets Bwd Packet Length Min Fwd Packet Length Min Features 0.0000 0.0025 0.0050 0.0075 0.0100 0.0125 0.0150 0.0175 0.0200 Importance Web Attack Attack - Feature Importance importance Figura B.13: Características de Web Attack 60 Apéndice C. Resultados de entrenamientos Figura C.8: Recall promedio en all_data C.1. Resultados en todos los datos 61 C.1.2. Results_3 Figura C.9: Accuracy promedio en all_data 62 Apéndice C. Resultados de entrenamientos Figura C.10: F1-score promedio en all_data Figura C.11: Precisión promedio en all_data C.1. Resultados en todos los datos 63 Figura C.12: Recall promedio en all_data 64 Apéndice C. Resultados de entrenamientos C.1.3. Results_Final Figura C.13: Accuracy promedio en all_data C.1. Resultados en todos los datos 65 Figura C.14: F1-score promedio en all_data Figura C.15: Precisión promedio en all_data 66 Apéndice C. Resultados de entrenamientos Figura C.16: Recall promedio en all_data