UNIVERSIDAD DE COSTA RICA SISTEMA DE ESTUDIOS DE POSGRADO DESARROLLO DE UN MODELO DE DETECCIÓN DE URLS MALICIOSOS USANDO APRENDIZAJE AUTOMÁTICO SUPERVISADO Trabajo final de investigación aplicada sometida a la consideración de la Comisión del Programa de Estudios de Posgrado en Ciencias de la Computación e Informática para optar al grado y título de Maestría Profesional en Computación e Informática MICHELLE MARIE CERSOSIMO MORALES Ciudad Universitaria Rodrigo Facio, Costa Rica 2023 ii Agradecimientos A mi mamá en el cielo, que me apoyó hasta el último día. A mi papá, hermanos y Dani que me motivaron siempre. A mis profesores, por su paciencia y retroalimentación. iii Este trabajo final de investigación aplicada fue aceptado por la Comisión del Programa de Estudios de Posgrado en Ciencias de la Computación e Informática de la Universidad de Costa Rica, como requisito parcial para optar al grado y título de Maestría Profesional en Ciencias de la Computación e Informática ______________________________________ Dra. Gabriela Barrantes Sliesarieva Representante de la Decana Sistema de Estudios de Posgrado ______________________________________ Dr. Adrián Lara Petitdemange Profesor Guía ______________________________________ Dr. Edgar Casasola Murillo Lector ______________________________________ Dr. Ricardo Villalón Fonseca Lector ______________________________________ Dra. Gabriela Marín Raventós Directora del Programa de Posgrado en Computación e Informática ______________________________________ Michelle Marie Cersosimo Morales Sustentante iv Índice general Agradecimientos ....................................................................................................................... ii Hoja de aprobación ................................................................................................................. iii Resumen .................................................................................................................................. vi Lista de tablas......................................................................................................................... vii Lista de figuras ...................................................................................................................... viii Lista de abreviaturas .............................................................................................................. ix Capítulo 1: Introducción ...........................................................................................................1 1.1. Problema .......................................................................................................................2 1.2. Objetivos ......................................................................................................................3 2.1.1. Objetivo general.....................................................................................................3 2.1.2. Objetivos específicos .............................................................................................3 1.3. Justificación ..................................................................................................................4 1.4. Estructura del documento ..............................................................................................4 Capítulo 2: Estado del arte .......................................................................................................5 Capítulo 3: Marco conceptual ................................................................................................ 10 3.1. URL maliciosas .......................................................................................................... 10 3.1.1. Phishing ............................................................................................................... 12 3.1.2. Spam.................................................................................................................... 12 3.1.3. Botnet .................................................................................................................. 13 3.1.4. Malware ............................................................................................................... 14 3.2. Caracterización de URL .............................................................................................. 15 3.2.1. Tipos de características ........................................................................................ 16 3.2.2. Relevancia ........................................................................................................... 17 3.3. Aprendizaje automático............................................................................................... 18 3.3.1. Clasificadores basados en árboles......................................................................... 20 3.4. Splunk........................................................................................................................ 20 3.4.1. Search Processing Language (SPL) ...................................................................... 22 3.4.2. Machine Learning Toolkit (MLTK) ..................................................................... 22 v Capítulo 4: Metodología.......................................................................................................... 25 4.1. Revisión de literatura (Objetivo Específico 1) ............................................................. 25 4.2. Implementación del clasificador (Objetivo Específico 2) ............................................. 26 4.2.1. Preparación del conjunto de datos ........................................................................ 27 4.2.2. Identificación y extracción de características ........................................................ 30 4.2.3. Implementación del clasificador ........................................................................... 32 4.3. Evaluación y análisis (Objetivo Específico 3) .............................................................. 33 Capítulo 5: Resultados ............................................................................................................ 36 5.1. Revisión de literatura .................................................................................................. 36 5.2. Implementación del clasificador .................................................................................. 40 5.2.1. Preparación del conjunto de datos ........................................................................ 41 5.2.2. Identificación y extracción de las características................................................... 42 5.2.3. Implementación del clasificador ........................................................................... 52 5.3. Evaluación y análisis ................................................................................................... 55 5.2.4. Evaluación ........................................................................................................... 55 5.2.5. Análisis ................................................................................................................ 57 Capítulo 6: Conclusiones ........................................................................................................ 60 Capítulo 7: Bibliografía .......................................................................................................... 63 Capítulo 8: Anexos .................................................................................................................. 68 vi Resumen La distribución de ataques cibernéticos mediante protocolos web ha sido una manera, para sus actores, de evadir detección y filtrado de red al camuflarse entre la cantidad de tráfico legítimo existente [1]. A pesar de la gran cantidad de sitios que son bloqueados diariamente, los atacantes siguen mejorando sus técnicas de evasión, por lo que se han realizado esfuerzos para mejorar el filtrado y bloqueo de estos ataques usando técnicas de aprendizaje automático. Los modelos de predicción basados en aprendizaje automático han ayudado a mejorar la capacidad de detección de los sistemas de monitoreo y presentan una alternativa de mayor escalabilidad, comparado a las tecnologías de bloqueo basadas en listas negras [10]. Estos modelos requieren una correcta caracterización del conjunto de datos para poder diferenciar un comportamiento de otro y su selección puede influir en los resultados de la predicción. En este trabajo se usa caracterización léxica para la construcción de un clasificador que pueda detectar los principales tipos de URL de alto riesgo incluyendo malware, phishing, spam y botnet usando aprendizaje automático supervisado. Nuestros resultados mostraron que estas características otorgan flexibilidad a la etapa de implementación y logran obtener buenos resultados en su exactitud sin depender de características basadas en la observación de cambios en el tiempo. vii Lista de tablas Cuadro 1: Ejemplo de URL maliciosas .................................................................................................. 11 Cuadro 2: Comandos de Splunk............................................................................................................. 23 Cuadro 3: Fuentes para la recolección de URLs ..................................................................................... 28 Cuadro 4: Distribución de datos para ambos escenarios. ........................................................................ 29 Cuadro 5: Selección de características ................................................................................................... 31 Cuadro 6: Atributos de los algoritmos .................................................................................................... 33 Cuadro 7: Matriz de confusión ............................................................................................................... 34 Cuadro 8: Resumen de revisión de literatura .......................................................................................... 36 Cuadro 9: Uso de características estáticas en la literatura ....................................................................... 38 Cuadro 10: Comandos de Splunk utilizados para completar el etiquetado ............................................... 42 Cuadro 11: Comandos de Splunk utilizados para hacer el agrupamiento ................................................. 42 Cuadro 12: Código SPL para la extracción de puntos ............................................................................. 44 Cuadro 13: SPL para la extracción de dígitos y vocales .......................................................................... 45 Cuadro 14: SPL para generar el vector de características TFIDF. ........................................................... 48 Cuadro 15: Creación de los modelos TFIDF y PCA ............................................................................... 49 Cuadro 16: Aplicación de los modelos TFIDF y PCA ............................................................................ 49 Cuadro 17: Código para analizar la exactitud de características .............................................................. 51 Cuadro 18: Código SPL para ajustar el modelo ...................................................................................... 54 Cuadro 19: Código SPL para aplicar el modelo ...................................................................................... 54 Cuadro 20: Resumen de resultados para el escenario A .......................................................................... 56 Cuadro 21: Resumen de resultados para el escenario B .......................................................................... 56 Cuadro 22: Comparación de algoritmos en MLTK con 12 características ............................................... 56 Cuadro 23: Resultado de predicciones correctas e incorrectas ................................................................ 57 viii Lista de figuras Figura 1: Etapas de aprendizaje automático ............................................................................................. 5 Figura 2: Estructura de la URL .............................................................................................................. 10 Figura 3: Etapas de aprendizaje automático ........................................................................................... 19 Figura 4: Beneficios de Splunk. Fuente: Cyberline . ............................................................................... 21 Figura 5: Lenguaje de Procesamiento de Splunk .................................................................................... 22 Figura 6: Flujo de Splunk MLTK........................................................................................................... 23 Figura 7: Entradas y salidas del clasificador ........................................................................................... 27 Figura 8: Análisis de riesgo anual. Fuente: Webroot y Carbonite en su reporte de Amenazas ................. 28 Figura 9: Distribución de datos para escenario A. .................................................................................. 30 Figura 10: Distribución de datos para escenario B. ................................................................................. 30 Figura 11: Flujo de extracción y análisis de características ..................................................................... 32 Figura 12: Flujo de aprendizaje automático ............................................................................................ 32 Figura 13: Resumen de la implementación de los modelos ..................................................................... 40 Figura 14: Distribución de datos para escenario A.................................................................................. 41 Figura 15: Muestra de datos para cada categoría .................................................................................... 42 Figura 16: Resumen de etapa de extracción para twitter.com .................................................................. 43 Figura 17: Extracción de característica de longitud ................................................................................ 43 Figura 18: Extracción de características de puntos y guiones .................................................................. 44 Figura 19: Extracción de características de vocales, consonantes y dígitos ............................................. 45 Figura 20: Extracción de característica de entropía................................................................................. 46 Figura 21: Extracción de característica de significado ............................................................................ 46 Figura 22: Extracción de característica de distribución bayesiana ........................................................... 47 Figura 23: Extracción de característica de bigramas y trigramas ............................................................. 48 Figura 24: Características de análisis de frecuencia ................................................................................ 49 Figura 25: Matriz de características ....................................................................................................... 50 Figura 26: Análisis de características según su exactitud y exactitud balanceada .................................... 51 Figura 27: Ejemplo de distribución de entropía y longitud ..................................................................... 52 Figura 28: Resumen de modelos según sus características ...................................................................... 53 Figura 29: Resumen de implementación y aplicación de MLTK ............................................................. 53 Figura 30: Matriz de confusión para el escenario A con bosques aleatorios ............................................ 70 Figura 31: Matriz de confusión para el escenario A con árboles de decisión ........................................... 70 Figura 32: Matriz de confusión para el escenario B con bosques aleatorios ............................................ 71 Figura 33: Matriz de confusión para el escenario B con árboles de decisión ........................................... 71 ix Lista de abreviaturas ML Machine Learning TTP Tactics, Techniques and Procedures APT Advanced Persistent Threat URL Uniform Resource Locator DNS Domain Name System DGA Domain Generation Algorithm PCA Principal Component Analysis TF-IDF Term frequency – Inverse document frequency C&C Command and Control ML Machine Learning TLD Top Level Domain SIEM Security Information and Event Management SPL Search Processing Language MLTK Machine Learning Toolkit RF Random Forest DT Decision Tree UT URL Toolbox Autorización para digitalización y comunicación pública de Trabajos Finales de Graduación del Sistema de Estudios de Posgrado en el Repositorio Institucional de la Universidad de Costa Rica. Yo,__Michelle Marie Cersosimo Morales____, con cédula de identidad __115750475____, en mi condición de autor del TFG titulado DESARROLLO DE UN MODELO DE DETECCIÓN DE URLS MALICIOSOS USANDO APRENDIZAJE AUTOMÁTICO SUPERVISADO. .Autorizo a la Universidad de Costa Rica para digitalizar y hacer divulgación pública de forma gratuita de dicho TFG a través del Repositorio Institucional u otro medio electrónico, para ser puesto a disposición del público según lo que establezca el Sistema de Estudios de Posgrado. SI NO * *En caso de la negativa favor indicar el tiempo de restricción: año (s). Este Trabajo Final de Graduación será publicado en formato PDF, o en el formato que en el momento se establezca, de tal forma que el acceso al mismo sea libre, con el fin de permitir la consulta e impresión, pero no su modificación. Manifiesto que mi Trabajo Final de Graduación fue debidamente subido al sistema digital Kerwá y su contenido corresponde al documento original que sirvió para la obtención de mi título, y que su información no infringe ni violenta ningún derecho a terceros. El TFG además cuenta con el visto bueno de mi Director (a) de Tesis o Tutor (a) y cumplió con lo establecido en la revisión del Formato por parte del Sistema de Estudios de Posgrado. FIRMA ESTUDIANTE Nota: El presente documento constituye una declaración jurada, cuyos alcances aseguran a la Universidad, que su contenido sea tomado como cierto. Su importancia radica en que permite abreviar procedimientos administrativos, y al mismo tiempo genera una responsabilidad legal para que quien declare contrario a la verdad de lo que manifiesta, puede como consecuencia, enfrentar un proceso penal por delito de perjurio, tipificado en el artículo 318 de nuestro Código Penal. Lo anterior implica que el estudiante se vea forzado a realizar su mayor esfuerzo para que no sólo incluya información veraz en la Licencia de Publicación, sino que también realice diligentemente la gestión de subir el documento correcto en la plataforma digital Kerwá. X 1 Capítulo 1: Introducción La distribución de ataques cibernéticos mediante protocolos web ha sido una manera, para sus actores, de evadir detección y filtrado de red al camuflarse entre la cantidad de tráfico legítimo existente [1]. Los protocolos web se hallan entre aquellos más utilizados para llevar a cabo la comunicación entre víctima-adversario [2], donde el 80% de las familias de malware usan este medio para iniciar sus procedimientos de comando y control sobre los sistemas comprometidos [3]. Tan solo en el 2020 el servicio de seguridad Quad9 bloqueó un promedio de 10 millones de dominios diariamente [4]. Estos dominios forman parte principal de una URL, identificando el nombre por el cual un humano se refiere a la dirección IP del recurso que busca acceder, este y muchos más componentes pueden caracterizar una URL como maliciosa o legítima. Para el 2021 las cifras de URL de alto riesgo aumentaron aludido por la transición de la presencialidad al teletrabajo ocasionado por la pandemia [5]. A pesar de la gran cantidad de sitios que son bloqueados diariamente, los atacantes siguen mejorando sus técnicas de evasión, por lo que se han realizado esfuerzos para mejorar el filtrado y bloqueo de estos ataques usando técnicas de aprendizaje automático ( [6], [7], [8], [9], [10], [11]). Los modelos de predicción basados en aprendizaje automático han ayudado a mejorar la capacidad de detección de los sistemas de monitoreo y presentan una alternativa de mayor escalabilidad, comparado a las tecnologías de bloqueo basadas en listas negras [10]. Estos modelos pueden dividirse en aprendizaje supervisado, el cual usa datos ya etiquetados para su entrenamiento, y el no supervisado el cual trabaja con los datos sin etiquetar. El aprendizaje supervisado logra mejores resultados en un menor tiempo [8], pero ambos requieren una correcta caracterización del conjunto de datos para poder diferenciar un comportamiento de otro. Estos patrones pueden ser extraídos gracias a que cuando una URL maliciosa revela su comportamiento, es inevitable que introduzca algunas características diferentes a las de un dominio legítimo [12]. La extracción de estas características juega un rol fundamental en los resultados de la predicción final, por esta razón proponemos una caracterización léxica para la construcción de un clasificador que pueda detectar los principales tipos de URL de alto riesgo incluyendo malware, phishing, spam y botnet usando aprendizaje automático supervisado. 2 1.1. Problema Los modelos de clasificación de URL maliciosas existentes pueden tener un alcance de predicción único o múltiple basado en las categorías maliciosas que conforman su conjunto de datos [13]. Los de alcance único se enfocan en predecir un comportamiento malicioso específico como sitios de phishing o de botnet. Aquellos con alcance múltiple en cambio trabajan con un conjunto de datos más variado y pueden clasificar que tipo de comportamiento malicioso es [12]. Este último enfoque es más realista, pues las organizaciones no sólo se ven afectadas por un único comportamiento malicioso y un modelo de detección debe poder clasificar múltiples ataques. Los estudios que detectan múltiples comportamientos maliciosos, sin embargo, son rígidos con respecto a los métodos de caracterización utilizados. La caracterización de URL usada por estos modelos dependen del uso de características basadas en la observación de los cambios que posee una URL en una ventana de tiempo, llamadas también características dinámicas ( [14], [6], [15]). Este tipo de caracterización es compleja y necesita almacenar cada estado en el tiempo para describir si un comportamiento es malicioso o no. Este método falla cuando hay URL compuestas por dominios con tiempos de vida cortos, más aún cuando se ha visto que las URL que forman parte de campañas maliciosas recientes tienen un tiempo de vida promedio de 21 horas [16], degradando así la relevancia de esa característica para la predicción final. Existen a su vez características léxicas que se basan en información presente de la hilera de caracteres de una URL, pero no existen modelos de clasificación que usen sólo características léxicas para poder predecir múltiples tipos de comportamientos maliciosos. Por esta razón, se busca responder con esta investigación la pregunta de si es posible obtener una alta exactitud en la detección de múltiples clases de URL maliciosas mediante un modelo de aprendizaje automático supervisado usando sólo caracterización léxica, con el fin de mejorar el procesamiento en la creación del modelo y evitar recolectar información a partir de la observación de cambios de URL en el tiempo. 3 1.2. Objetivos A continuación, se describe el objetivo general, así como los objetivos específicos que son abordados en esta propuesta. 2.1.1. Objetivo general Desarrollar un modelo de detección de URLs maliciosos usando aprendizaje automático supervisado. 2.1.2. Objetivos específicos 1. Identificar técnicas existentes para la caracterización y detección de tráfico de DNS mediante una revisión de literatura. 2. Implementar un clasificador con aprendizaje automático para identificar dominios legítimos y maliciosos. 3. Evaluar el clasificador implementado de acuerdo con su exactitud, precisión, recall y F1 para identificar clases de dominios legítimos y maliciosos. 4 1.3. Justificación Se estima que en los próximos años el porcentaje de URL maliciosas no sólo aumentará, sino que además los atacantes usarán estas URL de manera estratégica basada en los acontecimientos que suceden durante el año [5]. A esta fluctuación se le suma la innovación en técnicas para evadir detección, como los algoritmos de generación de dominios (DGA), la suplantación de dominios, el uso de tiempos de vida cortos, entre otros ( [17], [18], [19]). Por esta razón los modelos de clasificación de URL maliciosas deben poder detectar una variedad de comportamientos y tener la flexibilidad para adaptarse a diversos tipos de comportamientos maliciosos. Un clasificador que pueda adaptarse a estos cambios requiere de una caracterización ligera, para disminuir la cantidad de información necesaria para actualizar el modelo en tiempo real. En un contexto organizacional puede ayudar a mejorar la predicción de categorías maliciosas e influenciar el despliegue de acciones de bloqueo antes de que se materialice un ataque. En contraste a otros estudios, nuestro modelo usa características léxicas basadas en los caracteres de la URL, estas son rápidas de extraer y, dado que su recolección no depende del seguimiento de cambios en el tiempo, puede reducir la cantidad de datos a procesar y otorgar una mayor flexibilidad, para agregar o remover características según la innovación de los patrones por parte de los atacantes. Finalmente, los estudios actuales usan una combinación de herramientas para la creación de sus modelos, como lo son bases de datos y extractores de características ( [20], [14], [21] y [22]), así como librerías externas para su análisis y visualización ( [8], [9], [23], [24]). Para evitar esta división de procesos en múltiples herramientas se propone el uso de Splunk [25] para llevar a cabo todas las etapas del aprendizaje del modelo. 1.4. Estructura del documento El resto de esta propuesta se organiza de la siguiente forma: en la sección 2 expondremos trabajo relacionado con nuestra investigación. En la sección 3 se presenta el marco conceptual donde se describen algunos conceptos sobre el uso malicioso de protocolos de capa de aplicación, aprendizaje automático y Splunk. Posteriormente en la sección 4 explicaremos la metodología usada en este trabajo. Se presentan los resultados obtenidos en la sección 5 y finalmente las conclusiones en la sección 6. 5 Capítulo 2: Estado del arte En los estudios relacionados al tema de detección de URL maliciosas mediante aprendizaje automático, se identificaron cuatro etapas esenciales para explicar los avances en el área y diferenciar sus enfoques con nuestra investigación. En la etapa 1 se realiza la selección del conjunto de datos a trabajar, la etapa 2 incluye la extracción de las características a partir de los datos crudos, la etapa 3 es determinada por la técnica de aprendizaje a aplicar y finalmente la etapa 4 procede a evaluar en las distintas métricas el modelo generado. En la figura 1 se muestran tipos y ejemplos de cada una de estas etapas y son descritas en detalle a continuación. Figura 1: Etapas de aprendizaje automático • Selección de los datos: se refiere al conjunto de datos usado para entrenar el clasificador y posteriormente diferenciar cada URL entre maliciosa o legítima. En esta etapa, podemos clasificar los estudios existentes en dos: o Alcance de predicción único: usan conjuntos de datos compuestos de una sola categoría de URL maliciosa. A pesar de que nuestra investigación no usa un alcance único, el análisis de las características usadas en estos modelos puede enriquecer nuestro conjunto de características final. Entre los modelos de detección encontrados en esta área podemos listar los siguientes: Selección de datos Extracción de características Selección de técnica Evaluación DGA Phishing Malware Spam … Estático Dinámico Supervisado No Supervisado Híbrido Precisión Mixto F1-score Recall Exactitud 6 ▪ Botnets: Se encuentran los modelos de Wang et al. [9], Kelley et al. [10], Bao et al. [25] y Yadav et al. [26]. ▪ Phishing: Analizados en Bhoj et al. [27], Kumar et al. [17], Le Page et al. [28], Pradeepthi et al. [29] y Patil et al. [30]. ▪ Spam: En menor escala, pero disponibles en los modelos de Patil et al [30] y Henke et al. [31]. ▪ Malware: Abarcados ampliamente en Hajaj [18], Antonakakis et al [20], Bharadwaj et al. [32], Yan et al. [33], Wang et al. [34] y Wu et al. [22]. o Alcance de predicción múltiple: en este tipo de estudios el concepto de “URL malicioso” puede ser interpretado de múltiples maneras según su comportamiento y objetivo del adversario [13]. Aquí se usan una combinación de categorías de URL maliciosas con el fin de simular un escenario más realista asemejándose al ambiente que viven las organizaciones diariamente. Normalmente se usan las categorías de más alto riesgo según el estado actual del internet como lo son phishing, malware, contenido adulto, botnet, spam, entre otras. Podemos mencionar los modelos de Mahdavifar et al [6], Bilge et al [14] y Palaniappan et al. [15]. • Extracción de características: involucra la extracción de atributos a partir del conjunto de datos que puedan representar las diferentes categorías a predecir. La variedad de estas características ha sido documentada en múltiples revisiones de literatura ( [12], [13]), agrupándolas según su forma de extracción o contexto. Cheng et al. [12] las separa en estáticas y dinámicas según la dependencia de la información con respecto al tiempo. Por su parte Zhauniarovich et al. [13] usa tres dimensiones para agrupar características: según el dónde provenga la información extraída, la dependencia de recolección de información histórica y la relación entre dominios del mismo conjunto de datos. Nuestra investigación usa el agrupamiento de Cheng para diferenciar los enfoques existentes, tanto aquellos que usan solo características estáticas: ( [9], [10], [31], [30], [32], [22]) o una combinación de ambas ( [17], [20], [14], [21], [25], [27], [28], [35], [36]). A continuación, describimos algunas de las características estáticas usadas en los estudios relacionados al tema de investigación. 7 o Las URL de botnets usan generadores pseudoaleatorios o basados en diccionario, por lo que estudios basados en la detección de estas como el de Kelley et al. [10] y Yadav et al. [26] suelen aprovechar esa aleatoriedad para extraer características basados en frecuencia de caracteres y distribución de letras u entropía de la hilera. La longitud es una de las características más utilizadas en estudios de detección de botnets así como el número de dígitos. En menor medida, se han usado características basadas en el índice de Jaccard y la distancia de Levenshtein para comparar grupos de caracteres. o Para caracterizar las URL de malware se han usado también características léxicas como en el reciente estudio de Bharadwaj et al. [32] donde incluyen la longitud de diferentes secciones de la URL, extensiones del archivo referenciado en caso de existir, cantidad de dígitos, vocales y consonantes y aparición de la dirección IP. Hajaj [18] usa también la longitud, la entropía y el número de caracteres específicos consecutivos. Finalmente, Yan et al. [33] agregan el uso de palabras clave basadas en listas para discernir tendencias maliciosas. o Con respecto a la caracterización de URL de phishing, se encuentran los estudios de Kumar et al [17], Le Page et al. [28] y Pradeepthi et al. [29] en los que se destacan la aparición de la dirección IP, sustantivos desconocidos, palabras sensibles como “banca” o “login”, nombre de compañías, el número de puntos, delimitadores y guiones, número de argumentos, entre otros. o Para describir URL de spam, Henke et al. [31] resaltan la poca formalidad existente en la literatura para seleccionar características relevantes y realizan un análisis de efectividad para un modelo de clasificación de spam tomando en cuenta la evolución de 700 características iniciales a partir de signos de puntuación, cantidad de caracteres específicos y palabras encontradas, hasta su reducción a 300 características. o Finalmente, hay métodos de detección de dominios maliciosos basado completamente en el uso de características léxicas como el de Wu et al. [21] y su modelo FTPB. En este estudio se extraen características interesantes, como la proporción de la mayor cantidad de caracteres significativos, puntuación de n- gramas, longitud de los nombres del subdominio y número de intercambios de 8 caracteres alfanuméricos. Además, como su punto de partida es únicamente el dominio, expanden la cantidad de información al aplicar TF-IDF para extraer términos relevantes y proceden a aplicar un método de reducción de dimensiones al vector generado usando el método de análisis de componente principal (PCA). • Selección de la técnica: se refiere a los enfoques de clasificación utilizados y sus diferentes algoritmos. Estos enfoques pueden ser aprendizaje supervisado, aprendizaje no supervisado, un híbrido, entre otros. Los estudios existentes poseen una tendencia a usar algoritmos basados en árboles como bosques aleatorios (RF) y árboles de decisión (DT) ( [9], [25], [17], [28], [29], [20], [22]), pero también se han hecho aplicaciones con algoritmos de regresión logística (LR) [15], vecino más cercano o k-Nearest Neighbors (KNN) ( [27], [6]), redes neuronales (NN) [32], entre otros. En varios estudios hacen una comparación de algoritmos ( [17], [9], [28]) donde los algoritmos basados en árboles sobresalen obteniendo los mejores resultados en términos de exactitud. • Evaluación: comprende el tipo de métrica usada para evaluar los resultados de la clasificación. La mayoría de los estudios recopilados se enfocan en clasificar sitios legítimos de maliciosos en términos de exactitud, pero también se utilizan métricas de recall y la tasa de falsos positivos. Dado que nuestra investigación usa un conjunto de datos con varias categorías, nos enfocamos en los resultados obtenidos por estudios bajo esa misma hilera. o Mahdavifar et al. [37] usan aprendizaje automático para detectar dominios maliciosos en 3 categorías: spam, phishing y malware usando 32 características divididas en 3 grupos: 1) léxicas, 2) estadísticas históricas basadas en las respuestas de DNS y por último 3) información de fuentes externas como información del registrante, fecha de creación del dominio, etc. Alcanzan una exactitud del 94.8% aplicando KNN. Este estudio usa una alta cantidad de características significado en mayor cantidad de información por dominio y el uso de características externas normalmente posee costos asociados al uso de APIs para su recolección. 9 o Bilge et al. [14] introducen el sistema EXPOSURE para detectar dominios maliciosos en un conjunto de datos mixto de spam, malware, phishing, botnet, contenido adulto, entre otras. Extraen 15 características entre estáticas y dinámicas incluyendo características basadas en la respuesta de la consulta y el tiempo de vida de la petición, así como la longitud y la cantidad de dígitos. Obtienen un 98% de exactitud usando árboles de decisión. o Similar a EXPOSURE, Antonakakis et al. [20] proponen el sistema de reputación Notos, que usa también información de DNS histórica pasiva para recolectar tres categorías a lo largo de 41 características: de red, basadas en zona y basadas en evidencia. Usan listas de dominios previamente bloqueados por lo que su conjunto de datos es mixto y obtienen un 96% de exactitud utilizando bosques aleatorios. o Así mismo, Palaniappana et al. [15] usan un conjunto de datos con muestras de phishing, spam y malware, del cual extraen 17 características en tres grupos: basadas en información del dominio, basadas en características del sitio web y léxicas. Obtienen un 60% de exactitud usando el algoritmo de regresión logística. o Finalmente, en un trabajo anterior en Cersosimo et al. [38] se realizó una primera aproximación del tema dirigido a la detección de dominios únicamente y no URL. Por lo que fue necesario realizar un procesamiento inicial en el que se extrajeron los dominios de los sitios web en el conjunto de datos inicial. Se usaron 12 características estáticas para describir los dominios y se obtuvo un 88% de exactitud con bosques aleatorios. Resumiendo, la cantidad de estudios de predicción múltiple son menos comparados a los de predicción única, esto dado que la tarea de seleccionar un grupo de características para describir múltiples comportamientos es más compleja. Otro punto importante es que los estudios existentes han requerido tanto el uso de características estáticas como dinámicas cuando tratan de predecir conjuntos de datos con más de dos categorías. Finalmente vemos una tendencia en el uso de algoritmos basados en árboles al generar buenos resultados de predicción independiente del conjunto de datos seleccionado. 10 Capítulo 3: Marco conceptual A continuación, explicamos algunos conceptos de importancia para la investigación con respecto a los tipos de URL maliciosas seleccionadas, los enfoques de aprendizaje automático con sus etapas más importantes y concluimos esta sección describiendo cómo funciona Splunk y sus comandos. 3.1. URL maliciosas Las URL se utilizan para referirse a la ubicación de recursos de internet únicos. Cuando una URL se utiliza con fines maliciosos se entiende que fue creada intencionalmente para causar algún daño y posee un alto riesgo de amenaza para el usuario final. Las tecnologías de seguridad se basan en este riesgo como determinante para bloquear ciertas categorías o grupos de URL. Por ejemplo, aquellos sitios con categorías de malware y phishing son comúnmente asociadas a tener un alto riesgo y por ende se bloquean en tecnologías de filtrado [39]. Estas categorías no siempre están disponibles si el sitio no ha sido analizado o reportado anteriormente, por lo que mantener las listas actualizadas es uno de los mayores retos. Figura 2: Estructura de la URL En la figura 2 se muestra la estructura de una URL. Si se lee de izquierda a derecha, una URL incluye primero el esquema o protocolo, seguido del nombre de dominio y posibles subdominios con la extensión del dominio o Top Level Domain (TLD), terminando con la dirección a un determinado recurso o path. El dominio es una parte fundamental de la URL pues es el nombre otorgado al lugar en donde pueden accederse a los recursos de ese sitio web. Los nombres de dominio se apegan a una convención con respecto a su manera de escribirse: pueden constar solo de letras (A-Z), números (0-9) y signos de guión (-) y el primer carácter debe ser una letra. El fully 11 qualified domain name (FQDN) es el nombre del dominio completo del servidor albergando el recurso web, este nombre debe tener como mínimo 2 caracteres y máximo 255 caracteres, con un máximo de 63 caracteres por sección o etiqueta [40]. A su vez, es posible acceder al recurso web mediante su dirección IP directamente, por lo que algunas veces las URL pueden incluir la dirección IP y el puerto en caso de no utilizarse los puertos por defecto. Los atacantes pueden abusar de los protocolos web y albergar diferentes comportamientos maliciosos en URL. Los comportamientos más comunes son phishing, botnet, spam y malware ( [18], [12]). Para cada categoría hay técnicas comunes que son usadas por los atacantes en la construcción de su URL que pueden ayudar a diferenciarlas de una URL legítima. Podemos listar las siguientes: • Phishing: cambios de TLD, similitud de suplantación de marca, ofuscación mediante URL largas. • Spam: uso de palabras atrayentes, uso de identificadores únicos para evadir filtros de spam. • Botnets: algoritmos de generación automática (DGA), uso de Fast-Flux y Domain-Flux. • Malware: uso de redireccionamiento, incluye el nombre del archivo en sus URL de descarga, uso de IP para evitar resolución del dominio. Para comprender ampliamente el conjunto de datos y su selección de características, se explican a continuación sus principales comportamientos por categoría, agregamos además un resumen de las técnicas y ejemplos de URL para cada categoría en el cuadro 1. Cuadro 1: Ejemplo de URL maliciosas Categoría Ejemplo de URL Malware http://195.133.18.171/frggg.exe Botnet g1gqh760t2v2lc3uhom2v3o110ie2h.appsync-api.us-west-2.avsvmcloud.com Phishing http://amazon.com-verificationaccounts.darotob.com/Sign-in/5b60fcc60b36d1c3d Spam bsp42iv8wlefhh2.ru Legítimo www.newstimes.com 12 3.1.1. Phishing Las URL categorizadas como phishing contienen formularios o páginas de inicio de sesión falsas con el fin de engañar a los usuarios para suministrar información, comúnmente haciéndose pasar por sitios legítimos [27]. El objetivo principal de los atacantes es realizar robo de credenciales o información sensible para luego extorsionar o monetizar con la información a las víctimas. Una técnica común en la creación de sus dominios es usar dominios léxicamente iguales a dominios legítimos pero con TLD distintos para engañar a los usuarios, normalmente se les llama look-alike domains. Para mitigar esta técnica las compañías compran estos dominios para proteger su marca y redireccionan a los usuarios a la página principal, pero el costo de adquirir múltiples dominios es alto y no todas las compañías pueden hacerlo. También utilizan métodos como typosquatting o domainsquatting, en el que escriben sus sitios web de manera errónea deliberadamente (por ejemplo, amazn o facebok) [17]. Mandiant en su reporte sobre el impacto de las comunicaciones de comando y control, detalla el uso de esta técnica para suplantar la identidad de los cinco dominios más visitados en Alexa Top 100 y reporta más de 200 dominios intentando simular google.com con pequeños errores tipográficos como “gooqle” [19]. Otro patrón común en las URL de phishing es el uso de ofuscación [17], usan una gran cantidad de caracteres para generar sus URL, escondiendo así el dominio real del recurso web como se ve en el ejemplo de phishing en el cuadro 1. Finalmente, este tipo de URL suelen traer consigo el correo de la persona a la que fue dirigido el ataque luego de que esta hiciese click en la URL, para luego ser utilizado en un formulario autocompletado y simular que es una página previamente visitada. Encontrar caracteres “@” dentro de la hilera de consulta es un indicador sospechoso en esta categoría ( [30], [41]). 3.1.2. Spam En esta categoría los adversarios utilizan métodos para incitar el flujo de un usuario hacia un sitio no deseado usando palabras como “Dear Friend”, “Free sample”, “Brand new” o “Billion dollars” [42]. Estas URL pueden ser colocadas dentro de anuncios web, en el cuerpo del mensaje o en imágenes dentro de correos. Su meta es dirigir el flujo a sitios de estafas y fraude. A pesar de que sus métodos son oportunísimos, no suelen ser completamente aleatorios. Estos correos o 13 anuncios buscan generar interés del usuario para incitar a seguir el enlace por lo que es común que se utilicen nombres de productos o subscripciones reales. Este no es el único método de acción, también puede ser generado por un virus previamente instalado como lo hizo DNSChanger en la operación Ghost Click [43] al cambiar la configuración de DNS de la víctima por servidores falsos redireccionando el tráfico a sitios de publicidad, obteniendo casi 14 millones de dólares ilegalmente e infectando 4 millones de computadoras. Su principal objetivo es la monetización mediante publicidad usando sistemas de Pay-per-Click (PPC) generando así fraude o click-fraud, cuyo fin es obtener una ganancia malversada generada por un click que no fue dado intencionalmente por un usuario [44]. 3.1.3. Botnet Las URL clasificadas como botnet abarcan el comportamiento malicioso más común basado en el abuso de protocolos de aplicación [12]. En una botnet se construye un canal de control remoto o comunicación de comando y control (C&C) entre el servidor padre y los sistemas infectados. La mayor debilidad de una red de nodos bajo control es que necesita estrictamente comunicarse con el servidor que lleva el mando [12]. Por esto, los atacantes utilizan varios métodos para construir la comunicación sin ser detectados. Entre ellos pueden mencionarse Domain-Flux y Fast-Flux [12]. • Domain-Flux: es una tecnología basada en el uso de algoritmos de generación de nombres, que utilizan una gran cantidad de caracteres aleatorios para la creación de sus hileras. Por lo general utilizan el mismo algoritmo múltiples veces para tener un gran conjunto de sitios, de modo que puedan fácilmente rotar el control, y la máquina infectada intentará contactar a cada uno de estos hasta obtener resolución del dominio activo [26]. Esta técnica se utiliza para evitar ser agregados a listas negras o mantener una puntuación baja en cuanto a perfiles de riesgo, aunque ahora hay tecnologías que aumentan dicha puntuación basada en proximidad, pero dicha técnica se sale del alcance de esta investigación [12]. Inicialmente utilizaban caracteres aleatorios con probabilidades de aparición iguales para cada carácter por lo que era fácil denotar a simple vista, pero el avance de algoritmos de generación de 14 nombres basados en diccionario resuelve este defecto. Por ello, investigadores han optado por usar características extraídas de las palabras encontradas en el dominio. • Fast-Flux: es un método que cambia las relaciones entre nombres de dominios e IP, por lo que las peticiones a un dominio pueden devolver resultados diferentes para así ocultar la IP original del C&C. Entre sus principales características posee un tiempo de vida corto y la cantidad de resoluciones aparece más de una vez por lo que se pueden usar los registros A y la cantidad de registros NS asociados al dominio como un atributo en su identificación [12]. Las técnicas de Fast-Flux quedan fuera del alcance de esta investigación pues queremos evitar la recolección histórica de características dependientes de una ventana de tiempo determinada. 3.1.4. Malware Los atacantes usan sitios cuya infraestructura está pensada para la distribución de software malicioso que pueden ser virus, trojanos o hasta ransomware y spyware normalmente son sitios clasificados como malware por el alto riesgo al usuario final. Usualmente utilizan técnicas para evitar ser agregados a listas negras similares a las de botnets [18] pero sus patrones de dominio son más legibles. A su vez, sus ataques son más sofisticados y comúnmente usan más de una capa de comando y control en su infraestructura, por lo que pueden utilizar tanto dominios con tiempo de vida corto (short-haul) como dominios a largo plazo (long-haul) para mantener su actividad constante en caso de que uno de sus dominios sea detectado y bloqueado. Para los dominios con un tiempo de vida corto, suelen no tener una categoría asignada al ser aún desconocidos para la mayor parte del Internet por lo que suelen pasar el filtrado por categoría de herramientas de proxy o firewall. Su función es ser el primer salto para redireccionar el flujo a otros sitios de distribución y contenido de software malicioso intencionadas (drive-by downloads). Otra característica es que suelen ser prescindibles de modo que, si terminan siendo bloqueados los atacantes solo deben de generar nuevos dominios. Por otra parte, los atacantes más habilidosos suelen comprometer sitios de blogs y páginas descontinuadas para aprovecharse del tiempo de vida del dominio. Un dominio con más de 1 año de creación y una actividad histórica regular suele disminuir las sospechas o al 15 menos dificultar el análisis en un incidente. Por esta razón el uso de características basadas en categorías dadas por proveedores o basadas en la edad del dominio pueden ser fácilmente falsificadas por los adversarios. 3.2. Caracterización de URL La extracción de características se refiere al proceso de transformar datos crudos en características numéricas que puedan ser procesados mientras se conserva la información relevante del conjunto de datos original. Existen métodos para seleccionar o combinar estos datos en características y su objetivo es reducir la cantidad de datos a analizar, así como acelerar el aprendizaje de máquina [45]. En el caso de URL este concepto puede entenderse como al proceso de capturar el comportamiento de una URL basado en los atributos que la componen y poder representarlos numéricamente. Se acostumbra a usar operaciones matemáticas y estadísticas para su recolección, por ejemplo, conteo, promedios, entropía, entre otros. En la sección 2, se mencionaron varias revisiones de literatura características posibles para sitios maliciosos dependiendo de su tipo, ya sean estáticas o dinámicas. La caracterización de URL influye directamente en el resultado de la predicción del modelo, por lo que vemos importante resumir los tipos de características, mencionados en la sección 2, agrupados en la revisión de literatura de Cheng et al. [12]. En su investigación agrupan la extracción de características de acuerdo con su tiempo de recolección en dos tipos: estáticas y dinámicas. A pesar de que las características dinámicas alcanzan una buena exactitud en detectar URL maliciosas, generalmente requieren un alto grado de esfuerzo y tiempo para recolectarlas, y no son recomendables para análisis de tiempo real [32]. Por ello vemos relevante explicar la variedad de características existentes para entender sus diferencias. En la sección 3.2.1 describimos los tipos de características usados en la literatura y en la sección 3.2.2 el rol que poseen estas características en la predicción final según su relevancia. 16 3.2.1. Tipos de características La definición de características estática dada por Cheng la presenta como aquella que no se enfoca en los cambios dinámicos de un dominio en el tiempo, es decir que no posee una asociación entre la construcción del dominio y la puntualidad [12]. Según su clasificación se separan en 5 tipos: I. Basadas en la reputación de la IP o Se obtiene al analizar información disponible de la dirección IP asociada al dominio y se determina por transitividad que si una dirección IP ha sido clasificada como maliciosa entonces el actual dominio tiene altas posibilidades de ser malicioso. Ha sido utilizado por [18], [43] y [44] en sus análisis de tráfico de DNS. II. Basadas en los componentes léxicos o Se obtienen a partir de la hilera de caracteres que componen el nombre del dominio, como la longitud, la proporción de vocales y dígitos, el uso de palabras de diccionario, entre otras. Este tipo han sido utilizadas en su mayoría en estudios de detección de DGA ( [26], [36], [46]). III. Basadas en información de la resolución del dominio o Se obtienen al recolectar la distribución geográfica del dominio a partir del país y región y sistemas autónomos (ASN), dado que los ataques suelen dirigirse a varias regiones de forma oportunista, lo cual es anómalo pues las resoluciones suelen estar más concentradas por geografía. Este tipo de características han sido usadas por [36], [35] y [47]. IV. Basadas en información de registro o Whois o Se obtienen al consultar la base de datos de Whois, la cual contiene una amplia lista de registros con información que pueden identificar al dueño del dominio e información de contacto, así como información de registro del dominio. Normalmente los dominios maliciosos usan servicios de hosting gratuitos como otra técnica de evasión. Estas han sido utilizadas por [35] y [48]. V. Basadas en información de Passive DNS 17 o La información de passive DNS es información histórica de los registros de consultas de DNS, las cuales pueden determinar técnicas de atacantes como Fast- Flux. Estas han sido utilizadas por [49], [50], [20], [14] y [21]. Por su parte, las características dinámicas necesitan un periodo de observación para evaluar y aproximar un patrón de comportamiento [12]. En otras palabras, se necesita monitorear y analizar los cambios en la información del dominio en una ventana de tiempo. I. Tasa de crecimiento de las direcciones IP o La cantidad de apariciones distintas de direcciones IP asociadas a un dominio, que muestran la variación del sitio en el tiempo. Estas han sido utilizadas por [21]. II. Basadas en los cambios del tiempo de vida (TTL) o El TTL hace referencia a la cantidad de tiempo que debe permanecer en caché un determinado dominio antes de actualizarse automáticamente. Los atacantes obtienen una mejor disponibilidad de sus dominios al usar valores de TTL más pequeños y éstas han sido usadas por [21], [14]. III. Basadas en la consulta o Se obtienen a partir de la tasa de crecimiento en los cambios en la consulta, ya sea que muy rápidamente incremente o decrezca por el uso de métodos de Domain- Flux. Éstas han sido utilizadas por [14], [35], [20], [36] . 3.2.2. Relevancia Como se mencionó en la sección 3.2, los problemas de clasificación usan técnicas de selección de características para reducir el espacio de características y acelerar el procesamiento y aprendizaje del algoritmo ( [45], [31]), esta selección puede ser manual o automática, y es determinado por la relevancia de cada una de las características. La selección impacta la calidad final del clasificador en términos de exactitud y robustez [13]. A pesar de que la relevancia de una característica no está formalmente definida en la literatura, Henke et al. [31] la definen como: 18 “Una característica 𝑓𝑖 es suficientemente relevante si el alto rendimiento de la clasificación (según todas las características) decrece significativamente cuando 𝑓𝑖 se elimina del conjunto de características actual. Por otra parte, una característica es débil de relevancia cuando la contribución de esta característica en la exactitud de la clasificación es variable o inexistente”. Aquellas características que describen adecuadamente el conjunto de datos pueden contribuir al éxito del enfoque de aprendizaje, por el contrario, características que no aportan conocimiento de su categoría pueden arruinar los algoritmos de detección por más válido que sea su aplicación [13]. A pesar de la importancia de éstas en la predicción, no es fácil evaluar que tan robusto es una selección de características de forma sistemática por la falta de un marco de evaluación cuantitativo y cualitativo de un conjunto de características [13], por lo que algunos estudios han realizado análisis de relevancia para el conjunto de características seleccionado ( [31], [6]). La selección manual de características relevantes es una tarea retadora e involucra el conocimiento de los comportamientos a describir y un conjunto de datos representativo. Pocos estudios realizan un análisis de efectividad luego de la selección de sus características ( [31], [9]), siendo un proceso que se ha señalado como efectivo durante la selección de características. 3.3. Aprendizaje automático La clasificación es un proceso de aprendizaje automático que categoriza un conjunto de datos determinado en clases [11]. Dentro de los problemas de clasificación, existen dos enfoques principales, los cuales son aprendizaje supervisado y no supervisado. El aprendizaje supervisado requiere un conjunto de datos completamente etiquetado, donde estas etiquetas pueden entenderse como el resultado esperado o clase de dicho conjunto de datos [7]. El aprendizaje no supervisado busca determinar patrones, estructuras o conocimiento en datos no etiquetados y no requiere entrenamiento. Ambos poseen ventajas y desventajas en comparación al otro. El uso de aprendizaje supervisado depende del conjunto de datos con el que se entrenó y su correcto etiquetado, de 19 manera que reduce su alcance para detectar nuevos patrones. Segundo, el costo de etiquetar los datos es alto y depende de conocimiento experto o colección previa de fuentes confiables, que implica un gran trabajo manual. A pesar de estas desventajas, este enfoque es el más usado en la comunidad científica, dado que suele dar mejores resultados en comparación al no supervisado en un menor tiempo [8] [13]. Además, las desventajas señaladas en cuanto a dificultad de recolección han ido disminuyendo por la gran cantidad de bases de datos disponibles públicamente y la mejora de sus métodos de extracción mediante APIs. Ambos métodos de clasificación fueron comparados en [51] y los resultados favorecen en términos de exactitud al aprendizaje supervisado. Por las cualidades mencionadas, en nuestra investigación se usa aprendizaje automático supervisado para crear nuestro clasificador. El proceso de clasificación de URLs usando este tipo de aprendizaje incluye ciertas etapas necesarias para la predicción resumidas en la figura 3, entre ellas la preparación del conjunto de datos, la recolección de características explicadas en la sección 3.2 y la selección de algoritmos para construir el modelo de aprendizaje explicada a continuación. Figura 3: Etapas de aprendizaje automático 20 3.3.1. Clasificadores basados en árboles Como parte de los modelos de aprendizaje supervisado existen una variedad de algoritmos que aprenden a partir de las características extraídas y modelan las relaciones entre estas entradas y la predicción final. En la sección 2 se destacaron los algoritmos basados en árboles como aquellos con mejores resultados tanto en clasificadores binarios como clasificadores de múltiples clases. Con base en esta información se seleccionaron los algoritmos de árboles de decisión (DT) y bosques aleatorios (RF) para crear nuestro modelo y entrenar el clasificador, y ambos sonn explicados a continuación. o Árboles de decisión: Este tipo de algoritmo construye un árbol para categorizar datos en clases mediante un conjunto de reglas. La separación de sus nodos se basa en la información ganada anteriormente y en la entropía hasta alcanzar un determinado resultado. Usa recursividad para Estos algoritmos tienden a tener un sobreajuste (overfitting) cuando son entrenados en exceso. Además, pequeñas variaciones de los datos pueden generar un árbol completamente diferente [11]. o Bosques aleatorios: Este tipo de algoritmo es formado por muchos árboles de decisión compuestos de diferentes conjuntos de datos. El modelo final se basa en el promedio de múltiples árboles de decisión ya entrenados. En general posee un mejor rendimiento que los árboles de decisión y resuelve problemas de sobreajuste del modelo [11]. 3.4. Splunk Splunk es una solución de manejo de eventos y de seguridad de la información (SIEM) que permite monitorizar y analizar datos de distintas aplicaciones, sistemas e infraestructuras [25]. Provee una plataforma de unificación en la que se puede indexar datos y realizar búsquedas mediante su lenguaje de procesamiento de búsqueda. Más allá de las búsquedas sobre los datos indexados, permite correlacionar información para facilitar el monitoreo y mejorar la visibilidad operacional. En la figura 4 se muestran beneficios de la herramienta alrededor de una variedad de negocios, aplicaciones y tipos de monitoreo de infraestructura. 21 Figura 4: Beneficios de Splunk. Fuente: Cyberline [52]. El uso de Splunk en problemas de clasificación en la literatura se ha usado mayoritariamente para la extracción de características y el uso de sus visualizaciones. Jaworski [53] usó Splunk y su módulo de URL Toolbox (UT) en la detección de DNS tunneling para extraer diferentes características del dominio, como su entropía mediante los comandos de ut_parse, ut_domain y ut_shannon. También usa la función geostats para agregar características geográficas basadas en la ubicación de la IP. Por otra parte, Su et al. [23] lo usan para identificar ataques de denegación de servicio al determinar si el tráfico pertenece o no a un ataque según su modo de conexión y el número total de paquetes. En este estudio el uso de Splunk es acotado a sus visualizaciones y a sus comandos de conteo y desarrollo de estadísticas. Ninguno de los estudios existentes usa las capacidades de aprendizaje automático otorgadas por Splunk posterior a la extracción de características. La aproximación más cercana al tema se encuentra en un caso de estudio para la detección de familias de DGA publicado en un reporte técnico por la misma compañía Splunk [54], en el que describe la extensión de las capacidades de la plataforma usando diferentes algoritmos de clasificación y comparándolos. A continuación, explicamos más a fondo el lenguaje de procesamiento de Splunk y su módulo para realizar aprendizaje automático. 22 3.4.1. Search Processing Language (SPL) El lenguaje de procesamiento de búsqueda de Splunk (SPL) abarca todos los comandos de búsqueda y sus funciones, argumentos y clausulas. Su sintaxis es basada en el lenguaje de Unix y SQL y pueden realizarse filtros, búsquedas, insertar, modificar y eliminar datos [55]. En esta investigación se hacen uso de algunos términos para referirse a la información indexada que vemos importante describir y se muestran señalados en la figura 5 usando un ejemplo de una búsqueda. Figura 5: Lenguaje de Procesamiento de Splunk Una consulta consiste en un programa escrito en SPL, consistiendo en etapas separadas por el símbolo “|” llamado “pipe” el cual indica que los resultados de la búsqueda serán procesados por el componente anterior. En el ejemplo, los comandos luego de este símbolo serán aplicados a los resultados filtrados luego de buscar la información en el índice con datos de DNS y específicamente que tengan como dominio a twitter.com. Un comando le especifica a Splunk que tipo de acción debe ser aplicada sobre los datos. Una función explica el cómo se agruparán, visualizarán o procesarán los datos a los que se aplica el comando. Finalmente, una cláusula especifica cómo se definen o agrupan los resultados de la búsqueda. 3.4.2. Machine Learning Toolkit (MLTK) Para nuestra investigación, usamos un módulo dentro Splunk llamado Splunk Machine Learning Toolkit (MLTK). MLTK permite realizar aprendizaje automático a partir de la información indexada en la plataforma. Por lo que al alimentarlo con las diferentes clases de URLs maliciosas y legitimas se pueden aplicar operaciones estadísticas para convertir la información de forma textual a numérica, obteniendo así las características necesarias para aplicar aprendizaje automático dentro de la plataforma. Este módulo incluye modelos de clasificación basados en las librerías de sci-kit, NumPy y Statsmodels, lo cual facilita la aplicación de algoritmos de 23 aprendizaje removiendo las barreras de programación. También facilita la replicación de los resultados para otros investigadores pues el modelo puede exportarse y compartirse listo para ser usado en otra instancia de Splunk con otros datos. En esta investigación se usan una variedad de comandos y funciones de SPL para la construcción del clasificador, pero el módulo de MLTK trae consigo comandos más especializados para el uso de aprendizaje automático. En la figura 6 observamos la interacción de los comandos fit y apply, los cuales son los comandos más importantes para el desarrollo de aprendizaje automático. Estos comandos entrenan y ajustan el modelo de aprendizaje basado en el algoritmo seleccionado. La funcionalidad de estos comandos es clave para la creación de nuestro clasificador y extraer características por lo que se describen a continuación en el cuadro 2. Figura 6: Flujo de Splunk MLTK Cuadro 2: Comandos de Splunk Comando Definición fit Ajusta y aplica un modelo de aprendizaje automático a los resultados de búsqueda. La sintaxis es la misma para el aprendizaje supervisado (datos etiquetados) y no supervisado (datos no etiquetados). apply Calcula predicciones para los resultados de búsqueda actuales en función de un modelo que fue aprendido por el comando fit. sample Muestra algunos eventos aleatoriamente del conjunto de datos total. analyzefields Como comando de informes, analyzefields consume todos los resultados de entrada y genera una fila para cada campo numérico en los resultados de salida. Los valores en esa fila indican el desempeño del comando analyzefields al predecir el valor de un classfield. Para cada evento, si la distribución condicional del campo numérico con la mayor probabilidad z coincide con la clase real, el evento se cuenta como exacto. La probabilidad z más alta se basa en el campo de clase. stats Calcula estadísticas agregadas, como por ejemplo obtener un promedio, contar y sumar, sobre el conjunto de resultados. 24 Comando Definición lookup Son tablas de datos que enriquecen los resultados de una búsqueda al ser utilizados en consultas. Tienen combinaciones campo-valor. Para fines de esta investigación nuestros lookups están basados en archivos CSV. Pueden existir input y output lookups en el que los primeros son usados para buscar valores de la tabla y el segundo es para escribir valores en la tabla. fields Permite escoger cuales columnas desplegar por cada uno de los eventos eval Calcula una expresión y coloca el valor resultante en un campo de resultados de búsqueda. rex Permite realizar expresiones regulares ´macro´ Un macro es un objeto de Splunk que representa de manera equivalente una expresión de SPL y es una forma de reutilizar código SPL al hacer una referencia a donde ese código vive. Estos objetos son referenciados al ser llamados entre comillas como por ejemplo `ut_countset(domain, set)`. spath El comando spath permite transformar el valor de campos con información estructurada (como lo es el formato JSON) para convertirlo en columna y filas por cada campo-valor. 25 Capítulo 4: Metodología A continuación, se detalla la metodología que se siguió en este trabajo. Primero se realizó una revisión de literatura, descrita en la sección 4.1. En la sección 4.2 se detallan los pasos para implementar el clasificador. Y concluimos con la metodología creada para la evaluación del modelo en la sección 4.3. 4.1. Revisión de literatura (Objetivo Específico 1) A partir de los trabajos de clasificación descritos en la sección 2 se realizó una revisión de literatura para determinar el estado actual de conocimiento durante el proceso de aprendizaje de un clasificador de URLs maliciosas. Se recopilaron los diversos enfoques usados durante las etapas de aprendizaje automático incluyendo la selección de los datos, la extracción de características, la construcción del clasificador y la evaluación del modelo. Para cada uno de los artículos se recolectaron los siguientes datos: • El alcance de la predicción, en cuanto a tipos de categorías maliciosas involucradas en su conjunto de datos. • La cantidad de características y su tipo ya sea estático o dinámico según el perfilado realizado por Cheng et al. [12] y descrito en la sección 2. • El algoritmo con mayor exactitud en caso de compararse con otros y su resultado de predicción. Posterior a la recolección mencionada, se realizó un análisis para cada una de las siguientes variables: • Alcance de clases maliciosas: Describiendo la variedad de tipos de comportamientos maliciosos definidos como meta para su clasificador. • Análisis de selección de características: Describiendo la frecuencia de uso para una característica particular en la literatura y si se hizo algún análisis de relevancia posterior a la selección. 26 • Análisis de resultados: Resaltando el algoritmo que obtuvo mejores resultados para el alcance de la investigación. Para la selección inicial de las características, se realizó un análisis de características estáticas usadas en los trabajos recopilados para determinar la frecuencia de uso en la literatura. Además, por lo mencionado en la sección 3.2.2 pocos estudios realizan un análisis de las características luego de su selección a pesar de las ventajas en tiempo y rendimiento que posee este proceso. Por lo que incluimos un análisis de estabilidad para descartar aquellas características que no sean relevantes en la predicción del modelo. Finalmente, a partir de la recolección de resultados, se seleccionaron dos de los algoritmos con mejores resultados de predicción para aplicar y medir nuestro modelo e incluimos una comparación con los algoritmos disponibles en Splunk para problemas de predicción categóricos con el fin de validar la base teórica de selección de estos algoritmos. 4.2. Implementación del clasificador (Objetivo Específico 2) El proceso para aplicar aprendizaje automático a la predicción categórica está ampliamente definido. No obstante, tomamos en consideración las etapas detalladas en revisiones de literatura existentes relacionadas a la detección de URL maliciosas [13], [11]. A continuación, describimos las etapas seguidas en la implementación de nuestro clasificador, explicamos brevemente su función y mostramos en la figura 7 un ejemplo de las entradas esperadas y las salidas del clasificador. 27 Figura 7: Entradas y salidas del clasificador I. Preparación: Este paso involucró la selección de los datos, el etiquetado en sus diversas clases (malicioso y legítimo) y subclases (phishing, malware, spam y DGA). II. Identificación y extracción: En este paso se recopilaron las características que describen el conjunto de datos durante el entrenamiento. También se incluyó el análisis de relevancia para estas características. III. Implementación: En este paso se creó el modelo usando dos algoritmos de clasificación basados en árboles seleccionados según el análisis de literatura para problemas de clasificación multiclase. 4.2.1. Preparación del conjunto de datos Se recolectaron URL maliciosas y legitimas a partir de tres fuentes disponibles públicamente tomadas como la base de la verdad (ground truth) en esta investigación y resumidas en el cuadro 3. De estas fuentes se recolectaron cuatro clases de URL maliciosas: malware, spam, phishing, DGA además de URL legitimas. Las URL de phishing, spam y benignas se tomaron del conjunto de datos desarrollado por el proyecto de inteligencia de ciber amenazas de Bell Canada en 2021 (CIC-Bell-DNS) [37]. Para las URL de malware se tomaron de la base de datos de abuse.ch URLHaus creado por el Instituto de Ciberseguridad e Ingeniería (ICE) de la Universidad de Ciencias Aplicadas de Bern en Suiza (BFH) [56] que permite descargar URL activas de malware 28 y reflejar así el estado actual de Internet. Finalmente, para las URL de DGA, se tomaron los indicadores de compromiso usados en el ataque de Sunburst [57] en el 2020 por ser considerado uno de los ciberataques más sofisticados en los últimos años, compilados por Splunk y FireEye para uso público [58]. Cuadro 3: Fuentes para la recolección de URLs Clase Subclase Fuente Bases de datos Malicioso Malware ICE-BFH-2022 Abuse.ch URLHaus Malicioso Spam CIC-Bell-DNS2021 jwspamspy Malicioso Phishing CIC-Bell-DNS2021 OpenPhish, PhishTank Malicioso DGA FireEye/Splunk Sunburst IOC List Legítimos Legítimos CIC-Bell-DNS2021 Majestic Million Desbalanceo de clases Con base en la revisión de literatura, el tipo de balanceo usado en las clases del conjunto de datos puede afectar la predicción del modelo. El tráfico legítimo supera al tráfico malicioso global de internet, por lo que el desbalanceo está intrínseco en los conjuntos de datos usados en enfoques de clasificación de sitios maliciosos [13]. Por esta razón se plantearon dos escenarios con dos distribuciones diferentes de URL maliciosas y legitimas para simular el comportamiento fluctuante de los atacantes y como se comportaría el modelo ante menor o mayor cantidad de sitios maliciosos. Figura 8: Análisis de riesgo anual. Fuente: Webroot y Carbonite en su reporte de Amenazas [5]. 0% 20% 40% 60% 2018 2019 2020 2021 Po rc en ta je d e si ti o s m al ic io sa s Año Tendencias en el tráfico malicioso 29 Los escenarios se construyen a partir de las tendencias del tráfico malicioso según los reportes de amenazas de los últimos 4 años publicados por Webroot [5]. Este reporte anual comprende un análisis de URL de alto riesgo basado en el procesamiento de 4.5 billones de peticiones diarias. Entre sus resultados obtuvieron que el 40% del total del tráfico analizado para el año 2018 fue malicioso, 25% para el año 2019 y 8% para el año 2020. Para este último año, la disminución en la cantidad de URL maliciosas se le atribuye a la pandemia de COVID-19. Estos números incrementaron a 16% para el año 2021. En la figura 8 se muestra la tendencia de URL de alto riesgo en los últimos cuatro años. Con base en estos datos, para el primer escenario “A” se usó el porcentaje de URL maliciosas del año 2021, que fue de un 16%. Para el escenario “B” se promediaron las cantidades de URL maliciosas de los años 2018 y 2019, que fue de un 33%. Un resumen de estos escenarios se describe en el cuadro 4. Para ambos escenarios se incluyó un número mayor de URL de phishing dado que el 81% de todas las URLs de alto riesgo descubiertas en el 2020 fueron categorizadas como phishing, y 66% para el 2021 [5]. Cuadro 4: Distribución de datos para ambos escenarios. Clase/Subclase Legítimo DGA Malware Phishing Spam Total Escenario A (71428 total de URL) Legítimo 60000 0 0 0 0 60000 Malicioso 0 1000 3000 5000 2428 10428 Escenario B (88439 total de URL) Legítimo 60000 0 0 0 0 60000 Malicioso 0 1743 8442 10000 8254 28439 Para el procesamiento y agrupamiento se extrajeron los conjuntos de datos en formato CSV por cada una de las categorías. Estos archivos fueron importados en Splunk y se utilizaron los comandos tipo lookup para leer y procesar el etiquetado y limpieza de los datos. La salida de este paso resultó en una tabla inicial con todas las URL y su respectiva clase y subclase. En las figuras 9 y 10 se observa la distribución de URL para cada clase y subclase en ambos escenarios. 30 Figura 9: Distribución de datos para escenario A. Figura 10: Distribución de datos para escenario B. 4.2.2. Identificación y extracción de características En el estado del arte se mencionó que el proceso de selección de características es una tarea retadora por su impacto en la exactitud y robustez de la clasificación. Por ello, en la revisión de literatura se recolectaron las características estáticas usadas y se seleccionaron aquellas con mayor frecuencia de uso. De este análisis se recolectaron 12 características de tipo léxicas usando funciones de conteo y de análisis estadístico resumidas en el cuadro 5. 31 Cuadro 5: Selección de características ID Nombre Algoritmo o función de SPL C1 Longitud del dominio Len C2 Cantidad de puntos ut_countset C3 Cantidad de guiones ut_countset C4 Cantidad de consonantes Mvcount, max C5 Cantidad de vocales Mvcount, rex C6 Cantidad de dígitos Mvcount, rex C7 Entropía de Shannon ut_shannon C8 Distribución Bayesiana ut_bayesian C9 Significado basado en diccionario ut_meaning C10 Análisis de componente PC1 TFIDF, PCA C11 Análisis de componente PC2 TFIDF, PCA C12 Análisis de componente PC3 TFIDF, PCA Para expandir la cantidad de información a partir de la URL se aplicó Term Frequency Inverse Document Frequency (TFIDF) para generar un vector de bigramas y trigramas a partir de cada URL y posteriormente se hizo un análisis de componente principal aplicando Principal Component Analysis (PCA) para reducir el número de dimensiones y mantener solamente los grupos más representativos del conjunto de datos. La salida de este paso resultó en una nueva matriz con valores numéricos representando cada característica, llamada la matriz de las características (feature matrix). Finalmente, para asegurar que las características fueran relevantes para el modelo se aplica el comando analyzefields para analizar la estabilidad de la relación entre los valores de la clase a predecir y los valores del conjunto de características. Este análisis permitió descartar aquellas características cuya relevancia en la predicción fue baja. En la figura 11 puede verse un diagrama de flujo de esta etapa. 32 Figura 11: Flujo de extracción y análisis de características 4.2.3. Implementación del clasificador Para la implementación del clasificador se usó la integración de MLTK disponible en Splunk, que permite predecir campos categóricos. Esta herramienta usa algoritmos de clasificación para aprender tendencias en datos que pertenecen a una categoría u otra. Se usaron comandos de SPL para ajustar (fit) y aplicar (apply) estos algoritmos de clasificación. De acuerdo con nuestra revisión de literatura, se seleccionaron dos algoritmos de clasificación que han demostrado tener una buena exactitud al aplicarse en problemas de clasificación de URL: árboles de decisión (DT) y árboles aleatorios (RF) a los dos escenarios descritos en la sección 4.2.1. La figura 12 muestra el flujo de esta etapa. Figura 12: Flujo de aprendizaje automático F1 1 F2 1 F3 1 Fn F4 1 … F1 1 F2 1 F3 1 Fn … Análisis de Relevancia Clase Subclase URL Malware Malicioso url1 Malicioso Legítimo Legítimo url2 urln Phishing … … … F1 1 F2 1 F3 1 Fn F4 1 … Escenario A 16% malicioso Árboles aleatorios Árboles de decisión Escenario B 33% malicioso F1 1 F2 1 F3 1 Fn F4 1 … B A 33 Para DT se usó Gini como criterio para medir la calidad de las divisiones (splits) de las características. Para el caso de RF se usaron 10 árboles en el bosque o estimadores (n_estimators). Ambos algoritmos se configuraron similar en cuanto a la profundidad del árbol, de manera que sus nodos se expanden hasta que la totalidad de las hojas sean puras (max_depth) y ambos usan todas las características (max_features). En el cuadro 6 se muestra un resumen de esta configuración. Cuadro 6: Atributos de los algoritmos DT Criterion Gini Max_depth auto Max_features auto RF N_estimators 10 Max_depth auto Max_features auto 4.3. Evaluación y análisis (Objetivo Específico 3) Para la evaluación, se midieron los resultados de las predicciones usando cuatro métricas: exactitud (accuracy), precisión, sensibilidad (recall) y F1 [22]. A pesar de que muchos estudios usan solamente la métrica de exactitud en su evaluación, en nuestro trabajo se tomó en consideración las limitaciones ya conocidas sobre la paradoja de la exactitud. Esta paradoja dice que la exactitud falla en mantener la integridad de la confianza en el resultado cuando se manejan clases desbalanceadas [59]. Por esto, es recomendable incluir métricas como F1 [13] que combina precisión y recall para mantener una mejor confiabilidad de los resultados. La exactitud mide el porcentaje de predicciones correctas del modelo, su fórmula se representa como la relación entre las detecciones positivas y el total de observaciones realizadas. La precisión por su parte mide la calidad del modelo y su fórmula se representa como la relación entre las predicciones realizadas correctamente y el total de observaciones. El recall mide cuantas del total de las muestras fueron identificadas satisfactoriamente y su fórmula es representada por la relación entre las predicciones realizadas correctamente y las observaciones correctas en la predicción. Finalmente, F1 es el promedio de la precisión y el recall, que ayuda a comparar el rendimiento combinado de estas dos métricas [22]. Splunk permite aplicar cada una de estas métricas posterior 34 al entrenamiento del modelo usando las funciones incluidas en el módulo de métricas de scikit- learn [60]. A continuación, las ecuaciones 1, 2, 3 y 4 muestran las fórmulas de estas métricas. 𝐸𝑥𝑎𝑐𝑡𝑖𝑡𝑢𝑑 = TP + TN TP + FP + TN + FN (1) 𝑃𝑟𝑒𝑐𝑖𝑠𝑖ó𝑛 = TP TP + FP (2) 𝑅𝑒𝑐𝑎𝑙𝑙 = TP TP + FN (3) 𝐹1 = 2 ∗ Recall ∗ Precisión Recall + Precisión (4) Estas métricas están relacionadas a la clasificación errónea de las clases, que son basadas en falsos positivos, falsos negativos, verdaderos positivos y verdaderos negativos de la cual está compuesta una matriz de confusión [7]. La matriz de confusión permite la visualización del desempeño del modelo en términos de aciertos y errores luego de pasar por el proceso de aprendizaje. En esta matriz cada columna muestra el número de predicciones de cada clase, mientras que cada fila muestra el número instancias reales de cada clase. A continuación, describimos los posibles resultados de una predicción y su agrupamiento dentro de la matriz de confusión como se muestra en el cuadro 7. Cuadro 7: Matriz de confusión Resultado de la clasificación Negativo Positivo Clase por predecir Negativo Verdaderos Negativos Falsos Positivos Positivo Falsos Negativos Verdaderos Positivos o Verdadero positivo (TP): La predicción de modelo fue positiva y originalmente era positiva. o Falso positivo (FP): La predicción de modelo fue positiva, pero originalmente era negativa. o Verdadero negativo (TN): La predicción de modelo fue negativa y originalmente era negativa. o Falso negativo (FN): La predicción de modelo fue negativa pero originalmente era positiva. 35 En esta sección se describieron los pasos para formular la base de conocimiento, implementar el clasificador y finalmente evaluarlo. En la siguiente sección mostramos los resultados obtenidos para cada uno de estos pasos. 36 Capítulo 5: Resultados A continuación, se presentan los resultados obtenidos para cada uno de los objetivos de esta investigación, iniciando por la revisión de literatura, seguido de la implementación del clasificador y su evaluación. 5.1. Revisión de literatura Para nuestra revisión se recolectaron estudios publicados en la última década desde el año 2012 al 2022 relacionados a la clasificación de dominios o URL. En el cuadro 8 presentamos un resumen de esta revisión. Cuadro 8: Resumen de revisión de literatura Alcance Clases Maliciosas Caracteristicas Resultados DGA PH SP MW Tipo Cantidad Algoritmo Exactitud Referencia Alcance reducido Wang [9] S 5 RF 97% Kelley [10] S 4 CLIP* 82% Bao [25] S-D 265 DT 98% Bhoj [27] S-D 3 KNN 95% Kumar [17] S-D 26 RF 98% Le Page [28] S-D 19 DT 95% Pradeepthi [29] S-D 9 DT 97% Patil [30] S 12 SVM NS Henke [31] S 300 SVM NS Hajaj [18] S-D 9 ELM 98% Antonakakis [20] S-D 41 RF 96% Bharadwaj [32] S 14 NN 89% Yan [33] S-D 8 NN 97% Wang [34] S-D 16 CB 98% Wu [22] S 9 RF 99% Alcance múltiple Mahdavifar [6] S-D 35 KNN 98% Palaniappana [15] S-D 17 LR 60% Bilge [44] S-D 15 DT 98% Cersosimo [38] S 12 RF 88% Este trabajo S 9 RF 98% NS: No especifica o utiliza otra métrica. Tipo: S (Estáticas), D (Dinámicas) Clases: DGA (botnet), PH (Phishing), SP (Spam), MW (Malware) Algoritmos: Random Forest (RF), Decision Tree (DT), K-Nearest Neighbors (KNN), Logistic Regression (LR), CatBoost (CB), Extreme Learning Machine (ELM), Neural Networks (NN), Support-vector machines (SVM), algoritmo nombrado por autor (*) 37 Para cada artículo se recolectó el alcance de su predicción con respecto a los comportamientos maliciosos principales: DGA, Phishing, Spam y Malware. A su vez, se recolectaron los enfoques de selección de características para dividirlas en estáticas (S) y dinámicas (D) o el uso de una combinación de ambas (S-D) con base a lo descrito en la sección 2. Finalmente, según los resultados obtenidos se recolectó el algoritmo con mayor exactitud (en caso de utilizar varios algoritmos) y su resultado. A continuación, realizamos un análisis para cada una de estas variables y concluimos esta sección con un resumen de lo encontrado en esta revisión. I. Análisis de alcance de predicción (único vs múltiple) Según el resumen del cuadro 8, la mayoría de los estudios (83% del total de los estudios revisados), se enfocan en la detección de un solo tipo de URL maliciosa. Hay una mayor inclinación hacia la detección de familias de DGA, phishing y malware. Sin embargo, en la clase de malware, varios estudios generalizan e incluyen fuentes que no necesariamente son categorizados como malware según nuestra definición de clase pero que se consideran maliciosos. Por ejemplo, combinan información de bases de datos de listas negras con sitios de phishing y spam bajo la misma clase de malware. Por otra parte solo 3 de los estudios (17% del total de estudios revisados) hicieron una separación formal en tres o más categorías, de los cuales solo Bilge et al [14] posee un conjunto de datos más variado al usar 10 categorías incluyendo spam, contenido adulto, malware, phishing y los dominios de la botnet conficker para representar la categoría de botnet y otras. A pesar de esto, en este estudio no mencionan el razonamiento detrás de la selección de sus categorías y se usan una combinación de características estáticas y dinámicas. II. Análisis de selección de características La mayoría de los estudios utilizan una selección de características mixto (estáticas y dinámicas). Solo seis de los estudios usan características estáticas, y de este grupo, el alcance de sus datos ha sido en su mayoría una única categoría de URL maliciosa y máximo 2 en Patil et al [30] enfocándose en phishing y spam. Para entender la variedad en el uso de características estáticas, fueron recolectaron y agrupadas en el cuadro 8. Entre las características más frecuentemente usadas resaltan la longitud de la hilera, la entropía, la cantidad de dígitos, cantidad de vocales y consonantes, el análisis de frecuencia mediante n-gramas y la cantidad de caracteres especiales como puntos, guiones y arrobas. Otro 38 descubrimiento interesante se observa en la frecuencia de las características basadas en listas (sean estas listas basadas en diccionario o en palabras sensibles o en listas de bloqueo). Cuadro 9: Uso de características estáticas en la literatura Característica Trabajos que usan esta característica Longitud [18] [25] [32] [10] [17] [28] [6] [61] [34] [9] [22] [33] [30] Cantidad de dígitos [14] [32] [10] [28] [15] [11] [34] [22] [33] Cantidad de caracteres especiales (. – @) [32] [17] [28] [15] [29] [11] [34] [30] Cantidad de vocales y consonantes [32] [10] [6] [11] [34] [22] Entropía [18] [25] [10] [6] [9] Presencia de palabras en listas [17] [28] [15] [29] [33] [61] N-gramas [25] [6] [9] [22] [20] Longitud de la palabra más larga [14] [28] [6] [22] Usa la IP en lugar del dominio [32] [17] [29] [30] Número y longitud de subdominios [28] [22] [30] Longitud del path o de los parámetros [32] [17] [11] TLD o SLD [6] [29] [20] Extensiones particulares [32] [11] Distancia de Edit [28] [6] Caracteristicas de argumentos y tokens [17] [30] Detección de ofuscación [6] Teorema Bayes [61] Esquema o protocolo [11] Servicio de acortado [30] Información externa de terceros (edad,rank) [30] Pocos estudios seleccionan sus características tomando en consideración la relevancia individual de cada una hacia la predicción final. En nuestra investigación, se usa primero los resultados de la revisión de características en el cuadro 8 para hacer una selección inicial para luego hacer un análisis de relevancia explicado en detalle en la sección 5.2.2 con el fin de reducir el espacio de características usado y acelerar el procesamiento del algoritmo. Por otra parte, se encontraron ciertos patrones de características usados comúnmente para diferenciar categorías maliciosas específicas. Por ejemplo, las características de longitud y entropía han sido utilizadas para distinguir entre dominios DGA y dominios legítimos [25], [10]. Además, las técnicas de distribución de caracteres como los n-gramas han demostrado ser buenas en la detección de URLs con mayor aleatoriedad [9]. Por su parte aquellas 39 características basadas en listas y tratan de capturar el nivel de significancia para un humano han sido diferenciadoras de sitios de phishing y malware [28]. III. Análisis de técnica y resultados En cuanto a la implementación, se recolectó el algoritmo con mejor desempeño para cada uno de los artículos y los resultados muestran que los algoritmos basados en árboles desempeñan mejor en la clasificación de URLs maliciosas y legitimas para una variedad de categorías maliciosas. Según el cuadro 8, los bosques aleatorios y árboles de decisión presentan los mejores resultados comparados al resto de los algoritmos. Por esto, se seleccionaron ambos algoritmos para implementar los modelos utilizados en nuestra clasificación, descritos en la sección 5.2.3. De este desglose, la mayoría de los trabajos publicados hasta el momento se limitan a un alcance de predicción único. Los escenarios enfocados en detección de una sola categoría pese a que poseen buenos resultados de predicción, no representan un escenario realista al detectar solo uno de los posibles comportamientos de un atacante. Por su parte, aquellos estudios con alcance de predicción múltiple y que detectan varias categorías pueden mejorar sus controles con base al tipo de categoría detectado ( [14], [6]). Con respecto a la recolección de características, se encontró que los estudios en el área usan una combinación de características estáticas y dinámicas para el aprendizaje de sus modelos y en su mayoría no usan ningún marco de referencia para guiar su selección ni plantean un análisis de relevancia posterior a la selección de características. En nuestro trabajo se seleccionaron únicamente características léxicas al poder recopilárseles en un menor tiempo pensando en la operacionalización del sistema. Además, al seleccionar características estáticas se reduce la cantidad de información recopilada al no tener que almacenar atributos dentro de una ventana de tiempo ni depender de información externa o histórica. En resumen, a pesar del gran repertorio de estudios en el área, ninguno de los estudios revisados ha usado únicamente características estáticas para clasificar escenarios de categorías múltiples. Esta es una de las principales contribuciones en nuestro trabajo. Además, dada la importancia de una apropiada selección de las características en el rendimiento del clasificador se incluye un análisis de relevancia para identificar características estables que representen el conjunto de datos apropiadamente y remover aquellas que aporten ruido. Finalmente notamos que los estudios más 40 recientes guían la distribución o el balance de sus clases según el panorama actual de Internet y con base a este seleccionan la cantidad de datos maliciosos y legítimos para usar en su modelo [6]. Por esto, nuestro trabajo considera la variabilidad en la distribución del conjunto de datos al comparar dos escenarios con tasas distintas de sitios maliciosos y legítimos. 5.2. Implementación del clasificador A continuación, presentamos los pasos realizados para implementar el clasificador. Se describen la preparación del conjunto de datos en la sección 5.2.1, la extracción de las características en la sección 5.2.2 y la implementación de los modelos en la sección 5.2.3. Se resumen estas tres etapas en la figura 13. Figura 13: Resumen de la implementación de los modelos La etapa de procesamiento involucra el agrupamiento y el etiquetado de los datos crudos. Una vez que a cada URL se le asignó una etiqueta entre las 5 clases posibles: malware, phishing, spam, dga y legítimo, se procede a extraer mediante Splunk y su lenguaje de procesamiento atributos de cada URL para generar una lista de características para cada URL. Estas características son luego evaluadas en un análisis de relevancia para descartar aquellas variables que producen ruido a la predicción final. Una vez obtenidas las características relevantes, usamos el módulo de Splunk MLTK para crear y entrenar los modelos a partir de la matriz de características conformadas por cada URL y su lista de características. Para el entrenamiento se seleccionaron dos algoritmos que han demostrado tener buenos resultados en problemas de clasificación similares según la revisión 41 de literatura: bosques aleatorios y árboles de decisión. Además, Splunk cuenta con más algoritmos incluidos en el módulo que son fácilmente aplicables una vez obtenida la matriz de características y se muestran algunas de sus otras aplicaciones con el fin de confirmar lo encontrado en la literatura pero la descripción de los demás algoritmos queda fuera del alcance de este trabajo. 5.2.1. Preparación del conjunto de datos A partir de las fuentes de datos descritos en la sección 4.2.1, se obtuvieron 5 archivos CSV para cada clase de URLs: benignos, malware, phishing, DGA y spam. Estos fueron importados en Splunk como un objeto tipo lookup que consiste en una tabla de formato campo-valor con la que es posible leer la tabla con el comando inputlookup y escribir usando el comando outputlookup. Por ejemplo, en la figura 13 se muestra cómo usar el comando inputlookup para buscar los contenidos de esta tabla y mostrar solo los primeros 5 resultados con el comando head, en este caso para el lookup de DGA. Figura 14: Distribución de datos para escenario A. Luego de su indexación se procedió a asignar las etiquetas usando el comando fillnull para agregar la clase y subclase para cada URL en el conjunto de datos. En el cuadro 10 se observa parte del código SPL usado en el etiquetado para los dominios legítimos y de phishing y se puede encontrar el código completo en el cuadro A1 en la sección de anexos. Además, se usó el comando outputlookup para escribir sobre la misma tabla las nuevas etiquetas. Para el agrupamiento se usa la función append, con la que es posible incluir los datos de un lookup a otro y generar nuestra 42 primera matriz con todas las URLs del conjunto de datos. En el cuadro 11 se muestra parte del código usado para el agrupamiento. Finalmente, en la figura 14 se puede ver una muestra de los datos luego de su indexado y agrupamiento. Cuadro 10: Comandos de Splunk utilizados para completar el etiquetado | inputlookup tfia_legit.csv | fillnull value="legit" | outputlookup tfia_legit.csv ... | inputlookup tfia_phishing.csv | fillnull class value="malicious" | fillnull subclass value="phishing" | outputlookup tfia_phishing.csv Cuadro 11: Comandos de Splunk utilizados para hacer el agrupamiento | inputlookup tfia_phishing.csv | inputlookup append=true tfia_legit.csv | inputlookup append=true tfia_malware.csv ... | outputlookup scenario_A_dataset.csv Figura 15: Muestra de datos para cada categoría 5.2.2. Identificación y extracción de las características En esta sección se describe el resultado de la extracción de características seleccionadas a partir de la revisión de literatura realizada en la sección 4.2.2. En la figura 16 se muestra un resumen del proceso de extracción de características y un ejemplo de extracción para la hilera “twitter.com”. Para la extracción de las primeras seis características se usan solo funcionalidades básicas de Splunk como funciones de conteo y expresiones regulares. Para las características estadísticas se usó URL Toolbox, un módulo externo disponible dentro de Splunk que automatiza varias 43 funciones matemáticas. Finalmente, para expandir la cantidad de información a partir de la URL original, usamos el método estadístico TFIDF para extraer los principales n-gramas y posteriormente aplicar la técnica de reducción de dimensiones PCA para generar 3 características más con los principales componentes o conjuntos de caracteres basados en cada URL. A continuación, explicamos cada una de estas características, el código de Splunk para construirlas y ejemplos para una URL de cada clase. Figura 16: Resumen de etapa de extracción para twitter.com Extracción de longitud (C1) La longitud es una de las características más simples, pero posee mucho valor para detectar dominios autogenerados o de spam. Para extraer la longitud de la URL, se usó la función len para iterar por cada uno de los dominios en el lookup al especificar la columna deseada len(domain) y contar los caracteres de cada hilera. En la figura 17 puede verse el resultado de aplicar esta función. Figura 17: Extracción de característica de longitud 44