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.
12ª Semana Internacional de Ciencia, Tecnología e Innovación · UFPS
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.
Lo mínimo para entender con qué trabajamos: tablas de datos y cómo se preparan antes de usarlas.
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.
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.
Cada fila del dataset: un elemento concreto que se describe. También se llama observación o instancia.
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.
Typical Severity es una columna con valores High, Medium, Low…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.
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,StandardFormato 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.
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.
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.
Indicators aparece solo en el 9 % de los patrones.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.
Abstraction tiene k = 3 (Meta, Standard, Detailed); ID tiene k = 615.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.
Cuando una columna repite información que ya está en otra. Añade trabajo sin añadir conocimiento.
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.
Decidir qué columnas usar. Muchas veces se hace a mano y por experiencia; proponemos una medida objetiva que ayuda a decidir.
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.
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 7La 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.
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 3Normalizar 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.
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.
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.
De dónde vienen nuestros datos y qué describen.
La ciberseguridad protege sistemas y datos. Un ataque es un intento de dañarlos, robarlos o usarlos sin permiso.
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.
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.
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.
| Campo | Qué significa | Valores |
|---|---|---|
| Abstraction | Nivel de generalidad del patrón | Meta 77 · Standard 197 · Detailed 341 |
| Status | Madurez del registro | Draft, Stable, Deprecated… |
| Likelihood Of Attack | Probabilidad de que se intente | High, Medium, Low |
| Typical Severity | Gravedad típica si tiene éxito | Very High … Very Low |
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.
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.
Dataset público de tráfico HTTP real etiquetado con tipos de ataque (multietiqueta, alineado con CAPEC). Fue nuestro escenario real.
Lámina 16Inyecció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.
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 6En 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.
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 %.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.
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 6Las ideas matemáticas y metodológicas detrás del índice EIAC, paso a paso.
La frecuencia relativa de un valor es cuántas veces aparece dividido entre el total. Funciona como su probabilidad (p).
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.
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ᵢ
| Columna | Reparto | H | Lectura |
|---|---|---|---|
| Concentrada | 95 % Stable, 5 % Draft | 0,29 bits | Poca sorpresa |
| Equilibrada | 4 categorías al 25 % | 2,00 bits | Máxima para k = 4 |
| Constante | 100 % un solo valor | 0 | Sin incertidumbre |
| Identificador | Un valor distinto por fila | Máxima | ¡Pero no es útil! |
La última fila es el problema que resolvemos: entropía alta no significa columna útil.
Lámina 4La 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
Qué fracción de la columna tiene datos. m = celdas vacías, n = total de registros.
C(X) = 1 − m / n
Qué tan cerca está la columna de tener un valor distinto en cada fila.
U(X) = k / n
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))
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.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).
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 12Metodologí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 7Forma 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 6El 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 13Que 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ó.
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).
timestamp en SR-BH 2020 → Shannon 0,991, EIAC 0,184: casi cada fila tiene una hora distinta.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 19Ré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.
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 6Validar 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 19Contraseñ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.
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.
EIAC = 0,80 × 0,90 × (1 − 0,10)
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.