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.
- 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:
Highfrente aNo High. - Ajuste del umbral de decisión para estudiar el costo de omitir ataques de severidad alta.
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.
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
python -m venv .venv
pip install -r requirements.txt
jupyter labEl cuaderno utiliza una ruta relativa para leer el archivo incluido en data.
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.
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.
- 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, andHighseverity. - Reframed the task as
HighversusNo High. - Adjusted the decision threshold to examine the cost of missing high-severity attacks.
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.
python -m venv .venv
pip install -r requirements.txt
jupyter labThe notebook reads the included dataset through a relative path.
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.

