
Aggrega i dati di MITRE ATT&CK, Sigma e Atomic Red Team in grafi BloodHound così gli analisti SOC possono mappare la copertura di rilevamento, identificare le lacune e investigare gli incidenti con query Cypher.

BloodSOCer è uno strumento di automazione Python che aggrega dati di threat intelligence da più fonti (Mitre ATT&CK, regole Sigma, Atomic Red Team) e produce file JSON da inserire in BloodHound in formato OpenGraph. BloodSOCer può anche caricare i file su BloodHound e impostare le icone per gli oggetti personalizzati se dispone di token API definiti nella configurazione. Gli analisti della sicurezza possono quindi visualizzare i dati da qualsiasi angolazione e vengono fornite alcune query Cypher per iniziare.
L'idea alla base di questo progetto è aiutare i SOC a mappare la loro copertura del framework Mitre ATT&CK e supportare l'incident response nell'identificare rapidamente dove potrebbero esserci punti ciechi. Idealmente, il SOC dovrebbe mappare le proprie rilevazioni e non quelle "preconfezionate" di Sigma. Non fraintendetemi: Sigma è uno dei miei progetti Open Source preferiti, ma la maggior parte delle rilevazioni sono più adatte per contesto/arricchimento o per generare piste per il threat hunting piuttosto che per creare ticket azionabili.
Quando ero in un SOC, spesso cercavamo di vedere/mostrare come le nostre rilevazioni si mappavano sul framework ATT&CK. Ho sempre pensato che un grafico tipo BloodHound sarebbe stato fantastico per questo, così ho creato questo progetto sperando che possa aiutare i colleghi Blue Teamer a visualizzare la loro copertura e come i diversi elementi sono collegati tra loro.
Con l'ingestione di ART, è anche possibile vedere quali TTP sono facili da testare e quali non possono essere testati facilmente.
Ti incoraggio vivamente a condividere Sigma Rules e ART con il progetto originale se crei rilevazioni/test per una TTP che non ne ha.
UL-Cyphers.py o --setuphttp://127.0.0.1:8080)Clona il repository:
git clone https://github.com/yourusername/BloodSOCer.git
cd BloodSOCer
Installa le dipendenze:
pip3 install -r requirements.txt
Configura le credenziali API in 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
NOTA: Per --define-icons e --upload-only, una API Key e un API Secret devono essere definiti in BloodSOCer.py
Modifica BloodSOCer.py per personalizzare:
http://127.0.0.1:8080)BloodSOCer/
├── BloodSOCer.py # Main entry point
├── MitreHound.py # MITRE ATT&CK data fetcher
├── ARTHound.py # Atomic Red Team data fetcher
├── SigmaHound.py # Sigma rules data fetcher
├── Define-Icons.py # BloodHound icon customizer
├── UL-Cyphers.py # Upload custom Cyphers to help query ingested data
├── Cyphers/ # Saved queries (Cypher) JSONs
├── ressources/ # Images/diagrams (Arrows graph, logo)
├── README.md # This file
├── requirements.txt # Python dependencies
└── output/ # Generated *_graph.json files
Questo progetto aggiunge i seguenti tipi di nodo
Questo progetto aggiunge i seguenti archi/relazioni
Exploits una (Sotto-)TecnicaUses un Tool o una (Sotto-)TecnicaPartOf di una TatticaSubTechniqueOf di una TecnicaDetectedBy di una RegolaTestedBy di un ARTInvestigateWith di un PlaybookGrafico BloodSOCer Arrows
Per scaricare il file json di questo grafico Arrows.app, clicca qui
Rilevazioni per FIN7 con Mimikatz

Tattiche usate da FIN7

Rilevazione e test per l'attività di FIN7

Playbook per investigare l'attività di FIN7 e Scattered Spider

Define-Icons.py verranno applicate all'interfaccia di BloodHoundApache 2.0
Quando ho sentito parlare per la prima volta di OpenGraph, ho subito pensato che sarebbe stato un ottimo modo per ingerire il framework Mitre ATT&CK e usare BloodHound per visualizzarlo. Olaf Hartong lo ha fatto qualche anno fa vedi il suo blog, apparentemente ispirato da SadProcessor che ora è un mio collega. Abbiamo chiuso il cerchio.
Pull request e issue sono benvenute.