
Agrège les données MITRE ATT&CK, Sigma et Atomic Red Team dans des graphes BloodHound afin que les analystes SOC puissent cartographier la couverture de détection, identifier les lacunes et enquêter sur les incidents à l'aide de requêtes Cypher.

BloodSOCer est un outil d'automatisation Python qui agrège les données de renseignement sur les menaces provenant de plusieurs sources (Mitre ATT&CK, règles Sigma, Atomic Red Team) et produit des fichiers JSON à ingérer dans BloodHound au format OpenGraph. BloodSOCer peut également téléverser les fichiers vers BloodHound et définir les icônes des objets personnalisés s'il dispose de jetons API définis dans la configuration. Les analystes sécurité peuvent ensuite visualiser les données sous n'importe quel angle, et quelques requêtes Cypher sont fournies pour vous aider à démarrer.
L'idée derrière ce projet est d'aider le SOC à cartographier sa couverture du framework Mitre ATT&CK et d'aider lors de la réponse à incident à identifier rapidement les angles morts potentiels. Idéalement, le SOC cartographierait ses propres détections et non celles « toutes faites » de Sigma. Ne vous méprenez pas, Sigma est l'un de mes projets Open Source préférés, mais la plupart des détections sont mieux adaptées pour le contexte/l'enrichissement ou pour générer des pistes de chasse aux menaces que pour créer des tickets exploitables.
Lorsque j'étais dans un SOC, nous essayions souvent de voir/montrer comment nos détections correspondaient au framework ATT&CK. J'ai toujours pensé qu'un graphe de type BloodHound serait génial pour cela, alors j'ai construit ce projet en espérant qu'il aiderait les membres de la Blue Team à visualiser leur couverture et comment les différents éléments sont liés entre eux.
Avec l'ingestion d'ART, il est également possible de voir quels TTP sont faciles à tester et lesquels ne peuvent pas être testés facilement.
Je vous encourage vivement à partager les règles Sigma et les ART avec le projet d'origine si vous créez des détections/tests pour un TTP qui n'en possède pas.
UL-Cyphers.py ou --setuphttp://127.0.0.1:8080)Clonez le dépôt :
git clone https://github.com/yourusername/BloodSOCer.git
cd BloodSOCer
Installez les dépendances :
pip3 install -r requirements.txt
Configurez les identifiants API dans BloodSOCer.py :
apikey = "your-api-key-here"
apiid = "your-api-id-here"
python3 BloodSOCer.py
python3 BloodSOCer.py -h
python3 BloodSOCer.py --mitre, -m
python3 BloodSOCer.py --sigma, -s
python3 BloodSOCer.py --art, -r
python3 BloodSOCer.py --define-icons, -di
python3 BloodSOCer.py --setup, -st
python3 BloodSOCer.py --upload-only, -ul
python3 BloodSOCer.py --all, -a
python3 BloodSOCer.py --mitre --sigma --define-icons
python3 BloodSOCer.py --clear-db
REMARQUE : Pour --define-icons et --upload-only, une clé API et un secret API doivent être définis dans BloodSOCer.py
Modifiez BloodSOCer.py pour personnaliser :
http://127.0.0.1:8080)BloodSOCer/
├── BloodSOCer.py # Point d'entrée principal
├── MitreHound.py # Récupérateur de données MITRE ATT&CK
├── ARTHound.py # Récupérateur de données Atomic Red Team
├── SigmaHound.py # Récupérateur de données des règles Sigma
├── Define-Icons.py # Personnalisateur d'icônes BloodHound
├── UL-Cyphers.py # Téléverse les Cypher personnalisés pour aider à interroger les données ingérées
├── Cyphers/ # Requêtes enregistrées (Cypher) JSON
├── ressources/ # Images/diagrammes (graphe Arrows, logo)
├── README.md # Ce fichier
├── requirements.txt # Dépendances Python
└── output/ # Fichiers *_graph.json générés
Ce projet ajoute les types de nœuds suivants
Ce projet ajoute les arêtes/relations suivantes
Exploite une (sous-)techniqueUtilise un Outil ou une (sous-)techniquePartieDe une TacticSousTechniqueDe une TechniqueDétectéePar une RègleTestéePar un ARTInvestigéeAvec un PlaybookBloodSOCer Arrows Graph
Pour télécharger le fichier json de ce graphe Arrows.app, cliquez ici
Détections pour FIN7 utilisant Mimikatz

Tactiques utilisées par FIN7

Détection et test pour l'activité de FIN7

Playbooks pour enquêter sur l'activité de FIN7 et de Scattered Spider

Define-Icons.py seront appliquées à l'interface BloodHoundApache 2.0
Lorsque j'ai entendu parler pour la première fois d'OpenGraph, j'ai immédiatement pensé que ce serait un excellent moyen d'ingérer le framework Mitre ATT&CK et d'utiliser BloodHound pour le visualiser. Olaf Hartong l'a fait il y a quelques années voir son blog, apparemment inspiré par SadProcessor qui est maintenant un de mes collègues. La boucle est bouclée.
Les demandes de tirage (pull requests) et les problèmes (issues) sont les bienvenus.