Trabajo de grado - Pregrado
Detección de ataques de tipo Fuzzer en redes IoT empleando algoritmos de clasificación de Machine Learning
Fecha
2023-08-02Registro en:
instname:Universidad de los Andes
reponame:Repositorio Institucional Séneca
Autor
Rodríguez Villamizar, Jenifer Paola
Institución
Resumen
El presente trabajo tiene como objetivo crear un módulo de seguridad basado en Aprendizaje Automático (Machine Learning) con el fin de detectar ataques de tipo Fuzzer. Después de llevar a cabo diversas pruebas con cuatro algoritmos (Support Vector Machine, Random Forest, K-NN y Redes Neuronales) y comparar los resultados obtenidos, se seleccionó el mejor algoritmo para la creación del módulo. Se recopilaron una variedad de métricas de las diferentes pruebas realizadas.
La métrica principal utilizada para la selección del "mejor" algoritmo fue el Recall, ya que indica la cantidad de ataques reales que nuestro algoritmo es capaz de detectar. Durante las pruebas, se variaron diferentes características de la limpieza de datos, como la transformación de las variables categóricas "service" y "state" a variables binarias, y la eliminación de duplicados. Estos ajustes permitieron obtener una visión más completa del rendimiento de los algoritmos y tomar decisiones informadas para mejorar la detección de ataques de tipo Fuzzer.
El dataset utilizado para el entrenamiento y prueba de los algoritmos presentaba un desbalance significativo, con poco menos del 10% de los datos correspondientes a ataques de tipo Fuzzer. Para abordar este problema, se emplearon las técnicas de SMOTE (Synthetic Minority Over-sampling Technique) y Undersample (submuestreo), variando la cantidad de datos generados sintéticamente y la cantidad de datos eliminados aleatoriamente. Asimismo, se ajustó la cantidad de datos utilizados para el entrenamiento con el fin de evitar sesgos de sobreentrenamiento.
Después de realizar pruebas con múltiples combinaciones, se obtuvo que el algoritmo Support Vector Machine brindó el mejor resultado, logrando un "Recall" de 0.96. This work aims to create a security module based on Machine Learning to detect Fuzzer-type attacks. After conducting various tests with four algorithms (Support Vector Machine, Random Forest, K-NN, and Neural Networks) and comparing the results obtained, the best algorithm was selected for the module's creation. A variety of metrics were collected from the different tests performed.
The main metric used to select the "best" algorithm was Recall, which indicates the number of real attacks our algorithm can detect. Different data cleaning features were varied during the tests, such as transforming the categorical variables "service" and "state" into binary variables and eliminating duplicates. These adjustments gave a more comprehensive view of the algorithms' performance and informed decisions to improve Fuzzer-type attack detection.
The dataset used for training and testing the algorithms presented a significant imbalance, with slightly less than 10% of the data corresponding to Fuzzer-type attacks. To address this issue, techniques such as SMOTE (Synthetic Minority Over-sampling Technique) and Undersample were employed, varying the amount of synthetically generated data and the randomly removed data. Additionally, the data used for training was adjusted to avoid overfitting biases.
After conducting tests with multiple combinations, it was found that the Support Vector Machine algorithm yielded the best result, achieving a Recall of 0.96.