Skip to content

snsanchez/dos-ml-detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Detección de Ataques DoS con Machine Learning

Este proyecto implementa un modelo de Machine Learning para detectar ataques de denegación de servicio (DoS) a partir de un conjunto de datos sintético de 10.000 registros.

Se genera un dataset con características de tráfico de red y luego se entrena un clasificador utilizando SVM (Support Vector Machine) para distinguir entre tráfico normal y ataques.


Video de explicación

Puedes ver una explicación detallada del proyecto en el siguiente video:

Detección de Ataques DoS con Machine Learning

Ver video en YouTube


Archivos del proyecto

  • crearDataSet.py Genera el dataset sintético y lo guarda en dataset_dos.csv.

  • detectarAtaqueDOS.py Carga el dataset, entrena el modelo SVM, evalúa su rendimiento y muestra las métricas.

  • dataset_dos.csv Dataset generado automáticamente.

  • modelo_svm_dos.pkl Modelo entrenado exportado.


Requisitos

Instalar Python 3 y las siguientes librerías:

pip install pandas numpy matplotlib seaborn scikit-learn joblib

Ejecución

1. Generar el dataset

python3 crearDataSet.py

Esto creará el archivo:

dataset_dos.csv

2. Entrenar y evaluar el modelo

python3 detectarAtaqueDOS.py

El programa mostrará:

  • Vista previa del dataset
  • Distribución de clases
  • Mapa de correlaciones
  • Matriz de confusión
  • Precision
  • Recall
  • F1-score
  • Accuracy

Además, se guardará el modelo entrenado en:

modelo_svm_dos.pkl

Dataset

El dataset contiene las siguientes variables:

Variable Descripción
duracion Duración de la conexión
bytes_enviados Cantidad de bytes enviados
bytes_recibidos Cantidad de bytes recibidos
paquetes Cantidad de paquetes transmitidos
es_ataque_dos Etiqueta: 0 = normal, 1 = ataque DoS

El dataset contiene:

  • 70% tráfico normal
  • 30% ataques DoS

Algoritmo utilizado

Se utilizó un clasificador SVM con kernel RBF:

SVC(kernel="rbf", C=1.0, gamma="scale", random_state=42)

Este algoritmo permite separar registros normales y ataques a partir de las características del tráfico.


Resultados obtenidos

Ejemplo de salida:

Matriz de confusión:
[[2103    3]
 [  10  884]]
Precisión global del modelo: 1.00

Esto significa que el modelo clasificó correctamente casi todos los registros, detectando la mayoría de los ataques DoS con muy pocos errores.


Métricas

  • Precision: qué tan confiable es el modelo cuando predice un ataque.
  • Recall: qué porcentaje de los ataques reales logra detectar.
  • F1-score: balance entre precision y recall.
  • Accuracy: porcentaje total de aciertos.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages