改进后的获取NVD最近时段内发布,并且携带CPE信息的漏洞清单

文章讲述了NVD暂停漏洞详细信息更新后,开发者如何通过NVDAPI和requests库获取过去特定时间内带有CPE信息的漏洞数据,以反映当前安全工作的挑战。
摘要由CSDN通过智能技术生成

NVD从24年2月13日开始暂停了漏洞详细信息的补充和完善

不知道为什么这么重要的事情,相关的讨论和新闻并不多,说明目前的安全工作水平还是非常低的。

#要通过Python实现使用NVD API获取最新发布且带有CPE信息的漏洞,
#使用requests库来发送HTTP请求,并使用json库来解析返回的JSON数据。以下是一个简单的示例代码

import requests  
import json  
from datetime import datetime, timedelta  

# 打开记录文件# # Open the file in append mode
file = open('myfile.txt', 'a')

# NVD API的URL  
NVD_API_URL = "https://services.nvd.nist.gov/rest/json/cves/2.0/"  
  
# 设置时间范围以获取最新发布的漏洞,例如过去7天  
days_ago = 30  
start_date = (datetime.now() - timedelta(days=days_ago)).strftime('%Y-%m-%dT00:00:00.000')  
end_date = datetime.now().strftime('%Y-%m-%dT00:00:00.000')  
  
# 构造API请求参数  
params = {  
    'pubStartDate': start_date,# '2024-02-27T00:00:00.000',#start_date,#'2024-01-01T00:00:00.000',#start_date,#'2024-04-01T00:00:00.000',#start_date,  
    'pubEndDate': end_date, #'2024-04-27T13:36:00.000',#end_date,# '2024-02-27T00:00:00.000',#end_date,#'2024-04-26T13:36:00.000',  
    #'resultsPerPage': 10,  # 每次请求返回的漏洞数量,可以根据需要调整,没有key一次最多输出2000个
    'virtualMatchString': 'cpe:2.3:*:*:*:*:*:*:*' #只有cpe有相关信息才输出,因为当前nvd的漏洞分析基本上暂停了
}  
file.write("#####################################################]\r")
#Append content to the file
file.write(f"now:{datetime.now()} startDate:{start_date} endDate:{end_date}\r")

# 发送HTTP GET请求  
response = requests.get(NVD_API_URL, params=params)  
print("reponse:{response.status_code}")    
# 检查请求是否成功  
if response.status_code == 200:  
    
    # 解析返回的JSON数据  
    cve_data = response.json()  
    
    #print(cve_data)  

    # 提取带有CPE信息的漏洞  
    print(cve_data['totalResults'])
    file.write(f"totalrecords:{cve_data['totalResults']}\r")
    for cve_item in cve_data['vulnerabilities']:  
        cve_id = cve_item['cve']['id']  
        print(f"CVE ID: {cve_id} published:{cve_item['cve']['published']} lastModified:{cve_item['cve']['lastModified']}")  
        # 检查是否有CPE信息  
        #print(cve_item['cve']['configurations'][0]['nodes'])
        if 'configurations' in cve_item['cve']: 
            file.write(f"CVE ID: {cve_id} published: {cve_item['cve']['published']} lastModified: {cve_item['cve']['lastModified']} CVSS: {cve_item['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseScore']} CPE: {cve_item['cve']['configurations'][0]['nodes'][0]['cpeMatch'][0]['criteria']}\r")
            for configuration_item in cve_item['cve']['configurations']:
                for node_item in configuration_item['nodes']:
                    for cpe_item in node_item['cpeMatch']:
                        a=1
                        #print(cpe_item['criteria'])
                    # 在这里可以进一步处理每个带有CPE信息的漏洞  
            #file.write(f"{cve_item['cve']['configurations'][0]['nodes'][0]['cpeMatch'][0]['criteria']}\r")
        #print("---")  
else:  
    print(f"Failed to retrieve data from NVD API. Status code: {response.status_code}")

# Close the file
file.close()

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: NVD漏洞信息数据集是由美国国家漏洞数据库(National Vulnerability Database,简称NVD)提供的一组包含了各种软件和操作系统的安全漏洞信息的数据集。这个数据集是为了促进网络安全研究和漏洞管理而创建的。 NVD漏洞信息数据集的主要内容包括漏洞的名称、描述、危害级别、可利用性、解决方案、参考链接等。这些信息可以帮助企业和个人识别并修复系统中的安全漏洞,增强网络系统的安全性。 该数据集中的漏洞信息根据不同的标准进行分类和标记,比如CVE(通用漏洞漏洞名称)标识符。这使得研究人员和安全专家可以快速地找到相关的漏洞信息,对其进行深入分析和研究。同时,NVD还将漏洞信息与其他相关的漏洞数据库进行关联,以提供更全面和准确的信息NVD漏洞信息数据集在网络安全研究、漏洞评估、威胁情报等领域起到了重要作用。它为研究人员提供了一个基准,可以对比自己的研究成果,并且可以帮助他们发现新的安全漏洞。另外,NVD漏洞信息数据集也为企业和安全从业者提供了一个重要的参考,帮助他们及时发现并修复可能存在的漏洞,从而降低系统被攻击的风险。 总而言之,NVD漏洞信息数据集是一个重要的安全漏洞信息资源,对于网络安全研究、漏洞管理和威胁情报都有着积极的促进作用。 ### 回答2: NVD漏洞信息数据集是一种包含多个漏洞信息的数据集。NVD是“国家漏洞数据库”(National Vulnerability Database)的简称,它是美国国家标准与技术研究院(NIST)维护的一个公共数据库,用于收集、更新和发布各种软件、硬件和操作系统的漏洞信息NVD漏洞信息数据集包括了各种漏洞的详细信息,包括漏洞的名称、漏洞编号、漏洞描述、漏洞的严重程度等等。这些信息对于安全研究人员、开发人员和系统管理员来说非常有价值,可以帮助他们了解当前存在的漏洞,采取相应的防护措施。 使用NVD漏洞信息数据集,可以对漏洞进行分类和归纳,进而进行漏洞分析和评估。同时,该数据集还可以用于建立漏洞检测和防护系统,提供即时的漏洞更新和修复方案。 NVD漏洞信息数据集的更新频率较高,NIST团队会根据最新的漏洞信息不断更新和发布数据集。因此,我们可以及时地获取最新的漏洞信息,快速采取应对措施,提高系统的安全性。 总而言之,NVD漏洞信息数据集是一种非常有价值的资源,对于安全研究和漏洞防护都具有重要意义。使用该数据集进行漏洞分析和修复,可以帮助我们更好地保护系统的安全,减少潜在的安全风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值