detección de intrusión en redes de computación en la nube

112
Detección de intrusión en redes de computación en la nube mediante métodos de clustering Marcio Alexander Abreu Cano Universidad Nacional de Colombia Facultad de Ingeniería, Departamento de ingeniería de Sistemas e Industrial Bogotá D.C, Colombia 2019

Upload: others

Post on 02-Dec-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Detección de intrusión en redes de

computación en la nube mediante

métodos de clustering

Marcio Alexander Abreu Cano

Universidad Nacional de Colombia

Facultad de Ingeniería, Departamento de ingeniería de Sistemas e Industrial

Bogotá D.C, Colombia

2019

Detección de intrusión en redes de

computación en la nube mediante

métodos de clustering

Marcio Alexander Abreu Cano

Tesis presentada como requisito parcial para optar al título de:

Magíster en Ingeniería - Telecomunicaciones

Director (a):

MSc Jesús Guillermo Tovar Rache

Línea de Investigación:

Redes y Sistemas de Telecomunicaciones

Grupo de Investigación:

UNeTRT

Universidad Nacional de Colombia

Facultad de Ingeniería, Departamento de ingeniería de Sistemas e Industrial

Bogotá D.C, Colombia

2019

Resumen

En esta investigación, se explora el uso de métodos de clustering para el diseño de

sistemas de detección de intrusión (IDS) distribuidos capaces de funcionar en entornos de

computación en la nube. Para ello, se propone un algoritmo de detección de anomalías

basado en clustering y técnicas de aprendizaje supervisado, así como una arquitectura de

IDS modular que facilite el despliegue del sistema en entornos de procesamiento paralelo.

Finalmente, de desarrolla un entorno de pruebas basado en datasets públicos para medir

la efectividad del sistema, logando una tasa de detección de 99.9937% y una tasa de falsos

positivos de 0.0345% con el dataset de prueba seleccionado, lo que demuestra la

efectividad del sistema logrado. Además, se realiza un análisis de la capacidad de

procesamiento paralelo con el esquema propuesto, permitiendo extrapolar el desempeño

del sistema a entornos con diferentes capacidades de cómputo, lo que conlleva a una serie

de recomendaciones para la implementación de sistema en entornos de producción.

Palabras clave: IDS, cloud, clustering, supervised learning

Abstract

In this research, the use of clustering methods for the design of distributed intrusion

detection systems (IDS) capable of operating in cloud computing environments is explored.

For this purpose, an anomaly detection algorithm based on clustering and supervised

learning techniques is proposed, as well as a modular IDS architecture that facilitates the

deployment of the system in parallel processing environments. Finally, a test environment

based on public datasets to measure the effectiveness of the system is developed,

achieving a detection rate of 99.9937% and a false positive rate of 0.0345% with the

selected test dataset, which demonstrates the effectiveness of the system. In addition, an

analysis of the parallel processing capacity with the proposed scheme is shown, allowing

extrapolation of the performance of the system to environments with different computing

capacities, which leads to a series of recommendations for the implementation of the

system in production environments.

Keywords: IDS, cloud, clustering, supervised learning

Contenido

1. SEGURIDAD EN REDES DE COMPUTACIÓN EN LA NUBE ..................................................................... 2

1.1 REDES DEFINIDAS POR SOFTWARE ........................................................................................................... 2 1.2 ENRUTAMIENTO Y CONTROL DE CONGESTIÓN ............................................................................................ 4 1.3 ENRUTAMIENTO EN REDES DINÁMICAS Y DISTRIBUIDAS ................................................................................ 5

1.3.1 OSPF y BGP .......................................................................................................................... 6 1.3.2 Protocolo DCTCP .................................................................................................................. 7

1.4 GESTIÓN DE IDENTIDAD Y ACCESO ........................................................................................................... 7 1.4.1 Autenticación basada en contraseñas ................................................................................... 9 1.4.2 Single Sign-On y autenticación basada en Tokens................................................................ 10

1.5 VULNERABILIDADES .......................................................................................................................... 12 1.5.1 Denial of Service (DoS). ....................................................................................................... 13 1.5.2 Malware Injection. ............................................................................................................. 15 1.5.3 Side Channel....................................................................................................................... 16

2. SISTEMAS DE DETECCIÓN DE INTRUSIÓN ........................................................................................ 19

2.1 IDS DESPLEGADOS EN RED .................................................................................................................. 20 2.2 IDS EN HOSTS ................................................................................................................................. 21 2.3 IDS DISTRIBUIDO ............................................................................................................................. 22 2.4 SISTEMAS BASADOS EN VMM / CONTROLADOR / HYPERVISOR: .................................................................. 23 2.5 MÉTODOS DE DETECCIÓN ................................................................................................................... 26

2.5.1 Clasificadores de patrones .................................................................................................. 26 2.5.2 Sistemas basados en anomalías .......................................................................................... 27

2.6 IDS EN ENTORNOS DINÁMICOS ............................................................................................................ 28 2.6.1 Migración de máquinas virtuales ........................................................................................ 28 2.6.2 Proceso de migración de máquinas virtuales ....................................................................... 29 2.6.3 Tipos de migración ............................................................................................................. 31 2.6.4 Riesgos de seguridad asociados a la migración ................................................................... 32

3. CLUSTERING .................................................................................................................................... 33

3.1 MÉTODOS DE CLUSTERING JERÁRQUICOS ................................................................................................ 34 3.2 MÉTODOS DE PARTICIÓN.................................................................................................................... 35

3.2.1 K-means ............................................................................................................................. 35 3.2.2 Affinity propagation ........................................................................................................... 36

3.3 SPECTRAL CLUSTERING....................................................................................................................... 37 3.4 CLUSTERING PARA DETECCIÓN DE INTRUSIÓN .......................................................................................... 38

4. DESARROLLO DEL MODELO DE DETECCIÓN DE INTRUSIÓN ............................................................. 40

4.1 FORMACIÓN DE CLÚSTERES ................................................................................................................. 41 4.2 PROCESADOR DE TRÁFICO................................................................................................................... 42 4.3 ASIGNACIÓN DE CLÚSTERS .................................................................................................................. 42 4.4 CLASIFICACIÓN ................................................................................................................................ 42 4.5 AGREGACIÓN .................................................................................................................................. 44

5. METODOLOGÍA DE EVALUACIÓN ..................................................................................................... 45

5.1 MÉTRICAS DE EVALUACIÓN ................................................................................................................. 45

5.1.1 Matriz de confusión ............................................................................................................ 46 5.2 ESCENARIO DE PRUEBAS ..................................................................................................................... 48

5.2.1 Almacenamiento ................................................................................................................ 50 5.2.2 Módulos de software .......................................................................................................... 50 5.2.3 Interfaz de control .............................................................................................................. 50 5.2.4 Datos.................................................................................................................................. 51

6. DESARROLLO DE UN PROTOTIPO DE IDS .......................................................................................... 56

6.1 ARQUITECTURA ................................................................................................................................ 56 6.2 ENTRENAMIENTO ............................................................................................................................. 60

6.2.1 Preprocesamiento y reducción de características ................................................................. 60 6.3 FORMACIÓN DE CLÚSTERES ................................................................................................................. 62

7. EVALUACIÓN DEL MODELO DE DETECCIÓN...................................................................................... 66

8. CONCLUSIONES Y RECOMENDACIONES ........................................................................................... 85

8.1 CONCLUSIONES ................................................................................................................................ 85 8.2 RECOMENDACIONES .......................................................................................................................... 86

Lista de figuras

Figura 1- Red definida por software ...................................................................................4

Figura 2- Enrutamiento ......................................................................................................5

Figura 3- PAP ....................................................................................................................9

Figura 4- CHAP ...............................................................................................................10

Figura 5- SAML ...............................................................................................................11

Figura 6 - Oauth ..............................................................................................................12

Figura 7 - DoS .................................................................................................................14

Figura 8- Side channel ....................................................................................................17

Figura 9 – Tipos de IDS ...................................................................................................25

Figura 10- Migración LAN Figura 11- Migración WAN ...............................31

Figura 12 Flujo de pruebas ..............................................................................................48

Figura 13 – Arquitectura de IDS ......................................................................................57

Figura 14 - Capa de IDS ..................................................................................................58

Figura 15 - matriz de correlación KDD cup 99 - 10% .......................................................61

Figura 16 - matriz de correlación kdd cup 99 - 10%, eliminando variables altamente

correlacionadas. ..............................................................................................................62

Figura 17 - Distribución de etiquetas de entrenamiento; Capa 1......................................63

Figura 18 – Distribución de etiquetas de entrenamiento; Capa 2 .....................................63

Figura 19 – Distribución de etiquetas de entrenamiento; Capa 3 .....................................63

Figura 20 - Distribución de etiquetas de entrenamiento; Capa 4......................................64

Figura 21 - Distribución de etiquetas de entrenamiento; Capa 5......................................64

Figura 22 - Uso de CPU (todos los núcleos) ....................................................................67

Figura 23 - Uso de memoria RAM ...................................................................................68

Figura 24 - Uso de CPU (1)............................................................................................. 69

Figura 25 - Uso de CPU (2)............................................................................................. 69

Figura 26 - Uso de CPU (3)............................................................................................. 69

Figura 27 - Uso de CPU (4)............................................................................................. 70

Figura 28 - Uso de CPU (5)............................................................................................. 70

Figura 29 - Uso de CPU (6)............................................................................................. 70

Figura 30 - Uso de CPU (7)............................................................................................. 71

Figura 31 - Uso de CPU (8)............................................................................................. 71

Figura 32 - Uso de CPU (9)............................................................................................. 71

Figura 33 - Uso de CPU (10) ........................................................................................... 72

Figura 34 - Uso de CPU (11) ........................................................................................... 72

Figura 35 - Uso de CPU (12) ........................................................................................... 72

Figura 36 - Uso de CPU (13) ........................................................................................... 73

Figura 37 - Uso de CPU (14) ........................................................................................... 73

Figura 38 - Uso de CPU (15) ........................................................................................... 73

Figura 39 - Uso de CPU (16) ........................................................................................... 74

Figura 40 - Tiempo de ejecución en paralelo .................................................................. 74

Figura 41 - Matriz de confusión, capa 1 .......................................................................... 75

Figura 42 - Matriz de confusión, capa 2 .......................................................................... 76

Figura 43 - Matriz de confusión, capa 3 .......................................................................... 76

Figura 44 - Matriz de confusión, capa 4 .......................................................................... 77

Figura 45 - Matriz de confusión, capa 5 .......................................................................... 77

Figura 46 - Matriz de confusión normalizada ................................................................... 78

Figura 47 - Matriz de confusión binaria; Capa 1 .............................................................. 78

Figura 48 - Matriz de confusión binaria; Capa 2 .............................................................. 79

Figura 49 - Matriz de confusión binaria; Capa 3 .............................................................. 79

Figura 50 - Matriz de confusión binaria; Capa 4 .............................................................. 80

Figura 51 - Matriz de confusión binaria; Capa 5 .............................................................. 80

Figura 52 - Matriz de confusión binaria ........................................................................... 81

Figura 53 - Matriz de confusión binaria, sin optimización ................................................ 81

Lista de tablas

Tabla 1 Medidas de distancia ..........................................................................................34

Tabla 2 - Métricas de evaluación .....................................................................................49

Tabla 3 Características básicas[78] .................................................................................52

Tabla 4 Características basadas en contenido[78] ..........................................................53

Tabla 5 Características basadas en tiempo[78] ...............................................................54

Tabla 6 Características basadas en tráfico[78] ................................................................55

Tabla 7 - Datos KDD cup 99 ............................................................................................67

Tabla 8 - Distribución de etiquetas ..................................................................................75

Tabla 9 – resultados KDD cup 99, 2 etiquetas .................................................................82

Tabla 10- Impacto del proceso de agregación .................................................................82

Tabla 11 - Comparativa con experimentos previos ..........................................................83

Introducción

La computación en la nube es una de las tecnologías de mayor crecimiento en la industria

de las tecnologías de la información y las comunicaciones, debido a la creciente necesidad

de contar con redes escalables y adaptativas ante necesidades particulares, pues este tipo

de sistemas aportan facilidad de uso, alta disponibilidad y en general, una mejor relación

costo-beneficio [1]. Por ello, cada vez más organizaciones optan por la migración de sus

sistemas de cómputo a éste nuevo paradigma [2].

Los IDS (sistemas de detección de intrusión) son sistemas computacionales que se

encargan del monitoreo y protección de una red mediante la aplicación de 4 funciones

principales: Recolección de información, selección de atributos, análisis y acción [3]. Estos

sistemas tienen su origen en la investigación con fines militares. Específicamente, en el

año 1972 la Fuerza Aérea de los Estados unidos comenzó a tratar el problema de la

seguridad en sus redes computacionales, al pretender compartir el uso de sus

computadores entre varios usuarios con diferentes privilegios de acceso [4].

En esta investigación, se explora el uso de algoritmos de clustering para la detección de

amenazas sobre redes elásticas y auto-escalables, mediante el desarrollo de una

arquitectura de IDS, que permita explotar las particularidades de este tipo de red para

lograr un sistema eficiente y escalable. Particularmente, se centra en caracterizar las

amenazas de seguridad comunes en las redes de computación en la nube, conduciendo

al desarrollo de un modelo enfocado a la detección de intrusión en este tipo de entornos,

tomando como base los desarrollos hechos en métodos de clustering para la clasificación

de datos. Para ello, se define un entorno de prueba basado en DARPA IDS dataset [18]

que permita medir la efectividad del modelo de detección desarrollado y se implementa un

prototipo del sistema propuesto.

1. Seguridad en redes de computación en la

nube

La computación en la nube es un paradigma de computación que permite la asignación de

recursos compartidos de procesamiento y almacenamiento según sean requeridos por un

determinado servicio. Esta característica, lo convierte en un paradigma apetecido por las

organizaciones ya que a través de las virtualización de sus servidores se puede optimizar

el consumo de recursos mejorando el desempeño y reduciendo costos[5].

Para este año, el negocio de Infraestructura como servicio (IaaS) encargada de proveer

servicios de computación en la nube a personas y organizaciones, generará a los

proveedores ganancias cercanas a los 38.000 millones de dólares. Se estima que esta

cifra ascienda 127.000 millones en 2018 y 167.000 millones en 2020. Para el año 2020 se

estima que el 50% de las organizaciones estarán soportando sus servicios de cómputo por

infraestructura en la nube. [2]

Estas características se logran principalmente mediante la virtualización, que es el proceso

por el cual se puede simular el entorno de ejecución de uno o varios dispositivos dentro de

un solo equipo físico[6]. La migración de una red convencional a una red basada en

máquinas virtuales conlleva por sí misma una amenaza de seguridad, pues se añade una

capa adicional de software que constituye un posible blanco de ataques[7].

1.1 Redes definidas por software

El principal reto tecnológico al que nos enfrentamos a la hora de desplegar servicios en la

nube es la asignación de recursos de cómputo, así como la reconfiguración de una red

intrínsecamente dinámica que suele estar limitada por ciertas configuraciones, recursos de

almacenamiento y conexiones físicas de los dispositivos de red. Las redes definidas por

software (SDN, software defined networking) son un paradigma emergente que hace frente

2

a este problema al permitir al administrador de red realizar actividades de gestión de

manera programática sobre una red.[6]

Esto se consigue mediante la separación del plano de control (El conjunto de entidades

que se encargan de decidir cómo se en-ruta el tráfico a través de la red) y el plano de datos

(El conjunto de entidades encargadas del envío de paquetes). El punto crítico de una red

definida por software está ligado justamente al plano de control donde existe un controlador

principal, encargado de gestionar toda la red. Mientras la redes tradicionales requieren la

reconfiguración de varios equipos de red cuando se realiza una actualización, se añaden

o se modifican recursos, una red definida por software solo requiere una actualización de

software reduciendo notablemente la complejidad de la operación de la red y los costos

asociados a ella[8].

En el plano de datos coexiste toda la infraestructura virtual y/o física de la red, es decir que

dispositivos virtuales tales como OpenVSwitch, Nettle e Indigo pueden coexistir con

equipos de red físicos como switches y routers. Esto se debe a que los dispositivos

compatibles con software como Openflow pueden ser gestionados sin que exista una

diferencia desde el punto de vista lógico o funcional con los equipos virtualizados[6].

Por otra parte, plano de control consiste en un controlador capaz de gestionar toda la red,

si bien generalmente se tiene un controlador centralizado, desarrollos recientes abordan

el despliegue de entidades de control distribuidas que permiten mejorar aspectos de

desempeño y seguridad. El controlador se encarga exclusivamente de tomar decisiones

de enrutamiento, reenvío y políticas de descarte de paquetes.

El mecanismo de comunicación entre planos más popular es el protocolo Openflow, sin

embargo, existe gran variedad de protocolos propietarios para este fin.

3

Figura 1- Red definida por software

Recientemente se ha presentado un importante fenómeno de migración de datacenters a

redes definidas por software, esto debido a la facilidad para agregar recursos globales de

almacenamiento y cómputo sin afectar la disponibilidad y el desempeño de los servicios

soportados. Esto ha motivado el desarrollo de nuevas soluciones de virtualización basadas

en SDN por parte de fabricantes de software y hardware tales como Cisco, H3C, VMWare.

Microsoft y Google.[6][9]

1.2 Enrutamiento y control de congestión

Las redes de computación en la nube se caracterizan por la capacidad de proveer acceso

a un recurso determinado según la demanda. Por ello, encontrar el recurso disponible más

próximo a la ruta más rápida, a determinada información en la red es un aspecto de vital

importancia. También, es común que los servicios en la nube sean desplegados en

datacenters, donde los diferentes componentes de una red lógica particular no están

necesariamente contenidos en el mismo equipo físico o red de área local.

Por consiguiente, el principal reto para vencer en cuanto al enrutamiento consiste en

encontrar la ruta óptima que permita enviar un mensaje de la fuente F al destino D con el

menos impacto posible sobre la red y los recursos de cómputo. Al tratarse de redes

distribuidas, dinámicas y de gran escala, los algoritmos y protocolos tradicionales son

insuficientes para afrontar este problema. [10]

4

En la actualidad, el enrutamiento en redes de computación en la nube y en general en

redes de topología dinámica como las redes ad hoc, constituyen un campo de investigación

activo, por lo que si bien, existen en la actualidad estrategias de enrutamiento, ninguna de

ellas resulta óptima en todos los puntos de interés[11].

1.3 Enrutamiento en redes dinámicas y distribuidas

El enrutamiento basado en contenidos es un algoritmo sencillo en el que todos los

mensajes son enviados a un enrutador sin información de destino. Para decidir el destino,

el enrutador lee el cuerpo del mensaje y aplica una serie de reglas que le permiten decidir

a qué cliente va dirigido el mensaje. Generalmente se trata del nodo que provee el servicio

especificado en el mensaje, aunque pueden existir reglas más complejas. La principal

ventaja de esta clase de enrutamiento, es que se adapta fácilmente ante cambios en la

ubicación de servicios específicos[10].

Sin embargo, este tipo de enrutamiento resulta altamente ineficiente para las redes en la

nube modernas, pues la complejidad de la red puede crecer exponencialmente y

modificarse constantemente, lo que hace altamente ineficiente escanear toda la red para

definir la ruta a cada servicio o pieza información en la red y sobrescribir las tablas de

enrutamiento en todos los equipos [10][11].

Figura 2- Enrutamiento

Existen otros tipos de enrutamiento comunes en redes distribuidas, que permiten prescindir

de conocer toda la topología de la red, tales como el enrutamiento basado en ubicación o

el enrutamiento basado en tablas hash.

En primer lugar, el enrutamiento basado en ubicación es aquel que realiza información de

la ubicación geográfica de los hosts en lugar de direcciones IP. En la actualidad, existen

varios algoritmos capaces de realizar el enrutamiento basado en la información de

5

ubicación, tales como greedy forwarding (must forward within radius, neares forward

progress, compass routing, random progress forward), face forwarding, y flooding. A pesar,

de la flexibilidad que portan estas estrategias de enrutamiento, en el caso de los algoritmos

de un solo camino no existe garantía de que el mensaje llegue a su destino, y puede

generar tráfico innecesario en la red [10], [11].

Por otro lado, los métodos basados en tablas hash son comunes en las redes peer-to-peer,

donde básicamente las tablas hash se almacenan de manera distribuida a través de los

nodos de la red y permiten conocer la ubicación de un determinado recurso, mediante la

consulta de dichas tablas en otros nodos. Este tipo de estrategias, son altamente

escalables y tolerantes a fallos. Sin embargo, resulta difícil verificar la integridad del recurso

obtenido lo que constituye un problema de seguridad que lo hace inutilizable, por ejemplo

para redes empresariales. En la actualidad su uso se limita a redes de archivos

compartidos[10][11].

1.3.1 OSPF y BGP

Open Shortest Path First (OSPF) es un protocolo de enrutamiento para redes IP que se

usa de manera interna dentro de un mismo dominio de direcciones, como al interior de un

centro de datos. Este protocolo se usa para dirigir paquetes a través de la ruta de menor

costo computacional basándose en la IP de destino. Esto se logra construyendo un mapa

de topología de red basándose en la información de estado de enlaces. Este mapa puede

ser actualizado en pocos segundos, en caso de que un enlace cambie su estado. Para ello

OSPF usa métodos basados en el algoritmo de Djisktra.

En este algoritmo, el costo de visitar un nodo de la red puede definirse con diferentes

métricas tales como la distancia entre nodos (Tiempo que se tarda en recibir respuesta

tras enviar una señal), el throughput del enlace o la disponibilidad conocida de cada enlace.

Por ello, el protocolo OSPF es ampliamente usado en las redes de computación en la nube

que funcionan de manera distribuida pues permite minimizar el costo de dirigir un paquete

hacia el puerto de salida de un centro de datos. El protocolo OSPF en su versión básica

está definido como OSPF Versión 2 por IETF [12]

BGP (Border Gateway Protocol) es un protocolo usado principalmente para el intercambio

de tablas de enrutamiento entre centros de datos. Este proceso se lleva a cabo mediante

la comunicación entre los routers externos de 2 sistemas autónomos, es decir 2 grupos de

6

redes IP con tablas de enrutamiento independientes y capaces de operar

independientemente.

El protocolo BGP parte de la caracterización del tráfico entrante y saliente. Para ello, se

cuenta con una serie de atributos configurables que ayudan al direccionamiento y filtrado

de paquetes hacia los routers internos del sistema autónomo: ORIGIN, AS-PATH, NEXT-

HOP, MULTI-EXIT-DISCRIMINATOR, LOCAL-PRE, COMMUNITY, los cuales están

descritos por IETF en la especificación del protocolo BGP [13]

En conjunto, los protocolos BGP y OSPF el uso de tablas de enrutamiento eficientes en

redes de alta complejidad y sistemas autónomos interconectados para los que el protocolo

Spanning tree resulta altamente ineficiente, pues puede generar demasiadas posibles

rutas, lo que conlleva una degradación del desempeño, además de agotar el tiempo de

vida de los paquetes antes de que estos sean entregados dada la complejidad de las

posibles rutas.

1.3.2 Protocolo DCTCP

Los centros de datos soportan gran variedad de aplicaciones y entornos vitalizados en su

interior. En estos sistemas algunas aplicaciones desplegadas requieren un mayor flujo de

datos, lo que desencadena una degradación del desempeño en otras aplicaciones. Esta

degradación obedece principalmente a la formación de colas que superan la capacidad de

los enlaces causando fluctuación en los tiempos de respuesta y perdida de paquetes. El

protocolo TCP (Transmission Control Protocol) utilizado en las redes IP convencionales no

cuenta con los mecanismos de control de congestión necesarios para hacer frente a estos

problemas ante el crecimiento exponencial de la complejidad de estas redes[14].

1.4 Gestión de identidad y acceso

La gestión de identidad se compone de todos los procesos encargados de identificar y

categorizar a los usuarios que se conectan a la red, así como los permisos otorgados a

cada uno de ellos. Los procesos de autenticación de usuarios son variados, como el uso

de contraseñas, certificados, tokens o sistemas físicos de identificación biométrica.

Para los procesos de identificación, es importante contar con un repositorio central que

debe contener la información actualizada de todos los usuarios y sus roles dentro del

sistema por lo que va de la mano con los procesos organizacionales de gestión de

7

personal. Este componente debe garantizar la integridad y confidencialidad de dicha

información, mediante una política de acceso único y el cifrado de su información pues

se asume que este constituye la única fuente confiable de identidades en la red.[5]

El desempeño de estos sistemas depende en gran medida de la cantidad de operaciones

de lectura y escritura que se realicen. Es por ello, por lo que se deben tener políticas claras

sobre los procesos de aprovisionamiento, que permitan automatizar las actividades de

solicitud y revocación de permisos. Desde el punto de vista de la seguridad, el uso

adecuado de un repositorio central facilita el desarrollo de actividades de auditoria, pues

permite la observación de tendencias de uso y la identificación precisa de los usuarios o

grupos que pueden acceder cada servicio o recurso. De esta manera se pueden identificar

potenciales riesgos de seguridad ligados a las políticas de gestión de usuarios, por

ejemplo:

• Grupos de usuarios con más permisos de los necesarios.

• Usuarios realizando cantidades inusuales de solicitudes de permisos.

• Políticas faltantes o redundantes.

Otro aspecto clave para mecanismos de gestión de identidad en la red, es la gestión de

contraseñas, que se refiere al conjunto de componentes de software encargados

almacenar y asegurar contraseñas y otros mecanismos de identificación como huellas

biométricas o certificados. Para ello, estos componentes se encargan de asegurar que las

contraseñas son lo suficientemente fuertes y son almacenadas en forma cifrada.

Además, debe permitir una serie de procesos de actualización y recuperación de

contraseñas. La automatización de los procesos de gestión de contraseñas, no solo mejora

la seguridad general del sistema al eliminar la intervención humana, sino que además

reduce costos al no tener que escalar los problemas comunes de autenticación a un

miembro de la organización administradora de la red.

Los sistemas de gestión de identidad tienen como objetivo facilitar el control de acceso

mediante una serie de mecanismos encargados de determinar qué usuarios pueden

acceder a un determinado servicio y cómo pueden hacerlo.

Estos sistemas, si bien son necesarios, constituyen un blanco potencial para cualquier

atacante, pues la suplantación de identidad o la modificación de los roles de usuarios

supone obtener acceso total a la red, sus servicios y recursos. El principal riesgo está

8

asociado al factor humano, pues es difícil llevar un seguimiento adecuado de las políticas

de seguridad en la organización y el mal uso o almacenamiento de contraseñas,

certificados y tokens puede comprometer el control de acceso.

1.4.1 Autenticación basada en contraseñas

El uso de contraseñas es el método más común de autenticación para toda clase de

sistemas computarizados y permite aceptar la identidad de un usuario mediante la

verificación de una contraseña que el usuario conoce. La seguridad de esta clase de

autenticación depende en gran medida de la complejidad de la contraseña y del manejo

que el usuario le dé, pues cualquiera que pueda inferir la contraseña podría suplantar la

identidad del usuario.

PAP (Password Authentication Protocol) es uno de los protocolos de autenticación más

antiguos que se usan en la actualidad y se considera un método inseguro de autenticación,

ya que transmite contraseñas sin cifrar a través de la red, lo que lo hace altamente

vulnerable a ataques tipo Eavesdropping y man in the middle. Como no es necesario

realizar ningún tipo de operación sobre la contraseña usada este protocolo resulta el más

eficiente en términos computacionales[15].

Figura 3- PAP

CHAP (Challenge-Handshake Authentication Protocol) [16] Es un protocolo que permite

realizar procesos de autenticación entre 2 actores sin transmitir la contraseña a través de

la red, y requiere que ambas partes conozcan de antemano la contraseña sin cifrar. Para

esto, se hace uso de una función de hash calculada sobre la combinación de la contraseña

con una cadena aleatoria generada por el servidor. Este proceso se considera

computacionalmente seguro, sin embargo, la principal vulnerabilidad recae la necesidad

9

de poder obtener contraseñas en texto plano en el servidor de autenticación, por lo que un

atacante con acceso a este servidor puede comprometer todas las contraseñas del

sistema.

Figura 4- CHAP

1.4.2 Single Sign-On y autenticación basada en Tokens

Una característica importante de las redes en la nube es la capacidad de contar con un

repositorio central de identidades, esto permite que una sola instancia de identificación

brinde acceso a todos los servicios disponibles en la red según los permisos de usuario. A

esta característica se le conoce como Single Sign-On, y en la actualidad existen varios

protocolos y estándares que soportan esta funcionalidad. Algunos de los más exitosos son

OAuth, SAML y OIDC[17].

Existen características en común de los diferentes estándares y protocolos de gestión de

identidad: El uso de tokens. Un token es básicamente un objeto de software único

generado al realizar una acción, que sirve como identificador de la sesión o transacción.

SAML (Security Assertion Markup Language), es un estándar basado en XML pensado

para comunicar información de autenticación y atributos ligados a esta entre diferentes

instancias y servicios. SAML permite brindar 3 tipos de información a la instancia que lo

requiera:

10

Identidad el usuario.

Atributos del usuario.

Autorización de usuario.

La especificación SAML no trabaja en la capa de transporte, razón por la cual se

recomienda su uso en conjunto con otros mecanismos que garanticen la integridad del

canal de comunicación y la confidencialidad de los mensajes, tales como SSL para la

protección del canal y el cifrado de los documentos XML.

Cuando un usuario solicita acceso a un servicio, se envía una petición al servidor de

gestión de identidades (identity provider) el cual se encarga de autenticar al usuario y

generar un token según los niveles de permiso asignados a dicho usuario. Este token está

acompañado de un certificado firmado por el proveedor de identidades que garantiza su

fuente. Posteriormente se envía una petición al servicio solicitado que contiene el token, el

proveedor del servicio verifica la autenticidad del token y responde al usuario con el recurso

o servicio solicitado[17].

Figura 5- SAML

OAuth (Open Authorization) es un protocolo pensado para proveer un capa de autorización

que permite proveer de recursos y servicios restringidos a una aplicación externa sin la

necesidad de compartir la credenciales de acceso del usuario que solicita el acceso. Para

esto, en lugar de reusar las credenciales de usuario, el dueño del recurso otorga un token

que otorga acceso al recurso y le permite identificar al usuario autorizado[17]. La

especificación OAuth trabaja exclusivamente sobre el protocolo HTTP [18]

11

Para este proceso, el protocolo contempla 4 roles básicos que interactúan:

Dueño del recurso: Es la entidad que posee las credenciales necesarias para

acceder a un recurso restringido, este puede ser un servidor o un usuario final.

Servidor del recurso: Es el servidor que guarda el recurso protegido y que debe ser

capaz de aceptar peticiones basándose el token de acceso.

Servidor de autorización: Es el servidor encargado de autenticar, autorizar y

proveer los tokens de acceso.

Cliente: Se refiere a la aplicación (software) que se encarga de solicitar los recursos

en nombre de un usuario.

Figura 6 - Oauth

1.5 Vulnerabilidades

Las redes de computación en la nube están soportadas sobre dispositivos físicos y como

tal comparten todas las vulnerabilidades propias de la capa física en cualquier red de

comunicaciones. Además, se introduce una capa adicional de software correspondiente a

los componentes de virtualización y control, así como ciertos comportamientos propios de

las redes en la nube como el auto-escalamiento. Estas características añades nuevos retos

12

al momento de garantizar la seguridad de la red pues constituyen potenciales

vulnerabilidades y blancos de ataque.

Es difícil estimar la cantidad total de ciberataques que se llevan a cabo cada día a sistemas

de cómputo soportados en la nube. Sin embargo, ciertas firmas especializadas como

Kaspersky labs, Panda labs o algunas agencias gubernamentales de seguridad, realizan

análisis que permiten caracterizar el panorama de la seguridad digital en el mundo. En el

tercer cuatrimestre de 2016 Panda Labs, detectó 18 millones de nuevos malware y cada

40 segundos se reportó un ataque tipo ransomware en el mundo[19]. Si bien los ataques

tipo ransomware, constituyen hoy por hoy la mayor preocupación de los expertos en

seguridad, este tipo de ataques no explotan ninguna característica particular de las redes

computación en la nube[19].

Se estima que el porcentaje de ciberataques dirigidos a organizaciones pequeñas y

medianas pasó del 34% al 43% entre 2014 y 2015 [20]. Para el 2016 se contempla que

alrededor del 50% de las organizaciones de mediano y gran tamaño sufrieron algún tipo

de intento de intrusión durante el 2016 y cerca del 35% fueron víctimas de ataques

exitosos. En 2016, 52 de cada 100% organizaciones afirmaron no tener planes de mejora

en sus sistemas de seguridad computacional y solo el 31% afirmaron tener algún plan en

marcha[21].

1.5.1 Denial of Service (DoS).

Los ataques de denegación de servicio (DoS), son ataques usados con el objetivo de

inhabilitar un equipo o una red mediante la sobrecarga o inhabilitación de sus recursos de

cómputo, impidiendo la ejecución de los servicios soportados[22]–[25].

Existen 2 clases de ataque DoS. Los ataques de denegación de servicio por saturación

son aquellos que realizan peticiones en gran volumen o con gran cantidad de datos con el

fin de saturar los recursos de la red impidiendo su correcto funcionamiento. Mientras que

los ataques de denegación de servicio por explotación de vulnerabilidad son aquellos que

hacen uso de un fallo detectado en el sistema para hacer que una tarea o servicio critico

dejen de funcionar[25].

Este tipo de ataques no pretenden robar o alterar ningún tipo de recurso o información,

suelen ser usados con el fin de afectar negativamente servicios y organizaciones

deteniendo su operación. Si bien los ataque DoS no usan mecanismos sofisticados, estos

13

siguen siendo efectivos contra cualquier sistema conectado a una red pública sin importar

su arquitectura o sistema operativo[25].

Cuando el ataque se realiza desde varias fuentes simultáneamente, se conoce como

ataque DDoS (DoS distribuido). Estos se enfocan generalmente a la saturación de los

recursos mediante el envío simultáneo de grandes cantidades de peticiones o gran

volumen de datos, afectando la capacidad de procesamiento del sistema o su ancho de

banda. El principal reto que imponen los ataques distribuidos respecto a los ataques con

una sola fuente, es la dificultad para identificar y aislar la fuente del ataque, pues es

necesario contar con un mecanismo, que permita diferenciar las peticiones reales (que

obedecen al uso legítimo del sistema) de las peticiones maliciosas[22], [25].

Figura 7 - DoS

Las redes de computación en la nube son especialmente vulnerables a ataques DoS

producto de su capacidad de escalamiento y balanceo de carga, pues el comportamiento

natural de la red ante un ataque DoS, es aumentar más y más la cantidad de recursos

disponibles para el servicio blanco del ataque. Los ataques distribuidos (DDoS),

constituyen una amenaza aún mayor pues su detección resulta más difícil. En este tipo de

ataques, la capacidad de escalamiento de la red puede en principio mitigar el efecto del

ataque, sin embargo dicha capacidad de expansión está limitada siempre por el hardware

disponible o por servicios críticos como bases de datos que suelen constituir un cuello de

botella, por lo que un ataque puede no solo llevar a la denegación del servicio para los

usuarios legítimos, sino que también puede llevar a enorme desperdicio de recursos

computacionales con su respectivo costo económico[22], [25].

La firma especializada en seguridad informática Kaspersky labs realiza constantemente

análisis de reportes de ataques en todo el mundo con una detallada caracterización de los

14

ataques de este tipo. Al cierre del año 2018 llegaron a reportarse en ciertos días más de

800 ataques DoS y DDoS de gran escala producto de actividad criminal[26]. Un análisis de

la distribución geográfica de los ataques establece a China como el principal foco de esta

actividad con el 50.43% de los eventos seguido de estados unidos con el 24.90%.

Con el fin de prevenir este tipo de ataques en las redes de computación en la nube,

comúnmente se recurre al uso de firewalls e IDS que permitan la detección oportuna de

patrones de ataque, y el bloqueo del tráfico proveniente de dichas fuentes. Sin embargo,

las medidas defensivas no se limitan a esto, pues es necesario contar con la infraestructura

suficiente, que permita a los sistemas mantenerse estables durante dichos eventos de alta

carga. Algunas de estas medidas son:

- Mantener un ancho de banda muy superior al tráfico normal de la red, este debe

permitir al sistema soportar ataques en pequeña escala, dificulta la labor del

atacante y brinda un mayor margen de respuesta.

- Aplicar a servicios expuestos mecanismos de throttling (limitar los recursos

asignados para responder a un usuario, dirección o servicio específico) y de rate-

imiting (limitar la cantidad de peticiones atendidas por periodo de tiempo para cada

usuario, dirección o servicio específico). De esta manera se limita el impacto de los

ataques y se obliga al atacante a aumentar la escala.

- Mantener canales alternos seguros, como enlaces o servidores dedicados para su

uso con usuarios o servicios críticos. De esta manera, dichos enlaces pueden

mantenerse funcionales aun en eventos de ataque sobre servicios públicos.

1.5.2 Malware Injection.

El trabajo principal de un sistema de cómputo en la nube, suele ser la coordinación

instancias de máquinas virtuales o de servicios particulares. Una vez se realiza una

petición el sistema debe ser capaz de identificar la localización del servicio o la información

solicitada, desplegarlos si es necesario y encontrar la ruta óptima para entregar el

contenido al usuario. Malware Injection, es un tipo de ataque que consiste en la

implantación de servicios maliciosos dentro de la red de computación en la nube afectando

uno o varios de los procesos involucrados en la entrega de contenido[25], [27].

Este tipo de ataque requiere que el atacante cree su propio módulo de servicio (SaaS o

PaaS) o una instancia de máquina virtual (IaaS) y anexarlo a la red de cómputo en la nube

15

haciéndolo pasar como un componente auténtico de la red. El componente malicioso

puede desarrollar varias tareas como interceptar información privada, suplantar un servicio

de la red o incluso tomar el control de otros nodos de la red. Por lo que constituye una de

las mayores amenazas para un sistema de computación en la nube[25]. De acuerdo AV-

TEST durante el año 2018, cada mes se detectaron en promedio 11.46 millones de nuevos

malware[28].

Un mecanismo común de mitigación ante este tipo de ataques consiste en la

implementación de verificaciones de integridad generando códigos hash de los

componentes auténticos y verificando su integridad cada vez que hay comunicación entre

servicios, dispositivos o instancias virtuales. Como resultado de este proceso un atacante

deberá ser capaz de generar un componente malicioso con un código hash valido

(Colisión)[25].

1.5.3 Side Channel

Una de las características más importantes de los sistemas de computación en la nube, es

la capacidad desplegar y configurar recursos virtuales compartiendo hardware, software,

librerías y sistemas de archivos. Todo esto, constituye una vulnerabilidad propia de este

tipo de redes, pues resulta imposible lograr un aislamiento completo de los recursos

virtuales ejecutados en un hardware compartido[29].

Este ataque explota una vulnerabilidad propia de las redes virtualizadas y consiste en alojar

una máquina virtual alterada en el mismo host de la maquina original, lo que le permite

tener acceso a información clave para vulnerar sistemas criptográficos. Este tipo de

ataques requieren un extenso conocimiento de la implementación del sistema criptográfico

que toma como blanco y en teoría permitiría al atacante obtener información crítica como

cuentas de usuarios, contraseñas y otra información clasificada[29], [30].

16

Figura 8- Side channel

Algunos de los componentes que originan estas vulnerabilidades son:

- Caché: Explotan el hecho de que, en las arquitecturas modernas, el caché es

compartido por todos los procesos impidiendo que exista aislamiento físico,

monitoreando los accesos a memoria caché de máquinas virtuales o procesos

críticos.

- Reloj: Este tipo de ataques monitorea el tiempo de ejecución de las tareas para,

por ejemplo, intentar predecir el tamaño de una contraseña, al comparar el tiempo

que tarda un algoritmo de hashing en verificar su autenticidad.

- Memoria: A pesar del aislamiento, se han detectado vulnerabilidades que permiten

a un proceso acceder a memoria adyacente al forzar fallos de código.

Otros tipos de ataques Side Channel pueden ser ejecutados externamente mediante el uso

de dispositivos físicos, monitoreando y analizando patrones de consumo de energía,

acústicos, de radiaciones electromagnéticas, o ópticas que permiten obtener información

total o parcial sobre aspectos de las llaves criptográficas u otra información sensible[29].

Para mitigar estos riesgos, se suele recurrir a diferentes técnicas de aislamiento, como

aislamiento en tiempo de ejecución, aislamiento por usuario, aislamiento por contenedores

o el aislamiento por máquinas[29]. Experimentalmente, se ha comprobado que el

aislamiento por maquinas, es el que proporciona los mejores resultados pues en este se

asignan recursos de hardware específicos a cada instancia de máquina virtual tanto en

procesados, memoria y sistema de archivos. Sin embargo los ataques tipo side cannel,

17

siguen siendo altamente efectivos, pues a que a pesar de localizar recursos particulares

para cada instancia o contenedor y aislarlos de manera lógica a través de un hypervisor el

hardware común sigue permitiendo que los ataque tipo side channel tengan altas tasas de

éxito principalmente asociadas al uso del caché del host[29].

Investigaciones recientes sugieren nuevas tácticas para mitigar y combatir los riesgos

asociados a este tipo de ataque; Mohamed Azab y Mohamed Eltoweissy proponen un

framework de gestión de contenedores que modifica la localización de los recursos

asociados mediante técnicas probabilísticas con el fin de dificultar la tarea de localización

a una instancia maliciosa[29]. Using Bloom y Filter F[30], proponen un sistema de

verificación de integridad de caché para la detección de código malicioso haciendo uso del

caché compartido del host. Younis A Younis, Kashif Kifayat Qi Shi y Bob Askwith[31]

proponen un sistema similar basado en la generación de números primos. Además de otros

estudios recientes que abordan la misma problemática [32]–[35]

18

2. Sistemas de detección de intrusión

El concepto de IDS surge en 1980, cuando James P. Anderson produce el artículo titulado

“Computer Security Threat Monitoring and Surveillance” donde se propone el modelo

básico para un IDS en tiempo real capaz de detectar y clasificar amenazas en la red basado

en reglas simples [36]. El trabajo de James P. Anderson sirvió de inspiración para el diseño

e implementación de los primeros IDS durante las décadas de 1980 y 1990 mediante el

financiamiento del gobierno de los Estados Unidos [4]. El primer IDS funcional se logró

1986 cuando Dorothy Denning y Peter Neumann, desarrollaron un sistema capaz de

analizar el tráfico de la red y detectar posibles amenazas mediante la aplicación de reglas,

de manera similar a un antivirus [4].

Los IDS se clasifican principalmente de acuerdo con el mecanismo de despliegue en la

red, existen IDS desplegados a nivel de red y a nivel Host, así como arquitecturas

distribuidas. Para el caso particular de las redes de computación en la nube, se han

desarrollado IDS desplegados a nivel de Hypervisor o controlador que permiten la

detección de amenazas mediante el análisis de la capa de virtualización[37].

Recientemente el estudio y desarrollo de esta clase de sistemas se ha enfocado en el uso

de técnicas de inteligencia artificial para la implantación de estos sistemas de detección de

intrusión en redes de arquitectura dinámica, debido a que los sistemas de detección

tradicionales no son efectivos en esta clase de redes [38]. Las limitaciones de los IDS

tradicionales para su uso en sistemas en la nube se deben principalmente a las

propiedades de escalabilidad, auto-adaptación, y principalmente la naturaleza estocástica

de los patrones de tráfico y de su propia topología de red [37].

Generalmente, es el dueño de la infraestructura quien se encarga del desarrollo de los

mecanismos de seguridad de las redes desplegadas sobre su infraestructura. Sin

embargo, en los servicios de IaaS estas medidas de seguridad suelen limitarse a garantizar

la integridad de la red, y evitar que esta colapse por el volumen de tráfico.

19

Estas medidas usualmente se refieren a la implementación de protocolos y políticas que

garantizan un óptimo enrutamiento y utilización de los recursos de cómputo y

almacenamiento. Así, como la gestión de los mecanismos de gestión de identidad y acceso

necesarios para el correcto despliegue del servicio. En este sentido, gran parte de las

medidas de seguridad recaen sobre la capa de aplicación[37], [38].

2.1 IDS desplegados en red

Estos funcionan básicamente capturando y analizando el tráfico de la red, contrastando

esta información con la información en tiempo real del estado de la red, así como los

niveles de permiso y servicios activos en cada host [6]. La localización del IDS dentro de

la red puede incluso ser dinámica o estar replicada, con el fin de esconderlo ante un posible

atacante. Este tipo de IDS debe tener acceso completo a los equipos que interactúan con

redes externas y es incapaz de realizar análisis sobre tráfico encriptado [7].

Los IDS basados en red analizan el tráfico principalmente a nivel de capa de transporte y

protocolos de la capa de aplicación, mediante una serie de sensores que capturan

información particular[37], [39].

Los sensores, pueden ser desplegados en el enlace, haciendo que todo el tráfico del

segmento pase por el para su análisis. Esto se suele lograr integrando la lógica del sensor

en un dispositivo de red físico como un firewall o un switch por lo que no requieren

hardware especial para su funcionamiento. La gran ventaja que representa este esquema

al estar integrado como equipos de red físicos, es que se pueden crear esquemas de

detección y reacción inmediata; por ejemplo, bloqueando el tráfico de la fuente que genera

la alarma.[39], [40]

Sin embargo, el tipo más común de sensor en red es desplegado de manera pasiva. Es

decir que no interactúa con el tráfico del enlace, sino que analiza una copia de este. Desde

el punto de vista del desempeño de la red, este esquema permite un mayor desempeño al

no agregar demoras a los paquetes producto del proceso de análisis de datos del

segmento de red.

Una ubicación común para los sensores es tras el firewall externo[39], pues este permite:

- Analizar tráfico en búsqueda de posibles ataques originados en redes externas.

- Descubrir problemas con las políticas o desempeño del firewall

20

- Descubrir ataques dirigidos a los dispositivos abiertos al exterior como servidores

web o FTP

- Analiza el tráfico saliente que puede evidenciar respuestas a ataques no

detectados.

También, es común desplegar sensores tras firewalls internos o servicios críticos. La

información de los sensores desplegados puede ser procesada por un dispositivo particular

o emitir alertas a un sistema centralizado (interfaz de gestión), que se encarga de realizar

las tareas necesarias en la red para mitigar el ataque o realizar las reconfiguraciones

necesarias[40].

Diversas investigaciones abordan el tema de los IDS desplegados en red para redes de

computación en la nube, especialmente enfocados a la reducción de falsos positivos, pues

algunos estudios indican que hasta el 90% de las alertas emitidas por este tipo de IDS

corresponden a falsos positivos[41]. Hong Tanhg[42], propone un sistema basado en

sistemas inmunes artificiales, que permite la reconfiguración automática de sensores. Risto

Vaarandi y Karlins Podins[43], proponen el uso de métodos de clustering como pos-

procesamiento para descartar alertas clasificarlas según su nivel de gravedad. Claudio

Mazzariello, Roberto Bifulco y Roberto Canonico[40], describen los mecanismos de

integración de este tipo de IDS en un entorno de computación en la nube tomando en

cuenta su naturaleza dinámica.

2.2 IDS en hosts

Estos funcionan mediante el análisis del tráfico y los logs de determinado host, estos

permiten detectar ataques internos mediante la detección de actividad anormal en

determinados puertos o en el uso de determinados servicios.

Su funcionamiento se basa en los llamados agentes o sensores que se refieren al módulo

de software que se instala en el host para monitorear, recolectar y analizar la información

que tiene lugar en el host. La información recolectada generalmente viene del sistema

operativo (a través de audit trails), logs del sistema, logs de procesos u objetos generados

por programas específicos en ejecución.

Las implementaciones de IDS en host usualmente se encuentran limitadas por los audit

trails debido a que estos los provee el sistema operativo y pueden no responder a las

necesidades del sistema, por lo que muchas implementaciones implican agregar código al

21

kernel del host, con el fin de generar los eventos deseados, lo que en contraprestación

degrada el desempeño general del sistema. A pesar, de esta limitación de fondo la

información de los audit trails, se sigue considerando la más confiable y los sistemas

operativos más comunes tienen información cada vez más detallada, haciendo más

efectivos este tipo de IDS. Estas características, los hacen ideales para detectar ejecución

de código malicioso, ya que a través de la información recolectada permite responder

preguntas como “¿Qué proceso lanzo el evento?”, “¿Qué usuario lanzó el proceso?” o

“¿Quién accedió al recurso?”.

Si bien, cuanto más detallada y abundante sea la información recolectada, mayor será el

eficacia de los sensores, un problema común de este tipo de IDS yace en las grandes

cantidades de información recolectada, que es acumulada y ocupa un gran espacio de

almacenamiento. Además, cuanto más detallada es la información también aumenta la

demanda de recursos de procesamiento, al no aumentar proporcionalmente al volumen de

datos, es más fácil para un atacante esconder sus huellas, pues la eficiencia del

procesamiento disminuye. Al no tener control sobre la red estos suelen ser susceptibles a

ataques DoS [7], [6].

Otro problema común, con este tipo de implementaciones está relacionado con su costo y

su baja portabilidad, ya que implican mucho desarrollo y están diseñados para una

arquitectura y sistema operativo particular, por lo que no se puede portar fácilmente de un

servidor a otro.

2.3 IDS distribuido

Consiste en varios IDS (de red o de host) desplegados a través de la red, analizando tráfico

y comunicándose entre sí. Esta comunicación puede realizarse mediante comunicación

directa entre ellos o el uso de un servidor central [7]. En general, este tipo de IDS permiten

una gestión eficiente de los registros de incidentes al permitir que estos sean centralizados

y analizados conjuntamente. Estas características le permiten lograr asociaciones

computacionalmente más complejas y comportarse como sistemas de agentes inteligentes

distribuidos [13], [11].

La entidad centralizada de este tipo de sistemas no solo recopila datos, también permite

realizar análisis para relacionar eventos en diferentes segmentos de la red, así como la

generación de estadísticas y punto de configuración de los agentes desplegados en la red.

22

Además, el servidor central es capaz de realizar análisis de agregación, descubriendo

patrones de ataque que serían imposibles de detectar por un solo sensor. El análisis de

agregación consiste es combinar datos similares o relacionados en diferentes segmentos,

permitiendo observar, por ejemplo, como un patrón de ataque avanza a través de los

segmentos de la red o como un ataque puede originarse desde varias fuentes internas y

externas de manera conjunta.

La agregación se realiza por parámetros tales como:

- IP: Permite realizar análisis del patrón de uso desde una fuente particular.

- Puertos de destino: Permite realizar análisis sobre tipos de ataque o revelar

vulnerabilidades.

- Agente: Permite relacionar información histórica para detectar posibles patrones

repetidos que correspondan a intentos de ataque.

- Tiempo: Permite identificar patrones recurrentes de comportamiento, como, por

ejemplo, código malicioso que realiza una tarea a cierta hora especifica.

- Tipo de ataque: Permite revelar ataques coordinados en diferentes segmentos de

la red.

Para el caso particular de las redes de computación en la nube, este tipo de IDS representa

una gran ventaja pues es un esquema permite adaptaciones topológicas con redes de

sensores dinámicas. Investigaciones recientes, han abordado el uso de este tipo de

arquitecturas con diferentes estrategias de detección. Zhe Li[44], propone la

implementación de un sistema distribuido basado en redes neuronales artificiales que se

adapta a los cambios en la topología de la red. Yasir Mehmood, Ayesha Kanwal,

Muhammad Awais Shibli y Rahat Masood, proponen un sistema de agentes móviles

colaborativos capaz de detectar e informar correlaciones, patrones de ataque y

vulnerabilidades mediante la comunicación entre agentes[37].

2.4 Sistemas basados en VMM / Controlador /

Hypervisor:

Hypervisor, se refiere a la entidad responsable de la comunicación entre máquinas

virtuales [6]. Este tipo de IDS son desplegados en dicha capa y tienen la capacidad de

23

analizar el tráfico entra las máquinas virtuales para detectar actividades anómalas

relacionadas con la comunicación y la gestión de recursos [8].

El hypervisor tiene acceso a la información de desempeño de las maquinas que hospeda,

lo que provee información de lo que sucede en la máquina, sin tener que interactuar con

el sistema operativo, aplicaciones o datos de estas[45]. Usualmente, en los sistemas IDS

basados en hypervisor hacen uso de un nodo central encargado de recopilar, analizar y

emitir alertas de los datos provenientes de los hypervisor de las diferentes maquinas; De

manera, similar al nodo central de un IDS distribuido, este permite la agregación de datos

para la búsqueda de correlaciones entre varios componentes. Además, existen

componentes de software asociados a cada hypervisor encargados de clasificar y dar

formato a la información mostrada por el hypervisor.

Los IDS además pueden funcionar de manera nativa (ejecutando nativamente el código de

la máquina virtual en hardware), o de forma emulada (ejecutando el código sobre una capa

de software)[46]. Existen 2 formas de desplegar un IDS de este tipo:

- En el hardware del host, controlando directamente el hardware y el sistema

operativo de la máquina virtual. Xen, VMware ESX, y Microsoft Hyper-V son

ejemplos de este tipo de IDS[46].

- En el sistema operativo del host, donde se añade una capa de software entre el

sistema operativo del host y el sistema operativo de la máquina virtual. KVM,

VMware Workstation, VirtualBox, y QEMU son ejemplos de este tipo de IDS[46].

24

Figura 9 – Tipos de IDS

Gracias a que estos sistemas se despliegan en la capa de hypervisor, estos operan, en

teoría a un menor nivel que el sistema monitoreado, manteniéndose aislado y seguro de

cualquier ataque que ocurra al interior del entorno virtual[46][45].

Las principales ventajas que presentan este tipo de IDS son:

- Aislamiento: Como el hypervisor y la máquina virtual funcionan en un nivel de

abstracción diferente, existe un fuerte aislamiento entre ambos componentes. Este

aislamiento impide posibles ataques o fenómenos de degradación de desempeño

en el entorno virtual afecten al hypervisor o los sensores desplegados sobre él.

- Transparencia: Al estar en capas diferentes, el despliegue de un IDS basado en

hypervisor pasa totalmente desapercibido para el entorno virtual, pues no es

necesario instalar componentes en la red o agregar capas de software en el sistema

operativo virtual, permitiendo en muchos casos realizar despliegues en tiempo de

ejecución sin afectar el funcionamiento del entorno.

- Alcance: Al estar fuera de la máquina virtual, los sensores tienen acceso a los

estados de memoria, disco y registros de las máquinas virtuales permitiendo ver

los estados de las aplicaciones y el kernel del sistema. Además, puede coordinar

25

el despliegue de máquinas de reemplazo para instancias corruptas y tomar

imágenes de estas para su posterior análisis.

A pesar, de las claras ventajas, también se caracterizan por su bajo rendimiento, producto

de la cantidad de operaciones que requiere es traducir direcciones de memoria del host a

direcciones de memoria en el entorno virtual constantemente. Además, resulta un reto

identificar plenamente el problema solo con este tipo de IDS, ya que al estar desplegado

en un nivel de abstracción diferente dificulta la tarea de identificar plenamente el código,

usuarios o procesos maliciosos dentro del entorno[46][45].

2.5 Métodos de detección

La detección de amenazas parte de una abstracción de las características de tráfico de la

red, estas características son el objeto de análisis de sistemas experto que pretenden

detectar amenazas en la red. Estos sistemas expertos de clasifican de acuerdo con la

naturaleza de los algoritmos usados para el análisis de la información.

2.5.1 Clasificadores de patrones

Este tipo de IDS realiza un análisis sobre los eventos de la red y los contrasta con patrones

de ataques conocidos, con el fin de detectar ataques comunes mediante diferentes

algoritmos de clasificación, por lo que estos son incapaces de detectar ataques que

empleen técnicas desconocidas [7], [10].

Los patrones son definidos mediante la abstracción de un conjunto de características de

patrones de ataque conocidos. Generalmente, se trata características de tráfico entrante

tales como la geo-localización de grupos de direcciones, bucles de peticiones, peticiones

con comportamientos determinísticos a través del tiempo o información de sesión. Esto les

permite tener una baja tasa de falsas alarmas; es decir, tienen un nivel muy alto de

precisión en la detección de intrusiones dentro de la red[37].

Entre los algoritmos de clasificación de patrones encontramos los árboles de decisión,

redes neuronales, máquinas de soporte vectorial, redes neuronales, regresión, clustering

o modelos ocultos de Markov[37].

A fin de mantener su eficiencia a través del tiempo las bases de datos de los sistemas de

detección basados en patrones deben ser constantemente actualizadas, agregando

nuevos patrones o actualizando la información de los ya existentes[47].

26

Los IDS basados en clasificadores de patrones, resultan especialmente útiles para el

monitoreo del tráfico entrante de la red, debido a que al estar desplegados en los puertos

de entrada de la red permiten el monitoreo del tráfico en un punto centralizado

eficientemente. También, pueden ser útiles para detectar intrusiones internas si se

despliegan al interior de la red. Sin embargo, se requieren implementaciones más

complejas, y no resultan tan precisos pues la complejidad de la redes hace difícil la

caracterización de ciertos tipos de ataques [37], [38], [48].

2.5.2 Sistemas basados en anomalías

Permite detectar anomalías al contrastar la información de perfiles de uso de red conocidos

con la actividad en tiempo real de los actores de la red, es decir, este se centra en detectar

actividades fuera del comportamiento esperado de la red. Este tipo de sistemas son ideales

para la detección de amenazas que usen métodos de ataque desconocidos [7], [14]. En

esta categoría encontramos los métodos de clustering, que son algoritmos encargados

agrupar y clasificar grandes conjuntos de datos en base a sus características implícitas

[15]. Estos métodos son particularmente útiles como detectores de intrusión, pues permiten

discriminar conjuntos de datos que presentan comportamientos alejados de las tendencias

del conjunto estudiado [16].

Los algoritmos de detección de anomalías se pueden clasificar en 3 grupos

principales[49][50]:

- Detección no supervisada: Son aquellos algoritmos capaces de detectar anomalías

en conjuntos de datos no etiquetados, donde se asume que la gran mayoría de los

datos corresponden al comportamiento normal del sistema.

- Detección supervisada: Son aquellas que requieren un conjunto de datos

etiquetados para su entrenamiento, donde cada dato es catalogado como

comportamiento normal o anormal.

- Detección semi-supervisada: Son aquellos algoritmos capaces de generar un

modelo de clasificación a partir de un conjunto de entrenamiento de datos

normales, que es capaz de discriminar datos que no correspondan a dichos

patrones de comportamiento.

27

Entre los algoritmos de detección de anomalías están los algoritmos basados en modelos

de densidad (Como KNN “k-nearest neighbor”), técnicas basadas en correlación, máquinas

de soporte vectorial, redes neuronales, clustering o lógica difusa[37].

Los IDS basados en detección de anomalías son usados a diferentes niveles en las redes

de computación en la nube. Estos sistemas generalmente son desarrollados para entornos

particulares, donde la integridad de los datos constituye una prioridad debido a que los

costos computacionales suelen ser altos en relación a la capacidad total de la red debido

justamente a la complejidad de los flujos de información[37], [38], [51].

2.6 IDS en entornos dinámicos

Una de las características clave de los entornos de computación en la nube, es la

capacidad de estos para mantenerse operacionales ante eventos de aumento de carga o

corrupción del propio entorno. Esto se logra, mediante la migración o replicación

automática de servicios y máquinas virtuales a diferentes nodos físicos en esquemas de

carga balanceada. Los entornos virtualizados de computación en la nube, permiten

actualmente realizar este proceso de reasignación de recursos sin interrumpir las

conexiones o procesos activos transfiriendo el estado de ejecución y memoria de un nodo

físico a otro, que permiten mantener la disponibilidad de servicios críticos o servicios en

tiempo real que la demanden.

La propiedad de elasticidad de la red requiere la implementación a nivel de red y aplicación

de los procesos que permitan identificar, definir y ejecutar las medidas de reestructuración

de la topología y los recursos de la red.

La elasticidad de la red trae consigo retos para la detección de anomalías en la red, pues

un sistema de detección de intrusión desplegado a nivel de red podría fácilmente identificar

erróneamente una migración legitima de la red, como un evento de suplantación de VM o

enmascarar verdaderos eventos maliciosos, que podrían ocurrir simultáneamente con

estos procesos de migración y reestructuración de la topología de red.

2.6.1 Migración de máquinas virtuales

La migración de máquinas virtuales (VM), se refiere al proceso de mover una máquina

virtual de un nodo físico a otro en un entorno de computación en la nube, sin afectar el

funcionamiento continuo del servicio con el objetivo de mejorar la capacidad de respuesta

28

(Por ejemplo, llevando el nodo a un punto de menor latencia con el origen de las peticiones,

auto-escalamiento (aumentar el número de máquinas virtuales a media que la demanda

del recurso aumenta, tolerancia a fallos (Moviendo las instancias de infraestructura

comprometida a infraestructura optima) o incluso para mantener el servicio activo durante

de ventanas de mantenimiento en el hardware o red[52].

Además, de la migración de máquinas virtuales es posible realizar migración de servicios,

que consiste en transferir la implementación entre maquinas físicas sin que existan

procesos de copiado de memoria o estado de ejecución[52]. Sin embargo, como esta

migración se realiza con procesos activos con conexiones de red abiertas, la migración a

nivel de servicio sin interrupciones requiere procesos de partición acoplados en la

arquitectura del servicio que permitan transferir la carga de un entorno a otro.

En un proceso de migración en una red de área local, las máquinas virtuales se mueven

entre maquinas físicas de la misma subred, lo que permite a la nueva instancia conservar

la interfaz de red completando la migración sin interrupción de las conexiones activas. En

estos entornos de área local, el almacenamiento, no suele ser parte de la máquina virtual,

sino que es un punto de montaje lógico apuntando a un directorio en un disco de red, lo

que permite acceso inmediato e ininterrumpido al almacenamiento en la nueva

instancia[53].

Sin embargo, cuando los procesos de migración se realizan fuera de área local (Wide area)

entre diferentes subredes o centros de datos, los procesos de migración son más

complejos. El estado de la maquina a transferir es mucho mayor, pues incluye el

almacenamiento, la transferencia generalmente implica el paso por redes de menor

capacidad entre los puntos físicos, la nueva máquina virtual deberá mantener la dirección

IP, lo que implica reconfiguración de los dispositivos de red para redirigir el tráfico sin

pérdida de las conexiones activas[52]

2.6.2 Proceso de migración de máquinas virtuales

El proceso de migración consiste en tomar una máquina virtual activa y moverla a equipo

físico diferente sin que se afecte el estado y la ejecución continua del sistema operativo de

la máquina virtual, así como para los clientes remotos conectados a la máquina virtual. En

otras palabras, una migración exitosa es aquella que pasa desapercibida por todos los

miembros de la red[54].

29

Las máquinas virtuales permiten este tipo de procesos al poder encapsular los estados del

hardware y el software en ejecución. Los 3 tipos de estado a considerar son:

- Estado de dispositivos virtuales (CPU, adaptadores de red, de almacenamiento y

gráficos).

- Estado de conexiones externas (conexiones de red abiertas, dispositivos de

almacenamiento o dispositivos removibles).

- Estado de memoria.

Encapsulando estos 3 estados es posible crear un flujo de procesos que permita la

migración entre maquinas físicas[54], [55]:

- Preparación: Se inicia el proceso de migración seleccionando la máquina virtual y

definiendo un host de destino. Se establece conexión TCP entre las maquinas

físicas involucradas y se realizan procesos de reserva de espacio y memoria en la

máquina de destino.

- Transferencia de memoria: Se copia la memoria de la máquina virtual en la maquina

física de destino mientras la máquina virtual sigue corriendo en la primera máquina

física.

- Transferencia de almacenamiento: El control de almacenamiento se transfiere a la

máquina de destino, de tal manera que se tiene una copia de la máquina virtual.

- Transferencia de red: Para mantener la transparencia del proceso de migración, al

final de esta, todas las conexiones deben ser redirigidas sin interrupciones a la

nueva máquina virtual, en esta etapa la VNIC de la máquina virtual de origen debe

ser reconfigurada para dirigir los paquetes a la nueva instancia.

30

2.6.3 Tipos de migración

Figura 10- Migración LAN Figura 11- Migración WAN

Existen 2 tipos básicos de migración: Migración LAN y migración WAN. Las migraciones

WAN son aquellas que mueven una máquina virtual entre diferentes subredes. En este

proceso el enrutamiento de la red debe adaptarse para dirigir el tráfico a la nueva

ubicación del servicio, para ello existen varios mecanismos[54], [55]:

Usando servicios adicionales: Se usa un proxy en el servicio original que permita redirigir

el tráfico a la nueva ubicación una vez la nueva máquina está operativa. También se han

propuesto soluciones alternativas como el uso de máquinas virtuales tras routers NAT o

el uso de VPN que permitan mantener un enlace de acceso externo único, delegando el

enrutamiento interno a estos componentes de la red.

SIP signaling: Se hace uso del Protocol SIP (Session Initiation Protocol). Los usuarios

conectados al servicio se subscriben a eventos de conectividad, cuando un servicio

migra, hay un cambio en la dirección IP que es notificada a los usuarios redirigiendo el

tráfico del cliente a esta nueva dirección

Tunneling: Asumiendo que el router de acceso es funcional (Es decir, que la migración no

se realiza a causa de una falla en la subred) es posible usar Link Tunneling. Un enlace

virtual es creado entre el router de acceso original del servicio y su nueva ubicación, este

enlace se usa para redirigir el tráfico entrante del primero al segundo.

31

2.6.4 Riesgos de seguridad asociados a la migración

Existen consideraciones de seguridad asociadas a los procesos de migración, el lugar

estado de ejecución transferido de una maquina física a otra puede contener información

sensible, como contraseñas, llaves criptográficas o información de sesiones activas.

Además, la actividad de red asociada a la migración puede ser vulnerable a ataques a nivel

de ARP o DNS, así como ataques man-in-the-middle. El hecho de que estos procesos

suelan hacerse a nivel redes de área local o que los recursos sean compartidos entre

entidades/personas incrementa el nivel de vulnerabilidad.

El comportamiento de las máquinas virtuales implica la introducción de vulnerabilidades a

nivel de la red y dificulta la correcta caracterización del tráfico y el comportamiento de los

nodos. Adicionalmente, resulta natural que las aplicaciones o servicios soportados se

comporten diferentes durante y después de una migración debido al cambio en el tráfico

de red, tamaño de memoria u otros recursos disponibles.

32

3. Clustering

En general, el análisis de clúster es el nombre que recibe la tarea de agrupar conjuntos de

datos de acuerdo con las similitudes entre ellos. Estas similitudes, son utilizadas en

diversos campos como el análisis estadístico, la minería de datos, inteligencia artificial,

compresión de datos y computación gráfica. Los métodos de clustering o agrupamiento,

son un conjunto de algoritmos diseñados para llevar a cabo dicha tarea de acuerdo a una

serie de características abstraídas de los elementos objeto de análisis. En otras palabras,

son algoritmos capaces de identificar similitudes entre objetos y clasificarlos en categorías

de acuerdo a cierta medida de “distancia”[56][57].

Sean 𝑎 y 𝑏 puntos en ℝ𝐷:

Nombre Formulación

Distancia euclidiana

||𝑎 − 𝑏||2 = √∑(𝑎𝑖 − 𝑏𝑖)2

𝐷

𝑖=1

Distancia euclidiana

al cuadrado ||𝑎 − 𝑏||2

2 = ∑(𝑎𝑖 − 𝑏𝑖)2

𝐷

𝑖=1

Distancia Manhattan ||𝑎 − 𝑏||1 = ∑ |𝑎𝑖 − 𝑏𝑖|

𝐷

𝑖=1

Distancia máxima ||𝑎 − 𝑏||∞ = max𝑖

|𝑎𝑖 − 𝑏𝑖|

Distancia de

Mahalanobis

Sea 𝑆 la matriz de covarianza: √(𝑎 − 𝑏)𝑇𝑆−1(𝑏 − 𝑎)

33

Similitud coseno 𝑎 ∙ 𝑏

‖𝑎‖‖𝑏‖

Tabla 1 Medidas de distancia

Con el fin de definir la similitud entre 2 objetos se debe crear esta medida de distancia,

algunas medidas comunes de distancia están definidas en la Tabla1. La matriz de similitud,

es una es una matriz que representa la similitud entre 2 objetos de acuerdo a una medida

de distancia y está definida de la siguiente manera[56]:

Sea {𝑋𝑖} un conjunto de N puntos en 𝑅𝐷, se define la matriz de similitud como una matriz

𝑁𝑥𝑁 tal que:

𝑆𝑖,𝑗 = 𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎(𝑋𝑖 , 𝑋𝑗)

3.1 Métodos de clustering jerárquicos

Son algoritmos que funcionan mediante el sub-agrupamiento de grupos previamente

establecidos mediante técnicas aglomerativas (bottom-up), n los se comienza con cada

elemento como un grupo y se unen incrementalmente en grupo más grandes con cada

iteración, o divisivas (top-down) en las que se comienza con todo el conjunto como un solo

grupo y se divide en sub-grupos con cada iteración[56][58].

Técnica aglomerativa básica:

Paso 1 Cada objeto está en su propio grupo, N grupos son creados.

Paso 2 Encuentra el par de grupos con mayor similitud y los combinan, quedando N -

1 grupos.

Paso 3 Actualiza la matriz de similitud calculando la distancia entre el nuevo grupo y

todos los demás.

Paso 4 Repetir 2 y 3 hasta que solo exista un grupo de tamaño N.

Técnica divisiva básica:

34

Paso 1 Se crea un grupo de tamaño N.

Paso 2 Se divide el grupo en 2 de acuerdo con una heurística o subrutina

Paso 3 Crea las 2 nuevas matrices de similitud

Paso 4 Repetir 2, 3 y 4 sobre cada uno de los nuevos grupos hasta que estos sean

indivisibles.

Las técnicas divisivas suelen ser más complejas que las aglomerativas debido a la

necesidad de una subrutina, que no es más que otro algoritmo de clustering,

experimentalmente se suele determinar que estos resultan ser más precisos que los

métodos aglomerativos.

3.2 Métodos de partición

Son métodos generalmente usados para determinar todos los grupos del conjunto con una

sola ejecución. Además de ser la familia de métodos más usada, su uso es común a modo

de subrutina en los métodos jerárquicos divisivos descritos anteriormente en la sección

2.2. A continuación se describirán algunos de los métodos de partición más comunes[56].

3.2.1 K-means

La lógica de K-means se basa en el uso de k centroides para un conjunto de datos del que

se supone hay k clases de objetos, en un pre procesamiento se asumen estos centroides

como uniformemente distribuidos sobre el espacio de solución y se asigna cada objeto del

conjunto al centroide más cercano. Posteriormente se ejecuta un algoritmo iterativo que

recalcula la posición de los centroides de acuerdo los objetos asociados en cada iteración,

el algoritmo se comporta como un método de minimización de la función del error cuadrado

medio[56][58]:

𝐽 = ∑ ∑ ‖𝑥𝑖(𝑗)

− 𝑐𝑗‖2

𝑁

𝑖=1

𝑘

𝑗=1

Donde ‖𝑥𝑖(𝑗)

− 𝑐𝑗‖2es la distancia entre el punto 𝑥𝑖

(𝑗)y el centroide 𝑐𝑗

Paso 1 Definir K centroides uniformemente distribuidos en el espacio

35

Paso 2 Asignar cada punto al centroide más cercano

Paso 3 Recalcular la posición de cada centroide de acuerdo con los puntos asignados

Paso 4 Repetir los pasos 3 y 4 hasta que no los centroides no se muevan

3.2.2 Affinity propagation

Este algoritmo consiste en determinar la afinidad entre objetos, es decir, definir qué tanta

afinidad hay entre el objeto i y el objeto j como para afirmar que uno pertenece a la misma

clase del otro. Esto se realiza mediante la “comunicación” entre objetos, permitiendo que

la información recopilada se propague a otros objetos del conjunto. La principal ventaja de

este algoritmo respecto a otros como k-means, es que no requiere conocer o asumir

previamente el número de clusters en el conjunto[59].

El algoritmo opera definiendo 2 tipos de mensajes cuya información es recopilada en forma

de matrices[49]: Disponibilidad (Availability, escrita como 𝑎(𝑖, 𝑘)) y Responsabilidad

(Responsability, escrita como 𝑟(𝑖, 𝑘)); La Responsabilidad representa la evidencia del

grado en el que el elemento k puede ser usado como un ejemplar del elemento i y es

comunicada por el elemento i al elemento k. Por su parte la disponibilidad representa en n

qué grado el punto i podría seleccionar al punto k como un ejemplar suyo, esta es

comunicada por el punto k al punto i.

Paso 1 Actualizar la matriz de responsabilidad

Paso 2 Actualizar la matriz de disponibilidad

Paso 3 Combinar los datos de ambas matrices para identificar los grupos

Los cálculos se realizan de la siguiente manera:

𝑟(𝑖, 𝑘) = (1 − 𝜆) 𝑟(𝑖, 𝑘) + 𝜆(𝑆𝑖,𝑘 − max𝑘′:𝑘′≠𝑘

( 𝑎(𝑖, 𝑘′) + 𝑆𝑖,𝑘′))

𝑎(𝑖, 𝑘) = (1 − 𝜆) 𝑎(𝑖, 𝑘) + 𝜆 ∗ min {0, 𝑟(𝑘, 𝑘) + ∑ 𝑚𝑎𝑥( 0, 𝑟(𝑖′, 𝑘))

𝑖′:𝑖′∉{𝑖,𝑘}

}

𝑎(𝑘, 𝑘) = (1 − 𝜆) 𝑎(𝑘, 𝑘) + 𝜆 ∑ 𝑚𝑎𝑥( 0, 𝑟(𝑖′, 𝑘))

𝑖′:𝑖′≠𝑘

36

Donde 𝜆 es el factor de damping, introducido para evitar oscilaciones y permitir

convergencia.

3.3 Spectral clustering

Los métodos de spectral clustering (Agrupamiento espectral) son aquellos que hacen uso

del espectro de la matriz de similitud para realizar procesos que reduzcan la

dimensionalidad y facilitar agrupamientos simples. Mientras la mayoría de los métodos de

clustering están fuertemente relacionados con la medida de distancia euclidiana y asumen

grupos de datos definidos por envolventes convexas, los métodos de clustering son mucho

más flexibles y permiten capturar un rango más amplio de geometrías como soluciones[56],

[57], [60].

Dado un conjunto de puntos {𝑋𝑖}𝑖=1𝑁 de dimensión 𝑑:

Paso 1

Calcular una matriz de similitud S tal que 𝑆𝑖𝑗 = 𝑒−

‖𝑋𝑖−𝑋𝑗‖2

2𝜎2 para 𝑖 ≠ 𝑗 y 0 para

𝑖 = 𝑗, done 𝜎2 es llamado factor de escalamiento y controla que tan rápido la

afinidad entre 2 puntos disminuye con la distancia

Paso 2 Definimos 𝐷 como la matriz diagonal cuyo elemento (𝑖, 𝑖) es la suma de los

elementos de la fila 𝑖 de la matriz 𝑆 y construimos la matriz 𝐿 = 𝐷−1/2𝐴𝐷−1/2

Paso 3 Calculamos 𝑉1, 𝑉2, 𝑉3, … , 𝑉𝑘, como los 𝑘 mayores vectores propios de 𝐿 y

formamos la matriz 𝑋 = [𝑉1, 𝑉2, … , 𝑉𝐾]

Paso 4 Creamos la matriz 𝑌 como una versión normalizada de la matriz 𝑋

Paso 5 Tratamos cada fila en 𝑌 como un punto y realizamos el agrupamiento de estos

mediante k-means.

Paso 6 Asignamos el punto 𝑋𝑖 original al grupo 𝑗 si y solo si la fila 𝑖 de la matriz 𝑌 es

asignada al grupo 𝑗

El algoritmo es paralelizadle parcialmente, dado que es posible calcular el laplaciano

mediante el cálculo de cada uno de sus factores por separado construyendo la matriz final

a partir de ellos.

37

3.4 Clustering para detección de intrusión

Algunos trabajos recientes en el área exploran el uso de diversos métodos para afrontar

estos problemas en cada una de las 4 funciones básicas de los IDS. (Nikolai, Jason) [45]

Propone un IDS en la nube basado en Hypervisor para monitorear la actividad global de la

red y un nodo principal (controlador) encargado de la clasificación, análisis y acción. En

trabajos recientes, (Zhi Li , Yanzhu Liu, Sujingtao) [61] aplica métodos de la teoría de

adversarios para el diseño de un IDS basado en la premisa de nodos no cooperativos, es

decir, cada equipo en la red es un potencial atacante. Por su parte, (Sudhansu Ranjan

Lenka) [62] Propone un sistema de protección de servicios en la nube basado en análisis

de tráfico y clasificadores bayesianos. Finalmente, algunos autores proponen también

sistema híbridos donde se usa más de un método o se usan algoritmos paralelos y

distribuidos para satisfacer diferentes requerimientos [3], [63]–[65].

Queda claro que los modelos enfocados a la detección de patrones son los de mayor

precisión en la detección, sin embargo, estos son generalmente incapaces de adaptarse

ante cambios de topología o nuevos patrones de ataque. Por su parte los medios de

detección de anomalías supervisados son propensos a generar falsas alertas, sin

embargo, el mayor obstáculo para estos métodos es la dificultad que existe para generar

conjuntos de datos suficientemente grandes, correctamente etiquetados y lo

suficientemente actualizados como para obedecer a tendencias actuales de tráfico y uso

de las redes[48].

Los modelos no supervisados enfocados a la detección de anomalías son aquellos que

pretenden realizar detecciones de intrusión sobre datos sin etiquetar, estos modelos parten

de 2 premisas básicas[66]:

- Que las intrusiones en una red son relativamente pocas, es decir, se asume que la

gran mayoría del tráfico corresponde a actividades legítimas y normales de la red.

- Que existen características que diferencian la actividad normal de la red y una

actividad maliciosa.

Bajo estos supuestos, es posible desarrollar heurísticas que etiqueten los datos y se

adapten a la nueva información recibida durante su funcionamiento permitiendo detectar

nuevos patrones de ataque y reconocer nuevos patrones de uso de la red.

38

Las implementaciones típicas de algoritmos como spectral clustering, basadas en

operaciones sobre matrices suelen demandar grandes recursos de tiempo y memoria a

medida que los conjuntos analizados se hacen más grandes, por esta razón es difícil su

implementación para sistemas en tiempo real puesto que dependen en gran medida de la

capacidad de paralelización del algoritmo[67].

La arquitectura dinámica de las redes en la nube también supone un reto para su

despliegue, pues supone procesos de obtención y normalización de datos que respondan

a cualquier cambio en la red sin alterar la lógica de detección y clasificación de amenazas

[37].

En investigaciones recientes se ha usado spectral clustering para la clasificación de

eventos maliciosos en una red, los resultados evidencian una efectividad del 100% en

ataques DoS usando el conjunto de datos DARPA IDS dataset, así como una simulación

de ataque DDoS en un entorno de infraestructura en la nube. No obstante, el 12% de los

eventos clasificados como ataques DoS resultaron ser falsos positivos. En el caso de los

ataques tipo Probe (Escaneo de puertos, dispositivos y enlaces en busca de

vulnerabilidades) y U2R (Usuarios forzando fallos en el sistema para obtener acceso root

a un dispositivo) la clasificación fue menos eficaz, consolidando 90% de efectividad y un

10% de detecciones incorrectas[68].

39

4. Desarrollo del modelo de detección de

intrusión

Se propone un algoritmo de detección multicapa basado en métodos de clustering y

técnicas de aprendizaje supervisado como medio de optimización en clústeres no

atómicos. Particularmente se hace uso de un algoritmo basado en k-means, esto debido a

que el tiempo de asignación de un punto tras la formación de los clústeres depende

únicamente de la cantidad de clústeres mediante un algoritmo simple que calcula la

distancia del punto a cada centroide en búsqueda del más cercano[69], característica que

nos permite ejecutar el algoritmo en tiempo real con bajo costo computacional. El proceso

de detección propuesto consta de 3 etapas: Procesador de tráfico (Los paquetes de tráfico

son procesados para obtener una serie de características estándar), asignación de clúster

(Se asigna un clúster a cada paquete) y clasificación (Se ejecuta un proceso de

clasificación que nos dice la probabilidad de que el paquete sea un ataque). Haciendo uso

de la facilidad para el despliegue se servicios distribuidos, se propone un método modular

y paralelizable que podría ser desplegado de forma distribuida en la red mediante el uso

de redes definidas por software o en un host centralizado. Dicha paralelización puede

realizarse a nivel de capas que procesan cada paquete en paralelo o a nivel de clasificación

con esquemas de balanceo de carga, optimizando así el uso de los recursos libres de la

red.

Paso 1 Extraer el vector de características del paquete

Paso 2 Calcular el centroide más cercano

Paso 3 Realizar el proceso de clasificación en las capas con clústeres no atómicos

Paso 4 Realizar el proceso de agregación sobre los vectores de probabilidad

resultantes

40

4.1 Formación de clústeres

Para el agrupamiento se hará uso de mini-batch k-means[70], un método de clustering

basado en k-means. K-means consiste en una función de optimización, que encuentra el

conjunto centroides C que minimiza el error medio min (∑ ∑ ‖𝑥𝑖(𝑗)

− 𝑐𝑗‖2

)𝑁𝑖=1

𝑘𝑗=1 , esta

función es computacionalmente costosa para conjuntos de datos grandes pues se ejecuta

en 𝑂(𝑘𝑛𝑠) donde 𝑘 es la cantidad de clústeres, 𝑛 la cantidad de datos y 𝑠 la máxima

cantidad de atributos no nulos en el conjunto de datos[71]. Una forma de optimizar la

velocidad de ejecución es el uso de lotes pequeños de ejemplos aleatorios almacenados

en memoria, cada nueva iteración recalcula los centroides hasta que el algoritmo determina

un punto de convergencia (que tras una iteración la ubicación de los centroides no cambia).

Para optimizar el tiempo de ejecución, se hace uso de una tasa de aprendizaje que se

reduce con cada iteración, esta tasa reduce el impacto de cada nuevo lote de datos en la

formación de los datos. Todo esto reduce sustancialmente el tiempo de ejecución del

algoritmo con bajo costo en el resultado final[70].

Algoritmo 2 - Mini-batch k-Means[70].

1. Given: k, mini-batch size b, iterations t, data set X

2. Initialize each c ∈ C with an x picked randomly from X

3. v ← 0

4. for i = 1 to t do

5. M ← b examples picked randomly from X

6. for x ∈ M do

7. d[x] ← f(C, x) // Cache the center nearest to x

8. end for

9. for x ∈ M do

10. c ← d[x] // Get cached center for this x

11. v[c] ← v[c] + 1 // Update per-center counts

12. η ← 1

13. v[c]

14. // Get per-center learning rate

41

15. c ← (1 − η)c + ηx // Take gradient step

16. end for

17. end for

Definiremos como atómico a un clúster tal que a partir de un conjunto de datos etiquetados

todos los elementos clasificados en dicho grupo pertenecen al mismo tipo.

4.2 Procesador de tráfico

Se hace uso de un módulo de procesamiento de paquetes capaz de realizar el análisis y

procesamiento estadístico sobre estos con el fin de generar vectores de características

similares a los obtenidos en KDD cup 99. Este módulo consta de un sniffer capaz de

monitorear una interfaz o un conjunto de interfaces de red, un reconstructor de secuencias

que nos permite reconstruir las características básicas (características 1 – 9) y un motor

estadístico (Características 23 – 41)

4.3 Asignación de clústers

El proceso de asignación de clústeres consiste en encontrar el centroide más cercano a

cada punto según la medida de distancia. En este caso, se toma el vector de características

del procesador de tráfico y se calcula el vector de distancias, si el clúster asignado es un

clúster atómico, asignamos la etiqueta del clúster al punto con probabilidad del 100%. En

el caso de clústeres no atómicos, el paquete es redirigido a un nodo de clasificación con

la referencia al clúster asignado.

4.4 Clasificación

Una vez se han calculado los centroides y se han identificado la distribución de etiquetas

en cada uno de ellos, se realiza un proceso de clasificación sobre los puntos de cada

clúster no atómico, en este proceso se pretende calcular la probabilidad de que un

elemento dado sea un ataque. Para esto, se implementa un proceso de clasificación

mediante una implementación de SAMME[72], un algoritmo propuesto originalmente por Ji

Zhu, Saharon Rosset, Hui Zou y Trevor Hastie, en el cual se presenta una generalización

del algoritmo AdaBoost, en el cual se genera un sistema de clasificadores que minimizan

42

el error de detección sobre el conjunto de entrenamiento, dichos clasificadores (conocidos

clasificadores débiles) son tomados de un conjunto predefinido de técnicas de

clasificación.

Esta técnica resulta ideal para la clasificación en clústeres no atómicos, pues dada la

naturaleza estocástica de la distribución de los elementos en los clústeres, no podemos

predecir fácilmente la forma de la solución en cada uno de ellos. Por lo tanto, no podríamos

seleccionar y optimizar un clasificador débil adecuado sin un análisis exhaustivo de la

conformación de cada clúster en una ejecución del algoritmo.

Algoritmo 2 - SAMME[72].

1. Given a vector of weights 𝑤 = (𝑤1 , 𝑤2, … , 𝑤𝑛) , a vector of

classifiers 𝑚 = (𝑚1, 𝑚2, … , 𝑚𝑖) that assign a tag to variable 𝑥,

the number of clases 𝑘, the number of classifiers 𝑛 the

class label c ∀ {1,2,…,k}

2. Initialize 𝑤𝑖 = 1/𝑛

3. for 𝑚𝑖 in 𝑚 do

4. 𝑚𝑖.fit(x)

5. 𝑒𝑟𝑟𝑜𝑟𝑖 = ∑ 𝑤𝑗𝕀(𝑐𝑖 ≠ 𝑚𝑖(𝑥𝑗))/ ∑ 𝑤𝑗𝑛𝑗=1

𝑛𝑗=1

6. 𝛼𝑖 = log (1−𝑒𝑟𝑟𝑜𝑟𝑖

𝑒𝑟𝑟𝑜𝑟𝑖) +. log (𝑘 − 1)

7. for j = 1 to n do

8. 𝑤𝑖 ← 𝑤𝑖𝑒𝑚𝑖𝕀(𝑐𝑖≠𝑚𝑖(𝑥𝑗))

9. end for

10. normalize(𝑤)

11. end for

12. probabilities = ∑ 𝛼𝑖𝕀(𝑚𝑗(𝑥) = 𝑦)𝑀𝑗−1 ) ∀ 𝑦 ∈ {1,2, … , 𝑘}

13. return probabilities

Este proceso nos permite generar un vector de probabilidades

(𝑃𝑛𝑜𝑟𝑚𝑎𝑙 , 𝑃𝑎𝑡𝑡𝑎𝑐𝑘1, 𝑃𝑎𝑡𝑡𝑎𝑐𝑘2

, . . , 𝑃𝑎𝑡𝑡𝑎𝑐𝑘𝑚) que nos indica la posibilidad de que un elemento

(paquete) 𝑥 pertenezca a cada uno de los grupos definidos.

43

4.5 Agregación

En clasificación, se conoce como ensemble a un grupo de clasificadores cuyas salidas

pasan por un proceso de agregación con el fin de emitir un juicio colectivo logrado mediante

esquemas de votación o agregación probabilística, diversas investigaciones sugieren que

el uso de esquemas de clasificación paralelos fuertemente dependientes de las variables

de inicialización puede aumentar el desempeño para sistemas con datos de entrenamiento

o datos de entrada de baja calidad[73], [74]. Se han planteado en la literatura mejoras a

este tipo de algoritmos mediante la ponderación de clasificadores según su desempeño,

con los datos de prueba dicha optimización permite desarrollar modelos de clasificación

eficientes cuando los datos de entrada del modelo suelen tener datos faltantes[73].

En este caso, se propone un esquema de ponderación sobre los vectores de resultados

de la ejecución paralela de varias capas de clasificación, entendiendo que dada la

cardinalidad de los datos de entrada disponibles los modelos de detección están

fuertemente sesgados hacia tipos de eventos comunes como los DoS.

En términos generales, el método de agregación propuesto consiste agregación

probabilística sobre todas las posibles clases. Dados 𝑛 vectores de probabilidades de

tamaño 𝑚 con la forma 𝑉𝑖 = (𝑃1, 𝑃2, 𝑃3, … , 𝑃𝑚) y un vector de pesos de tamaño 𝑚 de la

forma 𝑊 = (𝑊1, 𝑊2, 𝑊3, . . . , 𝑊𝑚), se realiza una reducción formando un único vector 𝑉𝑓 =

(𝑃𝑓1, 𝑃𝑓2

, 𝑃𝑓3, … , 𝑃𝑓𝑚

) donde

𝑃𝑓𝑗= 𝑊𝑗 ∗

∑ 𝑉𝑖𝑗𝑛𝑖=1

𝑚

44

5. Metodología de evaluación

5.1 Métricas de evaluación

En general un sistema de detección puede evaluarse desde 2 puntos de vista: Eficiencia y

efectividad. Donde eficiencia se refiere a la cantidad de recursos del sistema necesarios

para ejecutar el algoritmo, esto incluye los recursos de espacio, procesamiento, memoria

y red; Y efectividad se refiere a la habilidad del sistema para distinguir entre eventos

intrusivos y tráfico legítimo de la red. Se conocen en la literatura diversas métricas para

evaluar sistemas de detección de anomalías, sistemas de clasificación y clustering

aplicadas a sistemas de detección de intrusión[75], [76]. A la fecha no existe un framework

que nos permita fácilmente comparar la eficiencia de 2 sistemas distribuidos sin que sea

necesario reproducir las mismas condiciones a nivel de hardware y recursos disponibles.

Con el fin de medir la efectividad del modelo, se definen métricas de clasificación (aquellas

en las no importa qué tan cerca se esté de predecir el resultado correcto, sino la predicción

sobre el conjunto de prueba comparada con las etiquetas reales conocidas) y de

probabilidad (Indicadores que nos permiten evaluar la confiabilidad del modelo

estadísticamente). Para efectos de pruebas del método propuesto se hará uso de las

siguientes métricas de evaluación:

Verdaderos Negativos (true negatives) abreviado 𝑇𝑁, Es el número de eventos

correctamente clasificados como negativos (normales).

Falsos Negativos (false negatives) abreviado 𝐹𝑁, es el número de eventos

incorrectamente clasificados como negativos.

Verdaderos positivos (true positives) abreviado 𝑇𝑃, es el número de eventos

correctamente clasificados como positivos.

45

Falsos Positivos (false positives) abreviado 𝐹𝑃, es el número de eventos

incorrectamente clasificados como positivos.

Precisión (precision) abreviado 𝑃𝑅; Representa el porcentaje de eventos anómalos

correctamente identificados.

𝑃𝑅 =𝑇𝑃

(𝑇𝑃 + 𝐹𝑁)

Tasa de falsos positivos (false positive rate) abreviado 𝐹𝑃𝑅; Representa el

porcentaje de eventos no anómalos detectados incorrectamente respecto al total

de eventos no anómalos en el conjunto de pruebas.

𝐹𝑃𝑅 = 𝐹𝑃

(𝐹𝑃 + 𝑇𝑁)

Tasa de clasificación (classification rate) abreviado 𝐶𝑅; Representa a tasa de

clasificación correcta del algoritmo.

𝐶𝑅 = 𝑇𝑃+𝑇𝑁

𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁

F-Measure abreviado 𝐹𝑀; Es la media harmónica de la precisión y la tasa de

detección.

𝐹𝑀 =2𝑇𝑃

2𝑇𝑃 + 𝐹𝑃 + 𝐹𝑁

Los valores de 𝑇𝑁, 𝐹𝑁, 𝑇𝑃 y 𝐹𝑃 son calculados partir del vector de etiquetas conocidas y

el vector de etiquetas producidas por el algoritmo, esta información será ilustrada a través

de una matriz de confusión normalizada.

5.1.1 Matriz de confusión

La matriz de confusión es una matriz que representa el resultado de un proceso de

clasificación. Por cada grupo de datos en el conjunto de prueba, se determinará cuántos

datos fueron clasificados en cada una de las posibilidades. En un escenario ideal (precisión

del 100%) esta matriz debería contener solamente elementos no nulos en su diagonal.

46

Predicted

class a class b class c

Ac

tua

l

class a a predicted as a a predicted as b a predicted as c

class b b predicted as a b predicted as b b predicted as c

class c c predicted as a c predicted as b c predicted as c

En el caso de clasificaciones binarias (como ataque/normal) la matriz de confusión

muestra directamente los valores de 𝑇𝑃, 𝐹𝑃, 𝑇𝑁 y 𝐹𝑁.

Predicted

TRUE FALSE

Ac

tua

l TRUE TP FN

FALSE FP TN

Una forma común de ilustrar las matrices de confusión es mediante su forma normalizada,

que permite ilustrar fácilmente el grado de correctitud de la clasificación sin importar la

disparidad entre los tamaños de los grupos. En un escenario ideal, la matriz de confusión

con precisión del 100% corresponde a una matriz diagonal.

47

5.2 Escenario de pruebas

Figura 12 Flujo de pruebas

El escenario de pruebas consiste en un pipeline automatizado implementado en software,

con un hilo de ejecución, que toma como entradas un conjunto de prueba con datos pre-

procesados que contienen el vector de características del clasificador y ejecuta el proceso

de clasificación.

1 Se leen los datos del conjunto de entrenamiento de KDD cup 99 a partir de un

archivo de texto plano y son convertidos a objetos en el módulo de software

de entrenamiento.

2 Se genera el modelo de clasificación a partir de los datos de entrenamiento,

estos datos son usados como inicialización del IDS y a su vez son

almacenados de manera local en forma de objeto serializado para

experimentos futuros.

3 Se leen los datos del conjunto de prueba de KDD cup 99 a partir de un archivo

de texto plano y son convertidos a objetos de software para ser procesados

por el IDS.

4 La salida del IDS es enviada a un módulo de análisis que contrasta los

resultados con la información de las etiquetas del dataset, generando las

estadísticas y métricas de evaluación.

48

5 Los resultados son serializados y guardados en el almacenamiento local.

Este proceso genera un vector de predicciones el cual es evaluado mediante un módulo

estadístico que nos permite contrastar las predicciones con las etiquetas conocidas y

generar las métricas desempeño del modelo, así como las representaciones de los

resultados como matrices de confusión.

NÚMERO DE DATOS La cantidad total de datos en el conjunto

DATOS CON ETIQUETA A La cantidad total de datos con etiqueta A

DATOS CON ETIQUETA B La cantidad total de datos con etiqueta B

DATOS CON ETIQUETA NORMAL La cantidad total de datos con etiqueta

normal

DATOS CON ETIQUETA ATAQUE La cantidad total de datos con etiqueta

diferente de NORMAL

TN Verdaderos negativos

FN Falsos negativos

TP Verdaderos positivos

FP Falsos positivos

PR Precisión

FPR Tasa de falsos positivos

CR Tasa de clasificación

F-MEASURE F-measure

Tabla 2 - Métricas de evaluación

De esta manera, generamos métricas claras del desempeño del modelo que permitan

medir su efectividad y evaluar el impacto de los parámetros de entrada sobre conjuntos de

datos específicos, como, por ejemplo, la cantidad de capas del modelo, la cantidad de

clasificadores y la cantidad de clústeres. El entorno de pruebas es ejecutado sobre un

49

equipo AMD Threadripper 1950x - 16 núcleos, 32 hilos @ 4 GHZ; 32GB de RAM @ 3000

MHZ; 128GB de swap; Ubuntu 18.04

5.2.1 Almacenamiento

En el almacenamiento local del equipo se encuentran los conjuntos de datos de prueba y

entrenamiento basados en KDD cup 99, codificados como CSV (comma-separated values)

que sirven como insumo principal para los procesos de entrenamiento y clasificación del

flujo de pruebas. Adicionalmente, se almacenan registros de la salida del proceso de

entrenamiento y de los resultados del algoritmo codificados como archivos binarios de

objetos serializados (pickle), almacenar estos datos localmente nos permite reproducir los

escenarios en un menor tiempo, dado que actúan como cache permitiendo cargar los

objetos serializados directamente en los componentes de software del flujo de pruebas sin

tener que recalcular el proceso.

5.2.2 Módulos de software

El flujo de pruebas se implementa como módulos de software escritos en Python,

particularmente el flujo se divide en 3 módulos de software, entrenamiento, clasificación y

análisis de resultados. El módulo entrenamiento genera un objeto que contiene las capas

entrenadas del modelo de clasificación, este objeto es serializado y guardado en el

almacenamiento local del equipo. Además es usado como entrada para el módulo de

clasificación IDS que ejecuta el modelo y realiza una predicción sobre los datos.

Finalmente, la predicción se pasa al módulo de análisis que genera las estadísticas y

métricas establecidas, guardando un objeto serializado con los resultados y una serie

representaciones graficas de estos, como las matrices de confusión y la distribución de

etiquetas en los clústeres.

5.2.3 Interfaz de control

El flujo de pruebas se ejecuta mediante la línea de comandos del sistema operativo de la

máquina de pruebas. Mediante esta interfaz se realizan procesos de preparación del

sistema, tales como la limpieza de del cache de memoria RAM y la eliminación de procesos

no críticos del sistema que puedan afectas los tiempos de ejecución entre ejecuciones del

mismo flujo. Además, mediante esta interfaz visualizamos el progreso y las salidas de cada

50

módulo de software incluyendo las métricas desempeño que nos ayudan a medir el

desempeño del algoritmo

5.2.4 Datos

Los conjuntos de datos usados en este estudio provienen de fuentes de libre acceso,

disponibles en internet y generados por diferentes entidades. En este caso, se usan con el

fin de medir el desempeño de los algoritmos planteados en escenarios determinísticos

basados en tráfico real.

El laboratorio Lincoln del Massachusetts Institute of Technology (MIT), Defence Advanced

Research Projects Agency (DARPA) y Air Force Research Laboratory (AFRL), crearon el

primer estándar para sistemas de detección de intrusión con el DARPA dataset for

intrussion detection evaluation[77], que puede ser usado para entrenar y evaluar diferentes

IDSs. Este dataset en particular constituye una de las principales referencias globales en

evaluación de sistemas de detección de intrusión debido a su nivel de objetividad,

formalidad y significancia estadística.

DARPA dataset consiste en una colección de tráfico de red que se asemeja al tráfico entre

una base militar real e internet. Conteniendo ataques tipo DoS, R2L (Remote to local,

usuarios intentando ganar acceso a la red desde un dispositivo externo), U2R (User to

Root) y Probing. Donde todos los ataques se originan en el exterior y con capturados por

un sniffer ubicado en el punto de acceso a la red.

DARPA dataset se divide en 2 conjuntos de datos[77]:

- 7 semanas de datos de entrenamiento que contienen tráfico normal y tráfico

anómalo etiquetado.

o DoS: Back, Land, Neptune, Pod, Smurf, Teardrop.

o Probing: Satan, Ipsweep, Nmap, Portsweep.

o R2L: Guess_Passwd, Ftp_write, Imap, Phf, Multihop, Warezmaster,

Warezclient, Spy.

o U2R: Buffer_overflow, Loadmodule, Rootkit, Perl.

- 2 semanas de datos de prueba con tráfico no etiquetado que incluye nuevos

patrones de ataque.

51

o DoS: Back, Land, Neptune, Pod, Smurf, Teardrop, Mailbomb,

ProcessTable, Udpstorm, Apache2, Worm.

o Probing: Satan, Ipsweep, Nmap, Portsweep, Mscan, Saint.

o R2L: Guess_Passwd, Ftp_write, Imap, Phf, Multihop, Warezmaster, Xlock,

Xsnoop, Snmpguess, Snmpgetattack, Httptunnel, Sendmail, Named.

o U2R: Buffer_overflow, Loadmodule, Rootkit, Perl, Sqlattack, Xterm, Ps.

Para verificar la efectividad del método de detección se hará uso KDD Cup 99, un dataset

basado en DARPA dataset que consta un pre procesamiento del tráfico para generar

vectores de características etiquetados. KDD cup 99[78] es usado ampliamente en

investigación relacionada con detección de intrusión. Este dataset contiene

aproximadamente 7 millones de datos etiquetados.

Características básicas:

No. Nombre Descripción

1 Duration Duración de la conexión

2 protocol_type Protocolo usado en la conexión

3 Service Servicio en la red de destino

4 Flag Estado de la conexión: normal o error

5 src_bytes Número de bytes transferidos desde la fuente hasta el

destino durante la conexión

6 dst_bytes Número de bytes transferidos desde el destino hasta la

fuente durante la conexión

7 Land 1 si las IPs y puertos de destino son igual; 0 en caso

contrario

8 wrong_fragment Número total de fragmentos erróneos en la conexión

9 Urgent Número de paquetes en la conexión con el bit de

urgente activado

Tabla 3 Características básicas[78]

Características basadas en contenido:

52

No. Nombre Descripción

10 Hot Número de indicadores hot en el contenido, como

acceso a directorios del sistema, creación o ejecución

de programas

11 num_failed_logi

ns

Conteo de intentos fallidos de inicio de sesión

12 logged_in 1 si hay sesión activa; 0 en caso contrario

13 num_compromis

ed

Número de condiciones comprometidas

14 root_shell 1 si obtiene acceso root; 0 en caso contrario

15 su_attempted 1 si intenta ejecutar un comando como root; 0 en caso

contrario

16 num_root Número de accesos root o número de operaciones

ejecutadas como root en la conexión

17 num_file_creatio

ns

Número de operaciones de creación de archivos en la

conexión

18 num_shells Número de líneas de comando

19 num_acess_files Número de operaciones de acceso a archivos

20 num_outbound_

cmds

Número de comandos de salida en una sesión FTP

21 is_hot_login 1 si la sesión pertenece a la lista hot ejemplo: root o

admin; 0 en caso contrario

22 is_guest_login 1 si la sesión es guest; 0 en caso contrario

Tabla 4 Características basadas en contenido[78]

Características basadas en tiempo:

No. Nombre Descripción

23 Count Número de conexiones dirigidas al mismo host de

destino que la conexión actual en los últimos 2

segundos

53

24 srv_count Número de conexiones dirigidas al mismo servicio de

destino que la conexión actual en los últimos 2

segundos

25 serror_rate Porcentaje de conexiones que han activado el flag (4)

s0, s1, s2 o s3, entre las conexiones agregadas en (23)

26 srv_serror_rate Porcentaje de conexiones que han activado el flag (4)

s0, s1, s2 o s3, entre las conexiones agregadas en (24)

27 rerror_rate Porcentaje de conexiones que han activado el flag (4)

REJ, entre las conexiones agregadas en (23)

28 srv_rerror_rate Porcentaje de conexiones que han activado el flag (4)

REJ, entre las conexiones agregadas en (24)

29 same_srv_rate Porcentaje de conexiones el mismo servicio, entre las

conexiones agregadas en (23)

30 diff_srv_rate Porcentaje de conexiones a diferentes servicios, entre

las conexiones agregadas en (23)

31 srv_diff_host_rat

e

Porcentaje de conexiones a diferentes máquinas de

destino entre las conexiones agregadas en (24)

Tabla 5 Características basadas en tiempo[78]

Características basadas en tráfico:

No. Nombre Descripción

32 dst_host_count Número de conexiones con la misma IP de destino

33 dst_host_svr_count Número de conexiones con el mismo puerto de

destino

34 dst_host_same_svr_rat

e

Porcentaje de conexiones al mismo servicio, entre

las conexiones agregadas en (32)

35 dst_host_diff_svr_rate Porcentaje de conexiones a diferentes servicios,

entre las conexiones agregadas en (32)

36 dst_host_same_src_por

t_rate

Porcentaje de conexiones desde el mismo puerto

de origen, entre las conexiones agregadas en (33)

54

37 dst_host_srv_diff_host_

rate

Porcentaje de conexiones hacia diferentes puertos

de destino; entre las conexiones agregadas en (33)

38 dst_host_serrror_rate Porcentaje de conexiones que activaron el flag (4)

s0, s1, s2 o s3, entre las conexiones agregadas en

(32)

39 dst_host_srv_s_error_r

ate

Porcentaje de conexiones que activaron el flag (4)

s0, s1, s2 o s3 entre las conexiones agregadas en

(33)

40 dst_host_rerror_rate Porcentaje de conexiones que activaron el flag (4)

REJ, entre las conexiones agregadas en (32)

41 dst_host_srv_rerror_rat

e

Porcentaje de conexiones que activaron el flag (4)

REJ, entre las conexiones agregadas en (33)

Tabla 6 Características basadas en tráfico[78]

55

6. Desarrollo de un prototipo de IDS

6.1 Arquitectura

Una vez definido un algoritmo de detección, se plantea un IDS de red capaz de monitorear

comunicaciones entre máquinas virtuales, para esto se propone la implantación de

máquinas virtuales (Nodos del IDS) en una DMZ lógica dentro de la infraestructura

alimentado por dispositivos de red que redirijan una copia del tráfico de la red a la DMZ

para análisis y acción. Dado que se comparten recursos, es de esperar que esta

configuración impacte directamente el desempeño de los servicios soportados pues

implica replicar el tráfico internamente, aumentando el uso general de la red.

Las máquinas virtuales dentro del entorno están conectadas por switch virtuales (vSwitch)

en cada host mientras que los hosts están conectados entre sí por switches físicos. Cada

vSwitch se encarga de replicar el tráfico para enviarlo al nodo central en la DMZ, mediante

un mecanismo de duplicación que se asegura de que cada trama solo sea procesada una

vez.

56

Figura 13 – Arquitectura de IDS

Las tramas pasan por un preprocesamiento en el cual se transforman en vectores de

características similares a las contenidas en KDD cup 99. Los nodos de preprocesamiento

se encuentran tras un balanceador de carga que asigna cada trama a uno de los nodos.

Este proceso de paralelización permite procesar tramas en un esquema de escalabilidad

horizontal. Sin embargo, requiere un mecanismo de gestión de estado compartido entre

los nodos, ejemplo de ello es Redis1, un motor de estructuras de datos en memoria, que

permite mantener el esquema paralelo sin degradación del desempeño por el proceso de

sincronización entre los nodos.

1 Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. https://redis.io/

57

Figura 14 - Capa de IDS

Posteriormente, se clasifica cada trama usando el algoritmo previamente descrito con

etiqueta “normal” o “ataque” y se le asigna un nivel de confianza a cada detección. Esta

información es enviada a un nodo agregador a través de un balanceador de carga, cuando

el agregador ha recibido las salidas de todas las capas emite una predicción, esta

información es finalmente enviada a un nodo de gestión que debería contener un actuador,

cuya implementación exhaustiva esta fuera del alcance de esta investigación. En un

contexto ideal, este actuador debería estar conectado al controlador de la red que permite

ejecutar acciones preventivas y correctivas sobre la red tales como la limitación de la tasa

de peticiones, el bloqueo de direcciones IP, encabezados, protocolos o acciones

específicas sobre la red.

El prototipo puede ser fácilmente desplegado en entornos como OpenStack2, el cual

permite un manejo sencillo de la infraestructura virtualizada en un entorno de máquinas

físicas. Esto debido a que en un entorno de producción con alto tráfico es necesario

2 OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources

throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users

to provision resources through a web interface. https://www.openstack.org

58

mantener un esquema de alta disponibilidad, por lo que el balanceo de carga se convierte

un aspecto fundamental de la arquitectura. Dado que los ataques DoS siguen siendo una

de las mayores amenazas a los entornos de computación en la nube es crítico para el

Sistema poder soportar flujos repentinos de carga realizando la detección oportuna de la

amenaza y filtrando el tráfico sin afectaciones a los servicios soportados por la red. Un

ejemplo de este componente, son los balanceadores de carga Octavia3 sobre Openstack.

Por otra parte, los módulos principales de clasificación están configurados en un esquema

que permite el despliegue de múltiples nodos con el fin de distribuir la carga entre varias

instancias, donde los clasificadores son cargados en cada una de las instancias haciendo

uso de objetos de Python serializados en archivos binarios mediante pickle. Esto, permite

mantener clasificadores congruentes en todas las instancias sin que tengan que ser

entrenados nuevamente; Además, la carga mediante objetos serializados permite el

aprovisionamiento del clasificador en pocos segundos.

Los nodos agregadores son aquellos encargados de colectar las respuestas de los

clasificadores y emitir un juicio final sobre cada uno de los datos procesados. En el caso

de un IPS, seria este el módulo encargado de notificar al nodo de gestión sobre la detección

de anomalías en la red.

En la Figura 13, se muestra un esquema de ejemplo en el cual el clúster de IDS se

encuentra lógicamente separado del resto de la red por un switch, el cual envía una copia

de todo el tráfico de la red al sistema de detección. En este escenario se presenta una

configuración de 2 nodos de preprocesamiento, 3 capas de clasificación y 2 nodos

agregadores. Sin embargo, la cantidad de nodos requeridos en cada etapa del proceso

depende de la carga soportada por la red y la capacidad de procesamiento de paquetes

que tenga el clúster de IDS según los recursos disponibles.

3 Octavia is an open source, operator-scale load balancing solution designed to work with OpenStack.

https://docs.openstack.org/octavia/latest/reference/introduction.html

59

6.2 Entrenamiento

6.2.1 Preprocesamiento y reducción de características

Se hace uso del 10% de los datos de KDD cup 99 dataset, conteniendo un total de 494,021

datos etiquetados[78]. Las etiquetas de los datos son clasificadas y reducidas a NORMAL,

PROBE, DOS, U2R, R2. Análisis detallados sobre el proceso de selección de

características han sido desarrollados en el pasado sobre los datos de DARPA dataset,

KDD cup 99 y variantes como NSL KDD usando diversos métodos como Optimal Genetic

Algorithm, Sequencial Search, Maximal information compression index, Least square

regression error[79]–[81]. Dado que se plantea un sistema de propósito general, el módulo

de preprocesamiento de tráfico en vivo no soporta parámetros específicos de la capa de

aplicación, por esta razón las siguientes características son removidas:

num_failed_logins

logged_in, num_compromised

root_shell

su_attempted

num_root

num_file_creations

num_shells

num_access_files

num_outbound_cmds

is_host_login

is_guest_login

Los datos numéricos son normalizados linealmente en intervalos en intervalos de 0 a 1,

esto con el fin de prevenir que una variable tome relevancia sobre las otras. Con las

variables normalizadas se realiza un análisis de correlación mediante el coeficiente de

60

correlación de Pearson definido de manera genérica como 𝑐𝑜𝑟𝑟(𝑋, 𝑌) =𝑐𝑜𝑣(𝑋,𝑌)

𝜎𝑋𝜎𝑌=

𝐸[(𝑋−𝜇𝑋)(𝑌−𝜇𝑌)]

𝜎𝑋𝜎𝑌

Figura 15 - matriz de correlación KDD cup 99 - 10%

La figura 15, nos muestra la representación de la correlación entre las características sobre

el conjunto pruebas, donde se evidencia gráficamente la existencia de características con

valores unitarios que pueden ser removidas del modelo, además de varias características

con alto grado de correlación. En este caso se decide descartar características basado en

un criterio de tolerancia del 90%, es decir 𝑎𝑏𝑠(𝑐𝑜𝑟𝑟(𝑋, 𝑌)) > 0.9. Dado que la correlacion

se da en pares, en cada caso se conserva la característica que mantiene la menor

correlacion promedio con el resto de variables. De ser igual, se descarta cualquiera de

ellas pues se asume que la decisión no impacta el resultado. La Figura 16 nos muestra la

misma matriz de correlación tras la eliminación de variables.

Tras este proceso las siguientes características son descartadas:

dst_host_rerror_rate

dst_host_serror_rate

dst_host_same_srv_rate

61

dst_host_same_src_port_rate

dst_host_srv_rerror_rate

srv_rerror_rate

srv_serror_rate

srv_count

dst_host_srv_serror_rate

Figura 16 - matriz de correlación kdd cup 99 - 10%, eliminando variables altamente

correlacionadas.

6.3 Formación de clústeres

Se generan N conjuntos de 𝑘 clusters mediante mini-batch k-means donde cada uno de

estos conjuntos constituye una 𝐿 del modelo de clasificación, 𝐿𝑖 = {𝑐𝑖,1, 𝑐𝑖,2 . . . 𝑐𝑖,𝑘} cuya

única diferencia es factor aleatorio de inicialización de los centroides y SAMME en clusters

no atómicos. Este proceso genera grupos que pueden o no sobreponerse, como resultado

un dato no necesariamente pertenece al mismo grupo en diferentes capas.

Para la evaluación del modelo ha definido 𝑁 = 5 y 𝑘 = 16 valores que experimentalmente

minimizan el error medio en la clasificación de datos atípicos respecto a los datos

62

normales. Dado que el foco de la implementación es la detección de tráfico anómalo y no

la clasificación del tráfico anómalo en tipos de ataque.

Figura 17 - Distribución de etiquetas de entrenamiento; Capa 1

Figura 18 – Distribución de etiquetas de entrenamiento; Capa 2

Figura 19 – Distribución de etiquetas de entrenamiento; Capa 3

63

Figura 20 - Distribución de etiquetas de entrenamiento; Capa 4

Figura 21 - Distribución de etiquetas de entrenamiento; Capa 5

Al examinar la distribución de etiquetas dentro de las capas, resulta evidente la efectividad

del algoritmo de clustering al clasificar de forma no supervisada los datos que cuentan con

mayor cantidad de muestras. Particularmente, se encuentran ejemplos de clústeres

atómicos con etiquetas normal y DoS; las etiquetas R2L, U2R Y Probe, suelen estar

distribuidas a través de pocos clústeres. Pese a que los ataques DoS suelen representar

la mayor preocupación para los entornos de computación en la nube actuales, por la

facilidad para realizarlos. Cabe mencionar, que ataques como el U2R o el R2L son más

perjudiciales para cualquier sistema, dado que no solo comprometen la disponibilidad de

la red, sino que podrían generar vectores de ataque que dificulten la recuperación del

sistema o accedan a información crítica.

Cada capa pasa por un proceso de análisis en el cual se clasifica cada clúster según su

nivel de homogeneidad. Para esto se analizan las etiquetas originales de los elementos

asignados a cada clúster, un clúster será considerado atómico si y solo si el 100% de sus

elementos pertenecen al mismo grupo (NORMAL, DOS, PROBE, U2R, R2L). A cada

64

clúster se le asigna la etiqueta del grupo mayoritario y el porcentaje de miembros de este

grupo, que constituye el nivel de confianza del clúster.

La existencia de clústeres vacíos, además, presenta información importante. El algoritmo

inicializa y reajusta los centroides incrementalmente dejando al final del proceso centroides

aislados del conjunto de datos. Si bien no se puede determinar una etiqueta para estos

clústeres, queda claro que la existencia de un elemento asignado a estos clústeres

representaría una anomalía en la red, por lo cual, estos clústeres son etiquetados como

ataque con probabilidad 100%.

65

7. Evaluación del modelo de detección

Con el fin de determinar el desempeño del prototipo con una configuración de 5 capas,

tolerancia del 99% y grupos de 32 clasificadores débiles, se realiza el experimento de

detección sobre KDD cup 99, reduciendo las etiquetas a true (tráfico sospechoso) y false

(tráfico normal), en el cual se simula la entrada de paquetes preprocesados a los nodos de

predicción. La elección de los parámetros del modelo para este experimento se basa en la

exploración del impacto de cada una de estas variables en el desempeño del modelo.

Particularmente. no se observa mayor ganancia en precisión al aumentar la tolerancia del

modelo, mientras que si se impacta negativamente el tiempo de ejecución al encontrar

menos clusters atómicos. De igual manera, no se observa mayor ganancia promedio tras

el proceso de agregación con más de 5 capas bajo el mismo conjunto de entrenamiento.

Por su parte, la velocidad de ejecución del modelo se degrada a medida que aumenta el

número de clasificadores débiles, sin encontrarse mayor ganancia más allá de los 32

clasificadores.

Tal como se explica en detalle en el capítulo 6, el prototipo logrado fue entrenado en base

al dataset KDD cup 99 usando una partición del 10% de los datos. Para la prueba se hace

uso de los datos restantes etiquetados del dataset.

Total de

muestras

4898431

DoS 3883370

Probe 41102

R2L 1126

U2R 52

66

Normal 972781

Total ataques 3925650

Tabla 7 - Datos KDD cup 99

El experimento se realiza sobre un equipo Procesador AMD ryzen 1700 - 8 núcleos, 16

hilos @ 3.7 GHZ; 32 GB de RAM @ 2666 MHZ; Ubuntu 18.04. La salida de la ejecución

en el entorno permite determinar el tiempo de ejecución para detección de anomalías por

bloques.

Figura 22 - Uso de CPU (todos los núcleos)

67

Durante la ejecución del escenario de pruebas usando todos los núcleos de procesamiento

disponibles, se muestra un uso extenso de CPU cercano al 100% durante los procesos de

asignación de clústeres y clasificación, con un uso antes y después de la ejecución inferior

al 1%, evidenciando la capacidad de ejecución paralela del algoritmo. También se

visualizan fácilmente los procesos de ejecución de las 5 capas secuencialmente y cómo

entre capa y capa existe un periodo de baja actividad de procesamiento que corresponde

a la serialización de datos del entorno para análisis. Las ilustraciones 24 a 39 nos muestran

el comportamiento particular de cada núcleo del sistema durante la ejecución del

experimento.

Figura 23 - Uso de memoria RAM

En este caso, se evidencia que la operación del IDS no ha agotado la capacidad del

servidor de prueba, manteniendo más de un 30% de memoria RAM disponible durante

toda la ejecución. Esto pese a la enorme cantidad de datos de entrada aplicados durante

el experimento, siendo 10% el valor medio de uso de memoria cuando no se está

ejecutando el experimento. De todo esto, se puede concluir que se ha logrado un sistema

altamente eficiente en el uso de recursos y altamente paralelizable. Dicha capacidad de

paralelización sobre las entradas nos permite fácilmente extrapolar los tiempos de

ejecución a entornos en paralelo.

68

Figura 24 - Uso de CPU (1)

Figura 25 - Uso de CPU (2)

Figura 26 - Uso de CPU (3)

69

Figura 27 - Uso de CPU (4)

Figura 28 - Uso de CPU (5)

Figura 29 - Uso de CPU (6)

70

Figura 30 - Uso de CPU (7)

Figura 31 - Uso de CPU (8)

Figura 32 - Uso de CPU (9)

71

Figura 33 - Uso de CPU (10)

Figura 34 - Uso de CPU (11)

Figura 35 - Uso de CPU (12)

72

Figura 36 - Uso de CPU (13)

Figura 37 - Uso de CPU (14)

Figura 38 - Uso de CPU (15)

73

Figura 39 - Uso de CPU (16)

El tiempo promedio de clasificación en 5 capas sobre este entorno para 4898431 datos de

entrada es de 2453.990391 segundos, por lo que, en este entorno particular, el tiempo de

ejecución del proceso de clasificación por paquete es de 0.000500975 segundos. Por su

parte, el tiempo de agregación total fue en promedio de 11.8185267448 segundos o

0.00000241271 segundos por paquete. Esto se resume en una capacidad bruta de

procesamiento en un solo hilo de ejecución sobre este entorno de 1986.541225 paquetes

por segundo.

Por otra parte, al ejecutar el proceso de clasificación de forma paralela, se evidencia una

mejora sustancial en los tiempos de ejecución, pasando a 1303.783215 segundos con 2

núcleos, 774.8536615 segundos con 4 núcleos, 463.6882784 segundos con 8 núcleos,

386.3378847 segundos con 16 núcleos.

Figura 40 - Tiempo de ejecución en paralelo

El resultado de esta ejecución particular arroja la distribución de etiquetas mostrada en la

tabla 6. Las figuras 41 a 45 muestran como las matrices de confusión varían

74

considerablemente entre una capa y otra. Esto se debe al efecto de los parámetros de

inicialización en la formación final de clústeres en cada ejecución del experimento.

Figura 41 - Matriz de confusión, capa 1

LAYER 1 LAYER 2 LAYER 2 LAYER 4 LAYER 5 AGGREGATED

SAMPLES 4898431 4898431 4898431 4898431 4898431 4898431

DoS 3888601 3888555 3888436 3888427 3884126 3888558

Probe 36094 35957 36006 54471 40406 35905

R2L 1198 1234 1243 1252 1207 1206

U2R 82 76 62 193 70 69

normal 972456 972609 972684 972622 972693 972693

attack 4898431 4898431 4898431 4898431 4031947 4898431

Tabla 8 - Distribución de etiquetas

75

Figura 42 - Matriz de confusión, capa 2

Figura 43 - Matriz de confusión, capa 3

76

Figura 44 - Matriz de confusión, capa 4

Figura 45 - Matriz de confusión, capa 5

Como se puede observar, la discrepancia en el desempeño capa a capa muestra cómo el

uso de clústeres superpuestos inicializados aleatoriamente le permite al modelo generar

modelos de clústeres con mejor desempeño hacia un grupo particular. Dada la cardinalidad

del conjunto de pruebas los clústeres atómicos tienden a ser del tipo normal y DoS. El uso

de una combinación lineal sencilla en la fase de agregación parece interpretar de forma

efectiva este hecho pues la probabilidad combinada refuerza las buenas tasas de

detección en clases específicas produciendo un mejor resultado del que producen las

capas individualmente.

77

Figura 46 - Matriz de confusión normalizada

A pesar de la evidente mejora al agregar un paso de agregación en el experimento con

KDD cup 99, es de destacar que este modelo ha sido optimizado para lograr la mejor tasa

de detección en el conjunto {𝑎𝑡𝑎𝑞𝑢𝑒, 𝑛𝑜𝑟𝑚𝑎𝑙}. Por ello, el modelo con los mismos

parámetros de inicialización es probado realizando una agregación sobre las etiquetas,

reduciéndolas a estos 2 valores: false (tráfico normal) y true (tráfico sospechoso).

Figura 47 - Matriz de confusión binaria; Capa 1

78

Figura 48 - Matriz de confusión binaria; Capa 2

Figura 49 - Matriz de confusión binaria; Capa 3

79

Figura 50 - Matriz de confusión binaria; Capa 4

Figura 51 - Matriz de confusión binaria; Capa 5

En este caso, se hace evidente la influencia del proceso de agregación sobre los vectores

de probabilidad, logrando una mejora importante en la tasa de detección respecto al

promedio obtenido al analizar las capas antes de dicho proceso. Si bien sería posible

determinar un factor de sensibilidad en el modelo que permita optimizar individualmente

cada una de las capas, dicho proceso solo se puede realizar conociendo a priori las

etiquetas del conjunto, situación imposible de realizar en un escenario real, por lo que no

se realiza dicha optimización individual. Las figuras 52 y 53 nos muestran la matriz de

80

confusión binaria resultante del proceso de agregación con y sin clasificación en clústeres

no atómicos respectivamente.

Figura 52 - Matriz de confusión binaria

Figura 53 - Matriz de confusión binaria, sin optimización

LAYER 1 LAYER 2 LAYER 2 LAYER 4 LAYER 5 AGGREGATED

PE

RF

OR

MA

NC

E

TN (quantity) 972228 972323 972306 953700 972294 972445

FN (quantity) 228 286 378 388 328 248

TP (quantity) 3925422 3925364 3925272 3925262 3925322 3925402

FP (quantity) 553 458 475 19081 487 336

PR (percentage) 99.994192% 99.992715% 99.990371% 99.990116% 99.991645% 99.993683%

81

FPR

(percentage)

0.000568% 0.047082% 0.048829% 1.961490% 0.050063% 0.034540%

CR

(percentage)

99.984056% 99.984811% 99.982586% 99.602546% 99.983362% 99.988078%

F-MEASURE

(percentage)

99.990053% 99.990524% 99.989136% 99.752617% 99.989620% 99.992562%

Tabla 9 – resultados KDD cup 99, 2 etiquetas

Se logra una detección del 99.9937% de las anomalías de la red, con una tasa de falsos

positivos de 0.0345%, lo que supone una precisión del 99.9937% tras ejecutar el proceso

de agregación. Por otra parte, el efecto más evidente de la agregación es la reducción de

la tasa de falsos positivos (FPR) pasando de 0.4216% a 0.0345%, lo que reduce la

cantidad de falsos positivos a menos de una décima parte.

Before aggregation After aggregation

PR 99.991808% 99.993683%

FPR 0.421606% 0.034540%

CR 99.907472% 99.988078%

F-MEASURE 99.942390% 99.992562%

Tabla 10- Impacto del proceso de agregación

En la literatura, encontramos propuestas recientes de algoritmos de detección de intrusión

probadas sobre KDD cup 99, gracias a ello, es posible comprar el resultado obtenid con

dichos algoritmos e implementaciones. Vivek Nandan Tiwari, Satyendra Rathore y Kailash

Patidar[82] proponen una serie de algoritmos de clasificación basados en Naïve Bayes,

J48 y Random Forest, comparando sus resultados con trabajos anteriores vados en C4.5

y SVM. En la figura 54 se muestra un cuadro comparativo entre dichos métodos y el método

de detección propuesto en la configuración de 5 capas, 32 clasificadores débiles y

tolerancia del 99%.

PR

C4.5 SVM Naïve Bayes

J48 Random forest

Clustering

DoS 93.87% 93.84% 99.50% 100.00% 100.00% 99.87%

Probe 95.38% 89.09% 13.00% 85.70% 95.60% 99.34%

U2R 33.33% 66.67% 8.00% 98.50% 99.60% 93.37%

R2L 16.44% 15.90% 41.00% 81.00% 81.60% 73.91%

82

Tabla 11 - Comparativa con experimentos previos

83

84

8. Conclusiones y recomendaciones

8.1 Conclusiones

Se propuso y desarrolló satisfactoriamente un prototipo de sistema de detección de

intrusión basado en métodos de clustering y aprendizaje supervisado. Permitiendo

aprovechar las capacidades de procesamiento paralelo y distribuido, propios de este tipo

de entornos. Todo esto, motivado principalmente por la falta de desarrollos públicos e

investigación en el uso de sistemas de detección de intrusión en la nube pasados en este

tipo de algoritmos.

El prototipo logrado obtiene una tasa de detección promedio de 99.9937% tras el proceso

de agregación y una tasa de falsos positivos de 0.0345% al ser ejecutado sobre el

escenario de pruebas con dataset KDD cup 99, lo que demuestra que es factible usar

métodos de clustering para agrupar los patrones normales de tráfico y detectar datos que

se alejan de dichos clústeres.

El esquema desarrollado se compone de una serie de procesos que incrementalmente

aumentan el desempeño de la detección, la agrupación, la clasificación en clústeres no

atómicos y, finalmente, la agregación; La detección basada en k-means con etiquetado de

clústeres sin ningún tipo de optimización alcanza una precisión binaria de 98.4075% con

una tasa de falsos positivos de 0.7727%. Al realizar el proceso de clasificación sobre

clústeres no atómicos mediante algoritmos de clasificación supervisada, la precisión

lograda sobre el mismo experimento es de 99.9936% y la tasa de falsos positivos de

0.0345%.

El esquema de ejecución en paralelo permite adicionalmente optimizar el uso de recursos

y escalar horizontalmente, las pruebas realizadas con ejecución paralela sobre las

entradas a nivel de procesos evidencian un incremento lineal del desempeño respecto a

la cantidad de procesos ejecutados sobre núcleos dedicados. Logrando una mejora en la

85

velocidad de ejecución del 635% al usar los 16 hilos de procesamiento disponibles en la

máquina de pruebas respecto a la prueba de ejecución sobre un solo hilo. Esta capacidad

de escalar horizontalmente, lo hace ideal para el despliegue en entornos de computación

en la nube bajo esquemas de auto-escalado.

8.2 Recomendaciones

Este trabajo se enfoca en la conceptualización y el desarrollo de un IDS funcional basado

en algoritmos de clustering, este ha sido desarrollado usando principalmente

implementaciones sobre CPU basadas en librerías en Python y C++ de código abierto y

de propósito general. Dichas implementaciones podrían ser optimizadas para esta

aplicación particular. Por otra parte, en este trabajo, no se aborda el proceso técnico del

aislamiento del IDS como un componente seguro de la red o la implementación de auto-

escalabilidad sobre esta arquitectura; pese que dicha implementación no presenta

mayores retos a nivel técnico, si es dependiente de la tecnología y el esquema de

despliegue de infraestructura utilizado, por lo que el prototipo aquí presentado debe ser

complementado para poder ser llevado a un entorno de producción. Puntualmente:

- Varios de los procesos implementados, especialmente el cálculo de operaciones

matriciales en los algoritmos de clasificación, pueden ser mejorados

considerablemente mediante el uso de implementaciones sobre GPU. You Li,

Kaiyong Zhao, Xiaowen Chu y Jiming Liu[83] proponen una variación de k-means

sobre GPU que puede aplicarse al prototipo desarrollado.

- Con el fin de lograr un sistema lo suficientemente flexible para funcionar a gran

escala es necesaria la automatización de los procesos de aprovisionamiento y

configuración de la infraestructura del clúster de IDS como DMZ dentro de la red.

Dicha automatización, se puede lograr con el uso de herramientas como Ansible4,

un software de aprovisionamiento, configuración y despliegue de infraestructura en

la nube podrían ayudar a generar esquemas de despliegue más rápidos, flexibles

4 Ansible is an open-source software provisioning, configuration management, and application deployment tool.

https://www.ansible.com/

86

y tolerantes a errores. Además de permitir la portabilidad del sistema entre

diferentes entornos y proveedores de IaaS como AWS5, Azure6, Google Cloud7 y

Openstack

- La arquitectura y el proceso lineal propuesto para el prototipo de IDS, está pensada

para permitir etapas de procesos que sean altamente paralelizables en cada una

de las capas. Herramientas de orquestación como Kubernetes8, podrían permitir

empaquetar todo el Sistema en un clúster de máquinas virtuales fácilmente

escalable, prescindiendo de los balanceadores de carga explícitos y con óptima

utilización de recursos, delegando al nodo de gestión de kubernetes la labor de

escalar los recursos del propio IDS y facilitando un flujo de información más rápido

y eficiente.

- Es necesario el desarrollo de un módulo de notificación de amenazas y un módulo

actuador, con permisos de gestión sobre la red que permitan tomar acciones

automatizadas como la modificación de reglas del firewall o la reconfiguración de

la red y mantener registros en tiempo real de las alertas generadas por el IDS.

Dichos componentes complementarían el sistema comportándose como un IPS

aplicable a entornos de producción.

El sistema propuesto ha sido optimizado para la detección binaria {ataque, normal},

investigaciones como la de A. Little, X. Mountrouidou, y D. Moseley[68] exploran el uso

de métodos de clustering para la clasificación de tráfico anómalo que podrían ser

fácilmente añadidos al flujo gracias a la arquitectura modular propuesta. También es

posible la optimización del modelo clústeres desarrollado para generar un criterio multi-

clase más preciso mediante un análisis detallado de la composición de los clústeres

5 Amazon Web Services (AWS) is a subsidiary of Amazon that provides on-demand cloud computing platforms to

individuals, companies and governments, on a metered pay-as-you-go basis. https://aws.amazon.com/

6 Microsoft is a cloud computing service created by Microsoft for building, testing, deploying, and managing applications

and services through Microsoft-managed data centers. https://azure.microsoft.com/

7 Google Cloud Platform (GCP), offered by Google, is a suite of cloud computing services that runs on the same

infrastructure that Google uses internally for its end-user products. https://cloud.google.com/

8 Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized

applications. https://kubernetes.io/

87

que facilite el entrenamiento del modelo con gran diferencia en la cardinalidad de las

clases.

Actualmente, son abundantes los estudios referentes a nuevos métodos de clustering

y variaciones de métodos ya existentes para aplicaciones generales. En esta

investigación se hace uso de métodos basados en k-means por la facilidad para las

asignaciones de clústeres con bajo uso de recursos. Sin embargo, existen en la

literatura propuestas de algoritmos de clustering con capacidad de predicción que

podrían ser adaptados a esta arquitectura. Dicha adaptación podría llevar a

implementaciones más precisas, por ejemplo, al eliminar el supuesto de clústeres con

soluciones convexas.

Otro aspecto clave para el desarrollo de más investigación en el área es la creación de

nuevos y mejores datasets de prueba de intrusión que contengan, no solo nuevos vectores

de ataque, sino actividades de gestión de la red correctamente etiquetadas. De esta

manera seria posible generar estudios comparativos más acertados entre propuestas de

sistemas de detección de intrusión.

88

A. Anexo: Código del prototipo y flujo de pruebas

Código del prototipo de IDS y el flujo de pruebas desarrollado. Incluido en la copia digital.

B. Anexo: Logs del sistema

Logs de uso de recursos de CPU y memoria durante la ejecución del flujo de pruebas con

16 hilos. Incluidos en copia digital.

Bibliografía

[1] S. Teh, S. Ho, G. Chan, and C. Tan, “A Framework for Cloud Computing Use to Enhance

Job Productivity,” pp. 73–78, 2016.

[2] L. Columbus, “Roundup Of Small & Medium Business Cloud Computing Forecasts And

Market Estimates ,” 2016. [Online]. Available:

http://www.forbes.com/sites/louiscolumbus/2016/03/13/roundup-of-cloud-computing-

forecasts-and-market-estimates-2016/#1ae22a2174b0. [Accessed: 01-Sep-2016].

[3] S. Vijayarani and M. Sylviaa, “Intrusion Detection System,” Int. J. Secur. Priv. Trust

Manag., vol. 4, no. 1, pp. 31–44, 2015.

[4] G. Bruneau, “The History and Evolution of Intrusion Detection,” 2001.

[5] I. Indu and A. I. Management, “Identity and Access Management for Cloud Web Services,”

no. December, pp. 406–410, 2015.

[6] K. Discovery, C. Yu, T. Wang, J. Fan, and Y. Li, “Application of Software-Defined

Network with Software-based Architecture in Enterprise Data,” 2016.

[7] A. Mahjani, “Security Issues of Virtualization in Cloud Computing Environments,” 2015.

[8] D. Drutskoy, E. Keller, and J. Rexford, “Scalable network virtualization in software-

defined networks,” IEEE Internet Comput., vol. 17, no. 2, pp. 20–27, 2013.

[9] S. Sezer, S. Scott-Hayward, P. Chouhan, B. Fraser, D. Lake, J. Finnegan, N. Viljoen, M.

Miller, and N. Rao, “Are we ready for SDN? Implementation challenges for software-

defined networks,” IEEE Commun. Mag., vol. 51, no. 7, pp. 36–43, 2013.

[10] K. Kuppusamy and D. Ph, “A Survey on Routing Algorithms for Cloud Computing,” pp. 5–

8, 2013.

[11] P. P. Ponnusamy, “Virtual network Routing in Cloud Computing Environment,” 2016.

[12] J. Moy, “OSPF Version 2,” IETF RFC, vol. 53, no. 9, pp. 1689–1699, 1998.

[13] Y. Rekhter, T. Li, and S. Hares, “A Border Gateway Protocol 4 (BGP-4) Status,” pp. 1–

104, 2006.

[14] M. Alizadeh, A. Greenberg, D. a. Maltz, J. Padhye, P. Patel, B. Prabhakar, S. Sengupta, and

M. Sridharan, “Data center TCP (DCTCP),” ACM SIGCOMM Comput. Commun. Rev., vol.

40, no. 4, p. 63, 2010.

[15] P. Wang, Y. Kim, V. Kher, and T. Kwon, “Strengthening Password-based Authentication

Protocols Against Online Dictionary Attacks.”

[16] W. Simpson, “PPP Challenge Handshake Authentication Protocol (CHAP),” 1996.

[Online]. Available: https://tools.ietf.org/html/rfc1994. [Accessed: 01-Jan-2017].

[17] N. Naik and P. Jenkins, “An Analysis of Open Standard Identity Protocols in Cloud

Computing Security Paradigm,” 2016.

[18] D. Hardt, “The OAuth 2.0 Authorization Framework,” 2012. [Online]. Available:

https://tools.ietf.org/html/rfc6749. [Accessed: 01-Jan-2017].

[19] PandaLabs, “bercrime Reaches New Heights in the Third Quarter.” [Online]. Available:

http://www.pandasecurity.com/mediacenter/pandalabs/pandalabs-q3/.

[20] S. Joshua, “43 Percent of Cyber Attacks Target Small Business,” 2016. [Online]. Available:

smallbiztrends.com/2016/04/cyber-attacks-target-small-business.html.

[21] J. Crowe, “Cyber Attack Statistics: Majority of Victims Aren’t Changing Their Security in

2017.” [Online]. Available: https://blog.barkly.com/cyber-attack-statistics-2016.

[22] A. Balobaid, W. Alawad, and H. Aljasim, “A study on the impacts of DoS and DDoS

attacks on cloud and mitigation techniques,” Int. Conf. Comput. Anal. Secur. Trends, CAST

2016, pp. 416–421, 2017.

[23] P. Rengaraju, R. R. V, and C. Lung, “Detection and Prevention of DoS attacks in Software-

Defined Cloud Networks,” pp. 217–223.

[24] G. Somani, M. S. Gaur, D. Sanghi, M. Conti, and R. Buyya, “DDoS Attacks in Cloud

Computing: Issues, Taxonomy, and Future Directions,” ACM Comput. Surv., vol. 1, no. 1,

pp. 1–44, 2015.

[25] A. A. Shaikh, “Attacks on cloud computing and its countermeasures,” Int. Conf. Signal

Process. Commun. Power Embed. Syst. SCOPES 2016 - Proc., pp. 748–752, 2017.

[26] A. G. Oleg Kupreev, Ekaterina Badovskaya, “DDoS Attacks in Q4 2018.” .

[27] M. Jensen, J. Schwenk, N. Gruschka, and L. Lo Iacono, “On technical security issues in

cloud computing,” CLOUD 2009 - 2009 IEEE Int. Conf. Cloud Comput., pp. 109–116,

2009.

[28] av-set, “Malware statistics,” 2017. [Online]. Available: https://www.av-

test.org/en/statistics/malware/. [Accessed: 20-Jul-2010].

[29] M. Azab and M. Eltoweissy, “MIGRATE: Towards a Lightweight Moving-Target Defense

Against Cloud Side-Channels,” Proc. - 2016 IEEE Symp. Secur. Priv. Work. SPW 2016, pp.

96–103, 2016.

[30] M. Chouhan, “Adaptive Detection Technique for Cache-Based Side Channel Attack Using

Bloom Filter for Secure Cloud Adaptive Detection Technique For Cache-Based Side

Channel Attack Using Bloom Hasbullah For Secure Cloud,” pp. 293–297, 2016.

[31] Y. A. Younis, K. Kifayat, Q. Shi, and B. Askwith, “A new prime and probe cache side-

channel attack for cloud computing,” Proc. - 15th IEEE Int. Conf. Comput. Inf. Technol.

CIT 2015, 14th IEEE Int. Conf. Ubiquitous Comput. Commun. IUCC 2015, 13th IEEE Int.

Conf. Dependable, Auton. Secur. Comput. DASC 2015 13th IEEE Int. Conf. Pervasive

Intell. Comput. PICom 2015, pp. 1718–1724, 2015.

[32] F. Liu, Q. Ge, Y. Yarom, F. Mckeen, C. Rozas, G. Heiser, and R. B. Lee, “CATalyst :

Defeating Last-Level Cache Side Channel Attacks in Cloud Computing,” Hpca, no. Vm,

pp. 406–418, 2016.

[33] M. M. Godfrey and M. Zulkernine, “Preventing cache-based side-channel attacks in a cloud

environment,” IEEE Trans. Cloud Comput., vol. 2, no. 4, pp. 395–408, 2014.

[34] M. Godfrey and M. Zulkernine, “A server-side solution to cache-based side-channel attacks

in the cloud,” IEEE Int. Conf. Cloud Comput. CLOUD, pp. 163–170, 2013.

[35] Ziqi Wang, Rui Yang, Xiao Fu, Xiaojiang Du, and Bin Luo, “A shared memory based

cross-VM side channel attacks in IaaS cloud,” 2016 IEEE Conf. Comput. Commun. Work.

(INFOCOM WKSHPS), vol. 2016–Septe, pp. 181–186, 2016.

[36] J. P. Anderson, “Computer Security Threat Monitoring and Surveillance.”

[37] Y. Mehmood, M. A. Shibli, U. Habiba, and R. Masood, “Intrusion detection system in

cloud computing: Challenges and opportunities,” Conf. Proc. - 2013 2nd Natl. Conf. Inf.

Assur. NCIA 2013, pp. 59–66, 2013.

[38] N. A. Premathilaka, A. C. Aponso, and N. Krishnarajah, “Review on state of art intrusion

detection systems designed for the cloud computing paradigm,” 2013 47th Int. Carnahan

Conf. Secur. Technol., pp. 1–6, 2013.

[39] W. S. Lawrie Brown, No Computer Security: Principles and Practice. 2008.

[40] C. Mazzariello, R. Bifulco, and R. Canonico, “Integrating a network IDS into an open

source cloud computing environment,” 2010 6th Int. Conf. Inf. Assur. Secur. IAS 2010, pp.

265–270, 2010.

[41] M. Shimamura and K. Kono, “Using attack information to reduce false positives in network

IDS,” Proc. - Int. Symp. Comput. Commun., pp. 386–393, 2006.

[42] H. Tang, “A Network IDS Model Based on Improved Artificial Immune Algorithm,” 2016

Int. Conf. Intell. Transp. Big Data Smart City, pp. 46–50, 2016.

[43] R. Vaarandi, K. Podi, R. Vaarandi, and K. Podi, “Network IDS Alert Classification with

Frequent Itemset Mining and Data Clustering Network IDS Alert Classification with

Frequent Itemset Mining and Data Clustering,” pp. 451–456, 2010.

[44] Z. Li, “A Neural Network Based Distributed Intrusion Detection System on Cloud

Platform,” 2013.

[45] J. Nikolai, “Hypervisor-based cloud intrusion detection system,” 2014 Int. Conf. Comput.

Netw. Commun., pp. 989–993, 2014.

[46] E. Bauman, G. Ayoade, and Z. Lin, “A Survey on Hypervisor-Based Monitoring,” ACM

Comput. Surv., vol. 48, no. 1, pp. 1–33, 2015.

[47] H.-J. Liao, C.-H. Richard Lin, Y.-C. Lin, and K.-Y. Tung, “Intrusion detection system: A

comprehensive review,” J. Netw. Comput. Appl., vol. 36, no. 1, pp. 16–24, 2013.

[48] H. Chou and S. Wang, “An Adaptive Network Intrusion Detection Approach for the Cloud

Environment.”

[49] M. Namratha and T. R. Prajwala, “A Comprehensive Overview of Clustering Algorithms in

Pattern Recognition,” J. Comput. Eng., vol. 4, no. 6, pp. 23–30, 2012.

[50] T. Salman, D. Bhamare, A. Erbad, R. Jain, and M. Samaka, “Machine Learning for

Anomaly Detection and Categorization in Multi-Cloud Environments,” Proc. - 4th IEEE

Int. Conf. Cyber Secur. Cloud Comput. CSCloud 2017 3rd IEEE Int. Conf. Scalable Smart

Cloud, SSC 2017, pp. 97–103, 2017.

[51] N. Pandeeswari and G. Kumar, “Anomaly Detection System in Cloud Environment Using

Fuzzy Clustering Based ANN,” Mob. Networks Appl., pp. 494–505, 2016.

[52] S. Kaur and P. V. Pandey, “A Survey of Virtual Machine Migration Techniques in Cloud

Computing,” vol. 6, no. 7, pp. 28–35, 2015.

[53] P. Jamshidi, A. Ahmad, and C. Pahl, “Cloud Migration Research : A Systematic Review,”

no. February, 2014.

[54] A. Ruprecht, D. Jones, D. Shiraev, G. Harmon, M. Spivak, M. Krebs, and T. Sanderson,

“VM Live Migration At Scale,” 2018.

[55] M. Noshy, A. Ibrahim, and H. A. Ali, “Optimization of live virtual machine migration in

cloud computing : A survey and future directions Journal of Network and Computer

Applications Optimization of live virtual machine migration in cloud computing : A survey

and future directions,” J. Netw. Comput. Appl., vol. 110, no. March, pp. 1–11, 2018.

[56] M. Hefeeda, F. Gao, and W. Abd-Almageed, “Distributed approximate spectral clustering

for large-scale datasets,” Proc. 21st Int. Symp. High-Performance Parallel Distrib. Comput.

- HPDC ’12, p. 223, 2012.

[57] Yu and Shi, “Multiclass spectral clustering,” in Proceedings Ninth IEEE International

Conference on Computer Vision, 2003, pp. 313–319 vol.1.

[58] A. W. Moore, “K-means and Hierarchical Clustering,” Stat. Data Min. Tutorials, pp. 1–24,

2001.

[59] K. Wang, J. Zhang, D. Li, X. Zhang, and T. Guo, “Adaptive Affinity Propagation

Clustering,” Automatica, vol. 33, no. 12, pp. 1242–1246, 2007.

[60] W. L. Yeqing Li Junzhou Huang, “Scalable Sequential Spectral Clustering,” Proc. Thirtieth

AAAI Conf. Artif. Intell., pp. 1809–1815, 2016.

[61] Z. Li, Y. Liu, and S. Tao, “A non-cooperative game model of intrusion detection system in

cloud computing,” IET Conf. Publ., vol. 2015, no. CP678, 2015.

[62] S. R. Lenka, “HTTP Service based Network Intrusion Detection System in Cloud

Computing,” no. 1, pp. 44–51, 2015.

[63] A. Patel, M. Taghavi, K. Bakhtiyari, and J. Celestino Júnior, “An intrusion detection and

prevention system in cloud computing: A systematic review,” J. Netw. Comput. Appl., vol.

36, no. 1, pp. 25–41, 2013.

[64] P. K. Rajendran, B. Muthukumar, and G. Nagarajan, “Hybrid Intrusion Detection System

for Private Cloud: A Systematic Approach,” Procedia Comput. Sci., vol. 48, no. 0, pp. 325–

329, 2015.

[65] B. Trivedi, J. Rajput, C. Dwivedi, and P. Jobanputra, “Distributed Intrusion Detection

System using Mobile Agents,” vol. 1, no. Isccc 2009, pp. 57–61, 2011.

[66] L. Portnoy, E. Eskin, and S. J. Stolfo, “Intrusion detection with unlabeled data using

clustering,” ACM CSS Work. Data Min. Appl. to Secur., pp. 5–8, 2001.

[67] Y. Song, W. Y. Chen, H. Bai, C. J. Lin, and E. Y. Chang, “Parallel spectral clustering,” in

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial

Intelligence and Lecture Notes in Bioinformatics), 2008, vol. 5212 LNAI, no. PART 2, pp.

374–389.

[68] A. Little, X. Mountrouidou, and D. Moseley, “Spectral Clustering Technique for

Classifying Network Attacks,” 2016 IEEE 2nd Int. Conf. Big Data Secur. Cloud

(BigDataSecurity), IEEE Int. Conf. High Perform. Smart Comput. (HPSC), IEEE Int. Conf.

Intell. Data Secur., pp. 406–411, 2016.

[69] S. Trivedi, Z. A. Pardos, and N. T. Heffernan, “The Utility of Clustering in Prediction

Tasks,” no. September, pp. 1–11, 2011.

[70] D. Sculley, “Web-Scale K-Means Clustering,” pp. 4–5, 2010.

[71] N. N. Almanza-ortega and D. Romero, “Balancing effort and benefit of K -means clustering

algorithms in Big Data realms,” pp. 1–19, 2018.

[72] J. Zhu, A. Arbor, and T. Hastie, “Multi-class AdaBoost,” pp. 0–20, 2006.

[73] T. G. Dietterich, “Ensemble Methods in Machine Learning,” 1990.

[74] M. Re and G. Valentini, Ensemble methods : A review, no. May 2014. 2019.

[75] S. Bhagat, S. State, and T. Campus, “Evaluation Metrics for Intrusion Detection Systems -

A Study,” no. June 2015, 2018.

[76] V. R. Shewale, “Performance Evaluation of Attack Detection Algorithms using Improved

Hybrid IDS with Online Captured Data,” vol. 146, no. 8, pp. 35–40, 2016.

[77] Cyber Systems and Technology Group on MIT Lincoln Laboratory, “DARPA Intrusion

Detection Data Sets.” [Online]. Available: https://www.ll.mit.edu/ideval/data/.

[78] “The UCI KDD Archive. KDD Cup 1999 Data.” .

[79] S. Parsazad, E. Saboori, and A. Allahyar, “Fast Feature Reduction in Intrusion Detection

Datasets,” pp. 1023–1029, 2012.

[80] M. H. Aghdam and P. Kabiri, “Feature Selection for Intrusion Detection System Using Ant

Colony Optimization,” vol. 18, no. 3, pp. 420–432, 2016.

[81] R. M. Amin Dastanpour, Raja Azlina, “Feature Selection Based on Genetic Algorithm and

Support Vector Machine for Intrusion Detection System,” no. November, 2013.

[82] V. N. Tiwari, P. S. Rathore, and P. K. Patidar, “International Journal of Current Trends in

Engineering & Technology Enhanced Method for Intrusion Detection over KDD Cup 99

Dataset International Journal of Current Trends in Engineering & Technology ISSN :,” vol.

2, 2016.

[83] Y. Li, K. Zhao, X. Chu, and J. Liu, “Speeding up K-Means Algorithm by GPUs,” no. Cit,

pp. 115–122, 2010.