12ª Semana Internacional de Ciencia, Tecnología e Innovación · UFPS

Conceptos para entender la investigación EIAC

Esta guía acompaña la ponencia “Evaluación de la relevancia informativa de características en datasets basados en CAPEC mediante entropía de columnas”. Explica, sin dar nada por sabido, cada término que usamos: desde qué es un dataset hasta cómo se calcula nuestro índice.

Marco Antonio Adarme Jaimes · Ronald Eduardo Benítez Mejía · Jorge Kevin Hernández Lasso — Director: Rafael Martínez Ranera · Máster en Visual Analytics & Big Data, UNIR

1

Fundamentos de datos

Lo mínimo para entender con qué trabajamos: tablas de datos y cómo se preparan antes de usarlas.

Dato e información

Un dato es un valor suelto (un número, una palabra, una fecha). Se vuelve información cuando ayuda a responder una pregunta o a tomar una decisión.

Ejemplo: “High” es un dato; “este ataque tiene severidad alta” ya es información.

Dataset (conjunto de datos)

Una colección organizada de datos, casi siempre en forma de tabla: cada fila es un caso y cada columna, una propiedad de ese caso.

En el proyecto: el catálogo CAPEC convertido en tabla tiene 615 filas (patrones de ataque) y 23 columnas.
Láminas 7–9

Registro (fila)

Cada fila del dataset: un elemento concreto que se describe. También se llama observación o instancia.

Ejemplo: una fila es el patrón CAPEC-66 “SQL Injection” con su nivel, estado y severidad.

Columna, característica o atributo

Cada columna describe una misma propiedad para todos los registros. En machine learning se le llama característica (feature). Nuestra pregunta es justamente cuánta información aporta cada columna.

Ejemplo: Typical Severity es una columna con valores High, Medium, Low…

Tipos de columnas

Numérica (puertos, cantidades), categórica (pocas opciones que se repiten: High/Medium/Low), texto libre (descripciones) y fecha/hora (timestamp). El tipo influye mucho en cuánta información “útil” tiene una columna.

CSV

Formato de texto para guardar tablas: una línea por fila y los valores separados por comas. Lo abre Excel, Python o casi cualquier herramienta. Nuestro algoritmo recibe un CSV, local o desde una URL.

ID,Name,Abstraction
66,SQL Injection,Standard

XML

Formato de texto con etiquetas anidadas, como “cajas dentro de cajas”. CAPEC se publica en XML; lo convertimos a tabla con la librería ElementTree de Python.

Flujo de datos (pipeline)

La ruta que siguen los datos desde su origen hasta que se usan. Nuestro trabajo actúa antes del modelo, para revisar la calidad de las columnas.

Valores faltantes (vacíos)

Celdas sin dato. Una columna con muchos vacíos describe a pocos registros, así que su utilidad baja aunque los datos que tenga sean variados.

En CAPEC: Indicators aparece solo en el 9 % de los patrones.

Cardinalidad

Cuántos valores distintos tiene una columna (en las fórmulas la llamamos k). Baja cardinalidad: pocas categorías. Cardinalidad igual al número de filas: cada fila es diferente.

Ejemplo: Abstraction tiene k = 3 (Meta, Standard, Detailed); ID tiene k = 615.

Identificador

Columna cuyo valor es distinto en cada fila; sirve para encontrar un registro, no para compararlo con otros. Para un modelo, un ID no enseña nada sobre el ataque.

Redundancia

Cuando una columna repite información que ya está en otra. Añade trabajo sin añadir conocimiento.

Análisis exploratorio de datos (EDA)

La etapa en la que se “conoce” el dataset antes de modelar: qué columnas hay, cuántos vacíos, qué valores se repiten. El EIAC es una herramienta para apoyar el EDA.

Selección de características

Decidir qué columnas usar. Muchas veces se hace a mano y por experiencia; proponemos una medida objetiva que ayuda a decidir.

Machine learning y modelo

Un modelo es un programa que aprende patrones a partir de ejemplos (entrenamiento) para luego clasificar casos nuevos, por ejemplo “tráfico normal” o “ataque”. Si recibe columnas inútiles, gasta más cómputo sin mejorar.

Dataset sintético y muestra

Un dataset sintético se fabrica a propósito para probar casos controlados (columnas vacías, IDs, ruido). Una muestra es una parte de un dataset grande: usamos 40.000 de 907.814 registros de SR-BH 2020.

Lámina 7

Variable objetivo y datos etiquetados

La variable objetivo (o etiqueta) es la columna que un modelo intenta predecir, por ejemplo “normal” o “inyección SQL”. Un dataset está etiquetado cuando cada registro ya trae esa respuesta.

El EIAC no necesita etiquetas: evalúa las columnas antes de que exista una tarea de clasificación.

Dimensionalidad y costo computacional

La dimensionalidad es la cantidad de columnas. Más columnas significan más memoria y más tiempo de cálculo (costo computacional), y si no aportan información el modelo no mejora: solo se vuelve más lento y difícil de interpretar.

Lámina 3

Normalización y limpieza

Normalizar es poner los datos en un formato uniforme: nombres de columnas consistentes y valores escritos igual. Sin esa limpieza, “Detailed” y “detailed” se cuentan como dos categorías distintas y la entropía sube de forma artificial.

El algoritmo marca estas columnas como candidatas a limpieza.

Calidad de datos

Qué tan aptos son los datos para su uso. Se mide en dimensiones como completitud (¿faltan datos?), unicidad (¿se repiten o son todos distintos?), consistencia (¿están escritos igual?) y exactitud (¿son correctos?). El EIAC combina dos de ellas con la diversidad de Shannon; es una herramienta útil para el gobierno de datos.

Protección de datos

Ninguno de los tres datasets contiene datos personales: CAPEC es un catálogo técnico, el sintético es artificial y de SR-BH 2020 solo se analizaron de forma agregada la variabilidad, completitud y unicidad de las columnas, sin intentar identificar usuarios ni redistribuir los datos.

2

Ciberseguridad

De dónde vienen nuestros datos y qué describen.

Ciberseguridad y ataque

La ciberseguridad protege sistemas y datos. Un ataque es un intento de dañarlos, robarlos o usarlos sin permiso.

Patrón de ataque

Una descripción general de cómo se realiza un tipo de ataque: pasos, requisitos, consecuencias y cómo mitigarlo. Es como una “receta” documentada, no un incidente real.

MITRE

Organización sin ánimo de lucro de EE. UU. que mantiene catálogos públicos usados en todo el mundo, como CAPEC, CWE, CVE y ATT&CK.

CAPEC

Common Attack Pattern Enumeration and Classification: catálogo público de MITRE con patrones de ataque. Es una base de conocimiento, no un registro de incidentes. Usamos la versión 3.9: 615 patrones, cada uno con hasta 23 campos.

CampoQué significaValores
AbstractionNivel de generalidad del patrónMeta 77 · Standard 197 · Detailed 341
StatusMadurez del registroDraft, Stable, Deprecated…
Likelihood Of AttackProbabilidad de que se intenteHigh, Medium, Low
Typical SeverityGravedad típica si tiene éxitoVery High … Very Low
Láminas 8–9

CWE, CVE y ATT&CK

CWE lista debilidades de software; una CVE es una vulnerabilidad concreta en un producto; ATT&CK describe técnicas de atacantes reales. CAPEC conecta con todas: un patrón explota debilidades CWE.

Tráfico HTTP

Los mensajes entre un navegador y un sitio web. Cada petición (request) tiene partes como el cuerpo, las cookies, el user agent (qué navegador es) y el puerto de origen.

SR-BH 2020

Dataset público de tráfico HTTP real etiquetado con tipos de ataque (multietiqueta, alineado con CAPEC). Fue nuestro escenario real.

Lámina 16

Ataques web: SQLi, Path Traversal, comandos y XSS

Inyección SQL (CAPEC-66): mete instrucciones de base de datos en un formulario o URL. Path Traversal (CAPEC-126): usa rutas como ../ para leer archivos que no debería. Inyección de comandos (CAPEC-88): ejecuta órdenes del sistema operativo en el servidor. Estos tres están entre las 13 etiquetas de ataque de SR-BH 2020. XSS (Cross-Site Scripting), que inserta código que se ejecuta en el navegador de otra persona, aparece en el ejemplo de cálculo con 6 patrones.

Detección de intrusiones, anomalías y DDoS

Un IDS vigila la red buscando ataques. Una anomalía es un comportamiento fuera de lo normal. Un DDoS satura un servicio con tráfico. La mayoría de estudios usa la entropía para detectar esto; nosotros la usamos para evaluar el dataset.

Lámina 6

Estructura del XML y campos “moleculares”

En el XML, cada <Attack_Pattern> contiene elementos hijo, y algunos tienen a su vez listas dentro (relaciones, referencias, pasos). A esos campos con registros anidados los llamamos moleculares: no caben en una sola celda sin transformarlos, por eso se dejaron fuera del dataset modelo.

Láminas 8–9

Cobertura de un campo

En cuántos de los 615 patrones aparece un campo del catálogo. Es la mirada “antes” de construir el dataset; la completitud C es la misma idea medida ya sobre cada columna del CSV.

Related Attack Patterns aparece en 506 de 615 patrones: 82 %. Notes, solo en el 3 %.
Lámina 8

Otros campos de CAPEC

Prerequisites: condiciones necesarias para que el ataque sea viable. Mitigations: controles para prevenirlo o neutralizarlo. Execution Flow: los pasos del ataque (explorar, experimentar, explotar). Related Weaknesses: las debilidades CWE que explota.

Son valiosos, pero son listas o textos largos: necesitarían NLP u otras transformaciones para analizarse como columnas.

Dónde se usa hoy la entropía en ciberseguridad

En la literatura revisada aparece sobre todo para detectar: anomalías en el tráfico del dataset UNSW-NB15, ataques DDoS en redes SDN (definidas por software), ataques en redes IoT (dispositivos conectados) o amenazas en textos de CTI (inteligencia de amenazas). Casi nunca se usa para evaluar el dataset mismo.

Lámina 6
3

El método

Las ideas matemáticas y metodológicas detrás del índice EIAC, paso a paso.

Probabilidad y frecuencia relativa

La frecuencia relativa de un valor es cuántas veces aparece dividido entre el total. Funciona como su probabilidad (p).

Si de 100 patrones 95 son “Stable”: p = 95/100 = 0,95

Logaritmo en base 2 y el bit

log₂ x responde “¿cuántas veces debo multiplicar 2 para llegar a x?”. El bit es la información de una pregunta de sí/no con dos opciones igual de probables.

log₂ 4 = 2 → elegir entre 4 opciones iguales equivale a 2 preguntas de sí/no.

Entropía de Shannon

Mide la incertidumbre o diversidad de los valores de una columna (Shannon, 1948). Si casi todo es igual, hay poca sorpresa y la entropía es baja; si los valores están repartidos, es alta.

H(X) = − Σ pᵢ · log₂ pᵢ

ColumnaRepartoHLectura
Concentrada95 % Stable, 5 % Draft0,29 bitsPoca sorpresa
Equilibrada4 categorías al 25 %2,00 bitsMáxima para k = 4
Constante100 % un solo valor0Sin incertidumbre
IdentificadorUn valor distinto por filaMáxima¡Pero no es útil!

La última fila es el problema que resolvemos: entropía alta no significa columna útil.

Lámina 4

Entropía normalizada (Hn)

La entropía máxima depende del número de categorías (log₂ k), así que no se pueden comparar columnas directamente. Dividimos y obtenemos un valor de 0 a 1:

Hn(X) = H(X) / log₂ k

Completitud (C)

Qué fracción de la columna tiene datos. m = celdas vacías, n = total de registros.

C(X) = 1 − m / n

Una columna llena tiene C = 1; una con la mitad vacía, C = 0,5.

Unicidad (U)

Qué tan cerca está la columna de tener un valor distinto en cada fila.

U(X) = k / n

Un ID tiene U = 1 → el factor 1 − U vale 0 y anula el índice.

EIAC · Índice de Entropía Informativa Ajustada de Columna

Nuestra propuesta. Parte de Shannon y la corrige con los dos factores que ella no ve: vacíos y unicidad.

EIAC(X) = Hn(X) × C(X) × (1 − U(X))

Baja · 0 a < 0,33
Media · 0,33 a < 0,66
Alta · 0,66 a 1
Ejemplo real (6 patrones, sin vacíos): Abstraction → Hn 0,918 × C 1 × (1 − 2/6) = 0,612 (media). ID → Hn 1 × C 1 × (1 − 6/6) = 0: Shannon lo ve como la columna más informativa; el EIAC lo reconoce como identificador.
Láminas 10–12 Mueve cada factor en el simulador ↓

Clasificación funcional

Además del número, el algoritmo etiqueta el papel de cada columna: analítica, trazabilidad, descriptiva, complementaria, bajo aporte o candidata a limpieza (p. ej. “Detailed” y “detailed” escritos distinto).

Análisis de sensibilidad

Mover un solo factor a la vez para ver cómo cambia el resultado. Desde una columna con Hn 0,80, C 0,90 y U 0,10 (EIAC 0,648): si la completitud baja a 0,50, el EIAC cae a 0,360; si U llega a 1, se anula.

Lámina 12

CRISP-DM

Metodología estándar para proyectos de datos: entender el problema y los datos, prepararlos, modelar, evaluar y desplegar. La adaptamos en cuatro fases, una por objetivo.

