larrypeseckis/attck-pulse
GitHub: larrypeseckis/attck-pulse
一个从公开威胁情报报告中提取MITRE ATT&CK技术提及并进行趋势分析的流水线工具。
Stars: 0 | Forks: 0
# attck-pulse
一个摄入公共威胁情报报告、提取 MITRE ATT&CK 技术参考,并生成可查询趋势分析的流水线。
## 这是什么
公共威胁情报报告(CISA 公告、厂商博客、事件分析文章)持续提及 ATT&CK 技术,但这些提及分散在数百篇文章中,且形式非结构化。本项目将它们整合到一个关系型数据集中,从而你可以提出如下问题:
- 哪些技术在过去 90 天内激增?
- 哪些信息源覆盖了哪些战术?
- 在关于特定威胁行为者的报告中,哪些技术共同出现?
## 这不是什么
这不是商业威胁情报平台的替代品。这不是一个实时警报系统。这不是一个归属判定引擎。这是一个用于公共数据趋势分析的分析师工具。
## 状态
v1 开发中。当前范围:
- CISA 已知被利用漏洞目录
- CISA 网络安全公告
- 微软安全博客
- The DFIR 报告
## 快速开始
需要 Python 3.12+ 和 PostgreSQL 16+。
```
# 1. 克隆并进入
git clone attck-pulse
cd attck-pulse
# 2. 设置环境(使用 uv;conda 同样适用)
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
# 3. 配置
cp .env.example .env
# 编辑 .env 文件,填写您的 Postgres 连接详情
# 4. 初始化数据库
python scripts/init_db.py
# 5. 加载 MITRE ATT&CK 技术数据
python scripts/load_attack.py
# 6. 运行首个数据摄取器
python scripts/run_ingester.py cisa_kev
# 7. 打开笔记本进行分析
jupyter lab notebooks/
```
## 架构
```
┌─────────────────┐
│ Public sources │ CISA KEV, CISA advisories, MS Security, DFIR Report
└────────┬────────┘
│
▼
┌─────────────────┐
│ Ingesters │ Source-specific scrapers, normalize to common Report shape
└────────┬────────┘
│
▼
┌─────────────────┐
│ PostgreSQL │ reports, technique_mentions, techniques, actor_mentions
└────────┬────────┘
│
▼
┌─────────────────┐
│ Extractors │ Regex (T-numbers) + spaCy NER (technique names)
└────────┬────────┘
│
▼
┌─────────────────┐
│ Analysis │ Jupyter notebooks, SQL views, ad-hoc queries
└─────────────────┘
```
## 运行说明
- 摄取器是幂等的。重复运行不会产生重复数据(URL 是去重键)。
- 所有流水线运行记录到 `pipeline_runs` 表。查询此表以验证调度器是否存活。
- 正则表达式提取在摄取期间同步运行。spaCy 提取作为单独的批处理作业运行。
- ATT&CK STIX 捆绑包固定到特定版本(见 `config/sources.yaml`)。请谨慎升级。
## 方法论
有关提取方法、精度/召回率验证和已知限制,请参见 [方法论.md](METHODOLOGY.md)。
## 许可证
MIT
标签:CISA, Cloudflare, DFIR报告, Microsoft安全博客, MITRE ATT&CK, PostgreSQL, Python, 公开情报, 威胁情报, 威胁趋势分析, 开发者工具, 情报分析, 技术提取, 技术跟踪, 数据提取, 数据整合, 数据管道, 无后门, 查询分析, 测试用例, 瑞士军刀, 网络安全, 网络诊断, 趋势分析, 软件工程, 逆向工具, 隐私保护