Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Network Attack Severity Model

Español

Objetivo

Este proyecto analiza si las características de tráfico de red permiten priorizar ataques según su severidad. El trabajo parte de 40.000 registros sintéticos y recorre la preparación de datos, selección de variables, entrenamiento y evaluación de modelos.

Desarrollo

  • Tratamiento de valores faltantes en alertas, indicadores de malware, proxy, firewall e IDS/IPS.
  • Creación de variables temporales a partir de la fecha y codificación de las categorías.
  • Selección de diez características mediante RFE.
  • Entrenamiento inicial de un Random Forest para clasificar severidad baja, media y alta.
  • Reformulación del problema como clasificación binaria: High frente a No High.
  • Ajuste del umbral de decisión para estudiar el costo de omitir ataques de severidad alta.

Resultados y límites

El modelo multiclase obtuvo una exactitud cercana al 33 %, sin una separación útil entre los tres niveles. En el enfoque binario, un umbral de 0,30 elevó el recall de la clase High a 0,71, con una precisión de 0,34 y una exactitud global de 0,44.

El cambio mejora la detección de casos de severidad alta, pero también incrementa los falsos positivos. Por esa razón, el resultado no se presenta como un clasificador listo para producción, sino como un ejercicio de priorización y análisis del compromiso entre detección y precisión.

Matriz de confusión del modelo binario

Importancia de variables del modelo binario

Estructura

network-attack-severity-model/
├── data/
│   └── cybersecurity_attacks.csv
├── images/
│   ├── 01-binary-confusion-matrix.png
│   └── 02-binary-feature-importance.png
├── notebooks/
│   └── network-attack-severity-model.ipynb
├── .gitignore
├── README.md
└── requirements.txt

Ejecución local

python -m venv .venv
pip install -r requirements.txt
jupyter lab

El cuaderno utiliza una ruta relativa para leer el archivo incluido en data.

Datos

Fuente: Cyber Security Attacks, publicado por TeamInCribo en Kaggle bajo licencia Apache 2.0. El conjunto es sintético y contiene 40.000 observaciones con 25 variables relacionadas con tráfico, alertas y contexto de red.


English

Goal

This project explores whether network traffic features can support attack-severity prioritization. It uses 40,000 synthetic records and covers data preparation, feature selection, model training, threshold adjustment, and evaluation.

Approach

  • Handled missing alert, malware, proxy, firewall, and IDS/IPS fields.
  • Created time-based features and encoded categorical variables.
  • Selected ten predictors with RFE.
  • Trained a multiclass Random Forest for Low, Medium, and High severity.
  • Reframed the task as High versus No High.
  • Adjusted the decision threshold to examine the cost of missing high-severity attacks.

Results and limitations

The multiclass model reached approximately 33% accuracy and did not separate the three severity levels effectively. With a 0.30 threshold, the binary model reached 0.71 recall for High, 0.34 precision, and 0.44 overall accuracy.

This threshold detects more high-severity cases at the cost of additional false positives. The model is therefore presented as an exploratory prioritization exercise, not as a production-ready autonomous classifier.

Local setup

python -m venv .venv
pip install -r requirements.txt
jupyter lab

The notebook reads the included dataset through a relative path.

Data

Source: Cyber Security Attacks by TeamInCribo on Kaggle, released under the Apache 2.0 license. The synthetic dataset contains 40,000 observations and 25 network traffic, alert, and context variables.

About

Network attack severity prioritization with machine learning and threshold analysis | Priorización de ataques de red mediante aprendizaje automático y análisis de umbrales

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages