Vulnerability Management 是一个用于管理漏洞生命周期的技能,涵盖从漏洞发现到修复的完整流程,提供扫描结果处理、风险优先级排序和跟踪能力。
用途
该技能面向漏洞评估、跟踪与修复管理,用于处理扫描结果、对发现进行优先级排序,并跟踪修复进度。它帮助安全团队将扫描输出转化为可执行的任务,并按风险与 SLA 进行管理。
主要能力
- 扫描处理:解析漏洞扫描结果,支持 Nessus、Qualys 和通用 CSV 格式。可手动添加发现,也可从 CSV 导入,并可按严重性筛选、获取唯一 CVE、生成摘要与报告。
- 风险优先级排序:基于 CVSS 分数、资产重要性、是否存在可用利用、是否面向互联网等多个风险因素计算风险分数,输出按优先级排序的列表,并支持获取前 N 个高风险漏洞和生成风险报告。
- 修复跟踪:为漏洞添加 SLA 天数,分配团队和截止日期,更新状态,标记修复完成,检查逾期和即将到期项,并生成状态报告。
- 例外管理:创建例外请求,记录原因和补偿控制措施,由安全经理审批,并检查过期例外、生成例外报告。
- 漏洞指标:记录历史扫描数据和修复记录,计算 MTTR、SLA 合规率、修复率,获取漏洞趋势数据并生成指标报告。
- 基于资产的视图:按资产记录漏洞,设置资产重要性,获取资产风险摘要,找出最高风险资产,并生成资产报告。
使用方式
通过 Python 导入 vuln_utils 中的类进行调用。
扫描处理示例:
from vuln_utils import VulnerabilityScanner
scanner = VulnerabilityScanner()
scanner.add_finding(
cve_id='CVE-2024-1234',
severity='Critical',
affected_host='SERVER-01',
description='Remote code execution in Apache',
cvss_score=9.8,
solution='Update to version 2.4.55'
)
scanner.import_csv('scan_results.csv')
scanner.import_nessus_csv('nessus_export.csv')
print(scanner.get_summary())
风险优先级排序示例:
from vuln_utils import RiskPrioritizer
prioritizer = RiskPrioritizer()
prioritizer.add_vulnerability(
cve_id='CVE-2024-1234',
cvss_score=9.8,
affected_host='SERVER-01',
asset_criticality='high',
exploit_available=True,
internet_facing=True
)
prioritizer.calculate_risk_scores()
prioritized = prioritizer.get_prioritized_list()
修复跟踪示例:
from vuln_utils import RemediationTracker
tracker = RemediationTracker()
tracker.add_vulnerability(
cve_id='CVE-2024-1234',
severity='Critical',
affected_host='SERVER-01',
sla_days=7
)
tracker.assign('CVE-2024-1234', 'infrastructure-team', due_date='2024-02-01')
tracker.update_status('CVE-2024-1234', 'in_progress', notes='Patch scheduled for maintenance window')
tracker.mark_remediated('CVE-2024-1234', method='Patched to version 2.4.55')
overdue = tracker.get_overdue()
例外管理示例:
from vuln_utils import ExceptionManager
exceptions = ExceptionManager()
exceptions.create_exception(
cve_id='CVE-2024-9999',
affected_host='LEGACY-SERVER',
reason='System scheduled for decommission in 90 days',
compensating_controls='Network isolated, enhanced monitoring',
requested_by='john.smith',
expiration_date='2024-04-15'
)
exceptions.approve_exception(
cve_id='CVE-2024-9999',
approved_by='security.manager',
notes='Approved with condition of weekly review'
)
指标计算示例:
from vuln_utils import VulnMetrics
metrics = VulnMetrics()
metrics.add_scan_result({
'date': '2024-01-15',
'critical': 5,
'high': 20,
'medium': 50,
'low': 100
})
print(f"MTTR (Critical): {metrics.calculate_mttr('Critical'):.1f} days")
print(f"SLA Compliance: {metrics.calculate_sla_compliance():.1f}%")
配置
支持以下环境变量(均非必填,带默认值):
- VULN_SLA_CRITICAL:严重漏洞 SLA 天数,默认 7
- VULN_SLA_HIGH:高漏洞 SLA 天数,默认 30
- VULN_SLA_MEDIUM:中漏洞 SLA 天数,默认 90
- VULN_SLA_LOW:低漏洞 SLA 天数,默认 180
适用场景
适用于安全团队对漏洞进行评估、优先级排序和修复跟踪,生成面向管理层或技术团队的报告,跟踪 MTTR、SLA 合规率、修复率等 KPI,管理风险接受例外,以及按资产查看漏洞风险。
限制
- 无扫描器集成:需要手动导入
- 无自动发现:资产必须手动定义
- 本地存储:数据仅存储在内存中
排错
- 无效 CVSS 分数:CVSS 分数必须在 0.0 到 10.0 之间。
- SLA 计算问题:确保日期格式正确,例如使用 '2024-02-01' 而非 '02/01/2024'。