Publicación:
Detección de anomalías mediante Machine Learning y respuesta activa inteligente en entornos IoT utilizando el motor SnortML y orquestación con n8n

authorProfile.id.code202116708
dc.contributor.advisorDonoso Meisel, Yezyd Enrique
dc.contributor.authorNieves Hernández, Juan Camilo
dc.date.accessioned2026-05-27T21:04:47Z
dc.date.available2026-05-27T21:04:47Z
dc.date.issued2026-05-27
dc.description.abstractEl Internet de las Cosas (IoT, por Internet of Things) es el nombre que recibe la red formada por dispositivos físicos cotidianos —sensores, cámaras, electrodomésticos, equipos industriales- que se conectan a Internet para intercambiar datos. Su rápido crecimiento ha ampliado la superficie de ataque de las redes: cada nuevo dispositivo es una posible puerta de entrada para un atacante. La situación se agrava porque muchos de estos equipos se comunican mediante protocolos ligeros como MQTT (Message Queuing Telemetry Transport) y CoAP (Constrained Application Protocol), que los sistemas de detección de intrusiones (IDS, Intrusion Detection Systems) tradicionales no entienden en profundidad y por tanto no protegen bien. Este trabajo presenta el diseño, la implementación y la validación de SnortML, un sistema que aborda esa carencia combinando tres capas que trabajan en cascada. La primera capa extiende el motor de inspección de tráfico Snort 3 con dos inspectores escritos en el lenguaje Lua, uno para MQTT y otro para CoAP. Estos inspectores leen los paquetes en tiempo real y extraen hasta 26 features (características numéricas que describen cada paquete: tipo de mensaje, longitud, banderas, presencia de payload, etc.) que luego pueden ser analizadas por un algoritmo. La segunda capa aplica Machine Learning (ML, aprendizaje automático) sobre esas características. En lugar de un único modelo general, se entrenó una arquitectura de router: dos modelos especializados, uno por protocolo, y un despachador que decide cuál usar según el origen del paquete. El modelo de CoAP se construyó con Random Forest (un clasificador formado por muchos árboles de decisión que votan) y alcanza un F1-macro —métrica que mide el balance entre precisión y exhaustividad promediando todas las clases por igual— de 1,0 en datos limpios y 0,95 con 15 % de ruido inyectado sobre un dataset propio de 1 782 paquetes. El modelo de MQTT usa XGBoost (eXtreme Gradient Boosting, un método más avanzado de árboles que se entrenan en serie corrigiéndose entre sí) y logra F1-macro = 0,73 sobre el dataset público MQTT-IoT-IDS2020 con 50 000 muestras. La tercera capa convierte cada detección en una acción concreta. Cuando el modelo marca un paquete como ataque, un bridge en Python envía la alerta vía HTTP a n8n, una plataforma open-source de orquestación tipo SOAR (Security Orchestration, Automation and Response). El workflow configurado en n8n ejecuta automáticamente dos respuestas: un bloqueo de firewall simulado y una notificación instantánea al administrador a través de Telegram. En las pruebas de demostración el tiempo total desde la detección hasta la notificación se mantuvo por debajo de los 2 segundos. En conjunto, SnortML demuestra que la inspección de protocolo, el aprendizaje automático y la respuesta automatizada -tres capas que normalmente se estudian por separado- pueden integrarse en un único pipeline reproducible y extensible, y ofrecer detección y contención de ataques IoT en cuestión de segundos sobre un stack totalmente abierto y de bajo costo.
dc.description.degreelevelPregrado
dc.description.researchareaInternet de las Cosas
dc.format.extent29 páginas
dc.format.mimetypeapplication/pdf
dc.identifier.instnameinstname:Universidad de los Andes
dc.identifier.reponamereponame:Repositorio Institucional Séneca
dc.identifier.repourlrepourl:https://repositorio.uniandes.edu.co/
dc.identifier.urihttps://hdl.handle.net/1992/78443
dc.language.isospa
dc.publisherUniversidad de los Andes
dc.publisher.departmentDepartamento de Ingeniería de Sistemas y Computación
dc.publisher.facultyFacultad de Ingeniería
dc.publisher.programIngeniería de Sistemas y Computación
dc.relation.referencesDenning, D. E. (1987). An intrusion-detection model. IEEE Transactions on Software Engineering, SE-13(2):222–232.
dc.relation.referencesHindy, H., Bayne, E., Bures, M., Atkinson, R., Tachtatzis, C., & Bellekens, X. (2020). Machine learning based IoT intrusion detection system: An MQTT case study (MQTT-IoT-IDS2020 dataset). International Networking Conference (IFIP).
dc.relation.referencesGranjal, J., Monteiro, E., & Silva, J. S. (2015). Security for the Internet of Things: A survey of existing protocols and open research issues. IEEE Communications Surveys & Tutorials, 17(3):1294–1312.
dc.relation.referencesCisco Systems. (2023). Cisco Annual Internet Report (2018–2023). White Paper.
dc.relation.referencesShelby, Z., Hartke, K., & Bormann, C. (2014). The Constrained Application Pro- tocol (CoAP), RFC 7252. Internet Engineering Task Force (IETF). https: //datatracker.ietf.org/doc/html/rfc7252
dc.relation.referencesOASIS Standard. (2014). MQTT Version 3.1.1. OASIS Message Queuing Telemetry Transport (MQTT) TC. http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/ mqtt-v3.1.1-os.html
dc.relation.referencesSharafaldin, I., Habibi Lashkari, A., & Ghorbani, A. A. (2018). Toward generating a new intrusion detection dataset and intrusion traffic characterization (CICFlow- Meter). En Proc. 4th Int. Conf. on Information Systems Security and Privacy (ICISSP), pp. 108–116.
dc.relation.referencesGartner Research. (2020). Market Guide for Security Orchestration, Automation and Response Solutions. Gartner Inc.
dc.relation.referencesn8n GmbH. (2024). n8n Documentation — Workflow Automation. https://docs. n8n.io
dc.relation.referencesAntonakakis, M., et al. (2017). Understanding the Mirai botnet. En Proc. 26th USENIX Security Symposium, pp. 1093–1110.
dc.relation.referencesPedregosa, F., et al. (2011). Scikit-learn: Machine learning in Python. Journal of Machine Learning Research, 12:2825–2830.
dc.relation.referencesBreiman, L. (2001). Random forests. Machine Learning, 45(1):5–32.
dc.relation.referencesChen, T., & Guestrin, C. (2016). XGBoost: A scalable tree boosting system. En Proc. 22nd ACM SIGKDD Int. Conf. on Knowledge Discovery and Data Mining, pp. 785–794.
dc.relation.referencesKrebs, B. (2016). Source code for IoT botnet ‘Mirai’ released. Krebs on Security. https://krebsonsecurity.com
dc.relation.referencesCisco Talos. (2023). Snort 3 User Manual. https://www.snort.org/documents
dc.rightsAttribution 4.0 Internationalen
dc.rights.accessrightsinfo:eu-repo/semantics/openAccess
dc.rights.coarhttp://purl.org/coar/access_right/c_abf2
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/
dc.subject.keywordIoT
dc.subject.keywordSnortML
dc.subject.keywordAutomatización
dc.subject.keywordSOAR
dc.subject.keywordIDS
dc.subject.themesIngenieríaspa
dc.titleDetección de anomalías mediante Machine Learning y respuesta activa inteligente en entornos IoT utilizando el motor SnortML y orquestación con n8n
dc.typeTrabajo de grado - Pregrado
dc.type.coarhttp://purl.org/coar/resource_type/c_7a1f
dc.type.coarversionhttp://purl.org/coar/version/c_ab4af688f83e57aa
dc.type.contentText
dc.type.driverinfo:eu-repo/semantics/bachelorThesis
dc.type.redcolhttp://purl.org/redcol/resource_type/TP
dc.type.versioninfo:eu-repo/semantics/acceptedVersion
dspace.entity.typePublication
person.identifier.cvlachttps://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000094706
person.identifier.gsidhttps://scholar.google.es/citations?user=Razvs2MAAAAJ
person.identifier.orcid0000-0003-1659-1522
relation.isDirectorOfPublication6b9d423b-11e8-4930-b0d2-061b34e9806b
relation.isDirectorOfPublication.latestForDiscovery6b9d423b-11e8-4930-b0d2-061b34e9806b
Archivos
Bloque original
Mostrando 1 - 2 de 2
Cargando...
Miniatura
Nombre:
Formato de autorizacion y entrega de tesis FIRMADO.pdf
Tamaño:
427.03 KB
Formato:
Adobe Portable Document Format
Descripción:
HIDE
Cargando...
Miniatura
Nombre:
Detección de anomalias mediante Machine Learning y respuesta activa inteligente en entornos IoT utilizando el motor SnortML y orquestacion con n8n.pdf
Tamaño:
445.65 KB
Formato:
Adobe Portable Document Format
Bloque de licencias
Mostrando 1 - 1 de 1
No hay miniatura disponible
Nombre:
license.txt
Tamaño:
2.48 KB
Formato:
Item-specific license agreed upon to submission
Descripción: