isabellasanlorenzo/parallax
GitHub: isabellasanlorenzo/parallax
多源威胁情报框架,自动聚合公开数据生成结构化的威胁行为体档案并提取检测建议。
Stars: 0 | Forks: 0
# 视差
### 多源威胁行为体情报框架
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/)
[]()
## 概述
PARALLAX 是一个开源威胁情报框架,利用公开可用的数据源自动进行对手画像。只需输入一个威胁行为体名称,PARALLAX 就会系统地查询一组精心策划的公开威胁情报平台,汇总结果,并输出一份结构化的分析员档案。
该项目基于情报技术的一项核心原则构建:**没有任何单一来源能讲述完整的故事。** PARALLAX 跨多个独立数据源进行三角互证,从而生成比任何单一来源所能提供的更完整、更可靠的对手画像。
输出结果并非原始数据。而是一份成品情报产品 —— 一份结构化、人类可读的档案,描绘了对手的行为、基础设施模式、恶意软件生态系统和目标概况,且每项陈述均注明来源和时间戳。
## 动机
主要安全公司的供应商威胁报告代表了现有最详尽的对手画像 —— 但它们是静态产物。它们编写一次、发布一次,且需要专有的遥测技术、内部工具和庞大的专业团队来制作。
PARALLAX 探索了一个不同的问题:**严谨的分析员仅使用公开来源和开放 API 能提取出多少可操作的情报?**
本项目无意复制或与企业级威胁情报平台竞争。其旨在证明,系统性地利用免费可用数据可以生成结构化的、分析级情报产品 —— 并构建工具使该过程可重复、可检查且可扩展。
## PARALLAX 生成的内容
对于每个查询的威胁行为体,PARALLAX 会生成一份结构化的 Markdown 档案,包含以下部分:
| 部分 | 描述 |
|---|---|
| **执行摘要** | 对行为体、其动机和行动范围的通俗语言概述 |
| **归因与背景** | 已知来源、首次观测到的活动、疑似隶属关系或赞助方 |
| **目标概况** | 历史上被攻击的行业、地理位置和组织类型 |
| **战术、技术与程序** | 使用 MITRE ATT&CK 框架映射的对手行为 |
| **已知恶意软件与工具** | 与该行为体相关的恶意软件家族、自定义工具和通用软件 |
| **基础设施指标** | 域名、IP 范围、证书模式和托管行为 |
| **近期活动** | 最新的公开报告、公告和观测到的攻击活动 |
| **检测机会** | 防御者根据已知 TTP 可在何处以及如何识别该行为体 |
| **来源** | 引用的每个来源均包含获取 URL 和时间戳 |
**检测机会** 部分是 PARALLAX 的标志性输出。该框架不仅止步于记录威胁 —— 还将观测到的行为转化为防御建议,从而连接了威胁情报与检测工程。
## 架构
```
parallax/
│
├── parallax.py # Main entry point
├── config/
│ └── sources.yaml # Source configuration and API key management
├── collectors/
│ ├── __init__.py
│ └── [source modules] # One module per intelligence source
├── processors/
│ ├── __init__.py
│ ├── normalizer.py # Standardizes data across sources
│ └── deduplicator.py # Removes overlapping indicators
├── mappers/
│ ├── __init__.py
│ └── mitre.py # MITRE ATT&CK technique resolution
├── reporters/
│ ├── __init__.py
│ └── dossier.py # Dossier rendering engine
├── output/
│ └── dossiers/ # Generated dossiers stored here
├── requirements.txt
└── README.md
```
## 数据源
PARALLAX 在设计上采用**架构层面的来源无关性**。每个情报源都作为独立的收集器模块实现。可以在不修改核心框架的情况下添加、移除或替换来源。
当前的收集器套件查询公开可用的威胁情报平台,包括政府公告源、社区维护的指标数据库、被动 DNS 和证书透明度基础设施,以及开源威胁共享平台。
活跃来源的完整且最新列表维护在 [`config/sources.yaml`](config/sources.yaml) 中。
## 输出示例
```
# 威胁行为者档案:Scattered Spider
Generated: 2025-03-15 | PARALLAX v0.3.0
## 执行摘要
Scattered Spider (also tracked as UNC3944, Octo Tempest) is a financially motivated
threat actor group first observed in 2022. The group is notable for sophisticated
social engineering tradecraft — particularly SIM swapping and helpdesk impersonation —
and has demonstrated an ability to rapidly escalate privileges within targeted
organizations. The group has targeted telecommunications, hospitality, and technology
sectors, with notable intrusions at high-profile organizations throughout 2023-2024.
## 战术、技术和程序
| ATT&CK ID | Technique | Description |
|---|---|---|
| T1566.004 | Spearphishing via Voice | Helpdesk impersonation to reset MFA |
| T1621 | MFA Request Generation | MFA fatigue / push bombing |
| T1078 | Valid Accounts | Leveraging stolen credentials post-social engineering |
| T1484 | Domain Policy Modification | Azure AD / Entra ID tenant manipulation |
...
## 检测机会
- Alert on MFA push sequences exceeding threshold within short time window (T1621)
- Monitor helpdesk password reset requests correlated with new device enrollments
- Detect anomalous Azure AD role assignments, particularly to guest accounts
...
## 来源
[1] CISA Advisory AA23-320A — https://www.cisa.gov/... — Retrieved 2025-03-15
[2] MITRE ATT&CK G1015 — https://attack.mitre.org/... — Retrieved 2025-03-15
...
```
## 设置
### 前置条件
- Python 3.8 或更高版本
- pip
- 适用来源的 API 密钥(免费注册 —— 链接见 [`config/sources.yaml`](config/sources.yaml))
### 安装
```
# 克隆 repository
git clone https://github.com/isabellasanlorenzo/parallax.git
cd parallax
# 创建 virtual environment(推荐)
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 配置您的 API keys
cp config/sources.yaml.example config/sources.yaml
# 编辑 config/sources.yaml 并添加您的 keys
```
## 用法
### 基本查询
```
python parallax.py --actor "Scattered Spider"
```
### 指定输出格式
```
python parallax.py --actor "APT28" --format markdown
python parallax.py --actor "APT28" --format json
```
### 限制为特定来源类别
```
python parallax.py --actor "LockBit" --sources mitre,advisories
```
### 输出位置
默认情况下,档案保存到 `output/dossiers/`,使用格式:
```
output/dossiers/[actor_name]_[timestamp].md
```
## 方法论
PARALLAX 对每个查询遵循五阶段的收集与分析周期:
**1. 标准化**
所有传入数据在处理前均标准化为通用 schema。这可防止跨来源重复计算指标,并确保无论各来源数据格式如何,输出均整洁一致。
**2. 来源三角互证**
指标和行为数据跨来源进行相互参照。由多个独立来源支持的陈述在最终输出中权重更高。单一来源的陈述会被呈现但加以标记。
**3. ATT&CK 映射**
已知行为在适用处映射到 MITRE ATT&CK 技术 ID。这提供了标准化的行为词汇,对攻防双方从业者均有意义。
**4. 检测转换**
ATT&CK 映射用于推导检测建议。每项技术都有已知的检测数据源 —— PARALLAX 将其作为具体的防御建议而非抽象的技术参考呈现。
**5. 注明来源的输出**
生成的档案中的每项陈述均可追溯至其来源。不包含无来源的断言。所有来源均记录获取时间戳,以支持分析员审查和复现。
## 扩展 PARALLAX
添加新的情报源需要实现一个单独的收集器模块:
```
# collectors/my_source.py
class MySourceCollector:
def __init__(self, api_key: str):
self.api_key = api_key
def query(self, actor_name: str) -> dict:
# Query your source
# Return normalized data dict
pass
```
在 `config/sources.yaml` 中注册该模块,PARALLAX 将自动将其包含在收集周期中。
## 路线图
- [x] 核心框架架构
- [x] MITRE ATT&CK 集成
- [x] Markdown 档案渲染
- [ ] JSON 和 STIX 2.1 输出格式
- [ ] 从 TTP 映射生成 Sigma 规则
- [ ] 批量行为体处理
- [ ] 档案版本控制和差异追踪(比较行为体随时间的活动)
- [ ] 用于档案浏览的 Web 界面
- [ ] 用于计划性行为体监控的 GitHub Actions 工作流
## 局限性
PARALLAX 受限于公开数据的可用性和质量。它无法访问专有威胁情报源、机密报告或内部遥测数据。该框架旨在以结构化、可重复的方式呈现公开已知的信息 —— 它是研究和学习工具,不能替代商业威胁情报平台。
威胁情报中的归因本质上具有不确定性。PARALLAX 呈现其查询来源所报告的归因,并不独立验证或主张归因声明。
## 贡献
欢迎贡献。如果您想添加新的收集器模块、改进档案模板或扩展检测映射逻辑,请先开启 issue 讨论变更,然后再提交 pull request。
请确保任何新的收集器模块包括:
- 针对失败或速率受限的 API 响应的完善错误处理
- 符合通用 schema 的标准化输出
- `config/sources.yaml` 中的文档
## 免责声明
PARALLAX 仅查询公开可用的数据源。不访问任何专有、机密或非公开数据。本工具呈现的所有信息均可由任何公众成员通过引用的来源直接获取。
本工具仅用于教育目的、安全研究以及防御情报能力的开发。作者不赞成将本工具或其输出用于攻击性目的。
## 许可证
MIT License —— 完整条款见 [LICENSE](LICENSE)。
## 作者
作为威胁情报和检测工程领域的开放研究项目构建和维护。
*PARALLAX 处于活跃开发中。随着项目成熟,路线图、来源列表和输出格式可能会发生变化。*
标签:Cloudflare, DAST, ESC4, MITRE ATT&CK, OSINT, Python, 基础设施识别, 威胁情报, 开发者工具, 恶意软件分析, 情报报告生成, 战术技术与程序, 攻击者画像, 数据聚合, 无后门, 检测规则, 网络威胁情报, 网络安全, 网络资产发现, 自动化分析, 跨站脚本, 防御加固, 隐私保护