Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ossem-power-up — Una herramienta para evaluar la calidad de los datos, construida sobre la excelente OSSEM. | Kitploit
Herramientas/GitHubGitHub/hxnoyd/ossem-power-up
Inteligencia de AmenazasAprendizaje y EducaciónRecursos CuradosAnálisis de Registros
GitHubhxnoyd/ossem-power-up

ossem-power-up

Una herramienta para evaluar la calidad de los datos, construida sobre la excelente OSSEM.

Ver Repositorio
7911hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

OSSEM

Una herramienta para evaluar la calidad de los datos, construida sobre el increíble proyecto OSSEM.

Misión

  • Responder a la pregunta: Quiero empezar a cazar técnicas ATT&CK, ¿qué fuentes de registro y eventos son más adecuados?
  • Crear transparencia sobre las fortalezas y debilidades de tus fuentes de registro
  • Proporcionar una manera fácil de evaluar tus registros

Resumen de OSSEM Power-up

Power-up utiliza el Modelo de Datos de Detección (DDM) de OSSEM como base para su evaluación de calidad de datos. La razón principal es que proporciona una manera estructurada de correlacionar Fuentes de Datos ATT&CK, Entidades del modelo de información común (CIM) y Diccionarios de Datos (eventos) entre sí.

Para aquellos no familiarizados con la estructura del DDM, aquí hay un ejemplo:

Como puedes ver, cada entrada en el DDM define una sub fuente de datos (alcance) usando entidades abstractas como proceso, usuario, archivo, etc. Cada una de estas entidades también contiene un ID de evento, donde se aplica el alcance. Puedes leer más sobre estas entidades aquí.

En resumen, las entradas del DDM juegan un papel importante en eliminar la complejidad de los eventos en bruto, proporcionando un alcance que define cómo se puede consumir una fuente de registro (canales de datos).

Dimensiones de Calidad de Datos

Power-up evalúa la puntuación de calidad de datos según cinco dimensiones distintas:

Cada dimensión se califica con una puntuación entre 0 (ninguno) y 5 (excelente).

Cobertura, Oportunidad y Retención

Estas dimensiones están vinculadas a los canales de datos y se propagan a todos los eventos proporcionados por ellos.

Debido a la naturaleza de estas dimensiones, deben calificarse manualmente, según las especificidades de los canales de datos.

Power-up utiliza resources/dcs.yml para definir el canal de datos y calificar las dimensiones:

root@kitploit:~
data channel: sysmon
description: sysmon monitoring
coverage: 2
timeliness: 5
retention: 2
---
data channel: security
description: windows security auditing
coverage: 5
timeliness: 5
retention: 2

Estructura

Para calcular qué tan completa es la estructura del evento, power-up compara los nombres estándar del diccionario de datos con los campos de las entidades (CIM) referenciadas en la entrada del DDM (origen y destino).

Debido a que no todos los campos de las entidades son relevantes (depende del contexto), power-up utiliza el concepto de perfiles para seleccionar qué campos deben coincidir con los nombres estándar del diccionario de datos. Por ejemplo:

root@kitploit:~
# OSSEM CIM Profile
process:
    - process_name
    - process_path
    - process_command_line

Nota: Hay un perfil de ejemplo en profiles/default.yml para que juegues con él.

La puntuación de estructura se calcula con la siguiente fórmula:

SCORE_PERCENT = (MATCHED_FIELDS / TOTAL_RELEVANT_FIELDS) * 100

Para mayor claridad, aquí hay un ejemplo de cómo se calcula la puntuación de estructura:

Nota: Debido a que el diccionario de datos de Sysmon Event Id 1 coincide al 100% con los campos de entidad relevantes, la puntuación de estructura se calificará como 5 (excelente).

La puntuación de estructura se traduce a la escala 0-5 de la siguiente manera:

PorcentajePuntuación

Nota: Dependiendo del caso de uso (SIEM, Caza de Amenazas, Forense), puedes definir diferentes perfiles para calificar tus registros de manera diferente.

Consistencia

Para calcular la consistencia, power-up simplemente calcula el porcentaje de campos con un nombre estándar en un diccionario de datos. Los diccionarios de datos con un alto número de campos mapeados a un nombre estándar tienen más probabilidades de correlacionarse con las entidades CIM.

La puntuación de consistencia se calcula con la siguiente fórmula:

SCORE_PERCENT = (STANDARD_NAME_FIELDS / TOTAL_FIELDS) * 100

La puntuación de consistencia se traduce a la escala 0-5 de la siguiente manera:

PorcentajePuntuación
00
1 al 501
51 al 993
1005

Cómo usar

Antes de empezar

  • Power-up es un script de Python, asegúrate de pip install -r requirements.txt
  • Asegúrate de tener una copia local del repositorio de OSSEM

Ejecutando power-up

root@kitploit:~
$> python3 powerup.py --help
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

usage: powerup.py [-h] [-o OSSEM] [-y OSSEM_YAML] [-p PROFILE] [--excel]
                  [--elastic] [--yaml]

A tool to assess ATT&CK data source coverage, built on top of awesome OSSEM.

optional arguments:
  -h, --help            show this help message and exit
  -o OSSEM, --ossem OSSEM
                        path to import OSSEM markdown
  -y OSSEM_YAML, --ossem-yaml OSSEM_YAML
                        path to import OSSEM yaml
  -p PROFILE, --profile PROFILE
                        path to CIM profile
  --excel               export OSSEM DDM to excel
  --elastic             export OSSEM data models to elastic
  --yaml                export OSSEM data models to yaml
  --layer               export OSSEM data models to navigator layer

