Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ossem-power-up — Un outil pour évaluer la qualité des données, construit sur le formidable OSSEM. | Kitploit
Outils/GitHubGitHub/hxnoyd/ossem-power-up
Renseignement sur les MenacesApprentissage et ÉducationRessources OrganiséesAnalyse de Journaux
GitHubhxnoyd/ossem-power-up

ossem-power-up

Un outil pour évaluer la qualité des données, construit sur le formidable OSSEM.

Voir le dépôt
7911il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

OSSEM

Un outil pour évaluer la qualité des données, construit sur le super projet OSSEM.

Mission

  • Répondre à la question : Je veux commencer à chasser les techniques ATT&CK, quelles sources de journaux et événements sont les plus appropriés ?
  • Créer de la transparence sur les forces et faiblesses de vos sources de journaux
  • Fournir un moyen simple d'évaluer vos journaux

Aperçu d'OSSEM Power-up

Power-up utilise le Detection Data Model (DDM) d'OSSEM comme fondement de son évaluation de la qualité des données. La raison principale est qu'il offre un moyen structuré de corréler les ATT&CK Data Sources, les entités du modèle d'information commun (CIM) et les Data Dictionaries (événements) entre eux.

Pour ceux qui ne connaissent pas la structure DDM, voici un exemple :

Comme vous pouvez le voir, chaque entrée du DDM définit une sous-source de données (périmètre) en utilisant des entités abstraites comme process, user, file, etc. Chacune de ces entrées contient également un ID d'événement, où le périmètre s'applique. Vous pouvez en savoir plus sur ces entités ici.

En résumé, les entrées DDM jouent un rôle majeur en supprimant la complexité des événements bruts, en fournissant un périmètre qui définit comment une source de journal (canaux de données) peut être consommée.

Dimensions de la Qualité des Données

Power-up évalue le score de qualité des données selon cinq dimensions distinctes :

Chaque dimension est notée avec un score entre 0 (aucun) et 5 (excellent).

Couverture, Actualité et Rétention

Ces dimensions sont liées aux canaux de données et se propagent à tous les événements qu'ils fournissent.

En raison de la nature de ces dimensions, elles doivent être évaluées manuellement, selon les spécificités des canaux de données.

Power-up utilise resources/dcs.yml pour définir le canal de données et noter les dimensions :

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

Structure

Afin de calculer à quel point la structure de l'événement est complète, power-up compare les noms standard du dictionnaire de données avec les champs des entités (CIM) référencées dans l'entrée DDM (source et destination).

Parce que tous les champs d'entité ne sont pas pertinents (cela dépend du contexte), power-up utilise le concept de profils pour sélectionner quels champs doivent correspondre aux noms standard du dictionnaire de données. Par exemple :

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

Note : Un exemple de profil se trouve dans profiles/default.yml pour vous permettre de jouer avec.

Le score de structure est calculé avec la formule suivante :

SCORE_PERCENT = (MATCHED_FIELDS / TOTAL_RELEVANT_FIELDS) * 100

Pour plus de clarté, voici un exemple de calcul du score de structure :

Note : Parce que le dictionnaire de données de Sysmon Event Id 1 correspond à 100 % des champs d'entité pertinents, le score de structure sera noté 5 (excellent).

Le score de structure est traduit sur l'échelle de 0 à 5 de la manière suivante :

PercentageScore

Note : Selon le cas d'usage (SIEM, Threat Hunting, Forensics), vous pouvez définir différents profils pour noter vos journaux différemment.

Cohérence

Pour calculer la cohérence, power-up calcule simplement le pourcentage de champs ayant un nom standard dans un dictionnaire de données. Les dictionnaires de données avec un grand nombre de champs mappés à un nom standard sont plus susceptibles de corréler avec les entités CIM.

Le score de cohérence est calculé avec la formule suivante :

SCORE_PERCENT = (STANDARD_NAME_FIELDS / TOTAL_FIELDS) * 100

Le score de cohérence est traduit sur l'échelle de 0 à 5 de la manière suivante :

PercentageScore
00
1 to 501
51 to 993
1005

Comment utiliser

Avant de commencer

  • Power-up est un script Python, assurez-vous d'exécuter pip install -r requirements.txt
  • Assurez-vous d'avoir une copie locale du dépôt OSSEM