Lámina 7

Modelo CVM

Forma de organizar una revisión de literatura en tres dimensiones: Criterios de búsqueda, Ventana de tiempo y Moda investigativa. Con él seleccionamos 14 trabajos (2018–2026).

Lámina 6

Implementación en Python

El algoritmo lee un CSV, calcula H, Hn, C, U y EIAC por columna, las clasifica y genera reportes CSV y PDF. Usa pandas, math, re, argparse, pathlib, urllib y reportlab.

Láminas 11 y 13

Reproducibilidad

Que cualquiera pueda repetir el trabajo y obtener lo mismo. Por eso el código, los datos y los resultados están en un repositorio público con una versión congelada (v1.0.0), y cada archivo de datos tiene una huella SHA-256 que permite comprobar que no cambió.

Cómo leer las gráficas de resultados

Barras: la barra gris es Shannon normalizado y la azul es el EIAC. Si la azul es mucho más corta, la columna tenía diversidad “engañosa” (vacíos o casi todo distinto). Dispersión: cada punto es una columna; sobre la diagonal el índice no ajusta, por debajo la columna pierde relevancia. Las caídas se explican por dos causas: unicidad extrema (IDs, textos, timestamps) o baja completitud (muchos vacíos).

Caso estrella: timestamp en SR-BH 2020 → Shannon 0,991, EIAC 0,184: casi cada fila tiene una hora distinta.
Láminas 14–17

Exactitud, precisión, recall y F1

Métricas para evaluar un modelo de clasificación: cuántos aciertos tiene, cuántas alarmas son reales, cuántos ataques detecta y un balance de ambas. Medir su efecto con y sin EIAC es nuestro trabajo futuro.

Lámina 19

Alternativas a Shannon: Rényi, Tsallis e información mutua

Rényi y Tsallis son generalizaciones de la entropía con un parámetro que da más peso a los valores frecuentes o a los raros. La información mutua mide cuánto dice una columna sobre otra, normalmente sobre la etiqueta.

¿Por qué Shannon? Es la más interpretable y usada en ciberseguridad, no necesita datos etiquetados (la información mutua sí) y su costo es mucho menor que entrenar un modelo para medir relevancia.
Lámina 10

Métodos del estado del arte

Divergencia KL: mide cuánto se diferencian dos distribuciones. Topic modeling: descubre temas en colecciones de textos. NLP (procesamiento de lenguaje natural): técnicas para que un programa analice texto, por ejemplo para vincular vulnerabilidades CVE con patrones CAPEC. Ontologías: mapas formales de conceptos y sus relaciones, usados para clasificar ataques.

Lámina 6

Validación y significancia estadística

Validar es comprobar que el índice sirve para algo externo, por ejemplo que mejora un modelo. La significancia estadística indica si una diferencia es real o podría ser casualidad. En este trabajo las comparaciones son descriptivas: ambas cosas quedan como trabajo futuro.

Lámina 19

La entropía en la vida diaria

Contraseñas: su fortaleza se mide en bits de entropía; más caracteres posibles y más largo, más difícil de adivinar. Compresión: un archivo con mucha repetición (baja entropía) se comprime mucho; uno ya comprimido o cifrado casi nada. Malware: el código cifrado u ofuscado tiene entropía muy alta, una pista que usan los antivirus.

⇄

Simulador: ¿cómo se comporta cada métrica?

Mueve cada barra y observa cómo cambia el EIAC. Así se ve por qué una columna con mucha diversidad puede ser poco útil: basta con que tenga muchos vacíos o que casi todos sus valores sean distintos.

Hn · diversidad0,800
0 = un valor domina · 1 = valores repartidos por igual
C · completitud0,900
0 = columna vacía · 1 = sin datos faltantes
U · unicidad0,100
0 = valores que se repiten · 1 = cada fila distinta (un ID)

EIAC = 0,80 × 0,90 × (1 − 0,10)

0,648Media
00,330,661
Shannon norm. (Hn)
0,800
EIAC
0,648

∑

Calculadora de EIAC

Ahora con datos: escribe los valores de una columna separados por comas o saltos de línea (deja un valor vacío, dos comas seguidas, para simular un dato faltante) y compara lo que dice Shannon con lo que dice el EIAC.

Shannon norm. (Hn)
–
EIAC
–

Ver el cálculo paso a paso
Registros (n)–
Vacíos (m)–
Distintos (k)–
Shannon H (bits)–
Hn–
C–
1 − U–
EIAC–