CVEdb 是又一个用于处理 CVE 数据库的 Python 库和实用工具。市面上已有大量同类库,为何还要再创建一个? 大多数现有库依赖第三方 API(例如 cve.circl.lu),这些 API 可能会限制使用频率、要求注册,和/或需要互联网连接。有些库则过于臃肿,甚至包含用于搜索的 Web 界面。
CVEdb 功能特性:
CVEdb 反特性:
$ pip3 install cvedb
$ cvedb --help
from cvedb.db import CVEdb
with CVEdb.open() as db:
for cve in db.data():
print(cve)
默认情况下,从 NIST 下载的 CVE 会保存到位于 cvedb.db.DEFAULT_DB_PATH 的 sqlite 数据库中,该路径被设置为 ~/.config/cvedb/cvedb.sqlite。可通过向 CVEdb.open 传入 db_path 参数来自定义。
db.data() 函数返回一个 cvedb.feed.Data 对象实例,该对象具有许多查询 CVE 的方法。例如:
with CVEdb.open() as db:
for cve in db.data().search("search term"):
print(cve)
除了接受字符串之外,data().search(...) 函数还接受任何cvedb.search.SearchQuery 对象。
NIST 国家漏洞数据库正在向新的 REST API 过渡。CVEdb 所基于的数据集仍然可用,但尚不清楚这些数据集是否会被弃用。此外,NIST 已开始对下载进行速率限制,这可能会影响 CVEdb 的同步。因此,CVEdb 随附了一个预置数据库。因此,CVEdb 安装后除下载新的 CVE 定义外,不需要任何互联网连接。另外,CVEdb 的行为也已从按需自动检查更新,改为要求用户使用新的 --update 参数显式请求更新。对新 REST API 的支持正在此 GitHub issue 中跟进。
CVEdb 由 Trail of Bits 创建。 它根据 GNU Lesser General Public License v3.0 许可发布。 如果您需要条款的例外情况,请联系我们。 © 2021, Trail of Bits.
随 CVEdb 附带的 CVE 数据库由 NIST 创建和维护,并以公有领域发布。