Exécution de 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

Comme vous pouvez le voir, power-up peut consommer des données OSSEM à partir de deux formats différents :

  • OSSEM markdown - Le format natif d'OSSEM lorsque vous clonez depuis git.
  • OSSEM yaml - Un format résumé d'OSSEM, seulement les champs de données et quelques métadonnées. Vous pouvez power-up pour convertir OSSEM markdown en yaml.

Actuellement, Power-up exporte la sortie OSSEM vers :

  • Yaml - Crée des structures OSSEM en yaml, dans le dossier output/
  • Excel - Crée un tableau DDM OSSEM, enrichi avec les scores de qualité des données, dans le dossier output/
  • Elastic - Crée une structure OSSEM dans elastic, les index sont les suivants :
    • ossem.ddm - Tableau DDM OSSEM, enrichi avec les scores de qualité des données
    • ossem.cim - Entrées CIM OSSEM
    • ossem.dds - Dictionnaires de données OSSEM
    • ossem.dcs - Canaux de données OSSEM

Note : si aucun chemin de fichier de profil n'est spécifié, power-up utilise profiles/default.yml par défaut.

Exportation vers 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

Le but de l'exportation/importation vers/depuis YAML est de faciliter la personnalisation d'OSSEM. Il est probable que la première chose que vous fassiez soit de créer vos propres dictionnaires de données, puis d'ajouter de nouvelles entrées DDM, donc YAML facilitera les mises à jour.

Note 1 : modifiez resources/config.yml pour informer power-up des noms de fichiers pour les structures correctes. Ensuite, il vous suffit de les placer dans un dossier et de les passer à l'argument OSSEM_YAML.

Note 2 : power-up n'analyse pas tous les objets OSSEM en YAML, seulement les champs de données et quelques métadonnées (par exemple, description). La raison en est que je voulais garder l'objet YAML aussi léger que possible, juste avec les données nécessaires pour évaluer la qualité des données.

Exportation vers 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

Lors de l'exportation vers Excel, power-up créera un DDM attrayant, avec les dimensions de qualité des données respectives pour chaque entrée :

Exportation vers 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

Lors de l'exportation vers Elastic, power-up stockera toutes les données OSSEM dans elastic. Comme le DDM est également enrichi avec les dimensions de qualité des données respectives, vous pourrez créer des tableaux de bord comme celui-ci :

Exportation vers 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

Lors de l'exportation vers un calque, power-up créera un fichier JSON de calque Attack Navigator, avec les dimensions de qualité des données respectives pour chaque technique :

Note : les scores des techniques sont dérivés des scores moyens des sources de données dans le DDM.

Remerciements

  • Roberto Rodriguez @Cyb3rWard0g, Jose Luis Rodriguez @Cyb3rPandaH, et tous les membres de la communauté pour leur soutien à OSSEM.
  • Marcus Bakker @bakk3rm et Ruben Bouman @rubenb_2 pour l'inspiration sur les Dimensions de Qualité des Données de DeTTECT.

À faire

  • Créer une documentation supplémentaire
  • Exportation vers ATT&CK Navigator Layer
  • Gérer correctement les dictionnaires de données qui partagent le même canal de données mais ont un schéma différent selon le système d'exploitation
  • Fournir des objets Kibana (visualisations et tableaux de bord)
Télécharger l’outil
ATT&CK Data SourceSub Data SourceSource Data ObjectRelationshipDestination Data ObjectEventID
Process monitoringprocess creationprocesscreatedprocess4688
Process monitoringprocess creationprocesscreatedprocess1
Process monitoringprocess terminationprocessterminated-4689
Process monitoringprocess terminationprocessterminated-5
DimensionTypeDescription
CoverageData channelCombien d'appareils ou segments réseau sont couverts par le canal de données
TimelinessData channelCombien de temps faut-il pour que l'événement soit disponible
RetentionData channelCombien de temps l'événement reste disponible
StructureEventÀ quel point l'événement est complet, si les champs pertinents sont disponibles
ConsistencyEventÀ quel point les champs de l'événement sont standardisés, si les champs ont été normalisés
00
1 to 251
26 to 502
51 to 753
76 to 994
1005