Trabajo de Grado Machine Learning y Seguridad: Detección ...

59
Trabajo de Grado Machine Learning y Seguridad: Detección de Correos Falsos y Detección de Intrusos Mateo León Alzáte, Nicolás Sotelo Londoño Asesoras Haydemar Nuñez Castro, Ph.D Sandra Julieta Rueda Rodríguez, Ph.D. Universidad de Los Andes Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Bogotá, 2020

Transcript of Trabajo de Grado Machine Learning y Seguridad: Detección ...

Page 1: Trabajo de Grado Machine Learning y Seguridad: Detección ...

Trabajo de Grado

Machine Learning y Seguridad:

Detección de Correos Falsos y Detección de Intrusos

Mateo León Alzáte, Nicolás Sotelo Londoño

Asesoras

Haydemar Nuñez Castro, Ph.D

Sandra Julieta Rueda Rodríguez, Ph.D.

Universidad de Los Andes

Facultad de Ingeniería

Departamento de Ingeniería de Sistemas y Computación

Bogotá, 2020

Page 2: Trabajo de Grado Machine Learning y Seguridad: Detección ...

2

TABLA DE CONTENIDO

Resumen 5

Introducción 5

Descripción del problema 8

Problemas de la detección de emails de phishing mediante ML 8

Técnicas tradicionales para detección de phishing 8

ML en Gmail 8

Clasificación humana vs ML 9

Evolución del phishing 10

Problemas del contexto 10

Sistema detección de intrusos 11

SIDS 12

AIDS 13

Propuesta de solución 14

Metodología 14

Encuadrar el problema y mirar el panorama general 14

Obtener los datos 14

Explorar los datos 15

Preparar los datos 15

Explorar los modelos y escoger los mejores 15

Afinar los modelos 15

Presentar los resultados 16

Implementación 17

Emails y phishing 17

Descripción de los conjuntos de datos 17

Nazario Phishing corpus 17

Conjunto de datos Enron email 21

Page 3: Trabajo de Grado Machine Learning y Seguridad: Detección ...

3

Conjunto de datos IWSPA 23

Selección de características de los datos 23

Palabras en mayúsculas. 25

Número de signos de exclamación. 25

Número de clicks y “free”. 25

URL externo y Javascript. 25

Preprocesamiento de datos 26

Extracción de datos de los conjuntos de datos 26

Procesamiento de datos a lenguaje de modelos ML 27

Perfilamiento de datos 29

Selección y entrenamiento de los modelos ML 30

Sistemas de Detección de Intrusos (NIDS) 31

Intrusion Detection Evaluation Dataset (CIC-IDS2017) 31

Perfilamiento 32

Manejando valores perdidos 33

Variables cualitativas 33

Selección y entrenamiento de los modelos ML 33

SVM 34

Random Forest 34

Evaluación 36

Emails y phishing 36

Resultados 36

Importancia de características escogidas 40

Afinación de los modelos ML 41

NIDS 43

Afinación de los modelos ML 44

Atributos Seleccionados 45

SMOTE 45

Page 4: Trabajo de Grado Machine Learning y Seguridad: Detección ...

4

Trabajo Relacionado 47

Emails y phishing 47

Principales investigaciones 47

Otras investigaciones 48

IDS 49

Principales investigaciones 49

Otras investigaciones 49

Conclusiones y trabajo futuro 51

Trabajos citados 55

Page 5: Trabajo de Grado Machine Learning y Seguridad: Detección ...

5

RESUMEN

En los últimos años el número de organizaciones y personas que usan tecnología para apoyar las labores diarias ha crecido de forma consistente. A medida que la tecnología es usada por un mayor número de personas, la comunidad también enfrenta más problemas de seguridad de la información; surgen nuevas amenazas cada día, las cuales representan riesgos para la información de todos los usuarios.

Uno de los problemas de seguridad más comunes es la presencia de programas maliciosos (malware) y hoy día, Machine Learning (ML) es una de las técnicas que actualmente se está explorando para detectar malware. Con este contexto, este proyecto explora las ventajas y desventajas de Machine Learning (ML) en la detección de patrones y anomalías en dos ambientes de gran relevancia en el mundo de la seguridad: La detección de correos falsos (phishing) y detección de intrusos. Para las organizaciones es importante detectar estas dos situaciones, ya que permite prevenir distintos tipos de ataques.

Para evaluar el alcance de ML en los dos contextos mencionados seleccionamos un conjunto de algoritmos y evaluamos sus resultados:

● En el caso de la clasificación de emails de phishing utilizando técnicas de ML (clasificación) usamos los algoritmos Random Forest, Stochastic gradient descent, Logistic Regression, K-Neighbors, Gaussian Naive Bayes Classifier y Support Vector Machines. Nuestros modelos propuestos alcanzan el 90% de exactitud en la clasificación de emails de phishing con los conjuntos de datos de Nazarion Phishing Corpus [10], Enron Dataset [14] e IWSPA dataset [13].

● Adicionalmente se logra una exactitud del 95% en detección de anomalías en sistemas IDS para el cual se usó el dataset CICIDS2017[43].

Según los resultados, concluimos que, a comparación de otros estudios, las características (features o variables) escogidas en función del cuerpo del email, el asunto y su remitente no son las óptimas. Otros estudios comprueban que las variables óptimas están relacionadas con la dirección de los remitentes (IP, dominio, etc…), las palabras clave en el cuerpo del email y los scripts dentro del email [6], [16].

Por otro lado, las principales características al momento de detectar anomalías en redes están principalmente asociadas con datos de transmisión del paquete y no con el contenido de este.

Page 6: Trabajo de Grado Machine Learning y Seguridad: Detección ...

6

1 INTRODUCCIÓN

Hoy en día, cualquier persona puede ser objetivo de un programa malicioso (malware), con resultados que pueden afectar tanto servicios como datos. Si una organización o persona sufre uno de estos ataques, los servicios pueden quedar fuera de línea y los datos pueden ser robados, alterados o eliminados. Lastimosamente es una coyuntura que debe ser tratada debido al constante crecimiento de estos ataques. De hecho, se han registrado más de 10.5 billones de ataques de malware desde 2018 [1] , representando millones de pérdidas para las organizaciones.

Diferentes laboratorios y empresas de investigación han desarrollado productos para detectar malware y situaciones anómalas por medio de diferentes técnicas de análisis estático y dinámico. Las técnicas de análisis estático estudian el código fuente o los archivos binarios de un programa para entender el comportamiento de un programa y detectar acciones maliciosas, mientras que las técnicas de análisis dinámico ejecutan el programa de malware en un ambiente controlado para monitorear sus acciones y detectar las acciones dañinas que el programa ejecute. Las dos técnicas son utilizadas por investigadores y analistas de seguridad para entender el comportamiento de los programas maliciosos y descubrir las tendencias en este campo.

De forma más reciente, los laboratorios y empresas que desarrollan productos de detección se han interesado por explorar la utilidad de las técnicas de aprendizaje de máquina (ML – Machine Learning) en el contexto de la detección de malware. Los expertos sugieren que esta herramienta puede ofrecer varias ventajas, entre ellas :

● Puede mejorar la precisión (accuracy) de las soluciones disponibles.

● Detectar ataques previamente desconocidos, también llamados de día cero, para los que no existe un patrón de comportamiento reconocido y estudiado.

● Al automatizar tareas, puede reducir la ventana de tiempo necesaria para detección de un ataque y su contención, mitigando así el impacto y los costos asociados con la recuperación.

● También puede reducir el número de alertas generadas, permitiendo a los administradores a cargo asignar prioridades y concentrarse en eventos reales.

Para que estas ventajas se materialicen, es necesario entender las ventajas y desventajas de su integración a los productos de detección de malware [53], [54].

Este trabajo se enfocará en dos contextos particulares de interés para los usuarios y organizaciones, detección de correos maliciosos y detección de intrusos, y buscará evaluar el alcance de ML en estos contextos.

Detección de Correos Maliciosos

Según los reportes de años recientes de Symantec, aunque la tendencia (tasa de crecimiento) de correos de phishing ha bajado en los últimos años, el número de correos sigue siendo considerable y crece anualmente, como lo muestra la figura 1.

El crecimiento continuo en número de correos de phishing, indica que los atacantes siguen usando esta técnica para tratar de ganar acceso no autorizado a servicios y datos de organizaciones y personas. Además, indica que las técnicas tradicionales, aún tienen limitaciones y presentan retos que deben ser abordados. Este problema ha generado una necesidad de encontrar nuevas alternativas para la detección de este tipo de correos electrónicos.

Page 7: Trabajo de Grado Machine Learning y Seguridad: Detección ...

7

Figura 1. Tasa de crecimiento de correos de phishing por año [38], [39], [40]

Hoy en día, la actividad de spam continua con más variedad en sus propósitos, incluyendo distribución de phishing y distribución de malware, pero también publicidad y venta de servicios. Sin embargo, existen muchos correos de spam en el inbox de un usuario y sería poco útil clasificar todos estos correos en una misma categoría como spam [2]. De esta categoría, existen los emails de phishing, cuyo propósito es robar de cualquiera manera al usuario. Phishing es un tipo de fraude lucrativo en donde el criminal engaña al recibidor y obtiene información confidencial usando un pretexto falso. En 2016, según el “data breach report” de Verizon, aproximadamente 636,000 emails de phishing fueron enviados y sólo el 3% de los individuos alertó a la administración de posibles ataques de phishing [3]. Por otra parte, Kaspersky Lab indica que hubo aproximadamente 22,890,956 emails de spam en 2016. En 2019, este mismo reporte indica que en el primer cuarto de este año, el 55,97% del tráfico de emails son emails de spam y phishing.

Sobre costos ocasionados por esta problemática, el spoofing, que tiene como objetivo suplantar la identidad de los usuarios, tuvo una aproximación de $1.3 billones de dólares de costos en 2018. [6] Este número crece cada año, ya que los spammers tienen naturaleza proactiva y utilizan estructuras dinámicas que cambian constantemente para prevenir procedimientos antispam haciendo el filtro de spam más difícil. [4] Los investigadores usualmente prueban los métodos propuestos con métricas limitadas y los conjuntos de datos presentan nuevas características o aproximaciones. Por lo cual crece la necesidad de un marco de trabajo que evalúe cada sistema tan comprensible como sea posible. [5]

Detección de intrusos

El informe anual de seguridad de cisco 2014 [31], refleja el crecimiento de amenazas desde el año 2000, ya que los atacantes aprovechan nuevas técnicas y diferentes enfoques para vulnerar los sistemas con facilidad. Adicionalmente, mediante un estudio realizado se demostró que hasta las grandes redes corporativas del mundo generan tráfico hacia sitios web que albergan malware o generan tráfico a páginas web sin contenido.

Page 8: Trabajo de Grado Machine Learning y Seguridad: Detección ...

8

Por otro lado, hoy en día existe un mayor número de amenazas gracias al crecimiento de dispositivos IOT. Los sistemas tradicionales incorporan dispositivos IoT para recopilar información que permita tomar decisiones rápidas y apropiadas a situaciones que cambian en el tiempo, como en el caso de los medidores de las redes de distribución de energía (smartgrids) o los detectores de tráfico en ciudades inteligentes. Es común que los dispositivos IoT no cuenten con las características de seguridad que los computadores de escritorio implementan [56]. El incremento de la infraestructura disponible permitió a los atacantes aprovechar de nuevo las vulnerabilidades imprevistas y de sistemas de defensa inadecuados.

Una de las principales preocupaciones de las organizaciones es el acceso indebido a la información. Mediante la explotación de vulnerabilidades en software e infraestructura los cibercriminales comúnmente intentan robar datos confidenciales. Esto representa una amenaza emergente con importantes implicaciones para el correcto funcionamiento de los negocios. La idea central es que la intrusión a un sistema no termina con el robo de datos, sino que involucra la exposición de esa información, lo que se traduce en daños a la imagen de la organización víctima. En el año 2015, numerosas organizaciones sufrieron este tipo de ataque, a continuación, se resaltan ciertos casos particulares. En primer lugar, se encuentra la filtración de información confidencial de Hacking Team9 que tuvo como resultado la publicación de las empresas y gobiernos que habían adquirido su herramienta de espionaje, con las implicaciones éticas que esto conlleva. Adicionalmente, se encuentra el caso de Ashley Madison, el ataque al sitio de citas extramatrimoniales que puso en evidencia a 37 millones de usuarios registrados [30]

Page 9: Trabajo de Grado Machine Learning y Seguridad: Detección ...

9

2 DESCRIPCIÓN DEL PROBLEMA

2.1 Problemas de la detección de emails de phishing mediante ML

El objetivo de un correo electrónico de phishing es engañar al usuario para que siga un enlace a un sitio web que luce como el sitio real, aunque no sea legítimo y así termine entregando información confidencial. Con las estafas de phishing por correo electrónico, el correo electrónico se verá auténtico; parece provenir de una fuente legítima, como un colega, gerente o empresa; el correo incluye un hipervínculo para que el usuario haga clic o contiene un archivo adjunto (por ejemplo, una imagen) para abrir. Después de hacer clic en el hipervínculo o abrir el archivo adjunto, el usuario puede ser llevado a un sitio web que solicita información confidencial, como login de usuario y contraseña, o proporciona al atacante acceso a la red para iniciar un ataque malintencionado.

Uno de estos los ataques malintencionados que puede darse es el ransomware que bloquea los archivos de los usuarios, generalmente mediante el cifrado con una clave que solo el atacante conoce. El usuario debe pagar un rescate para que el atacante entregue la clave de cifrado y así poder restaurar el acceso. La mayoría de los ataques de ransomware se envían en correos electrónicos de phishing; en una encuesta de 2019 a 166 líderes de seguridad de la información, el 59% dijo que el correo electrónico era el punto de entrada para el incidente de seguridad que experimentó su instalación el año pasado. [34]

En este sentido, las organizaciones han buscado defenderse de estos ataques, ya que pueden significar una pérdida en términos monetarios para una empresa o datos sensibles tanto de estas organizaciones como de usuarios.

Para la detección de emails de phishing es necesario considerar varios aspectos que influyen en la clasificación de un email como spam y más concretamente, un email de phishing. Entre estos, es necesario considerar el preprocesamiento por los servicios de correos electrónicos como Gmail. Ya que, la mayoría de datos de un correo electrónico pasan por este preprocesamiento y aún así es posible terminar con emails de spam en nuestras plataformas de email.

2.1.1 Técnicas tradicionales para detección de phishing

2.1.2 ML en Gmail

Según el blog de Google cloud sobre la implementación de ML en G Suite: “(...) recientemente implementamos nuevas protecciones con TensorFlow (...) Con TensorFlow, estamos bloqueando alrededor de 100 millones de mensajes de spam todos los días”. (Kumaran, 2019) [7]. Por esto, vemos que, aunque hay una gran cantidad de emails de spam que son pre filtrados por Gmail u otras plataformas de correo electrónico, no es posible filtrar todos los casos. Esto se debe a que el usuario puede perder información si un correo ham (correos que no son spam) se clasifica como un falso positivo.

Gmail utiliza varios filtros predefinidos que permiten clasificar un email como spam o ham, “Para empezar, el filtro de spam mira si el remitente está en la lista negra de spammers (personas o dominios que están reconocidos y clasificados como generadores de spam) y si está, no deja pasar el correo (...) Gmail contiene una base de datos con datos maliciosos como links. En adición a esto el

Page 10: Trabajo de Grado Machine Learning y Seguridad: Detección ...

10

filtro también dispone de palabras sospechosas como ‘cómo hacer dinero en línea’” (Clean email, s.f) [12]

Sin embargo, el algoritmo de definición de Gmail tiene varios factores en cuenta, además de los ya dichos. Aunque no contamos con el detalle exacto de la función de los filtros, es posible saber algunos factores siguiendo las mejores prácticas en la página de Gmail Help [11]:

● “Idealmente, mandar todos los mensajes desde una misma dirección IP”

● “No mezclar contenidos, por ejemplo, no hablar sobre próximas promociones en un mensaje de un recibo de compra”

● No tener una cuenta de correo para todos los tipos de mensaje (ej: [email protected]), para esto diversificar las ramas que envían correos ([email protected], [email protected], [email protected])

● “Verificar que el dominio no está marcado como inseguro con https://transparencyreport.google.com/safe-browsing/search”

● “No enviar correos de prueba de phishing, ya que afectará negativamente la reputación de la empresa”

● “No personificar a otra persona sin su permiso, pues esto es llamado spoofing”

● “Marcar los correos con un de para saber quién lo envía”

● “Si se marca un correo como que no es spam y que haya llegado a esta carpeta, se tendrá en cuenta para no marcarlo como spam”

● “Marcar un método de autenticación (SPF record, DMARC record, DKIM signing)

● “Enviar correos a usuarios que sí deseen revisar esos correos”

● “Permitir a los usuarios borrarse de la lista de suscriptores”

● “Enviar volúmenes de correos electrónicos a una velocidad constante/controlada”

Aunque estas recomendaciones son generales, al analizarlas es posible deducir algunos factores que son tenidos en cuenta para clasificar un correo como spam o no: el destinatario, el dominio, el contenido del email, la lista negra de emails y la lista de admitidos de emails. Con base en estos parámetros y más parámetros cuya información es desconocida (no es revelada al público), es posible obtener un sistema robusto de detección de emails de spam. Sin embargo, no existe la categoría de emails de phishing, puesto que un email de spam puede tener el objetivo de no tener información relevante al usuario mientras que el email de phishing tiene como objetivo robar la información de un usuario.

El modelo de machine learning de Google facilita la detección de emails de spam con un 99% de exactitud - Uno de cada mil emails pasan el filtro de machine learning de Google [6]. Por esto, aunque solo sea un 1% de emails que pasan el filtro de Gmail, es necesario construir modelos que permitan atrapar estos emails sin perder la información valiosa que se puede perder por la mala calificación de un email.

Page 11: Trabajo de Grado Machine Learning y Seguridad: Detección ...

11

2.1.3 Clasificación humana vs ML

En la figura 1, vemos la comparación de la clasificación de humanos y modelos ML entre emails de phishing y legítimos. Las convenciones son: L (legítimo), L/U (Legítimo o inseguro), U (inseguro), U/P (inseguro o phishing), P (phishing), L/P (legítimo o phishing). Por otra parte, están los tipos de emails que tenían que clasificar (sin saber si eran estos tipos de email).

Figura 2. Comparación de clasificación entre modelos ML y humanos en varias pruebas de emails legítimos y de phishing. Tomado de “On Identifying Phishing Emails: Uncertainty in Machine and Human Judgment

por Stuart et al., 2014 “ [9]

En la tabla Tabla II en la Figura 2, podemos ver que la mayoría de los correos parecían legítimos para los evaluadores humanos, aunque fueran de phishing. Sin embargo, en la tabla III vemos que principalmente el clasificador no tomaba los emails como suficiente legítimos.

En las conclusiones del estudio de Stuart, nos dice que: “Ahora, idealmente, un sistema computacional de phishing debería emular los juicios de expertos de humanos.” (2019) [9]. Pero, no ha sido posible llegar a este punto, pues los ataques evolucionan y la seguridad de los sistemas se ven comprometidos. Así mismo, los humanos cometen errores en esta detección, lo que lo hace aún más difícil de lograr como se ve en la figura 2.

2.1.4 Evolución del phishing

El principal problema con la implementación de ML en este contexto resulta ser la evolución de los ataques de phishing dentro de los emails. Como dice Gerón: “¿Y qué pasa si los spammers notan que todos los emails que contienen ‘4U’ son bloqueados? Probablemente empezarán a escribir ‘For u’.” [8, p. 33] Al igual que el ML, los atacantes evolucionan sus métodos para traspasar la seguridad predefinida. Es por esto que es necesario construir reglas actuales para problemas actuales, permitiendo una buena clasificación de emails hoy en día.

2.1.5 Problemas del contexto

Siguiendo el ejemplo de Gerón: “Por ejemplo, si entrenaras un clasificador para detectar videos que son amigables para los niños, probablemente se preferiría un clasificador que rechace muchos videos buenos (recall bajo) pero mantenga solo los videos seguros (precisión alta), en vez de un clasificador que tiene un alto recall pero permita que se muestran unos pocos videos malos en el producto.” [8, p. 93] Siguiendo este caso, es relevante tener en cuenta el contexto en que se presenta el problema. Por ejemplo, en el caso de emails, si se clasifica un email como falso positivo, es posible que el

Page 12: Trabajo de Grado Machine Learning y Seguridad: Detección ...

12

usuario pierda información valiosa y este email sea filtrado antes de llegar a su destinatario. De esta manera, se debe crear un clasificador que tenga una minimización de los casos de falsos positivos o no será de utilidad en el contexto de detección de emails de phishing.

2.2 Sistema detección de intrusos

Los IDS han sido un área activamente estudiada desde los años 80 sobre el monitoreo y vigilancia de las amenazas a la seguridad informática. Los IDS se clasifican basados en el comportamiento de

la red y el tipo de red.

● Uno es el sistema de identificación basado en la red (N-IDS): más comúnmente usado comercialmente en organizaciones corporativas. Al analizar todo el tráfico de la red busca dentro de la información a nivel de paquete para encontrar la actividad sospechosa.

● El segundo es el sistema de identificación basado en el host (H-IDS): se enfoca en la información de cada sistema o host en particular, depende en gran medida de los datos de las fuentes de los archivos como sensores, registros de sistema, registros de software, y

muchos más.

En su mayoría, las organizaciones utilizan la combinación de ambos para beneficiarse. Para realizar el análisis y clasificación de tráfico de red hoy en día se usa el state full protocol análisis mediante el cual se identifican las desviaciones del estado del protocolo utilizando las normas y especificaciones predeterminadas del proveedor; normalmente se trata de tráfico de red benigno generalmente aceptado. Este método se ha convertido en un método potencial y se está debatiendo ampliamente debido a la capacidad de actuar en la capa de red, la capa de aplicación y la capa de transporte.[60]

Sin embargo, la mayoría de los N-IDS comerciales construidos hasta la fecha y existentes en el mercado se han basado predominantemente en las medidas estadísticas básicas que utilizan parámetros de tráfico tales como la longitud de los paquetes, el tiempo entre llegadas y el tamaño del flujo, etc., para modelar el tráfico de red en un intervalo de tiempo categórico. Sin embargo, esto limita el rendimiento en la detección de patrones complejos debido a que se basa en medidas estadísticas sencillas que se computan a partir del encabezamiento y el contenido de los paquetes.

No obstante, con el surgimiento de la tecnología ML y sus capacidades de aprendizaje es posible identificar los eventos de tráfico de red de los sistemas en distintas categorías. Una de las principales ventajas de los modelos ML es la capacidad de identificar y clasificar los eventos de tráfico de red con mayor precisión. Incluyendo un costo computacional razonable. [64]

El gran flujo de información que manejan las redes de computadores y los continuos ataques han generado una necesidad por mantener la integridad, disponibilidad y confidencialidad. A medida que pasa el tiempo, el número de ataques a sistemas aumenta de manera consistente, lo que conlleva a tomar medidas de prevención como lo son los sistemas de detección de intrusos (IDS – Intrusion Detection Systems) con la función de detectar anomalías e individuos no autorizados en una entidad específica. Un IDS conectado a una red particular (NIDS – Network Intrusion Detection System) tiene la obligación de reflejar todo el tráfico de entrada y salida de la red con el fin de

monitorear el tráfico para la detección intrusiones.

Page 13: Trabajo de Grado Machine Learning y Seguridad: Detección ...

13

La figura 3 muestra la lógica implementada detrás de un sistema de detección de intrusos. Adicionalmente, muestra los componentes básicos que lo integran.

de

Figura 3. Esquema del funcionamiento del sistema de detección de intrusos. Tomado de” A Collaborative Network Intrusion Detection System (C-NIDS) in Cloud Computing por Haddad

et al., 2016”

2.2.1 SIDS

Los “sistemas de detección de intrusión basados en firmas" (SIDS -Signature-based intrusion detection), se basan en la idea de definir una firma asociada con los patrones de ataque. Estas firmas se almacenan en una base de datos y son usadas por los detectores: se coteja la firma almacenada contra un programa o comportamiento que se quiere clasificar; si coinciden el programa se marca como malicioso. Lastimosamente, este método carece de la capacidad de detectar los nuevos ataques debido a la ausencia de firmas asociadas con un nuevo patrón de ataque. Además, es necesario mantener una enorme base de datos de firmas los cuales se comparan con los paquetes

Page 14: Trabajo de Grado Machine Learning y Seguridad: Detección ...

14

de datos para posibles intrusiones, lo que hace de esta solución poco eficiente debido a los recursos consumidos. [32]

2.2.2 AIDS

Otra práctica común dentro de la implementación de IDS es implementar un “Anomaly detection-based intrusion detection (AIDS)” los cuales se basan en la creación de un perfil basado en datos a partir del cual se define el comportamiento normal. En una primera instancia, las actividades normales del usuario o de tráfico de datos se obtienen y se guardan. Posteriormente, se utilizan técnicas de modelado para crear perfiles normales del sistema. Finalmente, los perfiles normales son usados por los detectores: se compara el perfil almacenado con un programa o comportamiento que se quiere clasificar; si no coinciden se informa sobre comportamientos fuera del perfil establecido previamente. La principal ventaja de la detección de anomalías es su capacidad para encontrar nuevos ataques. No obstante, sus tasas de falsas alarmas pueden ser muy altas ya que son muy dependientes de los parámetros utilizados dentro de los modelos al momento de configurar el sistema. Existen varias técnicas para la categorización de anomalías estas son estadísticas, basada en comportamiento y aprendizaje automático.[33]

Page 15: Trabajo de Grado Machine Learning y Seguridad: Detección ...

15

3 PROPUESTA DE SOLUCIÓN

Esta sección describe la metodología para incorporar técnicas de Machine Learning (ML) en los contextos de interés: Detección de phishing y detección de intrusos.

3.1 Metodología

Para idear la propuesta de solución, se siguieron los pasos de Geron [8, Apéndice B, p.755]:

1. Encuadrar el problema y mirar el panorama general 2. Obtener los datos 3. Explorar los datos para obtener insights 4. Preparar los datos para ser expuestos a mejores algoritmos de ML 5. Explorar diferentes modelos y escoger los mejores 6. Afinar los modelos y combinarlos en una gran solución 7. Presentar los resultados

3.1.1 Encuadrar el problema y mirar el panorama general

Para la solución propuesta, se sugirieron varios clasificadores binarios que permitan la detección de emails de phishing y los emails ham. Aunque ya hay varias soluciones en el mercado, nuestra solución se concentró en la selección y evaluación de la utilidad de los factores que consideramos pertinente al momento de ver un email de phishing. Es decir, nosotros queremos seleccionar, y entender la importancia, de aquellos factores que influyen en el aprendizaje supervisado de los modelos ML. A continuación, buscamos identificar el algoritmo más efectivo de clasificación a partir de los factores identificados y de las métricas existentes, como lo son la exactitud, precisión, confusion matrix, recall, F1 y ROC curve. Además de esto se evaluó cuál métrica es aquella que mejor se ajusta al contexto.

Para la implementación de los IDS existentes en el mercado abundan distintas soluciones las cuales logran clasificar los distintos patrones y ataques existentes en una red. adicionalmente se han implementado distintos tipos de modelos ML para lograr esta tarea. Un ejemplo podría ser el uso de redes neuronales (aprendizaje no supervisado ) [33]. No obstante, la solución propuesta tiene la intención de identificar los principales atributos asociados a los ataques de una red y de esto forma crear un marco de referencia para futuros estudios. Partiendo de lo anterior, se elige un modelo de aprendizaje supervisado ML, gracias a que a pesar de las limitaciones de este se puede entrenar el modelo de manera personalizada de acuerdo con las necesidades del negocio.

3.1.2 Obtener los datos

Para los emails de phishing, se utilizaron dos conjuntos de datos: Todo el conjunto de Nazario Phishing Corpus, que representa emails de phishing catalogados a mano por su autor [10] y otro recogido de una investigación de calidad de datos en contextos de phishing [13]. Para la parte de emails ham, se utilizó una parte del conjunto de datos ENRON [14] y todos los emails del Spam assassin project de Apache [15]. Para phishing, se propuso entrenar varios algoritmos ML para clasificación con base en los conjuntos de entrenamiento. Estos conjuntos de datos vienen de diferentes fuentes cuyo objetivo es dar más veracidad al entrenamiento de los datos, los cuales

Page 16: Trabajo de Grado Machine Learning y Seguridad: Detección ...

