opencve|CVE告警平台|本地导入CVE列表进行查找

opencve|CVE告警平台|本地导入CVE列表进行查找

OpenCVE(以前称为Saucs)是一个平台,用于本地导入CVE列表并在其上执行搜索(按供应商,产品,CVSS,CWE …)。

用户订阅了供应商或产品,当创建新的CVE或在现有CVE中完成更新时,OpenCVE会警告他们。

工作原理

OpenCVE使用NVD提供的JSON提要来更新CVE的本地列表。

初始导入后,将定期执行后台任务,以将本地副本与NVD提要同步。如果添加了新的CVE,或者检测到更改,则会向相关供应商和产品的订户发出警报。

目前,通知的唯一方法是邮件,但我们计划添加其他集成(webhooks,Slack,Jira,PagerDuty,OpsGenie …)。

安装条件

OpenCVE适用于Python> = 3.6

它使用JSONB功能来提高性能,因此您将需要一个PostgreSQL实例来存储数据(CVE,用户,供应商,产品,订阅等)。不支持其他引擎。

Celery用于定期获取NVD数据库并更新CVE列表。为此,您将需要一个代理:为了简化安装,我们建议您使用Redis。此外,OpenCVE的未来版本可能会使用缓存功能,在这种情况下,Redis要求已为您满足。

在导入初始数据期间,OpenCVE将下载并解析大型文件,例如CPE词典。为此,我们建议您至少使用3.5G RAM

安装方法

只需使用pip以下命令即可安装OpenCVE :

$ pip install opencve

配置文件

第一步是创建配置文件。您可以使用以下init命令执行此操作:

$ opencve init
[*] Configuration created in /Users/ncrocfer/opencve/opencve.cfg

注意:可以在OPENCVE_CONFIG环境变量中指定自定义路径。

初始化数据库

可以使用文件的database_uri变量配置数据库opencve.cfg。完成后,该upgrade-db命令将创建所有表:

$ opencve upgrade-db

注意:因为OpenCVE使用JSONB功能来提高性能,所以它仅支持PostgreSQL

导入数据

现在已经创建了数据库,我们需要使用以下import-data命令来填充它:

$ opencve import-data

该命令可能需要几分钟,主要用于供应商和产品列表(大约1000万),所以请耐心:)但是请不要担心,您只会执行一次。

启动worker

OpenCVE数据库和CVE列表之间的同步是使用定期的Celery任务完成的。

为此,必须启动工作程序和调度程序(不要忘记在opencve.cfg文件中配置Celery配置):

$ opencve celery worker -l INFO
$ opencve celery beat -l INFO

创建一个管理员

$ opencve create-user john john.doe@example.com --admin
Password:
Repeat for confirmation:
[*] User john created.

启动网络服务器

您最终可以启动Web服务器并访问以下站点的OpenCVE localhost:8000

$ opencve webserver
[2020-07-14 20:38:06 +0200] [16032] [INFO] Starting gunicorn 20.0.4
[2020-07-14 20:38:06 +0200] [16032] [INFO] Listening at: http://127.0.0.1:8000 (16032)
[2020-07-14 20:38:06 +0200] [16032] [INFO] Using worker: sync
[2020-07-14 20:38:06 +0200] [16040] [INFO] Booting worker with pid: 16040

注意:服务器名称可以opencve.cfg使用server_name变量在文件中配置。

项目地址

GitHub:
https://github.com/opencve/opencve

懒人福利

直接到如下网站进行注册>选择订阅源>搜索

https://www.opencve.io/

CVE数量:

1572711个 [15万]

cve搜索结果示例

点击前面的cve漏洞编号可查看详情