
BloodSOCer 是一款 Python 自动化工具,它聚合来自多个来源的威胁情报数据(Mitre ATT&CK、Sigma 规则、Atomic Red Team),并生成 OpenGraph 格式的 JSON 文件以导入 BloodHound。如果配置中定义了 API Token,BloodSOCer 还可以将文件上传到 BloodHound,并为自定义对象设置图标。安全分析师可以随后从任意角度可视化这些数据,同时项目还提供了一些 Cypher 查询,帮助您快速上手。
这个项目背后的想法是帮助 SOC 绘制其对 Mitre ATT&CK 框架的覆盖范围,并在事件响应期间快速识别可能存在的盲区。理想情况下,SOC 应映射自己的检测规则,而不是 Sigma 提供的"现成"规则。请不要误会,Sigma 是我最喜欢的开源项目之一,但大多数检测更适合用于上下文/情报丰富化,或生成威胁狩猎线索,而不是创建可操作的工单。
当我在 SOC 工作时,我们经常尝试查看/展示我们的检测如何映射到 ATT&CK 框架。我一直认为 BloodHound 类型的图对此会很棒,所以我构建了这个项目,希望它能帮助蓝队伙伴们可视化他们的覆盖范围,以及各个部分是如何关联在一起的。
通过导入 ART,还可以看到哪些 TTP 易于测试,哪些不容易测试。
如果您为某个没有检测/测试的 TTP 创建了检测规则或测试,我非常鼓励您将其回馈给原始项目。
UL-Cyphers.py 或 --setup 将捆绑的 Cypher 查询导入 BloodHoundhttp://127.0.0.1:8080)克隆仓库:
git clone https://github.com/yourusername/BloodSOCer.git
cd BloodSOCer
安装依赖:
pip3 install -r requirements.txt
在 BloodSOCer.py 中配置 API 凭据:
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,必须在 BloodSOCer.py 中定义 API Key 和 API Secret。
编辑 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
要下载此 Arrows.app 图的 json 文件,请点击此处
使用 Mimikatz 的 FIN7 检测结果

FIN7 使用的战术

FIN7 活动的检测与测试

用于调查 FIN7 与 Scattered Spider 活动的剧本

Define-Icons.py 中定义的自定义图标将应用于 BloodHound 界面Apache 2.0
当我第一次听说 OpenGraph 时,我立刻想到这是导入 Mitre ATT&CK 框架并使用 BloodHound 将其可视化的绝佳方式。Olaf Hartong 几年前就这样做了参见他的博客,显然是受到了 SadProcessor 的启发,他现在是我的同事。我们在这件事上兜了一圈,又回到了原点。
欢迎提交 Pull Request 和 Issue。