JolanB110/wsusscn2-knowledge-graph
GitHub: JolanB110/wsusscn2-knowledge-graph
从 Windows Update 离线目录构建知识图谱,揭示补丁元数据与关联关系的结构化查询方案。
Stars: 0 | Forks: 0
# wsusscn2-knowledge-graph
[](https://github.com/JolanB110/wsusscn2-knowledge-graph)
[](https://www.python.org/)
[]()
## 概述
**wsusscn2-knowledge-graph** 是一个研究项目,旨在从 Microsoft Windows Update 离线目录(`wsusscn2.cab`)构建结构化的知识图谱。
该目录包含以 XML 格式分布的 **136,000 多个** Windows 更新的元数据。本项目提取、建模并存储这些数据作为知识图谱,以实现对补丁元数据、安全漏洞、更新依赖关系和产品关系的结构化查询。
## 数据源
`wsusscn2.cab` 文件是 Microsoft Windows Update 离线扫描文件,公开可从 Microsoft 服务器获取。它包含超过 **136,270 个** 更新,分布在 **74 个以上** 的软件包中。
### 目录结构
每个软件包提供最多 6 个数据源,均通过 `RevisionId` 键关联:
| 来源 | 内容 | 状态 |
|---|---|---|
| `package/package.xml` | 全局结构、关系、标识符 | ✅ 已探索 |
| `/x/` | 技术元数据(KB、严重性、产品版本) | ✅ 已探索 |
| `/l/en/` | 人类可读的标题和描述 | ✅ 已探索 |
| `/c/` | 补充配置数据 | ✅ 已探索 |
| `/files/` | 附件文件 | 🔄 尚未探索 |
| `/e/` | EULA 文件 | 🔄 尚未探索 |
## 图模型(V1 - 进行中)
### 节点
| 节点 | 来源 | 实例数 |
|---|---|---|
| `Update` | package.xml | 136,271 |
| `Product` | package.xml > Categories | 199 |
| `ProductFamily` | package.xml > Categories | 38 |
| `Company` | package.xml > Categories | 1 |
| `UpdateClassification` | package.xml > Categories | 5 |
| `KBArticle` | /x/ | — |
| `Severity` | /x/ | 4 个取值 |
### 关系
| 关系 | 起始节点 | 目标节点 | 源字段 |
|---|---|---|---|
| `DEPENDS_ON` | Update | Update | Prerequisites |
| `BELONGS_TO` | Update | Product / ProductFamily / Company / UpdateClassification | Categories |
| `SUPERSEDED_BY` | Update | Update | SupersededBy |
| `BUNDLED_BY` | Update | Update | BundledBy |
| `REFERENCED_AS` | Update | KBArticle | KBArticleID |
| `HAS_SEVERITY` | Update | Severity | MsrcSeverity |
## 安装
```
git clone https://github.com/JolanB110/wsusscn2-knowledge-graph.git
cd wsusscn2-knowledge-graph
pip install lxml neo4j
```
## 技术栈
- **Python 3.11** — 数据提取与预处理(`lxml`、`neo4j` 驱动)
- **BaseX 12.2** — 基于 XQuery 的 XML 探索
- **图数据库** — 待定(Neo4j 或同类)
## 进度
- [x] 阶段 1 — 数据探索与清单
- [x] 阶段 2 — Python 解析管道(进行中)
- [ ] 阶段 3 — 图模型验证
- [ ] 阶段 4 — 图数据库导入
- [ ] 阶段 5 — 可视化与查询
## 参考
- [Microsoft WSUS Offline Scan File 文档](https://support.microsoft.com/en-us/topic/detailed-information-for-developers-who-use-the-windows-update-offline-scan-file-51db1d9e-038b-0b15-16e7-149aba45f295)
- [Neo4j 文档](https://neo4j.com/docs/getting-started/)
- [Neo4j Python 驱动](https://neo4j.com/docs/python-manual/current/)
- [BaseX 文档](https://docs.basex.org)
标签:Neo4j, Python, Windows Update, wsusscn2.cab, XML解析, 产品关系, 企业安全, 元数据, 威胁情报, 安全补丁, 开发者工具, 数据抽取, 无后门, 漏洞关联, 离线目录, 结构化数据, 网络资产管理, 软件供应链