Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

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

Modelo de Machine Learning para detectar ataques DDoS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages