




















有没有佬可以指点一下
声明: 我并不是安全相关从业人员=.=
我想要构建一个 仓库, 作用 在已知CVE 中 找到该漏洞触达的 方法.
如果有相关开源信息也可以. 我没找到=.=
这是数据设想的一个流程图, 但是这里有个很大的问题就是 大概只有1/10的数据可以拿到所谓的sink点, 而且这里所谓的sink点只是 某个提交中提及了这些方法变更 也不是真实的描述就是这里引发的问题.
跟AI聊不动了=.=。我感觉我思路有问题. 大佬们求救!
flowchart TD
A[输入 CVE/GHSA ID] --> B[读取 OSV Advisory<br/>来源: OSV API 或本地 file/base]
B --> C[解析 Maven 受影响包<br/>package_purl / affected range / fixed version]
B --> D[提取参考链接<br/>GitHub commit / compare / OSV GIT fixed commit]
D --> E{是否找到可用 GitHub 修复 commit?}
E -->|是| F[物化 GitHub commit patch<br/>下载 .patch 和 patch 命中的 Java 源码]
E -->|否| G[退化为 Maven source jar release diff<br/>affected source jar vs fixed source jar]
C --> H[读取 Maven metadata<br/>来源: Maven Central 或本地 Maven 仓库]
H --> I[选择验证版本<br/>affected lower/middle/highest + fixed first]
I --> J[下载或读取 source jar<br/>affected/fixed 源码包]
F --> K[解析 unified diff]
G --> K
K --> L[筛选生产 Java 源码变更<br/>src/main/java/*.java]
L --> M[JavaParser 解析 before/after 源码<br/>提取方法签名和行号范围]
M --> N[把 patch deleted/added 行映射到所属方法]
N --> O[生成方法级 Sink 候选<br/>symbol_signature / file_path / affected_range]
O --> P[源码验证]
J --> P
P --> Q[affected 版本验证<br/>方法存在 + 修复前片段仍存在]
P --> R[fixed 版本验证<br/>旧片段消失或修复片段存在]
Q --> S[StrictGate 质量门禁]
R --> S
S --> T{是否满足 strict 条件?}
T -->|是| U[accepted sink<br/>可进入 strict/catalog]
T -->|否| V[needs_review / research<br/>只供审计复核]
U --> W[写入 SQLite registry]
V --> W
W --> X[导出 research JSONL<br/>包含候选和待复核]
W --> Y[导出 strict JSONL<br/>只含高置信 accepted]
W --> Z[构建 sink_catalog.jsonl<br/>下游真正消费]
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。