
Ein Werkzeug zur Bewertung der Datenqualität, das auf dem großartigen OSSEM aufbaut.

Ein Tool zur Bewertung der Datenqualität, basierend auf dem großartigen OSSEM-Projekt.
Power-up verwendet das OSSEM Detection Data Model (DDM) als Grundlage seiner Datenqualitätsbewertung. Der Hauptgrund dafür ist, dass es eine strukturierte Möglichkeit bietet, ATT&CK Data Sources, Common Information Model Entitäten (CIM) und Data Dictionaries (Events) miteinander zu korrelieren.
Für diejenigen, die mit der DDM-Struktur nicht vertraut sind, hier ein Beispiel:
| ATT&CK Data Source | Sub Data Source | Source Data Object | Relationship | Destination Data Object | EventID |
|---|---|---|---|---|---|
| Process monitoring | process creation | process | created | process | 4688 |
| Process monitoring | process creation | process | created | process | 1 |
| Process monitoring | process termination | process | terminated | - | 4689 |
| Process monitoring | process termination | process | terminated | - | 5 |
Wie Sie sehen, definiert jeder Eintrag im DDM eine Sub-Datenquelle (Scope) unter Verwendung abstrakter Entitäten wie process, user, file usw. Jeder dieser Einträge enthält auch eine Ereignis-ID, für die der Scope gilt. Lesen Sie mehr über diese Entitäten hier.
Kurz gesagt, DDM-Einträge spielen eine große Rolle bei der Entfernung der Komplexität roher Ereignisse, indem sie einen Scope bereitstellen, der definiert, wie eine Logquelle (Datenkanäle) konsumiert werden kann.
Power-up bewertet die Datenqualität anhand von fünf verschiedenen Dimensionen:
| Dimension | Typ | Beschreibung |
|---|---|---|
| Abdeckung | Datenkanal | Wie viele Geräte oder Netzwerksegmente werden vom Datenkanal abgedeckt |
| Aktualität | Datenkanal | Wie lange dauert es, bis das Ereignis verfügbar ist |
| Aufbewahrung | Datenkanal | Wie lange bleibt das Ereignis verfügbar |
| Struktur | Ereignis | Wie vollständig ist das Ereignis, ob relevante Felder verfügbar sind |
| Konsistenz | Ereignis | Wie standardisiert sind die Ereignisfelder, ob Felder normalisiert wurden |
Jede Dimension wird mit einer Punktzahl zwischen 0 (keine) und 5 (ausgezeichnet) bewertet.
Diese Dimensionen sind an Datenkanäle gebunden und wirken sich auf alle von ihnen bereitgestellten Ereignisse aus.
Aufgrund der Natur dieser Dimensionen müssen sie manuell entsprechend den Besonderheiten der Datenkanäle bewertet werden.
Power-up verwendet resources/dcs.yml, um Datenkanäle zu definieren und die Dimensionen zu bewerten:
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
Um zu berechnen, wie vollständig die Ereignisstruktur ist, vergleicht power-up die Standardnamen des Data Dictionary mit den Feldern der Entitäten (CIM), die im DDM-Eintrag referenziert werden (Quelle und Ziel).
Da nicht alle Entitätsfelder relevant sind (abhängig vom Kontext), verwendet power-up das Konzept der Profile, um auszuwählen, welche Felder mit den Standardnamen des Data Dictionary übereinstimmen müssen. Beispiel:
# OSSEM CIM Profile
process:
- process_name
- process_path
- process_command_line
Hinweis: Es gibt ein Beispielprofil in
profiles/default.ymlzum Ausprobieren.
Der Struktur-Score wird mit der folgenden Formel berechnet:
SCORE_PERCENT = (MATCHED_FIELDS / TOTAL_RELEVANT_FIELDS) * 100
Zur Verdeutlichung hier ein Beispiel, wie der Struktur-Score berechnet wird:

Hinweis: Da das Data Dictionary von Sysmon Event Id 1 zu 100 % mit den relevanten Entitätsfeldern übereinstimmt, wird der Struktur-Score mit 5 (ausgezeichnet) bewertet.
Der Struktur-Score wird wie folgt in die 0-5-Skala übersetzt:
| Prozentsatz | Punktzahl |
|---|---|
| 0 | 0 |
| 1 bis 25 | 1 |
| 26 bis 50 | 2 |
| 51 bis 75 | 3 |
| 76 bis 99 | 4 |
| 100 | 5 |
Hinweis: Abhängig vom Anwendungsfall (SIEM, Threat Hunting, Forensik) können Sie verschiedene Profile definieren, um Ihre Logs unterschiedlich zu bewerten.
Zur Berechnung der Konsistenz berechnet power-up einfach den Prozentsatz der Felder mit einem Standardnamen in einem Data Dictionary. Data Dictionaries mit einer hohen Anzahl von Feldern, die einem Standardnamen zugeordnet sind, korrelieren eher mit CIM-Entitäten.
Der Konsistenz-Score wird mit der folgenden Formel berechnet:
SCORE_PERCENT = (STANDARD_NAME_FIELDS / TOTAL_FIELDS) * 100
Der Konsistenz-Score wird wie folgt in die 0-5-Skala übersetzt:
| Prozentsatz | Punktzahl |
|---|---|
| 0 | 0 |
| 1 bis 50 | 1 |
| 51 bis 99 | 3 |
| 100 | 5 |
pip install -r requirements.txt aus$> 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
Wie Sie sehen, kann power-up OSSEM-Daten aus zwei verschiedenen Formaten konsumieren:
Derzeit exportiert Power-up OSSEM-Ausgabe nach:
output/output/