Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
network-attack-detection — Detección avanzada de escaneo de puertos, ataques DoS y malware mediante técnicas de Machine Learning | Kitploit
Herramientas/GitHubGitHub/lucadibello/network-attack-detection
Análisis de VulnerabilidadesRecopilación de InformaciónSeguridad de RedesAprendizaje AutomáticoDetección de IntrusionesAprendizaje y EducaciónDetección de AnomalíasAnálisis de Registros

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHub
lucadibello/network-attack-detection

network-attack-detection

Detección avanzada de escaneo de puertos, ataques DoS y malware mediante técnicas de Machine Learning

Ver RepositorioSitio web
133hace 3 añosAún no revisado

Detección de Ataques de Red mediante Aprendizaje Automático

Descripción

Este proyecto emplea técnicas de aprendizaje automático para clasificar ataques de red como escaneo de puertos, denegación de servicio (DoS) y malware. Los datos de entrada están en formato Netflow V9, un formato estándar utilizado por Cisco.

La clasificación se realiza mediante los siguientes modelos:

  • K-Vecinos más Cercanos (KNN)
  • Máquina de Vectores de Soporte (SVC) con núcleo RBF (Función de Base Radial)
  • Pipeline con Análisis de Componentes Principales (PCA) y Máquina de Vectores de Soporte (SVC)
  • Clasificador Bagging (basado en SVC con núcleo RBF)
  • Clasificador de Bosque Aleatorio
  • Clasificador de Árboles Extra
  • Red Neuronal (MLPClassifier)

El proyecto está implementado en Python utilizando Jupyter Notebook y varias bibliotecas populares, incluyendo UMAP, Pandas, NumPy, Scikit-Learn, Matplotlib, y Seaborn.

Notebook

El notebook está accesible aquí para visualización directa en GitHub. Alternativamente, puede usar NbViewer para acceder al notebook mediante este enlace.

Presentación

La presentación en Keynote en formato PDF está accesible aquí.

Conjuntos de datos

El conjunto de datos utilizado para este proyecto está en formato NetFlow V9 (documentado por Cisco, disponible aquí). Consiste en dos archivos: train_net.csv y test_net.csv.

El archivo train_net.csv proporciona información sobre cuándo es probable que ocurra una alerta en particular, mientras que el archivo test_net.csv se usa únicamente para pruebas y no contiene una variable objetivo para evaluar el rendimiento del modelo.

El conjunto de datos es bastante grande:

  • train_net.csv: aproximadamente 4 millones de paquetes (de 14.066 hosts de red únicos)
  • test_net.csv: aproximadamente 2 millones de paquetes (de 6.186 hosts de red únicos)

Características del conjunto de datos

  • FLOW_ID: Un identificador único para el flujo.
  • PROTOCOL_MAP: Una cadena que representa el protocolo utilizado en el flujo; los valores posibles incluyen "ICMP", "TCP", "UDP", "IGMP", "GRE", "ESP", "AH", "EIGRP", "OSPF", "PIM", "IPV6-ICMP", "IPV6-IP", "IPV6-ROUTE", "IPV6-FRAG", "IPV6-NONXT", "IPV6-OPTS", y otros.
  • L4_SRC_PORT: El número de puerto de origen en el flujo; los valores posibles van de 0 a 65535.
  • IPV4_SRC_ADDR: La dirección IPv4 de origen en el flujo, representada como una cadena en notación decimal punteada (por ejemplo, "192.168.0.1").
  • L4_DST_PORT: El número de puerto de destino en el flujo; los valores posibles van de 0 a 65535.
  • IPV4_DST_ADDR: La dirección IPv4 de destino en el flujo, representada como una cadena en notación decimal punteada (por ejemplo, "192.168.0.2").
  • FIRST_SWITCHED: El momento en que comenzó el flujo, medido en segundos desde la época (1 de enero de 1970).
  • FLOW_DURATION_MILLISECONDS: La duración del flujo en milisegundos.
  • LAST_SWITCHED: El momento en que terminó el flujo, medido en segundos desde la época (1 de enero de 1970).
  • PROTOCOL: El protocolo utilizado en el flujo; los valores posibles incluyen 1 (ICMP), 6 (TCP), 17 (UDP), y otros.
  • TCP_FLAGS: Las banderas TCP establecidas en el flujo, representadas como una cadena binaria (por ejemplo, "100101").
  • TCP_WIN_MAX_IN: El tamaño máximo de ventana anunciada (en bytes) para el tráfico entrante.
  • TCP_WIN_MAX_OUT: El tamaño máximo de ventana anunciada (en bytes) para el tráfico saliente.
  • TCP_WIN_MIN_IN: El tamaño mínimo de ventana anunciada (en bytes) para el tráfico entrante.
  • TCP_WIN_MIN_OUT: El tamaño mínimo de ventana anunciada (en bytes) para el tráfico saliente.
  • TCP_WIN_MSS_IN: El tamaño máximo de segmento (en bytes) para el tráfico entrante.
  • TCP_WIN_SCALE_IN: El factor de escala de ventana para el tráfico entrante.
  • TCP_WIN_SCALE_OUT: El factor de escala de ventana para el tráfico saliente.
  • SRC_TOS: El valor de Tipo de Servicio (ToS) para la dirección IP de origen.
  • DST_TOS: El valor de Tipo de Servicio (ToS) para la dirección IP de destino.
  • TOTAL_FLOWS_EXP: El número total de flujos esperados.
  • : La longitud mínima (en bytes) de los paquetes IP en el flujo.

Autores del conjunto de datos

Maria-Elena Mihailescu, Darius Mihai, Mihai Carabas, Mikolaj Komisarek, Marek Pawlicki, Witold Holubowicz, Rafal Kozik: The Proposition and Evaluation of the RoEduNet-SIMARGL2021 Network Intrusion Detection Dataset. Sensors 21(13): 4319 (2021)

Enlace de Kaggle

Descargar herramienta
MIN_IP_PKT_LEN
  • MAX_IP_PKT_LEN: La longitud máxima (en bytes) de los paquetes IP en el flujo.
  • TOTAL_PKTS_EXP: El número total de paquetes esperados en el flujo.
  • TOTAL_BYTES_EXP: El número total de bytes esperados en el flujo.
  • IN_BYTES: El número de bytes recibidos en el flujo.
  • IN_PKTS: El número de paquetes recibidos en el flujo.
  • OUT_BYTES: El número de bytes enviados en el flujo.
  • OUT_PKTS: El número de paquetes enviados en el flujo.
  • ANALYSIS_TIMESTAMP: El momento en que se analizó el flujo, medido en segundos desde la época (1 de enero de 1970).
  • ANOMALY: Una bandera binaria que indica si el flujo contiene una anomalía (1 = verdadero, 0 = falso).
  • ALERT: (solo disponible en el conjunto de entrenamiento) El tipo de ataque que se ha detectado en el flujo actual. Estos son los valores posibles:
    • None: No se ha detectado ningún ataque
    • Port scanning: El flujo es un ataque de escaneo de puertos
    • Denial of Service: El flujo es un ataque DoS
    • Malware: El flujo es un ataque de malware
  • ID: Un identificador único para el flujo.