16

deben ser preprocesados para llegar a un lenguaje común que sea entendido por los algoritmos de ML.

Por otro lado, existen varios datos disponibles para el entrenamiento de los modelos ML asociados a la problemática de IDS . Entre los cuales cabe resaltar el conjunto de datos (dataset) de la competencia KCUP 99 [60] y el dataset DARPA [61] entre otros. Sin embargo, debido a la antigüedad de estos datasets se decide utilizar un dataset mas actual como es el del CIC-IDS2017, adicionalmente no es necesario agrupar varios conjuntos de datasets en uno solo ya que la metodología implementada para la obtención de datos del conjunto seleccionado garantiza que se tienen en cuenta todas las posibles variables asociadas al monitoreo de transmisión de paquetes [43]

3.1.3 Explorar los datos

Para la exploración de datos se utilizó pandas profiling1[27] dentro del cuaderno de Jupyter para obtener la distribución de los datos y obtener insights de ellos que servirán para tomar decisiones frente a los datos.

3.1.4 Preparar los datos

Para la preparación de los datos fue necesario definir las reglas de procesamiento. En este paso se consideraron las características más importantes al momento de definir un correo como phishing o como ham. Así mismo, fue necesario juntar todos los conjuntos de datos para llegar a un conjunto de datos global que fuera transversal a los modelos ML.

Este paso, al momento de ser ejecutado en el contexto de detección de intrusos, tuvo como enfoque principal la limpieza de datos inválidos o infinitos (no pueden representarse en un entero de 32 bits). Por otro lado, mediante un análisis se logra identificar las principales características asociadas a una anomalía, con el propósito de eliminar columnas que no agreguen información útil al modelo.

3.1.5 Explorar los modelos y escoger los mejores

Se propusieron diferentes modelos ML de clasificación binaria: Árboles de decisión (DT), K-Vecinos (KNN), Clasificador Gaussiano Naive Bayes (GNB), Regresor logístico (LR), Random forest (RF), Máquinas de vectores de soporte(SVM) y Gradiente estocástico descendiente (SGD). Se escogieron estos modelos pues se pueden utilizar como clasificadores binarios que son usualmente utilizados por la comunidad. Los mejores clasificadores se escogieron a partir de los mejores resultados en las métricas que funcionan bien en el contexto.

En cuanto a la detección de intrusos, en primera instancia se evaluó la posibilidad de usar algoritmos como Latent Drichlet Allocation, Boosting, Bagging, Maximum Entropy no obstante se decide modificar el problema para hacer uso de clasificadores binarios y de esta forma evaluar el desempeño de un mismo algoritmo aplicado a contextos diferentes.

3.1.6 Afinar los modelos

1 https://github.com/pandas-profiling/pandas-profiling

Page 17: Trabajo de Grado Machine Learning y Seguridad: Detección ...

17

Se afinaron los modelos ML con validación cruzada y un algoritmo que sugiere los hiperparámetros que quisiéramos. Los resultados antes de la afinación de los modelos fueron aquellos predefinidos por la librería Scikit [14]. La afinación de los modelos se realiza ya que según Geron, si tenemos dos modelos distintos ¿Cómo es posible saber cuál modelo es mejor que otro? Probando los dos modelos [8, p.31]. Esta validación se realiza con Grid Search, un algoritmo de validación cruzada que prueba varios modelos (permutaciones de todos los posibles hiperparámetros) y escoge los mejores hiperparámetros para el modelo [14]. A partir de realizar la afinación, se encontraron qué hiperparámetros funcionaban mejor para obtener mejores resultados y es posible ver cuáles algoritmos fueron aquellos que mejor clasificaron los emails de spam y ham.[15]

Adicionalmente, cabe resaltar la necesidad de manejar clases desbalanceadas en el conjunto de datasets usados para detección de intrusos, para solucionarlo existen varias alternativas, se escogió el algoritmo SMOTE para realizar over-sampling de la clase con menos muestras en el conjunto de datos [57].

3.1.7 Presentar los resultados

Los resultados son presentados a través de gráficas que muestran las métricas resultantes. De este mismo modo, es posible interpretar los resultados mostrados por las gráficas para sacar conclusiones. Para finalizar, se deducen y se presentan los resultados de cada modelo comparativamente con los otros, demostrando la validación de la solución en el contexto y recapitulación del trabajo.

Page 18: Trabajo de Grado Machine Learning y Seguridad: Detección ...

18

4 IMPLEMENTACIÓN

Esta sección muestra cómo se llevó a la práctica la metodología presentada en el capítulo anterior, para evaluar el alcance de algunos algoritmos de Machine Learning (ML) en los dos contextos de interés: phishing y detección de intrusos.

4.1 Emails y phishing

4.1.1 Descripción de los conjuntos de datos

Esta sección describe los conjuntos de datos usados para correr los experimentos con técnicas ML. Se incluyen 3 conjuntos de datos: Nazario Phishing Corpus, Enron Dataset y IWSPA Dataset.

4.1.1.1 Nazario Phishing corpus

El conjunto de datos de Jose Nazario está compuesto de emails de phishing recogidos a mano por su autor [10]. Este dataset viene desde el año 2015 hasta el 2018. Este conjunto de datos contiene 2856 emails de phishing [24]. La extensión de cada archivo es .mbox, donde cada archivo contiene muchos emails de phishing en un mismo archivo. Un ejemplo de un email dentro de un archivo .mbox es:

From [email protected] Fri Jan 2 07:19:00 2015

Return-Path: <[email protected]>

X-Original-To: [email protected]

Delivered-To: [email protected]

Received: from forward.b.hostedemail.com (forward.b.hostedemail.com [64.98.36.17])

by l.monkey.org (Postfix) with ESMTP id 180E6F4007

for <[email protected]>; Fri, 2 Jan 2015 07:19:00 -0600 (CST)

Received: from smtpin10.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251])

by ofarelay01.b.hostedemail.com (Postfix) with SMTP id 6E3BF34E368

for <[email protected]>; Fri, 2 Jan 2015 13:18:59 +0000 (UTC)

X-Forwarded-For: [email protected] by Hostedemail

Delivered-To: [email protected]

X-FDA: 69706560798.10.water55_6b398d6d93b0f

Authentication-Results: auth.b.hostedemail.com; dmarc=none header.from=croydonpodiatrygroup.com.au

Page 19: Trabajo de Grado Machine Learning y Seguridad: Detección ...

19

Authentication-Results: auth.b.hostedemail.com; dkim=none

reason="no signature"; dkim-adsp=none (insecure policy);

dkim-atps=neutral

X-Spam-Summary: 88,1.2,0,3a7d6625610983ed,d41d8cd98f00b204,[email protected],:,RULES_HIT:1:2:41:42:72:355:375:379:962:967:969:973:978:983:988:989:1189:1208:1224:1260:1261:1311:1313:1314:1345:1381:1431:1432:1433:1434:1437:1515:1516:1517:1545:1568:1571:1589:1714:1730:1747:1777:1792:1803:2194:2198:2199:2200:2393:2525:2527:2560:2567:2610:2682:2685:2691:2731:2741:2859:2890:2895:2900:2920:2924:2926:2933:2937:2939:2942:2945:2947:2951:2954:3022:3138:3139:3140:3141:3142:3148:3747:3867:3873:3874:3902:3934:3936:3938:3941:3944:3947:3950:3953:3956:3959:3976:4042:4051:4321:5007:6248:6261:6678:8518:8599:8603:9025:9040:9072:9388:9908:10008:10049:10346:11473:11529:11537:11657:11658:11914:12043:12438:12555:12740:12776:12812:12956:12958:13025:13038:13894:14096:14246:21080,0,RBL:203.59.1.152-irl.urbl.hostedemail.com-127.0.0.175,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fp,MSBL:0,DNSBL:neutral,Custom_rules:0:1:0

X-HE-Tag: water55_6b398d6d93b0f

X-Filterd-Recvd-Size: 10152

Received: from hosted.icp-osb-irony-out2.external.iinet.net.au (hosted.icp-osb-irony-out2.external.iinet.net.au [203.59.1.152])

by imf25.b.hostedemail.com (Postfix) with ESMTP

for <[email protected]>; Fri, 2 Jan 2015 13:18:56 +0000 (UTC)

X-IronPort-Anti-Spam-Filtered: true

X-IronPort-Anti-Spam-Result: AukQAN2ZplTKO2/h/2dsb2JhbABcgkNDUlgEsXgSAYRigScBjh2GFmIWAQEBAQF9ggoBAYIYIQEDElkUDCh0hztdDpEPg1MBh3uHQolMUIMkgRWNWI8VEQFhDIJdgTYFgxYBhjOCdIFXgz+Bf4RCMII1giiBaIFogVWCWAiDMSKBUAEBAYIoMTEBgQQHFyJYHQkBAQE

X-IronPort-AV: E=Sophos;i="5.07,684,1413216000";

d="scan'208,217";a="289392423"

Received: from unknown (HELO ihp-osb-lngweb5.ihp.iinet.net.au) ([202.59.111.225])

by icp-osb-irony-out2.iinet.net.au with ESMTP; 02 Jan 2015 21:18:53 +0800

Received: from ihp-osb-lngweb5.ihp.iinet.net.au (ihp-osb-lngweb5.ihp.iinet.net.au [127.0.0.1])

by ihp-osb-lngweb5.ihp.iinet.net.au (8.13.8/8.13.8) with ESMTP id t02DIrHS205249

for <[email protected]>; Fri, 2 Jan 2015 21:18:53 +0800

Received: (from 125117@localhost)

by ihp-osb-lngweb5.ihp.iinet.net.au (8.13.8/8.13.8/Submit) id t02DIr6H205245;

Fri, 2 Jan 2015 21:18:53 +0800

Date: Fri, 2 Jan 2015 21:18:53 +0800

Message-Id: <[email protected]>

To: [email protected]

Subject: Important Security Update

Page 20: Trabajo de Grado Machine Learning y Seguridad: Detección ...

20

X-PHP-Script: croydonpodiatrygroup.com.au/wp-admin/hatty.php for 69.28.67.53

From: "Amazon.com" <[email protected]>

Reply-To: [email protected]

MIME-Version: 1.0

Content-Type: text/html

Content-Transfer-Encoding: 8bit

Status: RO

X-Status:

X-Keywords:

X-UID: 2

<HTML><BODY><P>

<TABLE style="PADDING-BOTTOM: 0px; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; MARGIN: 0px auto; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: table; BORDER-COLLAPSE: separate; FONT: 12px/16px Arial, sans-serif; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(51,51,51); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-stroke-width: 0px" id=yiv1765527594container cellSpacing=0 cellPadding=0 width=640>

<TBODY style="WIDTH: 680px" id=yiv1765527594yui_3_7_2_1_1379861065108_2082>

<TR style="DISPLAY: table-row; VERTICAL-ALIGN: inherit" id=yiv1765527594yui_3_7_2_1_1379861065108_2135>

<TD style="PADDING-BOTTOM: 10px; PADDING-LEFT: 20px; BORDER-SPACING: 2px; WIDTH: 100px; PADDING-RIGHT: 0px; DISPLAY: table-cell; BORDER-COLLAPSE: collapse; PADDING-TOP: 20px" id=yiv1765527594topNav vAlign=top><A style="OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: 0px; COLOR: rgb(40,98,197); TEXT-DECORATION: underline" id=yui_3_7_2_1_1379864308382_1992 title="Visit Amazon.com" href="https://www.amazon.com/ref=pe_175190_21431760_M3T1_SC_g_i" rel=nofollow target=_blank><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; FONT-SIZE: 11px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" id=yiv1765527594amazonLogo border=0 alt=Amazon src="http://g-ecx.images-amazon.com/images/G/01/x-locale/cs/te/logo.png" width=107 height=31></A></TD>

<TD style="TEXT-ALIGN: right; PADDING-BOTTOM: 0px; PADDING-LEFT: 20px; BORDER-SPACING: 2px; PADDING-RIGHT: 20px; DISPLAY: table-cell; PADDING-TOP: 0px" id=yui_3_7_2_1_1379864308382_1976></TD></TR>

<TR style="DISPLAY: table-row; VERTICAL-ALIGN: inherit" id=yiv1765527594yui_3_7_2_1_1379861065108_2081>

<TD style="BORDER-SPACING: 2px; WIDTH: 640px; DISPLAY: table-cell" id=yiv1765527594yui_3_7_2_1_1379861065108_2080 colSpan=2>

<P style="PADDING-BOTTOM: 0px; MARGIN: 15px 20px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; FONT: 18px Arial, sans-serif; COLOR: rgb(204,102,0); PADDING-TOP: 0px" id=yiv1765527594yui_3_7_2_1_1379861065108_2091>Dear Customer,</P>

<P style="PADDING-BOTTOM: 0px; MARGIN: 15px 20px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; FONT: 18px Arial, sans-serif; COLOR: rgb(204,102,0); PADDING-TOP: 0px" id=yui_3_7_2_1_1379864308382_1995><SPAN style="TEXT-TRANSFORM: none; BACKGROUND-COLOR:

Page 21: Trabajo de Grado Machine Learning y Seguridad: Detección ...

21

rgb(255,255,255); TEXT-INDENT: 0px; DISPLAY: inline; FONT: 12px/16px Arial, sans-serif; WHITE-SPACE: normal; FLOAT: none; LETTER-SPACING: normal; COLOR: rgb(51,51,51); WORD-SPACING: 0px" id=yui_3_7_2_1_1379864308382_1994>You have received this email because we believe that your amazon account has been recently compromised.</SPAN><SPAN style="TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; DISPLAY: inline; FONT: 12px/16px Arial, sans-serif; WHITE-SPACE: normal; FLOAT: none; LETTER-SPACING: normal; COLOR: rgb(51,51,51); WORD-SPACING: 0px" id=yui_3_7_2_1_1379864308382_2012>.</SPAN></P><SPAN style="TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; DISPLAY: inline; FONT: 12

px/16px Arial, sans-serif; WHITE-SPACE: normal; FLOAT: none; LETTER-SPACING: normal; COLOR: rgb(51,51,51); WORD-SPACING: 0px" id=yui_3_7_2_1_1379864308382_1997>

<P style="BORDER-BOTTOM: rgb(204,204,204) 1px solid; PADDING-BOTTOM: 3px; MARGIN: 0px 20px 3px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; FONT: 18px Arial, sans-serif; COLOR: rgb(204,102,0); PADDING-TOP: 0px" id=yui_3_7_2_1_1379864308382_1996> </P>

<P style="BORDER-BOTTOM: rgb(204,204,204) 1px solid; PADDING-BOTTOM: 3px; MARGIN: 0px 20px 3px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; FONT: 18px Arial, sans-serif; COLOR: rgb(204,102,0); PADDING-TOP: 0px" id=yui_3_7_2_1_1379864308382_2000><FONT id=yui_3_7_2_1_1379864308382_1999 size=2><FONT color=#333333>Click<SPAN class=Apple-converted-space> </SPAN></FONT><A style="OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: 0px; COLOR: rgb(40,98,197); TEXT-DECORATION: underline" href="http://irc-sspo.uz/a" rel=nofollow target=_blank><FONT size=+0><FONT size=+0>Here</FONT><SPAN class=Apple-converted-space> </SPAN></FONT></A><FONT id=yui_3_7_2_1_1379864308382_1998 color=#333333>to update your account</FONT></FONT></P></SPAN>

<P style="PADDING-BOTTOM: 0px; MARGIN: 15px 20px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; FONT: 18px Arial, sans-serif; COLOR: rgb(204,102,0); PADDING-TOP: 0px" id=yui_3_7_2_1_1379864308382_2001><SPAN style="TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; DISPLAY: inline; FONT: 12px/16px Arial, sans-serif; WHITE-SPACE: normal; FLOAT: none; LETTER-SPACING: normal; COLOR: rgb(51,51,51); WORD-SPACING: 0px">

<TABLE style="PADDING-BOTTOM: 0px; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; MARGIN: 0px auto; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: table; BORDER-COLLAPSE: separate; FONT: 12px/16px Arial, sans-serif; WHITE-SPACE: normal; LETTER-SPACING: normal; COLOR: rgb(51,51,51); WORD-SPACING: 0px; PADDING-TOP: 0px; -webkit-text-stroke-width: 0px" id=yiv1765527594container cellSpacing=0 cellPadding=0 width=640>

<TBODY style="WIDTH: 680px" id=yiv1765527594yui_3_7_2_1_1379861065108_2082>

<TR style="DISPLAY: table-row; VERTICAL-ALIGN: inherit" id=yui_3_7_2_1_1379864308382_1984>

<TD style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 22px; PADDING-LEFT: 20px; BORDER-SPACING: 2px; WIDTH: 640px; PADDING-RIGHT: 20px; DISPLAY: table-cell; PADDING-TOP: 0px" id=yui_3_7_2_1_1379864308382_1983 colSpan=2>

<P style="PADDING-BOTTOM: 0px; LINE-HEIGHT: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-TOP: 20px" id=yui_3_7_2_1_1379864308382_1982>Returns are easy. Visit our<SPAN class=yiv1765527594Apple-converted-space> </SPAN><A style="OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: 0px; COLOR: rgb(0,102,153); TEXT-DECORATION: underline" id=yui_3_7_2_1_1379864308382_2117 href="http://www.amazon.com/gp/css/returns/homepage.html/ref=pe_175190_21431760_M3T1_SC_r" rel=nofollow target=_blank>Online Return Center</A>.<SPAN class=yiv1765527594Apple-converted-space> </SPAN><BR>If you need further assistance with your order, please visit<SPAN class=yiv1765527594Apple-converted-space> </SPAN><A style="OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: 0px; COLOR: rgb(0,102,153); TEXT-DECORATION: underline"

Page 22: Trabajo de Grado Machine Learning y Seguridad: Detección ...

22

href="http://www.amazon.com/customer-service?ref=pe_175190_21431760_M3T1_SC_cs" rel=nofollow target=_b

lank>Customer Service</A>.</P></TD></TR>

<TR style="DISPLAY: table-row; VERTICAL-ALIGN: inherit" id=yiv1765527594yui_3_7_2_1_1379861065108_2111>

<TD style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 22px; PADDING-LEFT: 20px; BORDER-SPACING: 2px; WIDTH: 640px; PADDING-RIGHT: 20px; DISPLAY: table-cell; PADDING-TOP: 0px" id=yiv1765527594yui_3_7_2_1_1379861065108_2110 colSpan=2>

<P style="BORDER-BOTTOM: rgb(234,234,234) 1px solid; PADDING-BOTTOM: 20px; LINE-HEIGHT: normal; MARGIN: 10px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; PADDING-TOP: 0px" id=yiv1765527594yui_3_7_2_1_1379861065108_2109>We hope to see you again soon!</P>

<P style="BORDER-BOTTOM: rgb(234,234,234) 1px solid; PADDING-BOTTOM: 20px; LINE-HEIGHT: normal; MARGIN: 10px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; PADDING-TOP: 0px" id=yui_3_7_2_1_1379864308382_2121><SPAN style="FONT: 14px Arial, san-serif"><STRONG style="FONT-WEIGHT: bold">Amazon.com</STRONG></SPAN></P></TD></TR>

<TR style="DISPLAY: table-row; VERTICAL-ALIGN: inherit" id=yiv1765527594yui_3_7_2_1_1379861065108_2099>

<TD style="PADDING-BOTTOM: 10px; PADDING-LEFT: 20px; BORDER-SPACING: 2px; PADDING-RIGHT: 20px; DISPLAY: table-cell; PADDING-TOP: 10px" id=yiv1765527594yui_3_7_2_1_1379861065108_2098 colSpan=2></TD></TR>

<TR style="DISPLAY: table-row; VERTICAL-ALIGN: inherit" id=yiv1765527594yui_3_7_2_1_1379861065108_2094>

<TD style="PADDING-BOTTOM: 20px; LINE-HEIGHT: 16px; PADDING-LEFT: 20px; BORDER-SPACING: 2px; WIDTH: 640px; PADDING-RIGHT: 20px; DISPLAY: table-cell; COLOR: rgb(102,102,102); FONT-SIZE: 10px; PADDING-TOP: 0px" id=yiv1765527594yui_3_7_2_1_1379861065108_2093 colSpan=2>

<P style="PADDING-BOTTOM: 0px; LINE-HEIGHT: normal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; PADDING-TOP: 0px" id=yiv1765527594yui_3_7_2_1_1379861065108_2095>This email was sent from a notification-only address that cannot accept incoming email. Please do not reply to this message.</P></TD></TR></TBODY></TABLE></SPAN></P></TD></TR></TBODY></TABLE></P></BODY></HTML>

Figura 4. Ejemplo del conjunto de datos de Nazario Phishing Corpus

El contenido de más abajo sin una llave es el cuerpo del email.

4.1.1.2 Conjunto de datos Enron email

El conjunto de datos de Enron son emails intercambiados entre 150 usuarios de la alta dirección de Enron, organizados en carpetas [25]. Por la cantidad de emails (alrededor 500.000 [26]) del conjunto de datos, se escogieron los 5000 emails de los primeros usuarios. Ya que, por la cantidad de emails

Page 23: Trabajo de Grado Machine Learning y Seguridad: Detección ...

23

en este conjunto de datos, se podría desbalancear el modelo de ML (a comparación del tamaño de los otros conjuntos de datos). Estos emails son solo emails ham, donde cada usuario tiene carpetas de su servicio de correo electrónico (“inbox”, “sent_emails”, etc…) y en cada carpeta archivos .txt con un solo email. Un ejemplo de este conjunto de datos es:

Message-ID: <16159836.1075855377439.JavaMail.evans@thyme> Date: Fri, 7 Dec 2001 10:06:42 -0800 (PST) From: [email protected] To: [email protected] Subject: RE: West Position Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-From: Dunton, Heather </O=ENRON/OU=NA/CN=RECIPIENTS/CN=HDUNTON> X-To: Allen, Phillip K. </O=ENRON/OU=NA/CN=RECIPIENTS/CN=Pallen> X-cc: X-bcc: X-Folder: \Phillip_Allen_Jan2002_1\Allen, Phillip K.\Inbox X-Origin: Allen-P X-FileName: pallen (Non-Privileged).pst Please let me know if you still need Curve Shift. Thanks, Heather -----Original Message----- From: Allen, Phillip K. Sent: Friday, December 07, 2001 5:14 AM To: Dunton, Heather Subject: RE: West Position Heather, Did you attach the file to this email? -----Original Message----- From: Dunton, Heather Sent: Wednesday, December 05, 2001 1:43 PM To: Allen, Phillip K.; Belden, Tim Subject: FW: West Position Attached is the Delta position for 1/16, 1/30, 6/19, 7/13, 9/21 -----Original Message----- From: Allen, Phillip K. Sent: Wednesday, December 05, 2001 6:41 AM To: Dunton, Heather Subject: RE: West Position

Page 24: Trabajo de Grado Machine Learning y Seguridad: Detección ...

24

Heather, This is exactly what we need. Would it possible to add the prior day for each of the dates below to the pivot table. In order to validate the curve shift on the dates below we also need the prior days ending positions. Thank you, Phillip Allen -----Original Message----- From: Dunton, Heather Sent: Tuesday, December 04, 2001 3:12 PM To: Belden, Tim; Allen, Phillip K. Cc: Driscoll, Michael M. Subject: West Position Attached is the Delta position for 1/18, 1/31, 6/20, 7/16, 9/24 << File: west_delta_pos.xls >> Let me know if you have any questions. Heather

Figura 5. Ejemplo de un usuario del conjunto de datos Enron [25]

La figura 3 muestra el contenido de un correo respondido varias veces por muchos integrantes, por lo cual el cuerpo del email contiene otras etiquetas (From, Sent, etc...) que no se tendrán en cuenta para el procesamiento de datos, pues no son las etiquetas originales del email.

4.1.1.3 Conjunto de datos IWSPA

El conjunto de datos IWSPA, fue utilizado en una investigación de la calidad de datos para la detección de phishing, malware e intrusos. Este conjunto de datos es recogido por sus autores, conteniendo emails de phishing y ham en diferentes carpetas [13]. Este conjunto de datos es privado y fue posible tener acceso después de hacer la petición a sus autores. Por esta misma razón el conjunto de datos no puede ser mostrado, reproducido, transmitido, distribuido o publicado. Sin embargo, su contenido es parecido a los emails de la sección 4.1.1 y 4.1.2.

4.1.2 Selección de características de los datos

Page 25: Trabajo de Grado Machine Learning y Seguridad: Detección ...

25

Para que los correos puedan ser analizados por los algoritmos ML seleccionados es necesario construir una representación de estos, en formato tabular. En esta representación cada fila representa un registro en el dataset y cada columna representa una característica de interés; una celda indica si el registro en esa fila tiene la característica en esa columna.

La selección de características para la representación se llevó a cabo por diferentes factores: selección de expertos (otras investigaciones) y por decisión propia (con base en los artículos estudiados). Esta sección presenta las características consideradas para representar los correos que conforman los datasets (conjuntos de datos) usados.

4.1.2.1 Diccionario

En la investigación de Gualberto et al. se hace un análisis de lematización en sus conjuntos de datos, donde se quitan los símbolos de exclamación, puntuación, se transforman las letras mayúsculas a letras minúsculas y Stopwords2 [16]. En la figura 6, vemos la arquitectura propuesta para la detección de phishing de Gualberto et al.

Figura 6. Principal arquitectura de la propuesta de detección de phishing. Tomado de [16]

2 Stopwords se refieren a palabras que tienen bajo contenido léxico o que no contribuyen al significado de una oración. Aunque no existe un listado universal que liste todas las Stopwords, usualmente son aquellas como artículos. [16]

Page 26: Trabajo de Grado Machine Learning y Seguridad: Detección ...

26

Con la arquitectura propuesta, se ejecutan dos métodos, uno utilizando el documento que tenía las palabras de cada email en una matriz de documentos y otro utilizando Latent Dirichlet Allocation (LDA). El LDA es un modelo Bayesiano generativo en donde cada ítem es modelado como una mezcla finita sobre un conjunto subyacente de temas cuyo objetivo es extraer las características ocultas y nombres de organizaciones que son suplantadas por atacantes [16], [17]. Estas características son por el Campo Aleatorio Condicional (CRF), un modelo discriminante que permite el etiquetado y segmentación de los datos, tales como secuencias, árboles y retículas. La idea de estos modelos es la definición de distribución de probabilidad condicional sobre secuencias de etiquetas utilizando el principio de probabilidad condicional [18].

Siguiendo los métodos propuestos en esta investigación, se realizó un análisis de lematización, pero de una manera diferente. Se optó por el uso de un diccionario que contuviera las palabras que con frecuencia hacen parte de un email de phishing. El diccionario contiene 60 palabras relacionadas con temas sexuales, dinero, productos y salud.

Para la implementación del diccionario se contó el número de ocurrencias de estas palabras en el texto o en el asunto del email. A continuación, se presentan las características consideradas.

Palabras en mayúsculas.

En la investigación de Karim et al. el algoritmo de genética para la selección de características evidenció que el algoritmo encontraba patrones de expresiones regulares en el asunto del correo y en el cuerpo del correo que se repetían constantemente [20]. Esa investigación encontró un buen número de correos de phishing con palabras mayúsculas en el asunto, como consecuencia, en este trabajo se decidió que una de las características por analizar es si un correo tiene una palabra mayúscula en el asunto. Para construir la expresión regular, se tomó en cuenta que aquellas palabras que tuvieran más de una letra mayúscula serían consideradas como palabras en mayúsculas, puesto que existen palabras en inglés de una sola letra que son consideradas una palabra mayúsculas (por ejemplo “I” que se refiere a “yo” en inglés y es una palabra mayúscula).

Número de signos de exclamación.

Se ha indicado que el número de signos de exclamación puede ser un factor de ruido y de spam en la minería de datos [21], por lo cual se considera como un aspecto importante para tomar en cuenta en los asuntos y cuerpos de los correos electrónicos.

Número de clicks y “free”.

En el estudio de Gangavarapu et al. se seleccionan características como el número de ocurrencias de la palabra “debit” en el asunto del email donde se realiza la lematización de estos valores para obtener las variantes de esta palabra o sus malas escrituras en los asuntos de los emails [6]. De una manera similar, se escogió “click” como una ocurrencia para el procesamiento de datos en el texto. No se consideró esta característica en el asunto, pues no se encontraron muchas ocurrencias en el conjunto de datos. De la misma manera, se escogió free como una ocurrencia total con la suma del número en el asunto y en el cuerpo.

URL externo y Javascript.

Page 27: Trabajo de Grado Machine Learning y Seguridad: Detección ...

27

En el estudio de Moradpoor et al. se tiene en cuenta el número de links, si el email es un HTML y si existe Javascript en este email. En la siguiente imagen (figura 7) se ven los componentes del modelo propuesto para la clasificación de correos electrónicos de phishing [22].

Figura 7. Modelo propuesto por Moradpoor et al. para la detección de emails de phishing. Tomado de [22]

Del mismo modo, se consideró que estos factores podrían ser importantes en la clasificación de emails de phishing. Por lo cual, se realizó una búsqueda por etiquetas javascript (<script></script>), etiquetas de HTML (<html></html>, <div></div>, etc...) y links externos (http:// y https://) dentro del cuerpo de los emails.

4.1.3 Preprocesamiento de datos

4.1.3.1 Extracción de datos de los conjuntos de datos

Es necesario extraer los datos necesarios para el manejo de las características seleccionadas en la sección 4.1.2. De los datos inicialmente disponibles para cada correo, solo es necesario extraer 4 datos importantes de las llaves de todos los correos: La dirección de correo electrónico desde dónde se mando el email (email_from), el nombre del remitente (name_from), el asunto del correo (subject) y finalmente, el cuerpo del correo (text).

La figura 8 muestra el uso de un script de Python que convierte los correos de phishing del dataset IWSPA al archivo iwspaphish.csv que contiene un csv con los 4 datos seleccionados.

import mailparser import csv from os import listdir with open('iwspaphish.csv', mode="w", newline="", errors='ignore') as csv_file: fieldnames = ['name_from', 'email_from', 'subject', 'text'] writer = csv.DictWriter(csv_file, fieldnames=fieldnames, delimiter="|") writer.writeheader() for f in listdir("./phish/"): mail = mailparser.parse_from_file("./phish/" + f) mailObj = {} if(len(mail.from_) > 0): mailObj['name_from'] = mail.from_[0][0].replace("\n", "").replace("\t", "").replace(";", ":").replace('"', "'")

Page 28: Trabajo de Grado Machine Learning y Seguridad: Detección ...

28

mailObj['email_from'] = mail.from_[0][1].replace("\n", "").replace("\t", "").replace(";", ":").replace('"', "'") else: mailObj['name_from'] = "" mailObj['email_from'] = "" if mail.subject: if(isinstance(mail.subject, list)): mailObj['subject'] = "" else: mailObj['subject'] = mail.subject.replace("\n", "").replace("\t", "").replace(";", ":").replace('"', "'") else: mailObj['subject'] = "" if mail.body: mailObj['text'] = mail.body.replace("\n", "").replace("\t", "").replace(";", ":").replace('"', "'") else: mailObj['text'] = "" writer.writerow(mailObj)

Figura 8. Extraer datos a un csv que contiene un conjunto de datos

Los otros conjuntos de datos tuvieron un proceso similar para llegar a este proceso. Sin embargo, ya que los datos entre conjuntos de datos son diferentes (por ejemplo, carpetas entre carpetas, varios emails en un solo archivo, solo un email por archivo, etc…), fue necesario crear varios de estos procesos para llegar a cuatro CSV distintos con los mismos tipos de datos. Estos cuatro tipos de CSV fueron: nazarioPhish.csv (conjunto de datos de phishing de Nazario), iwspaLegit.csv (conjunto de datos de los correos ham de IWSPA), iwspaPhish.csv (conjunto de datos de los correos de phishing de IWSPA) y enronLegit.csv (conjunto de datos de correos ham de Enron).

4.1.3.2 Procesamiento de datos a lenguaje de modelos ML

Los algoritmos de ML funcionan mejor con datos numéricos [6, p.66], por lo cual es necesario pasar los datos de los CSV a datos numéricos con las características seleccionadas. Este proceso se realizó a partir del software Knime. Se creó un Workflow para pasar los datos de los CSV a una tabla que el algoritmo de ML pudiera entender. En la figura 9, se puede ver la primera parte de la conversión, finalizando con la figura 12.

Page 29: Trabajo de Grado Machine Learning y Seguridad: Detección ...

29

Figura 9. Primera parte del procesamiento de datos en Knime

Los primeros nodos leen cada uno de los CSV y añaden su etiqueta respectiva en una columna (1 para phishing, 0 para ham). Los siguientes nodos son las reglas que implementan las conversiones a las características definidas en la sección 4.1.2.

Figura 10. Segunda parte del procesamiento de datos en Knime

Page 30: Trabajo de Grado Machine Learning y Seguridad: Detección ...

30

Figura 11. Tercera parte del procesamiento de datos en Knime

Figura 12. Cuarta parte del procesamiento de datos en Knime

Después de todo el procesamiento, se escribe un nuevo CSV con todas las características y una etiqueta que describe si el correo es ham o de phishing. El CSV al final del procesamiento (procesamiento.csv) contiene las siguientes etiquetas:

● has_uppercase_word: Indica si el correo tiene una palabra capital en el asunto ● Number_of_!_subject: Número de ocurrencias de “!” en el asunto ● number_of_!_text: Número de ocurrencias de “!” en el cuerpo ● number_of_clicks: Número de ocurrencias de “click” en el texto ● text_has_external_url: Indica si el correo envía a algún link externo ● number_of_free_subject: Número de ocurrencias de “free” en el asunto ● number_of_free_text: Número de ocurrencias de “free” en el cuerpo ● contains_html_data: Indica si el correo tiene HTML dentro del cuerpo ● dictionary_count_text: Número de ocurrencias del diccionario en el cuerpo ● dictionary_count_subject: Número de ocurrencias del diccionario en el asunto ● tipo: tipo del correo (ham o phishing)

4.1.4 Perfilamiento de datos

Para los siguientes pasos se utilizó un cuaderno de Jupyter para el entrenamiento, perfilamiento y evaluación de los modelos.

Primero, se cargaron los datos de procesamiento.csv en el cuaderno de Juypter. A continuación, se realizó el perfilamiento con pandas profiling [27]. De este análisis se encontraron varios insights. Esta sección describe las decisiones que se tomaron de acuerdo con estos resultados:

Page 31: Trabajo de Grado Machine Learning y Seguridad: Detección ...

31

Insight Decisión

number_of_!_text tiene 73,1% de datos donde no hay ningún signo de exclamación

Puesto que la media de esta característica era de 1,31, no se consideró un problema tener esta característica adentro

number_of_clicks tiene 80,3% de datos donde no hay ningún “click”

Es una característica importante para el negocio, puesto que es casi seguro que si un email tiene un “click” es más probable que sea un email de phishing

number_of_free_subject y number_of_free_text tienen una correlación alta

Se optó por combinar estas dos características por una sola en number_of_free

dictionary_count_text tiene 38,9% de datos que no contienen ninguna palabra del diccionario

Esta característica es de alta importancia para el proyecto, pues significa que los emails no están hablando de las categorías escogidas (sexo, salud, dinero, etc…) por lo cual no se modifica esta característica

Figura 13. Insights de los conjuntos de datos y decisiones respectivas

4.1.5 Selección y entrenamiento de los modelos ML

De los modelos de clasificación binarios ML para seleccionar, seis modelos se escogieron siguiendo las investigaciones de los estudios de Karim y Gangavarapu [20], [6]. Estos modelos son:

● Decision Tree (DT - Árboles de decisión)

● K-Neighbors (KNN - K vecinos más próximos)

● Gaussian Naive Bayes classifier (GNB - Clasificador Gaussiano Naive Bayes)

● Logistic regression (LR - Regresión logística)

● Random Forest (RF - Bosques aleatorios)

● Support Vector Machines (SVM - Máquinas de Vectores de Soporte) Antes del entrenamiento de los modelos, se separó el conjunto de datos en dos partes, el conjunto de entrenamiento (train) y el conjunto para probar (test) usando el 80% de los datos como entrenamiento y 20% de los datos como pruebas [8, p. 31].

Para el uso de los algoritmos, se separaron entre los features y labels. Los features (o vector de features) hacen referencia a las características definidas en la sección 4.1.2 (por ejemplo, número de palabras del diccionario en el texto) y el label hace referencia a la etiqueta de ham o spam (1 para spam, 0 para ham). Esto es con el fin de que el algoritmo utilice los features para su entrenamiento y el label para decidir qué tipo de email es.

Page 32: Trabajo de Grado Machine Learning y Seguridad: Detección ...

32

El parámetro random_state aplicado, hace referencia al control de aleatoriedad (cada vez que se ejecute el código de separación, se obtendrán los mismos datos para cada cada conjunto de prueba y entrenamiento) aplicado antes de hacer la división de los datos [14]. La figura 14 muestra el código para realizar la separación de los datos.

Figura 14. Código de separación de los conjuntos de datos en prueba y entrenamiento

Las variables de salida son: x_train es el conjunto de características para entrenamiento, x_test es el conjunto de características de prueba, y_train son las etiquetas de entrenamiento y por último, y_test las etiquetas de prueba. Después de la separación de los datos a usar, se entrenaron los modelos con los parámetros predefinidos por la librería Scikit-Learn [14]. La figura 15, muestra el código utilizado para entrenar el modelo de clasificación Gausiano Naive Bayes (GNB).

Figura 15. Entrenamiento y prueba del modelo de clasificación Gausiano Naive Bayes

4.2 Sistemas de Detección de Intrusos (NIDS)

4.2.1 Intrusion Detection Evaluation Dataset (CIC-IDS2017)

El conjunto de datos (CICIDS2017) fue creado por la University Of New Brunswick , con la intención de establecerlo como el nuevo punto de referencia al momento de realizar estudios involucrados con la detección de intrusos en redes . Mediante un sistema único se logra abstraer las interacciones humanas con la finalidad de generar un tráfico de red de forma natural. Dentro de los datos disponibles se simularon distintos tipos de ataques como lo son: ataques de Fuerza Bruta FTP, Fuerza Bruta SSH, DoS, Heartbleed, Web Attack, Infiltración, Botnet y DDoS. Cabe resaltar, el uso de distintos protocolos de red al momento de crear este conjunto de datos estos fueron : HTTP, HTTPS, FTP, SSH y correo electrónico. [43]

La figura 16 muestra las 79 columnas que conforman el conjunto de datos. Como se puede observar, el nivel de detalle con el cual se obtuvieron las distintas métricas asociadas al tráfico de paquetes dentro de una red es evidencia de la complejidad del problema. Adicionalmente , la existencia de tantas columnas (variables) podría ser un factor limitante asociado al desempeño de los modelos ML.

Page 33: Trabajo de Grado Machine Learning y Seguridad: Detección ...

33

Figura 16. Atributos que hacen parte del dataset CIC-IDS2017 [43]

Figura 17 .Muestra de datos del Dataset

4.2.2 Perfilamiento

Mediante el uso de la librería pandas profiling3, se analizó el conjunto de datos CIC-IDS2017 con la finalidad de obtener información relevante, y así contribuir a que los modelos de ML seleccionados sean entrenados de manera apropiada. Adicionalmente, mediante esta metodología se identifican los principales atributos que deben ser transformados en la etapa de preprocesamiento.

A continuación, se presentan los principales Insights obtenidos con base en la etapa de perfilamiento, adicionalmente se presentan las decisiones para lidiar con ellos:

3 https://github.com/pandas-profiling/pandas-profiling

Page 34: Trabajo de Grado Machine Learning y Seguridad: Detección ...

34

Insights Decisiones

Para los atributo Fwd IAT Mean , Idle Min, Idle

Std 5% de los datos tienen el valor de NAN

Para estas columnas se opta por reemplazar los

valores NAN por el valor de la media

correspondiente en cada columna

Para la columna label existen varios valores no

obstante más del 70% tienen el valor de

BENIGN

Se realizará una transformación con la intención

de transicionar de un problema de clasificación

para multiclases a uno de clasificación binaria.

Cada ataque tiene diferentes atributos de

mayor importancia.

Debido a que la naturaleza de cada ataque es

diferente cada uno tiene variables únicas

asociadas, por esta razón se opta por no

eliminar columnas del conjunto de datos.

Figura 18 .Insights de los conjuntos de datos y decisiones respectivas

4.2.2.1 Manejando valores perdidos

Los valores perdidos corresponden a aquellas entradas en un conjunto de datos que no tienen un valor asignado [33], usualmente existen símbolos para marcar estas casillas como, por ejemplo : “?”, “NA”, “--”, etc… No obstante, es indispensable lidiar con los valores perdidos existentes en un conjunto de datos pues pueden llevar a conclusiones erróneas. La librería panda ofrece varios métodos para identificar y reemplazar estos valores, para el conjunto de datos seleccionado se opta reemplazar dichos valores por el valor de la media asociada a la columna donde se encuentra el valor perdido.

4.2.2.2 Variables cualitativas

La mayoría de los modelos ML actúan de manera más eficiente cuando los datos de entradas son de tipo cuantitativo, por este motivo es necesario transformar la columna label donde se encuentra almacenada la etiqueta asociada a cada entrada, permitiendo clasificarlo como un paquete arbitrario o parte de un ataque a la red. Mediante el uso de los métodos de pandas se manejan solo dos identificadores en todo el conjunto de datos estos son el valor “0” para paquetes de datos benignos, por otro lado, el valor “1” será asociado a un paquete que pertenece a un ataque. A partir de este cambio es pertinente recalcar que el modelo de ML seleccionado no estará en la capacidad de clasificar distintos tipos de ataques; solo nos concentramos en la clasificación que indica si es ataque o no.

Page 35: Trabajo de Grado Machine Learning y Seguridad: Detección ...

35

4.2.3 Selección y entrenamiento de los modelos ML

4.2.3.1 SVM

SVM es un algoritmo de ML supervisado basado en la idea de un hiperplano para dividir un conjunto de datos en n -categorías, se utiliza para la solución de problemas tanto lineales como no lineales. Para los problemas no lineales, se utilizan las funciones del kernel. La idea es primero mapear un vector de entrada de baja dimensión en un espacio de alta dimensión usando la función del kernel. A continuación, se obtiene un hiperplano marginal máximo óptimo, que funciona como un límite de decisión utilizando los vectores de soporte [49]

Figura 19.Funcionamiento de un modelo SVM. [50]

4.2.3.2 Random Forest

El principio detrás del algoritmo random forest, radica en la existencia de un gran número de árboles de decisión individuales los cuales operan como un conjunto. Cada árbol de decisión depende de los valores de un vector de muestreo independiente y con la misma distribución para todos los árboles que hacen parte del bosque [49]; A continuación, la figura 20 ejemplifica el proceso

mediante el cual el algoritmo realiza la tarea de clasificación.

Page 36: Trabajo de Grado Machine Learning y Seguridad: Detección ...

36

Figura 20.Funcionamiento de un modelo Random Forest [50]

Como se explicó en la sección 4.1.5 para realizar el entrenamiento de modelos se divide el conjunto de datos en dos partes, una correspondiente a los datos de evaluación y otra correspondiente a los datos para entrenamiento. Para el caso de NIDS se manejan las proporciones de 30% y 70% del total de los datos para probar y entrenar el modelo. Al momento de diferenciar entre features y labels 78 columnas correspondientes a los features son seleccionados y la columna label será la utilizada para clasificar entre paquetes benignos y no benignos.

Page 37: Trabajo de Grado Machine Learning y Seguridad: Detección ...

37

5 EVALUACIÓN

Después del preprocesamiento de los datos se corrieron los modelos ML y se analizaron los resultados. Esta sección describe esta etapa.

5.1 Emails y phishing

5.1.1 Resultados

Después de ejecutar un modelo sobre los datos de prueba se empleó la matriz de confusión para conocer el desempeño del algoritmo. Esta herramienta presenta los siguientes valores: True Positive (TP - Verdadero Positivo), False Positive (FP - Falso Positivo), False Negative (FN - Falso Negativo) y True Negative (Verdadero Negativo).

La figura 21 muestra la distribución de los resultados de una manera general y la figura 22 muestra los resultados de la matriz de confusión en el modelo Decision Tree.

Valores reales Negativo - Ham (0) TN FP

Positivo - Phishing(1) FN TP

Negativo - Ham (0) Positivo - Spam(1)

Valores predichos

Figura 21. Generalización de matriz de confusión generada por Scikit

Page 38: Trabajo de Grado Machine Learning y Seguridad: Detección ...

38

Figura 22. Matriz de confusión para el modelo DT

Este modelo (DT) fue uno de los modelos que mejor clasificó además de RF. Sin embargo, el modelo DT clasificó 92 correos como phishing cuando eran ham y el modelo RF clasificó 105 correos como phishing cuando eran ham. Aunque estos dos resultados son similares, es más importante no clasificar emails ham como phishing, pues esto puede influir en una pérdida de la información si estos correos son rechazados o enviados a una carpeta de spam. De igual manera, los clasificadores que peor clasificaron tuvieron este número elevado, por ejemplo, SGD clasificó 300 correos como phishing cuando eran ham, por lo cual podemos ver que las siguientes métricas presentadas son relación directa de este número (Predicted label: 1, True label: 0).

De estos datos, se pueden deducir métricas como la exactitud (Accuracy) [29]:

𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑇𝑃 + 𝑇𝑁

𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁

Se utilizó el componente classification_report de Scikit-Learn para obtener varias métricas de evaluación: accuracy (exactitud), recall (exhaustividad), f1, precision (precisión) support (soporte). La figura 23 muestra los resultados de realizar el classification_report para uno de los modelos.

Page 39: Trabajo de Grado Machine Learning y Seguridad: Detección ...

39

Figura 23. Classification_report del modelo de clasificación Gausiano Naive Bayes

Las definiciones de cada métrica para los modelos están definidas en la figura 24.

Métrica Definición

Exactitud Es la fracción de predicciones que el modelo realizó correctamente [29]

Precisión Indica la probabilidad clasificar un dato como phishing cuando este es phishing [35]

Exhaustividad Indica cuál es la probabilidad de acertar los datos como phishing [35].

F1 Media armónica entre la precisión y la exhaustividad. [6, p.92]

AUC Área bajo la curva que indica la probabilidad de que el modelo clasifique un ejemplo

positivo aleatorio más alto que un ejemplo negativo aleatorio. [36]

Figura 24. Métricas usadas en los modelos de clasificación binaria

Por ejemplo, el modelo de la figura 23 rechaza varios correos de spam y no rechaza muchos de ham (por recall). Así mismo, tiene una exactitud de 71%, por lo cual el modelo realizó 71% de las clasificaciones debidamente. En cuanto a la precisión total, el modelo tiene un 73% de predecir un correo como phishing debidamente cuando este se califica como phishing. En algunos contextos, lo que más importa es la precisión y en otros la exhaustividad [6, p.93]. En este contexto, es preferible tener alta exhaustividad en los correos ham y una baja exhaustividad en los correos de phishing. Ya que, esto significa que no se rechazan los correos ham (baja exhaustividad) y se rechazan muchos correos de spam (alta exhaustividad). Esta decisión se toma

Page 40: Trabajo de Grado Machine Learning y Seguridad: Detección ...

40

debido a que, en un servicio de correo electrónico, es peor que el usuario pierda información relevante cuando le llega un correo. Por ejemplo, es peor cuando se le envía un correo ham y es movido a spam a que no se mueva un correo de spam a su debida carpeta. La figura 25 muestra la curva Precision-Recall, que tiene como objetivo mostrar la relación entre la precisión y la exhaustividad.

Figura 25. Curva Precision-Recall con métrica AP (Average Precision - Precisión promedio)

Cada curva es un algoritmo distinto, estos son:

● DT: Decision Tree

● KN: K - Neighbors

● SGD: Stochastic gradient descent

● GNB: Guassian Naive Bayes

● LR: Logistic Regression

● RF: Random Forest

● SVM: Support Vector Machine

En esta curva, cuando la precisión y la exhaustividad total del modelo son altas, la métrica AP es alta, indicando que el modelo retorna resultados positivos y exactos [14]. En la figura 17, se puede ver que, en estas condiciones el mejor modelo fue RF, con una precisión promedio de 89%. Sin embargo, en la matriz de confusión, podemos ver que aunque DT tuvo un peor resultado en esta métrica, es el que mejor funciona en términos del contexto por lo anteriormente mencionado en la matriz de confusión (figura 22). Otra métrica importante para conocer qué tan bien está generalizando el modelo y sus calificaciones son correctas, es la métrica AUC (Area Under Curve). La curva Receiver Operating characteristic

Page 41: Trabajo de Grado Machine Learning y Seguridad: Detección ...

41

(ROC) representa la tasa de True Positives frente a la tasa de False positives. En la figura 18, se muestra esta métrica en los diferentes modelos. La curva AUC es el Área debajo de la curva ROC, por lo cual reducir el umbral de clasificación clasifica más elementos como positivos, por lo que aumentarán tanto los falsos positivos como los verdaderos positivos [36].

La curva ROC es muy parecida a la curva Precision-Recall, pero en vez de comparar precisión y exhaustividad, compara true positive rate con false positive rate.

Figura 26. Curva ROC con métrica AUC de los modelos ML

Según lo que indica la figura 26, los modelos con los mejores resultados son RF y DT. Con DT siendo el modelo que mejor resulta para los términos del contexto.

5.1.2 Importancia de características escogidas

De igual manera, el clasificador RF ofrecido por Scikit permite saber la importancia de las características escogidas en el modelo para obtener los mejores resultados. Las variables que mayor importancia tuvieron en el modelo RF, son mostradas en la figura 27.

Page 42: Trabajo de Grado Machine Learning y Seguridad: Detección ...

42

Figura 27. Características más importantes en el modelo RF

En este caso, el clasificador RF tiene como principal característica para clasificar si el email tiene una url externa o no. Es decir, que tan útil es esta variable en la predicción para la clasificación de emails. Cabe resaltar que el diccionario propuesto está en tercer lugar, por lo cual podemos decir que las palabras y categorías escogidas en este diccionario fueron útiles para la clasificación del tipo de emails (por lo menos en el cuerpo del email). De igual manera, podemos tomar que los últimos datos pueden no ser tan útiles para la clasificación de emails y puede ser necesario un cambio para que estos modelos tengan un mejor resultado en su clasificación. Al realizar este procedimiento con el modelo DT que fue el segundo modelo que mejor clasificó en términos de métricas, se pudo observar que el orden de importancia de las características fue el mismo. De esto se concluye que estas características sí son las más importantes para la detección de correos de phishing.

5.1.3 Afinación de los modelos ML

Los hiperparámetros controlan cómo un algoritmo de ML aprende de los datos. Seleccionar un modelo óptimo que minimice el error y generalice bien para clasificar nuevos datos es también un problema asociado con ajustar y optimizar estos hiperparámetros. Según el estudio de Tso et al., las estrategias típicas de optimización de hiperparámetros implican discretizar el espacio de parámetros e implementar un procedimiento de búsqueda iterativo para aproximar el hiperparámetro óptimo y la selección del modelo a través de la validación cruzada [37].

Siguiendo esta afirmación, se realiza la búsqueda de los mejores hiperparámetros a partir de validación cruzada con GridSearchCV de la librería Scikit-Learn [14]. GridSearchCV recibe como parámetros el modelo y las opciones por las cuales iterar. La figura 28 muestra el código que se utilizó con GridSearchCV para afinar el modelo ML. Los hiperparámetros están definidos dentro de una variable por las cuales se iteran (se crean varios modelos y se encuentra el óptimo a partir de estas variables).

Page 43: Trabajo de Grado Machine Learning y Seguridad: Detección ...

43

Figura 28. Ejemplo del mejor modelo de RF obtenido a partir de ciertos hiper parámetros de GridSearchCV

En la figura 29 se muestran las curvas Precision-Recall y AUC después de afinar todos los modelos.

Figura 29. Curva ROC de los modelos ML afinados

Aunque no haya un cambio en el modelo RF, en comparación de su resultado en la figura 18, sí se puede ver un cambio en algunos modelos como KNN, DT y SVM. A excepción de DT, todos los modelos que cambiaron tienen una mejor métrica AUC. Esto implica que afinar los modelos permite obtener mejores resultados.

Por otra parte, podemos saber los mejores hiperparámetros de cada modelo. En este caso, los hiperparámetros del modelo que mejor clasificó (RF) son mostrados en la figura 30.

Page 44: Trabajo de Grado Machine Learning y Seguridad: Detección ...

44

Figura 30. Selección de los mejores hiper parámetros por el algoritmo GridSearchCV para el modelo RF

Como se puede observar, estos valores fueron insertados en la variable grid_params_RF de la figura 28 y los valores obtenidos son aquellos que nos dan el mejor modelo RF que se encontró con GridSearchCV.

5.2 NIDS

Como se mencionó en la sección anterior, hay varias métricas posibles para evaluar la eficacia de un modelo ML. Entre las herramientas que nos brinda la librería Scikit-Learn para comprender el comportamiento de los modelos seleccionados (SVM y random forest) de una manera más amigable, las herramientas elegidas son la gráfica ROC (figura 31) y la matriz de confusión (figura 32). A continuación, se muestran los resultados obtenidos.

figura 31. Grafica ROC

Page 45: Trabajo de Grado Machine Learning y Seguridad: Detección ...

45

figura 32. Reporte de métricas de rendimiento modelo Random Forest

Como se puede evidenciar , la curva ROC la cual presenta el AUC de varios modelos nos permite observar que el algoritmo con mejor umbral de clasificación en el área de precisión y recall es el random forest, esta curva además permite medir qué tan correcta son las clasificaciones resultados del modelo.

Uno de los factores que influye en los resultados del modelo SVM es el tamaño del dataset; al ser tan grande, el tiempo de entrenamiento incrementa, factor que altera negativamente el desempeño del modelo.[51] Específicamente, el tiempo de respuesta del modelo al momento de clasificar una anomalía.

Por otro lado, el algoritmo de random forest tuvo un mejor desempeño, principalmente gracias a dos factores, el primero está relacionado con el manejo de la variable categórica debido a que se decidió modificar el conjunto de datos de tal forma que sólo consideran dos posibles respuestas el algoritmo no tuvo que lidiar con múltiples categorías, lo cual a evidenciado ser un fuerte inconveniente para este tipo de modelo, adicionalmente este algoritmo es conocido por manejar los datos desbalanceados de manera apropiada caso que ocurre ya que como se evidencia en la matriz de confusión 55% de los datos soportan los paquetes benignos mientras que 45 % de los datos representan paquetes asociados a un ataque.

Finalmente, teniendo en cuenta que este tipo de modelos sería implementado idealmente en redes computacionales es indispensable que la precisión con la que los paquetes son categorizados sea alta ya que de no ser así esto podría representar una amenaza para la confidencialidad, integridad y disponibilidad de los datos y servicios de una organización.

5.2.1 Afinación de los modelos ML

Se realiza una etapa de afinamiento en la cual se busca mejorar el desempeño de los modelos seleccionados, se eligen dos principales tareas para cumplir con el objetivo , la primera es identificar

Page 46: Trabajo de Grado Machine Learning y Seguridad: Detección ...

46

los atributos con más valor dentro del conjunto de datos de esta forma priorizar estos atributos al momento de clasificar. Finalmente, debido al desbalance de muestra para una clase se opta por utilizar el método SMOTE “Synthetic Minority Over-sampling Technique ”

5.2.1.1 Atributos Seleccionados

Se realiza una etapa de perfilamiento de datos para encontrar nuevos insights, por otro lado se hace uso del método feature importance el cual proporciona el peso de los atributos al momento de clasificar en una categoría. La figura 33 muestra los atributos más relevantes al instante de clasificar un paquete como benigno o anomalía.

Figura 33.Columnas más relevantes

A Partir del análisis anterior se modifica el conjunto de datos para eliminar las features que no agregan valor al modelo y solo se dejan las features más relevantes del dataset.

5.2.1.2 SMOTE

Como se evidenció en el reporte de métricas de algoritmo de random forest, 65% de los datos existentes hacen parte de la categoría 0 (tráfico benigno) y el 45% de los datos restantes representan paquetes de anomalías en la red. Se concluye que existe un desbalance de los datos ya que predominan valores de una clase esto a su vez afecta la precisión del modelo ML al momento de clasificar. A continuación, la figura muestra una situación relacionada con el desbalanceo de datos.

Page 47: Trabajo de Grado Machine Learning y Seguridad: Detección ...

47

Figura 34. Problema de balanceo de clases

La figura 35 ilustra el funcionamiento del algoritmo SMOTE el cual crea muestras sintéticas de una clase minoritaria basándose en muestras de datos existentes de esta forma se logra balancear la distribución de clases minoritaria.

Figura 35. Ejemplo algoritmo SMOTE

Al finalizar el proceso de afinamiento, se volvieron a correr los modelos ML para determinar si se mejoró el desempeño, como se puede observar en la figura 35 los modelos afinados se comportan mejor (su nivel de precisión es mayor). Por ejemplo, el modelo Random Forest mejora el valor de la curva ROC pasando de un valor AUC de 0.83 a un AUC de 0.95. Por otro lado, el modelo SVM también mejora, no obstante, su cambio no es tan drástico como el del random forest, esto debe ser causado principalmente por la naturaleza de los datos usados para entrenar los modelos.

Page 48: Trabajo de Grado Machine Learning y Seguridad: Detección ...

48

Figura 36. Resultados posteriores al afinamiento de modelos ML

Page 49: Trabajo de Grado Machine Learning y Seguridad: Detección ...

49

6 TRABAJO RELACIONADO

6.1 Emails y phishing

6.1.1 Principales investigaciones

Hay diferentes estudios en relación con la clasificación de emails, en [16], se concluye que lo más importante en este tipo de clasificación es la selección de las características que tendrán los algoritmos de ML. Ya que, estas características deciden si un correo pertenece de tipo ham o spam. Estas características pueden ser descubiertas a partir de algoritmos o como en el caso de esta investigación, decididas por el autor. En esta misma investigación se utiliza el algoritmo XGBoost, un algoritmo de aprendizaje automático conjunto basado en árboles de decisión que utiliza un marco de trabajo de impulso de gradientes. Esta investigación consiguió un 99% de exactitud y 99,5% de F1 utilizando el conjunto de datos de Nazario Phishing Corpus y Spamassassin Project [16], [41]. A manera de comparación con esta investigación, la exactitud y demás métricas no son mejores que las realizadas en [16]. Sin embargo, esto demuestra que las características escogidas no son las más pertinentes para detectar los emails de phishing o la decisión en los algoritmos de ML.

Por otra parte, otro trabajo realiza un enfoque para la detección de correos electrónicos de phishing basado en: Propiedades del correo electrónico y en fuentes externas, la edad del nombre del dominio vinculado y la cantidad de enlaces en el correo electrónico en [42]. Esta investigación presenta la cercanía a partir de modelos RF logrando un 96% de exactitud en la detección de correos de phishing. Como se puede ver, aunque el algoritmo que mejor clasificó emails en esta investigación fue el mismo que en [42], se deberían optar por características que no solo sean de su contenido, pues estos podrían dar mejores resultados.

Una aproximación basada en la selección de la extracción de información del correo electrónico y en características basadas en comportamiento logró 99% de exactitud utilizando varios algoritmos de ML (GNB, SVM, Bagged Decision Trees, Extra Trees, Ada Boost, Stochastic Gradient Boosting y Voting Ensemble) con los conjuntos de datos SpamAssassin Project y Nazario Phishing[6]. Siguiendo estos resultados, existen varios algoritmos utilizados al igual que en este trabajo. Sin embargo, no hubo resultados parecidos en las métricas aún cuando en ambos se proponía selección de características y aprendizaje de modelos no supervisados (sin interferencia humana). Esto se puede deber al número de características escogidas, puesto que en [6], se escogieron 39 características y a cada una se le aplicó lematización.

Por último, en el enfoque de utilizar la estructura del email (encabezados, sobre SMTP, primeros datos del SMTP y la segunda parte del SMTP) a partir de SVM y GNB, encontró que los algoritmos supervisados de ML son más constantes que aquellos no lo son [20]. En este caso, se utilizó aprendizaje no supervisado por los resultados de los estudios más recientes, demostrando que estos tienen exactitud y métricas con porcentajes elevados. No obstante, se podría reproducir el experimento hecho en esta investigación con aprendizaje supervisado para así comparar los diferentes resultados.

Page 50: Trabajo de Grado Machine Learning y Seguridad: Detección ...

50

6.1.2 Otras investigaciones

Las siguientes investigaciones mostradas en la figura 37 tienen diferentes enfoques que permiten obtener más información de la clasificación de ML en phishing y podrían ser usados para posibles referencias de futuros proyectos que incluyan un agregado de la investigación hecha en este documento.

Estudio Enfoque Algoritmos Conjuntos de

datos Métricas

Rajamohana et al. (2017) [44]

Clasificación usando algoritmo binario adoptivo Flower Pollination

Enjambre de partículas binarias optimizadas, Shuffled Frog Leaping algorithm, y algoritmo binario adoptivo Flower pollination para la selección de características, y NB y KNN para clasifcación

Ott et al. [45] Mejores posiciones globales

Tyagi (2016) [46] Clasificación utilizando redes neuronales

MLP denso y Red de Creencias profundas

Enron, PU1, PU2, PU3, and PUA

Accuracy, precision, recall, and F-measure

Alkaht y Al-Khatib (2016) [47]

Clasificación utilizando multi etapas de las redes neuronales

MLP y Redes Neuronales

Emails recolectados

Exactitud

L’Hullier et al. (2010) [48]

Uso de LSA y LDA para obtener características

SVM, GNB, LR

Nazario Phishing Corpus, Spamassassin Project

Exactitud

Figura 37. Otras investigaciones relevantes en el campo de detección de phishing con ML

Page 51: Trabajo de Grado Machine Learning y Seguridad: Detección ...

51

6.2 IDS

6.2.1 Principales investigaciones

Los modelos ML están siendo implementados en sistemas de detección de intrusos. Diferentes investigaciones se han realizado haciendo uso de diferentes metodologías. Una de las principales preocupaciones que surgen de la implementación de modelos ML supervisados es la capacidad para clasificar muestras nuevas; distintas a las encontrados en el conjunto de datos [61]. Como alternativa, algunos estudios han aplicado modelos ML no supervisados, como redes neuronales, debido a su capacidad de aprendizaje adaptativo [61]. No obstante, en contextos como redes cloud y redes IOT esto impone un desafío debido a la complejidad de estas [33].

Existen investigaciones las cuales complementan los modelos ML supervisados mediante técnicas de inteligencia de enjambre, de esta forma se optimiza la detección de anomalías. Entre los algoritmos de enjambre implementados destacan ACO (Ant Colony Optimization), PSO (Particle Swarm Optimization) y ACC (Ant Colony Clustering). Cada uno de estos es implementado de maneras diferentes de tal forma que detectan de manera eficiente las anomalías en redes[62].

Tradicionalmente se han implementado dos tipos de modelos para los sistemas IDS. En el primer modelo el IDS integra un modelo estadístico con base en el cual crea un modelo de distribución para definir un perfil de comportamiento normal, luego detecta eventos de baja probabilidad y los marca como intrusiones potenciales. Este modelo se base en métricas como mediana, la media, la moda y la desviación estándar. A diferencia de los modelos ML, los modelos estadísticos vigilan cada paquete. Las estadísticas permiten identificar cualquier tipo de diferencias en el comportamiento

revisado en tiempo real con respecto al comportamiento perfilado[63].

Por otro lado, existen los modelos basados en conocimiento, recrean un perfil de tráfico legitimo, este perfil se define a partir de un conjunto de reglas definidas. Teniendo en cuenta que el sistema tiene conocimiento de todos los comportamientos normales, uno de los principales beneficios de los modelos basados en conocimiento es su alta tasa de precisión. Lastimosamente, al no ser un sistema dinámico es necesario actualizar y reconfigurar estos modelos periódicamente. Entre los modelos basados en conocimiento resaltan las máquinas de estado finito a través del cual se puede representar el comportamiento legítimo del sistema, y cualquier desviación observada de este FSM

se considera un ataque.[64]

6.2.2 Otras investigaciones

Las siguientes investigaciones mostradas en la figura 38 muestran distintas perspectivas utilizadas por los investigadores para realizar aplicar modelos de ML en distintos contextos asociados a la detección de intrusos.

Page 52: Trabajo de Grado Machine Learning y Seguridad: Detección ...

52

Estudio Enfoque Conjuntos de datos Métricas

M.Z.Alom(2017)[49] Clasificación usando Artificial neural network y algoritmos deep Learning como Recurrent neural networks

NSL-KDD KDD Cup'99 UNSW-NB15 CIC-IDS2017 & CSE-CICIDS2018

Precision Recall False alarm rate True negative rate Accuracy F-Measure

A. Amouri(2020)[58] Clasificación en redes móviles IOT usando algoritmos Gauss Markov mobility model Random way point mobility model

Conjunto de datos creado en un ecosistema propio

False alarm rate True negative rate F-Measure

M. E. TA. Tchakoucht

(2018) [59]

Clasificación de IDS en un contexto de Big data haciendo uso del algoritmo Chi-SVM y Chi-Logistic Regression classifier

KDD Cup'99 AUROC AUPR

R. Vinayakumar, K. Soman, and P. Poornachandran (2020) [60]

Uso de algoritmos deep learning como RNN, LSTM and GRU networks para la detección de intrusos

UNSW-NB15. KDD Cup'99

TPR FPR Accuracy

Figura 38. Otras investigaciones relevantes en el área de IDS aplicando modelo ML

Page 53: Trabajo de Grado Machine Learning y Seguridad: Detección ...

53

7 CONCLUSIONES Y TRABAJO FUTURO

Al utilizar técnicas de ML en dos contextos distintos de seguridad, fue posible probar que el uso de modelos ML permite la clasificación eficiente de anomalías y/o patrones a partir de reglas definidas por el usuario.

● La automatización de la detección de anomalías y/o patrones disminuye el tiempo de intervención humana por medio del análisis de grandes volúmenes de datos.

● Para obtener los resultados, hubo un proceso de recolección de datos, limpieza de datos en caso de ser necesario, selección de características, selección de algoritmos ML, entrenamiento de estos modelos y finalmente, afinación de los modelos obteniendo sus métricas respectivas.

● Durante la investigación, el mayor reto encontrado fue la obtención y preparación de los datos. Pues buscar conjuntos de datos asociados con el contexto de interés y que sean públicos (o necesiten autorización) fue lo que llevó más tiempo. Buscar conjuntos de datos públicos que puedan ser usados para correr los experimentos lleva mucho tiempo. Adicionalmente, para entrenar los modelos ML de manera apropiada es necesaria una etapa de limpieza y creación de variables. Por otra parte, la selección de variables requiere conocimiento de expertos que no siempre está disponible.

● Los resultados obtenidos muestran la utilidad de los modelos ML en los dos contextos de interés: detección de phishing y detección de intrusos. Por un lado, se obtuvo 90% de exactitud en los modelos de email y phishing. Contrastando con trabajos relacionados, fue posible ver que, aunque las características escogidas reflejaron un 90% de exactitud, los modelos de investigaciones pasadas presentaban mejores resultados al incorporar técnicas adicionales. Como conclusión, la selección de las variables para representar los datos influye en los resultados, y este aspecto depende del conocimiento externo. Aunque en teoría es posible usar miles de variables para representar los datos, en la práctica el tiempo de respuesta aumentaría demasiado y la selección es indispensable.

● Al realizar el entrenamiento de los modelos ML, hay que tener en cuenta que ambos contextos están evolucionando constantemente. Como consecuencia, al usar modelos supervisados se presentarán dificultades para detectar anomalías nuevas fuera de los conjuntos de datos usados para entrenar dichos modelos.

● Es importante indicar que cualquier modelo ML está limitado por la calidad de los datos y sus condiciones, produciendo resultados distintos dependiendo del tipo de limpieza que el autor considere pertinente.

● En cuanto a la detección de emails se encontró que los dos modelos que mejor clasificaron, es decir que dado un email es más probable que clasifiquen un email en su categoría pertinente fueron: Decision Tree y Random Forest. Sin embargo, DT clasificó menos emails como phishing cuando estos eran ham, por lo cual en términos de contexto y para no perder información sensible de los usuarios, se considera el modelo DT como el mejor clasificador.

● En cuanto a los IDS el que mejor se comportó tanto en tiempo de respuesta como en precisión fue el random forest con una precisión del 95%, este margen solo se logra después de afinar el modelo apropiadamente.

Page 54: Trabajo de Grado Machine Learning y Seguridad: Detección ...

54

Como trabajo futuro, consideramos una extensión de los modelos propuestos donde se realice un despliegue de los modelos ML a producción, permitiendo un aprendizaje constante de los modelos con datos nuevos de distintos usuarios (inputs). Por otro lado, añadir nuevos algoritmos y aproximaciones como Adversarial Learning (entrenar el modelo con datos confusos y que éste sepa cómo tratarlos [55]) puede permitir una mejor clasificación de los modelos ML.

Page 55: Trabajo de Grado Machine Learning y Seguridad: Detección ...

55

8 TRABAJOS CITADOS

[1] “En 2018 se registraron más de 10.500 millones de ataques de malware”, Marzo 28, 2019. [Online]:https://www.itreseller.es/seguridad/2019/03/en-2018-se-registraron-mas-de-10500-millones-de-ataques-de-malware, [Available]: Diciembre 23, 2020

[2] B. Santoso, “An Analysis of Spam Email Detection Performance Assessment Using Machine Learning,” Jurnal Online Informatika, vol. 4, no. 1, p. 53, 2019.

[3] S. Rawal, B. Rawal, A. Shaheen, and S. Malik, “Phishing Detection in E-mails using Machine Learning,” International Journal of Applied Information Systems, vol. 12, no. 7, pp. 21–24, 2017.

[4] H. Bhuiyan, A. Ashiquzzaman, T. I. Juthi, S. Biswas, and J. Ara, “A survey of existing e-mail spam filtering methods considering machine learning techniques,” Global Journal of Computer Science and Technology, vol. 18, no. 2, pp. 20-29, 2018.

[5] V. Zeng, S. Baki, A. E. Aassal, R. Verma, L. F. T. D. Moraes, and A. Das, “Diverse Datasets and a Customizable Benchmarking Framework for Phishing,” Proceedings of the Sixth International Workshop on Security and Privacy Analytics, 2020.

[6]T. Gangavarapu, C. D. Jaidhar, and B. Chanduka, “Applicability of machine learning in spam and phishing email filtering: review and approaches,” Artificial Intelligence Review, vol. 53, no. 7, pp. 5019–5081, 2020.

[7] A. Geron, Hands‑ On Machine Learning with Scikit‑ Learn, Keras, and TensorFlow. Ed. 2, Canada: O’Reilly Media Inc, 2019.

[8]“Spam does not bring us joy-ridding Gmail of 100 million more spam messages with TensorFlow,” Google. [Online]. Available: https://cloud.google.com/blog/products/g-suite/ridding-gmail-of-100-million-more-spam-messages-with-tensorflow. [Accessed: 23-Dec-2020].

[9] L. M. Stuart, G. Park, J. M. Talor, and V. Raskin, “On identifying phishing emails: Uncertainty in machine and human judgment,” 2014 IEEE Conference on Norbert Wiener in the 21st Century (21CW), 2014.

[10] J. Nazario. Phishing Corpus. [Online]. Available: https://monkey.org/~jose/phishing/

[11] “Prevent mail to Gmail users from being blocked or sent to spam - Gmail Help,” Google. [Online]. Available: https://support.google.com/mail/answer/81126?hl=en. [Accessed: 23-Dec-2020].

[12] “Gmail Spam Filter: When It Is Not Enough to Stop Spam,” Clean Email – email inbox cleaner, 12-Jan-2020. [Online]. Available: https://clean.email/gmail-spam-filter. [Accessed: 23-Dec-2020].

[13] R. M. Verma, V. Zeng, and H. Faridi, “Data Quality for Security Challenges,” Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security, 2019.

[14] “learn,” scikit. [Online]. Available: https://scikit-learn.org/stable/. [Accessed: 23-Dec-2020].

[15] “sklearn.model_selection.GridSearchCV,” scikit. [Online]. Available: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html. [Accessed: 23-Dec-2020].

Page 56: Trabajo de Grado Machine Learning y Seguridad: Detección ...

56

[16] E. S. Gualberto, R. T. D. Sousa, T. P. D. B. Vieira, Joao Paulo C. L. Da Costa, and C. G. Duque, “From Feature Engineering and Topics Models to Enhanced Prediction Rates in Phishing Detection,” IEEE Access, vol. 8, pp. 76368–76385, 2020.

[17] D. M. Blei, A. Y. Ng, and M. I. Jordan, “Latent Dirichlet Allocation,” Journal of Machine Learning Research, vol. 3, pp. 993–1022, Mar. 2003.

[18]“introduction,” Conditional Random Fields. [Online]. Available: http://www.inference.org.uk/hmw26/crf/. [Accessed: 23-Dec-2020].

[20] A. Karim, S. Azam, B. Shanmugam, K. Kannoorpatti, and M. Alazab, “A Comprehensive Survey for Intelligent Spam Email Detection,” IEEE Access, vol. 7, pp. 168261–168295, 2019.

[21] J. Tang, H. Li, Y. Cao, and Z. Tang, “Email data cleaning,” Proceeding of the eleventh ACM SIGKDD international conference on Knowledge discovery in data mining - KDD '05, 2005.

[22]N. Moradpoor, B. Clavie, and B. Buchanan, “Employing machine learning techniques for detection and classification of phishing emails,” 2017 Computing Conference, 2017.

[24] G. Park and J. M. Taylor, Using Syntactic Features for Phishing Detection.

[25] W. Cohen, The Enron Corpus. [Online]. Available: https://www.cs.cmu.edu/~enron/

[26] W. Cukierski, “The Enron Email Dataset,” Kaggle, 16-Jun-2016. [Online]. Available: https://www.kaggle.com/wcukierski/enron-email-dataset. [Accessed: 23-Dec-2020].

[27]Pandas-Profiling, “pandas-profiling/pandas-profiling,” GitHub. [Online]. Available: https://github.com/pandas-profiling/pandas-profiling. [Accessed: 23-Dec-2020].

[29]“Classification: Accuracy | Machine Learning Crash Course,” Google. [Online]. Available: https://developers.google.com/machine-learning/crash-course/classification/accuracy. [Accessed: 23-Dec-2020].

[30]“Cisco 2014 Annual Security Report.” [Online]. Available: https://www.cisco.com/assets/global/UK/pdfs/executive_security/sc-01_casr2014_cte_liq_en.pdf. [Accessed: 23-Dec-2020].

[31]“EsEt security Report Latinoamérica 2016.” [Online]. Available: https://www.welivesecurity.com/wp-content/uploads/2016/04/eset-security-report-latam-2016.pdf. [Accessed: 23-Dec-2020].

[32]T. F. Lunt, “A survey of intrusion detection techniques,” Computers & Security, vol. 12, no. 4, pp. 405–418, 1993.

[33]P. García-Teodoro, J. Díaz-Verdejo, G. Maciá-Fernández, and E. Vázquez, “Anomaly-based network intrusion detection: Techniques, systems and challenges,” Computers & Security, vol. 28, no. 1-2, pp. 18–28, 2009.

[34]L. Croke, “Protecting your organization from e‐mail phishing and ransomware attacks,” AORN Journal, vol. 112, no. 4, 2020.

[35“Classification: Precision and Recall | Machine Learning Crash Course,” Google. [Online]. Available: https://developers.google.com/machine-learning/crash-course/classification/precision-and-recall. [Accessed: 23-Dec-2020].

Page 57: Trabajo de Grado Machine Learning y Seguridad: Detección ...

57

[36] “Classification: ROC Curve and AUC | Machine Learning Crash Course,” Google. [Online]. Available: https://developers.google.com/machine-learning/crash-course/classification/roc-and-auc. [Accessed: 23-Dec-2020].

[37] W. W. Tso, B. Burnak, and E. N. Pistikopoulos, “HY-POP: Hyperparameter optimization of machine learning models through parametric programming,” Computers & Chemical Engineering,

vol. 139, p. 106902, 2020.

[38] “Internet Security Threat Report,” Broadcom Inc. [Online]. Available:

https://docs.broadcom.com/docs/istr-22-2017-en. [Accessed: 23-Dec-2020].

[39] “Internet Security Threat Report,” Broadcom Inc. [Online]. Available: https://docs.broadcom.com/docs/istr-23-2018-en. [Accessed: 23-Dec-2020].

[40] “Internet Security Threat Report,” Broadcom Inc. [Online]. Available: https://docs.broadcom.com/docs/istr-24-2019-en. [Accessed: 23-Dec-2020].

[41] V. Morde, “XGBoost Algorithm: Long May She Reign!,” Medium, 08-Apr-2019. [Online]. Available: https://towardsdatascience.com/https-medium-com-vishalmorde-xgboost-algorithm-

long-she-may-rein-edd9f99be63d. [Accessed: 23-Dec-2020].

[42]I. Fette, N. Sadeh, and A. Tomasic, “Learning to Detect Phishing Emails,” 2006.

[43] “Search UNB,” University of New Brunswick est.1785. [Online]. Available: https://www.unb.ca/cic/datasets/ids-2017.html. [Accessed: 23-Dec-2020].

[44] Rajamohana SP, Umamaheswari K, Abirami B (2017) Adaptive binary fower pollination algorithm for feature selection in review spam detection. In: 2017 International conference on innovations in green energy and healthcare technologies (IGEHT). IEEE, pp 1–4 (2017)

[45]Ott M, Choi Y, Cardie C, Hancock JT (2011) Finding deceptive opinion spam by any stretch of the imagination. In: Proceedings of the 49th annual meeting of the association for computational linguistics: human language technologies, vol 1. Association for Computational Linguistics, pp 309–319

[46] Tyagi A (2016) Content based spam classifcation-a deep learning approach. Ph.D. thesis, University of Calgary

[47]Alkaht I, Al-Khatib B (2016) Filtering spam using several stages of neural networks. Int Rev Comp Softw 11:2

[48]G. L’Huillier, A. Hevia, R. Weber, and S. A. Ríos, ‘‘Latent semantic analysis and keyword extraction for phishing classification,’’ in Proc. IEEE Int. Conf. Intell. Secur. Inform., May 2010, pp. 129–131, doi: 10. 1109/ISI.2010.5484762

[49] M. Z. Alom and T. M. Taha, “Network intrusion detection for cyber security using unsupervised deep learning approaches,” 2017 IEEE National Aerospace and Electronics Conference (NAECON), 2017.

[50] S. Yıldırım, “Support Vector Machine - Explained,” Medium, 26-Jul-2020. [Online]. Available: https://towardsdatascience.com/support-vector-machine-explained-8d75fe8738fd. [Accessed: 23-Dec-2020].

Page 58: Trabajo de Grado Machine Learning y Seguridad: Detección ...

58

[51]https://e-tarjome.com/storage/btn_uploaded/2019-12-14/1576316338_10218%20English%20IranArze.pdf

[52] H. Castellanos, “Q-Floid: Análisis de Malware en Android por Flujo de Datos”, Bogotá: Universidad de los Andes, 2015

[53] https://www.dataconnectors.com/technews/artificial-intelligence-for-cybersecurity/

[54] T. Diego, “Sistemas de Detección de Intrusos Basados en Redes Neuronales Artificiales en Ambientes con Adversarios”, Bogotá: Universidad de los Andes, 2019

[55] D. Lowd and C. Meek, “Adversarial learning,” Proceeding of the eleventh ACM SIGKDD international conference on Knowledge discovery in data mining - KDD '05, 2005.

[56] M. Fagan, “IoT Device Cybersecurity Guidance for the Federal Government:” 2020.

[57] N. V. Chawla, K. W. Bowyer, L. O. Hall, and W. P. Kegelmeyer, “SMOTE: Synthetic Minority Over-sampling Technique,” Journal of Artificial Intelligence Research, vol. 16, pp. 321–357, 2002.

[58] A. Amouri, V. T. Alaparthy, and S. D. Morgera, “A Machine Learning Based Intrusion Detection System for Mobile Internet of Things,” Sensors (Basel, Switzerland), 14-Jan-2020. [Online]. Available: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7013568/. [Accessed: 23-Dec-2020].

[59] M. E. TA. Tchakoucht, T. M. K. R. Zuech, A. Sahasrabuddhe, P. M. K. Scarfone, A. S. K. Ferhat, K. Peng, S. H. M. Belouch, D. K. S. P. Dahiya, P. Natesan, T. S. R. S. Akbar, M. Zaharia, Z. Deng, S. M. Andrew H.. Sung, V. V. C. Cortes, Y. M. V. Cherkassky, A. G. H. Bhavsar, A. P. Bradley, and M. K. GP. Gupta, “Intrusion detection model using machine learning algorithm on Big Data environment,” Journal of Big Data, 18-Sept-2018. [Online]. Available: https://journalofbigdata.springeropen.com/articles/10.1186/s40537-018-0145-4. [Accessed: 24-

Dec-2020].

[60] R. Vinayakumar, K. Soman, and P. Poornachandran, “Evaluation of Recurrent Neural Network and its Variants for Intrusion Detection System (IDS),” Deep Learning and Neural Networks, pp. 295–316, 2020.

[61] J. W. Ali. Abbasi, M. B. I. R. Abdulla Amin. Aburomman, S. I. A. Adebowale, J. A. S. Agrawal, A. N. M. Mohiuddin. Ahmed, M. H. A. Alazab, A. K. Ammar. Alazab, C. Alcaraz, T. H. A. Chinmayee. Annachhatre, X.-Z. W. RAR. Ashfaq, A. A. K. Bajaj, D. K. B. MH. Bhuyan, M. D. E. Bou-Harb, L. Breiman, E. G. AL. Buczak, S. D. M. I. Butun, S.-H. H. Wun-Hwa. Chen, J. H. G. Creech, A. F. Salma. Elhag, E. F. M. Hall, S. Y. G. Hendry, M. A. N. B. MAM. Hoque, X. Y. J. Hu, J. G. W. Hu, R. A. M.A.. Jabbar, B.-K. J. Soo-Yeon. Ji, A. P. PS. Kenkre, I. G. A. Khraisat, S. L. Gisung. Kim, T. A. M. Levent. Koc, G. K. C. Kolias, J. C. C. Kreibich, J. V. N. Kshetri, J. X. Yinhui. Li, C.-H. R. L. H-J. Liao, C.-H. R. L. Hung-Jen. Liao, Y.-D. L. C. Lin, S.-W. K. Wei-Chao. Lin, P. Z. X. Liu, J. McHugh, C. H. A. Meshram, R. L. E. AR. Metke, I. R. C. R. Mitchell, D. P. Chirag. Modi, B. P. W. Sean N.. Murray, S. M. A. Nourian, F. D. F. Pasqualetti, M. T. Ahmed. Patel, B. N. B. Pretorius, J. R. Quinlan, J. Raiyn, N. K. B. PS. Rath, A. Rege-Patwardhan, M. Roesch, M. J. L. Rutkowski, C. S. P. Sadotra, A. M. H. Sadreazami, H. A. A. K. Shafi, N. K. EM. Shakshuki, C. L. C. Shen, H. S. A. Shiravi, E. A. I. Studnia, V. B. S. S. Subramanian, A. J. Z. Tan, R. A. K. G. Vigna, R. T. Neil. Walkinshaw, J. H. Gang. Wang, Y. X. Q. Xiong, S. M. E. N. Ye, and . T. J. Zargar, “Survey of intrusion detection systems: techniques, datasets and challenges,” Cybersecurity, 27-July-2019. [Online]. Available: https://cybersecurity.springeropen.com/articles/10.1186/s42400-019-0038-7. [Accessed: 24-Dec-2020].

Page 59: Trabajo de Grado Machine Learning y Seguridad: Detección ...

59

[62] K. Satpute, S. Agrawal, J. Agrawal, and S. Sharma, “A Survey on Anomaly Detection in Network Intrusion Detection System Using Particle Swarm Optimization Based Machine Learning Techniques,” SpringerLink, 01-Jan-2013. [Online]. Available: https://link.springer.com/chapter/10.1007/978-3-642-35314-7_50. [Accessed: 24-Dec-2020].

[63] Ye, Nong, Syed Masum Emran, Qiang Chen, and Sean Vilbert. "Multivariate statistical analysis of audit trails for host-based intrusion detection."Computers, IEEE Transactions on 51, no. 7 (2002): 810-820.

[64] “Inferring extended finite state machine models from software executions.” [Online]. Available: https://www.researchgate.net/publication/261232074_Inferring_Extended_Finite_State_Machine_Models_from_Software_Executions. [Accessed: 24-Dec-2020].

[64] Anderson, J. P. (1980). Computer security threat monitoring and surveillance (Vol. 17). Technical report, James P. Anderson Company, Fort Washington, Pennsylvania.