Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ossem-power-up — Ein Werkzeug zur Bewertung der Datenqualität, das auf dem großartigen OSSEM aufbaut. | Kitploit
Tools/GitHubGitHub/hxnoyd/ossem-power-up
BedrohungsanalyseLernen & BildungKuratierte RessourcenLog-Analyse
GitHubhxnoyd/ossem-power-up

ossem-power-up

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

Repository anzeigen
7911vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

OSSEM

Ein Tool zur Bewertung der Datenqualität, basierend auf dem großartigen OSSEM-Projekt.

Mission

  • Beantworten Sie die Frage: Ich möchte ATT&CK-Techniken jagen – welche Logquellen und Ereignisse sind am besten geeignet?
  • Schaffen Sie Transparenz über die Stärken und Schwächen Ihrer Logquellen
  • Bieten Sie eine einfache Möglichkeit, Ihre Logs zu bewerten

OSSEM Power-up Überblick

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:

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.

Datenqualitätsdimensionen

Power-up bewertet die Datenqualität anhand von fünf verschiedenen Dimensionen:

Jede Dimension wird mit einer Punktzahl zwischen 0 (keine) und 5 (ausgezeichnet) bewertet.

Abdeckung, Aktualität und Aufbewahrung

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:

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

Struktur

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:

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

Hinweis: Es gibt ein Beispielprofil in profiles/default.yml zum 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:

ProzentsatzPunktzahl

Hinweis: Abhängig vom Anwendungsfall (SIEM, Threat Hunting, Forensik) können Sie verschiedene Profile definieren, um Ihre Logs unterschiedlich zu bewerten.

Konsistenz

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:

ProzentsatzPunktzahl
00
1 bis 501
51 bis 993
1005

Verwendung

Bevor Sie beginnen

  • Power-up ist ein Python-Skript, führen Sie pip install -r requirements.txt aus
  • Stellen Sie sicher, dass Sie eine lokale Kopie des OSSEM-Repositorys haben

Power-up ausführen

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

Wie Sie sehen, kann power-up OSSEM-Daten aus zwei verschiedenen Formaten konsumieren:

  • OSSEM Markdown – Das native Format von OSSEM, wenn Sie es von git klonen.
  • OSSEM YAML – Ein zusammengefasstes Format von OSSEM, nur die Datenfelder und einige Metadaten. Sie können power-up verwenden, um OSSEM Markdown in YAML zu konvertieren.

Derzeit exportiert Power-up OSSEM-Ausgabe nach:

  • Yaml – Erstellt OSSEM-Strukturen in YAML im Ordner output/
  • Excel – Erstellt eine OSSEM DDM-Tabelle, angereichert mit den Datenqualitäts-Scores, im Ordner output/
  • Elastic – Erstellt eine OSSEM-Struktur in Elastic, die Indizes sind wie folgt:
    • ossem.ddm – OSSEM DDM-Tabelle, angereichert mit den Datenqualitäts-Scores
    • ossem.cim – OSSEM CIM-Einträge
    • ossem.dds – OSSEM Data Dictionaries
    • ossem.dcs – OSSEM Datenkanäle

Hinweis: Wenn kein Profildateipfad angegeben wird, verwendet power-up standardmäßig profiles/default.yml.

Exportieren nach 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

Das Ziel des Exports/Imports von/nach YAML ist es, die OSSEM-Anpassung zu erleichtern. Wahrscheinlich werden Sie zuerst Ihre eigenen Data Dictionaries erstellen und dann neue DDM-Einträge hinzufügen, daher macht YAML Aktualisierungen einfacher.

Hinweis 1: Ändern Sie resources/config.yml, um power-up über die Dateinamen für die korrekten Strukturen zu informieren. Dann müssen Sie sie nur noch in einen Ordner legen und als OSSEM_YAML-Argument übergeben.

Hinweis 2: power-up parst nicht die gesamten OSSEM-Objekte in YAML, sondern nur die Datenfelder und einige Metadaten (z.B. Beschreibung). Der Grund dafür ist, dass ich das YAML-Objekt so schlank wie möglich halten wollte, nur mit den Daten, die Sie zur Bewertung der Datenqualität benötigen.

Exportieren nach 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

Beim Export nach Excel erstellt power-up eine ansprechende DDM mit den entsprechenden Datenqualitätsdimensionen für jeden Eintrag:

Exportieren nach 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

Beim Export nach Elastic speichert power-up alle OSSEM-Daten in Elastic. Da die DDM auch mit den entsprechenden Datenqualitätsdimensionen angereichert ist, können Sie Dashboards wie dieses erstellen:

Exportieren nach 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

Beim Export in eine Layer-Datei erstellt power-up eine ATT&CK Navigator Layer JSON-Datei mit den entsprechenden Datenqualitätsdimensionen für jede Technik:

Hinweis: Technik-Scores werden aus den Durchschnittswerten der Datenquellen im DDM abgeleitet.

Danksagungen

  • Roberto Rodriguez @Cyb3rWard0g, Jose Luis Rodriguez @Cyb3rPandaH und allen Community-Mitgliedern für die Unterstützung von OSSEM.
  • Marcus Bakker @bakk3rm und Ruben Bouman @rubenb_2 für die Inspiration zu den Datenqualitätsdimensionen aus DeTTECT.

To-Do

  • Zusätzliche Dokumentation erstellen
  • Export in ATT&CK Navigator Layer
  • Data Dictionaries, die denselben Datenkanal teilen, aber je nach Betriebssystem ein unterschiedliches Schema haben, ordnungsgemäß behandeln
  • Kibana-Objekte (Visualisierungen und Dashboards) bereitstellen
Tool herunterladen
ATT&CK Data SourceSub Data SourceSource Data ObjectRelationshipDestination Data ObjectEventID
Process monitoringprocess creationprocesscreatedprocess4688
Process monitoringprocess creationprocesscreatedprocess1
Process monitoringprocess terminationprocessterminated-4689
Process monitoringprocess terminationprocessterminated-5
DimensionTypBeschreibung
AbdeckungDatenkanalWie viele Geräte oder Netzwerksegmente werden vom Datenkanal abgedeckt
AktualitätDatenkanalWie lange dauert es, bis das Ereignis verfügbar ist
AufbewahrungDatenkanalWie lange bleibt das Ereignis verfügbar
StrukturEreignisWie vollständig ist das Ereignis, ob relevante Felder verfügbar sind
KonsistenzEreignisWie standardisiert sind die Ereignisfelder, ob Felder normalisiert wurden
00
1 bis 251
26 bis 502
51 bis 753
76 bis 994
1005