Como puedes ver, power-up puede consumir datos de OSSEM desde dos formatos diferentes:

  • OSSEM markdown - El formato nativo de OSSEM cuando clonas desde git.
  • OSSEM yaml - Un formato resumido de OSSEM, solo los campos de datos y algunos metadatos. Puedes usar power-up para convertir OSSEM markdown a yaml.

Actualmente, Power-up exporta la salida de OSSEM a:

  • Yaml - Crea estructuras OSSEM en yaml, en la carpeta output/
  • Excel - Crea una tabla DDM de OSSEM, enriquecida con las puntuaciones de calidad de datos, en la carpeta output/
  • Elastic - Crea una estructura OSSEM en elastic, los índices son los siguientes:
    • ossem.ddm - Tabla DDM de OSSEM, enriquecida con las puntuaciones de calidad de datos
    • ossem.cim - Entradas CIM de OSSEM
    • ossem.dds - Diccionarios de Datos de OSSEM
    • ossem.dcs - Canales de Datos de OSSEM

Nota: si no se especifica una ruta de archivo de perfil, power-up usa profiles/default.yml por defecto.

Exportando a YAML

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --yaml
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM to YAML
[*] Created output/ddm_20191114_160246.yml
[*] Created output/cim_20191114_160246.yml
[*] Created output/dds_20191114_160246.yml

El objetivo de exportar/importar a/desde YAML es facilitar la personalización de OSSEM. Lo más probable es que lo primero que hagas sea crear tus propios diccionarios de datos y luego añadir nuevas entradas DDM, por lo que YAML hará las actualizaciones más fáciles.

Nota 1: modifica resources/config.yml para instruir a power-up sobre los nombres de archivo para las estructuras correctas. Luego solo necesitas colocarlos en una carpeta y pasarlos al argumento OSSEM_YAML.

Nota 2: power-up no analiza todos los objetos OSSEM a YAML, solo los campos de datos y algunos metadatos (por ejemplo, descripción). La razón es que quería mantener el objeto YAML lo más ligero posible, solo con los datos que necesitas para evaluar la calidad de datos.

Exportando a EXCEL

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --excel
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM DDM to Excel
[*] Saved Excel to output/ddm_enriched_20191114_160041.xlsx

Al exportar a Excel, power-up creará un DDM atractivo, con las respectivas dimensiones de calidad de datos para cada entrada:

Exportando a ELASTIC

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --elastic
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM to Elastic
[*] Creating elastic index ossem.ddm
[*] Creating elastic index ossem.cim
[*] Creating elastic index ossem.dds
[*] Creating elastic index ossem.dcs

Al exportar a Elastic, power-up almacenará todos los datos de OSSEM en elastic. Debido a que el DDM también está enriquecido con las respectivas dimensiones de calidad de datos, podrás crear paneles como este:

Exportando a ATT&CK Navigator

root@kitploit:~
$> python3 powerup.py -o ../OSSEM --layer
  _____ _____ _____ _____ _____    _____ _____ _ _ _ _____ _____     _____ _____ __
 |     |   __|   __|   __|     |  |  _  |     | | | |   __| __  |___|  |  |  _  |  |
 |  |  |__   |__   |   __| | | |  |   __|  |  | | | |   __|    -|___|  |  |   __|__|
 |_____|_____|_____|_____|_|_|_|  |__|  |_____|_____|_____|__|__|   |_____|__|  |__|

[*] Profile path: profiles/default.yml
[*] Parsing OSSEM from markdown
[*] Exporting OSSEM to Naviagator Layer
[*] Pulling ATT&CK data
[*] Generating data source quality layer
[*] Created output/ds_layer_20191119_220141.json

Al exportar a capa, power-up creará un archivo JSON de capa de Attack Navigator, con las respectivas dimensiones de calidad de datos para cada técnica:

Nota: las puntuaciones de las técnicas se derivan de las puntuaciones promedio de las fuentes de datos en el DDM.

Agradecimientos

  • Roberto Rodriguez @Cyb3rWard0g, Jose Luis Rodriguez @Cyb3rPandaH y todos los miembros de la comunidad por apoyar OSSEM.
  • Marcus Bakker @bakk3rm y Ruben Bouman @rubenb_2 por la inspiración en las Dimensiones de Calidad de Datos de DeTTECT.

Por hacer

  • Crear documentación adicional
  • Exportar a capa de ATT&CK Navigator
  • Manejar adecuadamente los diccionarios de datos que comparten el mismo canal de datos pero tienen esquemas diferentes según el sistema operativo
  • Proporcionar objetos de Kibana (visualizaciones y paneles)
Descargar herramienta
Fuente de Datos ATT&CKSub Fuente de DatosObjeto de Datos OrigenRelaciónObjeto de Datos DestinoEventID
Process monitoringprocess creationprocesscreatedprocess4688
Process monitoringprocess creationprocesscreatedprocess1
Process monitoringprocess terminationprocessterminated-4689
Process monitoringprocess terminationprocessterminated-5
DimensiónTipoDescripción
CoberturaCanal de datosCuántos dispositivos o segmentos de red están cubiertos por el canal de datos
OportunidadCanal de datosCuánto tiempo tarda en estar disponible el evento
RetenciónCanal de datosCuánto tiempo permanece disponible el evento
EstructuraEventoQué tan completo es el evento, si los campos relevantes están disponibles
ConsistenciaEventoQué tan estándar son los campos del evento, si los campos han sido normalizados
00
1 al 251
26 al 502
51 al 753
76 al 994
1005