
Агрегирует данные MITRE ATT&CK, Sigma и Atomic Red Team в графы BloodHound, чтобы аналитики SOC могли составлять карту покрытия обнаружения, выявлять пробелы и расследовать инциденты с помощью Cypher-запросов.

BloodSOCer — это инструмент автоматизации на Python, который агрегирует данные об угрозах из нескольких источников (Mitre ATT&CK, правила Sigma, Atomic Red Team) и создаёт JSON-файлы для импорта в BloodHound в формате OpenGraph. BloodSOCer также может загружать файлы в BloodHound и устанавливать значки для пользовательских объектов, если в конфигурации определены API-токены. Аналитики безопасности затем могут визуализировать данные под любым углом, а несколько Cypher-запросов помогут вам начать работу.
Идея этого проекта — помочь SOC сопоставить своё покрытие Mitre ATT&CK Framework, а также помочь при реагировании на инциденты быстро выявлять возможные «слепые зоны». В идеале SOC должны сопоставлять собственные детекты, а не «готовые» правила из Sigma. Не поймите меня неправильно: Sigma — один из моих любимых проектов с открытым исходным кодом, но большинство детектов лучше подходят для контекста/обогащения или создания зацепок для threat hunting, чем для формирования действенных тикетов.
Когда я работал в SOC, мы часто пытались посмотреть/показать, как наши детекты соотносятся с ATT&CK Framework. Я всегда думал, что граф в стиле BloodHound был бы для этого идеален, поэтому я создал этот проект, надеясь, что он поможет коллегам из синих команд визуализировать своё покрытие и то, как различные элементы связаны между собой.
Благодаря импорту ART также можно увидеть, какие TTP легко тестировать, а какие — не так просто.
Я настоятельно рекомендую делиться Sigma Rules и ART с исходным проектом, если вы создаёте детекты/тесты для TTP, которых там ещё нет.
UL-Cyphers.py или --setuphttp://127.0.0.1:8080)Клонируйте репозиторий:
git clone https://github.com/yourusername/BloodSOCer.git
cd BloodSOCer
Установите зависимости:
pip3 install -r requirements.txt
Настройте учётные данные API в 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
ПРИМЕЧАНИЕ: Для --define-icons и --upload-only API-ключ и API-секрет обязательно должны быть определены в BloodSOCer.py
Отредактируйте BloodSOCer.py для настройки:
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
Этот проект добавляет следующие типы узлов:
Этот проект добавляет следующие рёбра/связи:
Exploits (эксплуатирует) (суб-)техникуUses (использует) инструмент или (суб-)техникуPartOf (частью) тактикиSubTechniqueOf (субтехникой) техникиDetectedBy (обнаруживается) правиломTestedBy (тестируется) ART-тестомInvestigateWith (исследуется) плейбукомBloodSOCer Arrows Graph
Чтобы скачать json-файл этого графа Arrows.app, нажмите здесь
Детекты для FIN7 с использованием Mimikatz

Тактики, используемые FIN7

Детект и тест для активности FIN7

Плейбуки для исследования активности FIN7 и Scattered Spider

Define-Icons.py, будут применены к интерфейсу BloodHoundApache 2.0
Когда я впервые услышал об OpenGraph, я сразу подумал, что это отличный способ импортировать Mitre ATT&CK Framework и использовать BloodHound для его визуализации. Olaf Hartong сделал это несколько лет назад — см. его блог — судя по всему, вдохновившись SadProcessor, который теперь мой коллега. Мы замкнули круг в этом вопросе.
Приветствуются pull request'ы и issue'ы.