Replies: 6 comments 2 replies
-
首先这个数据集我调研了一下,根据 https://security.googleblog.com/2021/02/launching-osv-better-vulnerability.html 的介绍说是现在已经收集了上千个漏洞从380多个不同语言类型的项目中。所以现在这些数据量应该不大,所以实现较容易。 然后我调研了一下 https://osv.dev/ 的三个API,一个API是根据commit来获取信息的(这些commit所在的项目必须在380个项目里面),然后返回的结果如下:
从以上信息来看对我们来说用处不大,第二个API是根据包名(项目名)来查看信息,结果如下:
这个API是我们主要用的API里面有一些依赖关系等等。第三个API是根据OSV_ID查询,因为我们不知道osv_id,所以用处不大。然后这380多个项目的列表在 https://github.com/google/oss-fuzz/tree/master/projects 中,他们的原理是用Google的漏洞扫描工具进行自动化扫描然后存储在数据库中,其中Google的漏洞扫描工具是什么样的原理需要有感兴趣的同学进行了解。 这些数据可以让我们了解每个项目中的漏洞有什么,如何自动化的识别漏洞,目前没有看到依赖网络相关数据,这部分不清楚是否有相关的同学了解。 |
Beta Was this translation helpful? Give feedback.
-
在爬取漏洞信息的时候遇见了问题:
然后根据包名获取github的commit hash号,尝试了很多commit hash号 都没有数据库都没有这个commit的数据。 |
Beta Was this translation helpful? Give feedback.
-
我想补充一下,根据 OSV.dev 社区维护者的一个评论,我观察到他们网站是有开源的 data dump 的,所以可以尝试看看能不能绕过爬数据的这个步骤。 |
Beta Was this translation helpful? Give feedback.
-
更新一下现状: 官方数据dump,这些来源被汇总并持续导出到 OSV 维护的一个 GCS(Google 云存储)桶中:gs://osv-vulnerabilities。这个桶包含了每个生态系统的单独条目,格式为 gs://osv-vulnerabilities//.json,以及 zip 文件,包含了每个生态系统的所有漏洞信息,位于 gs://osv-vulnerabilities//all.zip。例如,对于 PyPI(Python 包索引)的漏洞可以通过 https://osv-vulnerabilities.storage.googleapis.com/PyPI/all.zip 的外部链接下载。 所有当前的列表可以在 https://osv-vulnerabilities.storage.googleapis.com/ecosystems.txt 找到。得到的数据是一系列json文档。 我需要解析这些json文档导入到我们 rm-uf6f53dpu5lac389m8o.mysql.rds.aliyuncs.com 的 open-tag 关系数据库中。 手工解析导出的json文档还有一定难度,我决定深入阅读一下 OSV 仓库的代码,可能会看到数据导入导出的信息,避免重复造轮子。 |
Beta Was this translation helpful? Give feedback.
-
更新: 根据 osv 仓库中 model 的代码1,可以看出他们的数据库客户端采用的是谷歌云存储的 ndb 客户端库 2,也就是说他们数据原本就是按照json文档的形式存储在 No-SQL 的数据库里的。所以我们要解析出SQL数据库只能手动去操作了。 他们数据的 schema 参考这个仓库的文档: https://github.com/ossf/osv-schema/blob/main/docs/schema.md Footnotes
|
Beta Was this translation helpful? Give feedback.
-
感谢 @TieWay59 同学的工作,解决了dump全量数据的问题,根据分析得到数据量较少,为了以后展示与查询,使用结构化数据库,建立结构化表来进行存储,后面再同步到clickhouse、maxcompute数据库,采用数据库为mysql数据库,建立的表为:
相关表的说明可参照 https://github.com/ossf/osv-schema/blob/main/docs/schema.md ,其中 |
Beta Was this translation helpful? Give feedback.
-
Google 近期陆续发布了一些开源项目,关于供应链与漏洞数据库的,是些比较好的数据源,可以利用起来。
1、osv.dev
开源漏洞数据库,是个不错的漏洞数据源。
仓库地址:https://github.com/google/osv.dev
2、OSV-Scanner
Google 推出免费工具 OSV-Scanner,供开源开发人员可以更简单地存取和项目相关的漏洞资讯。该项目所使用到的数据即为上面的 osv 项目提供。参考信息:这里
仓库地址:https://github.com/google/osv-scanner
3、https://deps.dev/
Open Source Insights 是一项由 Google 开发和托管的实验性服务,旨在帮助开发人员更好地了解开源软件包的结构、构造和安全性。该服务检查每个包,构建其依赖关系及其属性的完整、详细的图表,并将结果提供给任何可以从中受益的人。目标是为开发人员提供一张图片,说明他们的软件是如何组合在一起的,它是如何随着依赖关系的变化而变化的,以及可能产生的后果。
该服务扫描数百万个开源包,构建它们的依赖关系图,并使用有关所有权、许可证、受欢迎程度和其他元数据的信息对其进行注释。它会定期更新数据以保持信息的最新性和相关性,同时允许开发人员回顾并了解事情随着时间的推移发生了怎样的变化。
该项目非开源,但上面的数据应该可以很好的自动化抓取,是个不错的参考。
Beta Was this translation helpful? Give feedback.
All reactions