
Agrega dados do MITRE ATT&CK, Sigma e Atomic Red Team em grafos do BloodHound para que analistas de SOC possam mapear a cobertura de detecção, identificar lacunas e investigar incidentes com consultas Cypher.

O BloodSOCer é uma ferramenta de automação em Python que agrega dados de inteligência de ameaças de múltiplas fontes (Mitre ATT&CK, regras Sigma, Atomic Red Team) e gera arquivos JSON para ingestão no BloodHound no formato OpenGraph. O BloodSOCer também pode enviar os arquivos para o BloodHound e definir os ícones dos objetos personalizados, desde que haja Tokens de API definidos na configuração. Os analistas de segurança podem então visualizar os dados de qualquer ângulo, e algumas consultas Cypher são fornecidas para ajudar você a começar.
A ideia por trás deste projeto é ajudar o SOC a mapear sua cobertura do Framework Mitre ATT&CK e auxiliar durante a resposta a incidentes para identificar rapidamente onde podem existir pontos cegos. Idealmente, o SOC mapearia suas próprias detecções e não as "prontas" do Sigma. Não me entenda mal, o Sigma é um dos meus projetos de código aberto favoritos, mas a maioria das detecções é mais adequada para contexto/enriquecimento ou para gerar pistas de caça a ameaças do que para criar tickets acionáveis.
Quando eu estava em um SOC, frequentemente tentávamos visualizar/mostrar como nossas detecções se mapeavam para o Framework ATT&CK. Sempre achei que um grafo no estilo BloodHound seria incrível para isso, então construí este projeto esperando que ele ajude colegas do Time Azul a visualizar sua cobertura e como as diferentes peças estão conectadas.
Com a ingestão do ART, também é possível ver quais TTPs são fáceis de testar e quais não podem ser testados facilmente.
Eu recomendo fortemente que você compartilhe as Regras Sigma e o ART de volta com o projeto original se criar detecções/testes para uma TTP que não tenha nenhum.
UL-Cyphers.py ou --setuphttp://127.0.0.1:8080)Clone o repositório:
git clone https://github.com/yourusername/BloodSOCer.git
cd BloodSOCer
Instale as dependências:
pip3 install -r requirements.txt
Configure as credenciais da API em 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: Para --define-icons e --upload-only, uma API Key e um API Secret devem estar definidos em BloodSOCer.py
Edite BloodSOCer.py para personalizar:
http://127.0.0.1:8080)BloodSOCer/
├── BloodSOCer.py # Ponto de entrada principal
├── MitreHound.py # Coletor de dados MITRE ATT&CK
├── ARTHound.py # Coletor de dados Atomic Red Team
├── SigmaHound.py # Coletor de dados de regras Sigma
├── Define-Icons.py # Personalizador de ícones do BloodHound
├── UL-Cyphers.py # Envia Cyphers personalizadas para ajudar a consultar os dados ingeridos
├── Cyphers/ # Consultas salvas (Cypher) em JSON
├── ressources/ # Imagens/diagramas (grafo Arrows, logotipo)
├── README.md # Este arquivo
├── requirements.txt # Dependências Python
└── output/ # Arquivos *_graph.json gerados
Este projeto adiciona os seguintes tipos de nós
Este projeto adiciona as seguintes arestas/relacionamentos
Exploits uma (Sub-)TécnicaUses uma Ferramenta ou uma (Sub-)TécnicaPartOf uma TáticaSubTechniqueOf uma TécnicaDetectedBy uma RegraTestedBy um ARTInvestigateWith um PlaybookBloodSOCer Arrows Graph
Para baixar o arquivo json deste grafo do Arrows.app, clique aqui
Detecções para FIN7 usando Mimikatz

Táticas usadas pela FIN7

Detecção e teste para atividade da FIN7

Playbooks para investigar a atividade de FIN7 & Scattered Spider

Define-Icons.py serão aplicados à interface do BloodHoundApache 2.0
Quando ouvi falar pela primeira vez do OpenGraph, imediatamente pensei que seria uma ótima maneira de ingerir o Framework Mitre ATT&CK e usar o BloodHound para visualizá-lo. Olaf Hartong fez isso alguns anos atrás veja o blog dele, aparentemente inspirado por SadProcessor, que hoje é meu colega. A história se fechou em ciclo.
Pull requests e issues são bem-vindos.