项目描述
一个包含Python应用和Shell脚本的集合,用于每天定时将NIST CVE数据库中的新漏洞及其相关产品导出为xlsx电子表格并通过邮件发送。该电子表格可手动解读,以评估对特定组织的风险。
文件:cve_manager.py
一个Python脚本,原作者Antonios Atlasis - [email protected]
https://github.com/aatlasis/cve_manager
与原版的差异:
新增了数据操作库pandas的导入
sudo pip3 install pandas openpyxl
新增了连接cve和cpe数据的数据库视图
修改了默认的cpe查询和报告,使用cvssv3向量字符串替代cvssv2评分
修改了默认的cpe查询和报告,按发布日期升序、CVSS降序、CPE升序排序
修改了cpe输出到csv的函数,每次保存csv时自动保存一份xlsx格式副本
文件:email_xlsx_attach.py
新Python脚本,作者Shane Lawrence
通过本地SMTP中继将xlsx报告作为邮件附件发送
文件:daily.sh
一个Bash Shell脚本,作者Shane Lawrence
将所有功能整合在一起,供cron每日运行
自动执行cve_manager.py的以下操作:
新服务器设置:
阅读原始PDF文档:
https://github.com/aatlasis/cve_manager/blob/master/CVE%20Manager.pdf
设置Python:
需要Python 3
建议同时安装pip3
pip3 install psycopg2, openpyxl, pandas
必需的包包括:
psycopg2 - 数据科学库
pandas - 数据操作库(依赖openpyxl)
sys, argparse, os, zipfile, json, requests, re, io, csv, smtplib, base64, email, datetime
设置PostgreSQL:
安装适合你发行版的最新PostgreSQL数据库。
以root身份,systemctl enable postgresql
systemctl start postgresql
然后通过以下命令设置postgresql用户的密码:
sudo -u postgres psql
\l 列出数据库
\du 列出用户
CREATE USER username WITH PASSWORD 'password';
使用cve_manager创建数据库:
用户必须具有创建权限
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ow $USER -cd
使用cve_manager.py创建模式
用户必须具有创建权限
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ct
使用cve_manager下载CVE和CPE数据
./cve_manager.py -u $user -ps $pass -host $host -db $db -d -p -csv
手动下载并解压CWE数据
wget https://cwe.mitre.org/data/csv/1000.csv.zip
unzip 1000.csv.zip
使用cve_manager将NIST CVE和CPE数据导入数据库
./cve_manager.py -u $user -ps $pass -host $host -db $db -idb -p
使用cve_manager将CWE数据导入数据库
./cve_manager.py -u $user -ps $pass -host $host -db $db -icwe 1000.csv
运行示例报告。
此示例创建漏洞及其影响产品的csv和xlsx报告,
仅包含严重等级7.0及以上、且于2020年7月1日之后创建或更新的条目
./cve_manager.py -u $user -ps $password -host $host -db $db -sc 7.0 -dt 2020-07-01 -cpe cpe -csv -o $reports
通过邮件发送xlsx报告
修改email_xlsx_attach.py中的SMTP中继、发件人、收件人和报告目录。
待办事项:
下一步计划研究如何整合关键产品清单,
仅生成适用于清单中CPE的报告。
Shane Lawrence
云平台安全高级顾问