Ir al contenido

Aprendizaje supervisado en ciberseguridad

Clasificación de URLs maliciosas con Regresión Logística
21 de septiembre de 2025 por
Aprendizaje supervisado en ciberseguridad
Gerardo Rios
| Todavía no hay comentarios

El aprendizaje supervisado entrena modelos con datos etiquetados para que aprendan patrones y luego predigan sobre ejemplos nuevos. En ciberseguridad, esto se usa para detectar phishing, URLs maliciosas, malware, intentos de login sospechosos, etc

En este artículo verás, paso a paso, cómo construir un clasificador de URLs maliciosas con Regresión Logística y medir su rendimiento con Precision, Recall y F1-score. Además, generaremos imágenes nítidas (matriz de confusión, curva Precision–Recall, coeficientes) para ilustrar el resultado.

Conceptos básicos del aprendizaje supervisado
Conceptos clave:
  • Feature (característica): un dato medible (ej.: longitud de URL, nº de subdominios, si contiene IP).
  • Label (etiqueta): la “respuesta correcta” (ej.: maliciosa vs benigna).
  • Entrenamiento: el modelo ajusta sus parámetros para reducir errores.
  • Predicción: usar el modelo ya entrenado para decidir sobre nuevos casos.
  • Evaluación: medir qué tan bien acierta (Accuracy), y sobre todo Precision, Recall y F1 cuando hay desbalance (pocas maliciosas).
    • Precision: de todo lo marcado como malicioso, ¿cuánto sí lo era?
    • Recall: de todo lo malicioso, ¿cuánto detecté?
    • F1: equilibrio entre Precision y Recall (útil si te importan ambas).
  • Generalización: que el modelo funcione con datos nuevos, no solo los de entrenamiento.
  • Validación cruzada: probar el modelo en varias particiones para tener una estimación más estable.
  • Regularización: “frena” la complejidad para evitar sobreajuste.
Ejemplo aplicado: clasificar URLs maliciosas (10 pasos) 

Trabajaremos con un dataset simulado:

url_len (longitud)
num_subdom (subdominios)
has_ip (1/0)
tld_susp (1/0)
  • Etiqueta malicious (1 = maliciosa, 0 = benigna)

Nota sobre las imágenes: todas las figuras de este artículo (matriz de confusión, curva Precision–Recall y coeficientes) se generan directamente desde el notebook. Esto garantiza que los gráficos reflejen exactamente los resultados del modelo y puedan reproducirse en cualquier entorno. En cada figura indico cómo leerla y qué significa para ciberseguridad.


Paso 1 — Portada del notebook (Markdown)

(Sin código de Python; es solo texto en tu primera celda del notebook).

Explica objetivo y salida esperada (Esto no es necesario pero es una buena practica).


Paso 2 — Imports (y %pip opcional) 

Cargamos librerías y fijamos semilla para resultados reproducibles.

Qué hace: 

numpy , pandas → datos. 

matplotlib → gráficos. 

sklearn.* → split, escalado, modelo, métricas y validación cruzada.

np.random.seed(42) → resultados estables.


Paso 3 — Dataset simulado (features + label)

Creamos 120 ejemplos. La probabilidad de “maliciosa” aumenta con: longitud, subdominios, presencia de IP y TLD sospechoso.

Qué verás: una tabla con 10 filas y 5 columnas.


Paso 4 — Train/Test + escalado

Hacemos split (75/25) estratificado (mantiene proporción de clases) y estandarizamos las features.

Por qué:

  • Stratify evita particiones “cojas” (todo benigno o todo malicioso). 
  • Scaler mejora el comportamiento de modelos lineales (coeficientes comparables).
Paso 5 — Entrenar Regresión Logística

Usamos class_weight="balanced" para no ignorar la clase minoritaria.

Lectura rápida: 

  • Penalización L2 estabiliza pesos. 
  • C controla “cuánto” regularizar. 
  • class_weight="balanced" sube el peso de la clase minoritaria (maliciosa).


Paso 6 — Métricas (reporte + confusión) y F1 con CV 

Medimos calidad en el set de prueba y además con 5-Fold CV para estabilidad.

Cómo leerlo: 

  • El reporte muestra Precision/Recall/F1 por clase. 
  • La matriz muestra aciertos/errores (TP/TN/FP/FN). 
  • El F1 medio (CV) da una idea más robusta del rendimiento.

Paso 7 — Matriz de confusión (heatmap) + guardado

Gráfico coloreado y con conteos por celda (PNG/SVG en alta calidad). 

Resultado Esperado:

  • TP (maliciosa→maliciosa) y TN (benigna→benigna) son aciertos. 
  • FP (falso positivo): molesta al usuario/analista. 
  • FN (falso negativo): crítico en seguridad (amenaza que se escapa).
Paso 8 — Curva Precision–Recall + guardado 

Excelente para clases desbalanceadas (mejor que ROC en muchos casos de seguridad)

Resultado Esperado:

Lectura: cuanto más arriba se mantenga la curva a lo largo del recall, mejor equilibrio entre encontrar ataques y evitar falsos positivos.

Paso 9 — Importancia de características (coeficientes) + guardado

Gráfico interpretable: qué señales empujan la predicción a “maliciosa”.

Resultado Esperado:

Lectura: 

  • Coeficiente positivo → aumenta prob. de maliciosa;
  • Negativo → la reduce; 
  • |coef| grande → más influencia.
Paso 10 — Mini GridSearch (ajuste fino, opcional) 

Probar distintas C y penalty para buscar mejor F1.

Resultado Esperado:

Interpreta:

  • C pequeño → más regularización (modelo más simple).
  • L1 puede “apagar” features (sparse), L2 suaviza.
Reflexión Red Team

El modelo aprende umbrales y combinaciones de señales: URLs largas, con IP y TLDs sospechosos tienen mayor probabilidad de ser maliciosas. Un atacante puede camuflar estas señales (acortar URL, evitar IPs, usar TLD legítimos). Un defensor, en cambio, puede:

  • Reforzar features (edad del dominio, reputación ASN, WHOIS, tiempo entre peticiones).
  • Revisar falsos negativos (lo más peligroso).
  • Retocar umbrales/regularización para evitar sobreajuste y mejorar recall sin disparar falsos positivos.

Con un pipeline simple y explicable como Regresión Logística, más métricas adecuadas (Precision–Recall–F1), puedes construir detectores útiles para seguridad. Este ejemplo te deja armado: dataset, entrenamiento, evaluación, validación y gráficas en alta calidad listas para tu artículo. Desde aquí puedes comparar con SVM, Árboles/Random Forest o Gradient Boosting.

Fuentes 

Documentación de scikit-learn (modelos, métricas y utilidades).

Nuestro contenido más reciente

Conozca las novedades de nuestra empresa

Su snippet dinámico aparecerá aquí... Este mensaje aparece porque no proporcionó ni el filtro ni la plantilla a usar.
Aprendizaje supervisado en ciberseguridad
Gerardo Rios 21 de septiembre de 2025
Compartir
Archivo
Iniciar sesión dejar un comentario