目录导航
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 [email protected] --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
懒人福利
直接到如下网站进行注册>选择订阅源>搜索

CVE数量:
1572711个 [15万]
cve搜索结果示例

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