controllocked/STIX2Maltego-Intelligence-Graph-Importer
GitHub: controllocked/STIX2Maltego-Intelligence-Graph-Importer
该工具将 STIX 2.0/2.1 JSON bundle 在本地导入 Maltego,自动生成结构化的网络威胁情报可视化图谱,解决情报数据难以直观展示和关联分析的问题。
Stars: 0 | Forks: 0
# STIX JSON 到 Maltego 情报图谱
本地 Maltego 图谱集成,用于将 STIX 2.0/2.1 bundles 导入为对分析人员友好的网络威胁情报图谱。
该集成保留 STIX ID 和属性,恢复有向关系,将有用的 observables 映射到原生的 Maltego 实体,从 Indicator 模式中提取安全的等价 IOC 值,并创建包含警告和对象计数的 bundle 摘要。
## 环境要求
- Python 3.12
- Maltego Graph 4.8 或更新版本
- 本地虚拟环境
## 安装说明
```
python3.12 -m venv .venv
.venv/bin/pip install -e '.[dev]'
.venv/bin/python -m stix2maltego.cli build-mtz \
--output stix2maltego.mtz \
--working-dir .
```
使用 **Import Configuration** 在 Maltego 中导入 `stix2maltego.mtz`。该 MTZ 包含:
- 自定义 STIX 实体
- 本地 transform 定义
- `STIX Intelligence Graph` transform 集合
- `STIX JSON to Intelligence Graph` Machine
生成的本地 transform 设置包含当前检出目录和 Python 解释器的绝对路径。在移动项目或重新创建虚拟环境后,请重新构建 MTZ。
## 在 Maltego 中使用
1. 将 **STIX Source** 实体拖到图谱中。
2. 将其值设置为本地 JSON 路径、内联 bundle JSON 或 HTTPS URL。
3. 将 **Source Kind** 设置为 `auto`、`file`、`inline` 或 `url`。默认为 `auto`。
4. 运行 **STIX JSON to Intelligence Graph** Machine。
Machine 会导入 analyst 视图,创建 Report 引用,恢复 STIX Relationship Objects,展开 Observed Data,派生安全的 IOC 值,添加 Sighting 证据,并应用分层布局。
手动 transforms 依然可用于专注的 pivot 和进一步扩展。
## CLI
验证并总结 bundle:
```
.venv/bin/stix2maltego inspect /path/to/bundle.json
```
下载公开的 OASIS APT1 示例:
```
.venv/bin/python scripts/download_demo.py apt1
.venv/bin/stix2maltego inspect examples/downloaded/apt1.json
```
直接运行本地 transform:
```
.venv/bin/python project.py list
.venv/bin/python project.py local importstixbundle \
/path/to/bundle.json 'source.kind=file'
```
## 图谱模型
自定义实体涵盖 Reports、Threat Actors、Intrusion Sets、Campaigns、Malware、Tools、Indicators、Attack Patterns、Vulnerabilities、Identities、Infrastructure、Observed Data、Courses of Action、Locations、Notes、Groupings、Evidence、常见的 SCO 类型、自定义 STIX 对象以及未解析的引用。
IPv4 地址、domains、URLs、email 地址和 hashes 使用原生的 Maltego 实体。它们将 `stix.id`、`stix.bundle_hash`、来源溯源信息以及原始的 STIX 元数据保留为动态属性。
自定义 STIX 实体使用 `stix.id` 作为主要匹配值,并使用 `stix.display_value` 作为人类可读的图谱标签。关系标签和方向来自 STIX SROs。高优先级关系具有不同的颜色和粗细程度。
## 限制与安全
- 内联 JSON:256 KiB
- 文件或 HTTPS 响应:20 MiB
- Bundle 大小:5,000 个源对象
- Analyst 视图:1,500 个节点
- 关系预算:3,000
- 单次 pivot 结果限制:200
- 缓存生命周期:七天
- 原始对象 JSON 属性:64 KiB
HTTPS 加载拒绝凭据、HTTP URL、localhost、私有地址、链路本地地址、保留地址以及其他非全局地址。每次重定向都会检查 DNS,并在保留主机名证书验证的同时,为 TLS 连接固定经过验证的公网 IP。
该集成不会将 bundle 内容发送到任何外部服务。
## 开发说明
```
.venv/bin/ruff check .
.venv/bin/mypy stix2maltego project.py
.venv/bin/pytest --cov=stix2maltego
```
公开示例清单位于 `examples/public-bundles.json`。下载的第三方示例特意不被提交。
标签:文档结构分析, 逆向工具