JolanB110/wsusscn2-knowledge-graph

GitHub: JolanB110/wsusscn2-knowledge-graph

从 Windows Update 离线目录构建知识图谱,揭示补丁元数据与关联关系的结构化查询方案。

Stars: 0 | Forks: 0

# wsusscn2-knowledge-graph [![GitHub stars](https://img.shields.io/github/stars/JolanB110/wsusscn2-knowledge-graph)](https://github.com/JolanB110/wsusscn2-knowledge-graph) [![Python](https://img.shields.io/badge/python-3.11-blue)](https://www.python.org/) [![Status](https://img.shields.io/badge/status-in%20progress-orange)]() ## 概述 **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解析, 产品关系, 企业安全, 元数据, 威胁情报, 安全补丁, 开发者工具, 数据抽取, 无后门, 漏洞关联, 离线目录, 结构化数据, 网络资产管理, 软件供应链