SuperAPI AI 工具集

triaging-vulnerabilities-with-ssvc-framework

安全与审计

查看项目

更新于 10-15 13:50

技能介绍

概述

SSVC(利益相关方特定漏洞分类)框架由卡内基梅隆大学软件工程研究所(SEI)与 CISA 合作开发,提供了一套结构化的决策树方法用于漏洞优先级排序。与仅依赖 CVSS 不同,SSVC 综合考虑利用状态、技术影响、可自动化性、任务普遍性和公共福祉影响,最终产生四种可执行的结果:Track、Track*、Attend 或 Act。

何时使用

  • 管理需要按 SSVC 框架对漏洞进行分级的安全运营时。
  • 提升安全项目成熟度和运营流程时。
  • 为安全团队工作流建立标准化流程时。
  • 将威胁情报或漏洞数据整合进运营时。

前置条件

  • Python 3.9+,并安装 requests、pandas 和 jinja2 库。
  • 能够访问 CISA KEV 目录 API 和 FIRST 的 EPSS API。
  • NVD API 密钥(可选,用于提高速率限制)。
  • 来自 OpenVAS、Nessus 或 Qualys 等工具的漏洞扫描结果。

SSVC 决策点

  1. 利用状态 评估当前利用活动:
  • None:无活跃利用证据。
  • PoC:存在公开的概念验证。
  • Active:在野外观察到活跃利用(检查 CISA KEV)。

示例命令:

检查某个 CVE 是否在 CISA 已知被利用漏洞目录中

curl -s "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json" |
python3 -c "import sys,json; data=json.load(sys.stdin); cves=[v['cveID'] for v in data['vulnerabilities']]; print('Active' if 'CVE-2024-3400' in cves else 'Check PoC/None')"

  1. 技术影响 确定被利用后造成的破坏范围:
  • Partial:限于系统功能或数据的子集。
  • Total:完全控制受影响系统,完整数据访问。
  1. 可自动化性 评估利用是否可大规模自动化:
  • No:需要针对每个受害者进行手动定向利用。
  • Yes:可脚本化或具备蠕虫式传播可能。
  1. 任务普遍性 受影响产品在环境中的普及程度:
  • Minimal:部署有限,非关键系统。
  • Support:间接支持关键任务功能。
  • Essential:直接支撑核心任务能力。
  1. 公共福祉影响 对人身安全和公共福利的潜在后果:
  • Minimal:对安全或公共服务影响可忽略。
  • Material:公共服务明显退化。
  • Irreversible:人员伤亡、重大财产损失或关键基础设施故障。

SSVC 决策结果

  • Track:监控,在正常补丁周期内修复,SLA 90 天。
  • Track*:密切监控,在下一个补丁窗口优先处理,SLA 60 天。
  • Attend:上报高级管理层,加速修复,SLA 14 天。
  • Act:立即应用缓解措施,执行层知悉,SLA 48 小时。

工作流

第 1 步:摄取漏洞数据

import requests import json

获取 CISA KEV 目录

kev_url = "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json" kev_data = requests.get(kev_url).json() kev_cves = {v['cveID'] for v in kev_data['vulnerabilities']}

获取 EPSS 分数作为上下文

epss_url = "https://api.first.org/data/v1/epss" epss_response = requests.get(epss_url, params={"cve": "CVE-2024-3400"}).json()

第 2 步:评估每个决策点

def evaluate_exploitation(cve_id, kev_set): """根据 CISA KEV 和 EPSS 数据确定利用状态。""" if cve_id in kev_set: return "active" epss = requests.get( "https://api.first.org/data/v1/epss", params={"cve": cve_id} ).json() if epss.get("data"): score = float(epss["data"][0].get("epss", 0)) if score > 0.5: return "poc" return "none"

def evaluate_technical_impact(cvss_vector): """解析 CVSS 向量中的范围和影响指标。""" if "S:C" in cvss_vector or "C:H/I:H/A:H" in cvss_vector: return "total" return "partial"

def evaluate_automatability(cvss_vector, cve_description): """检查攻击向量是否为网络且低复杂度。""" if "AV:N" in cvss_vector and "AC:L" in cvss_vector and "UI:N" in cvss_vector: return "yes" return "no"

第 3 步:应用 SSVC 决策树

def ssvc_decision(exploitation, tech_impact, automatability, mission_prevalence, public_wellbeing): """CISA SSVC 决策树实现。""" if exploitation == "active": if tech_impact == "total" or automatability == "yes": return "Act" if mission_prevalence in ("essential", "support"): return "Act" return "Attend" if exploitation == "poc": if automatability == "yes" and tech_impact == "total": return "Attend" if mission_prevalence == "essential": return "Attend" return "Track*" # exploitation == "none" if tech_impact == "total" and mission_prevalence == "essential": return "Track*" return "Track"

第 4 步:生成分级报告

针对扫描结果运行 SSVC 分级脚本

python3 scripts/process.py --input scan_results.csv --output ssvc_triage_report.json

查看摘要

cat ssvc_triage_report.json | python3 -m json.tool | head -50

与漏洞扫描器集成

从 Nessus CSV 导入:

将 Nessus 扫描导出为 CSV,然后处理

python3 scripts/process.py
--input nessus_export.csv
--format nessus
--output ssvc_results.json

从 OpenVAS 导入:

将 OpenVAS 结果导出为 XML

python3 scripts/process.py
--input openvas_report.xml
--format openvas
--output ssvc_results.json

验证与测试

使用已知 CVE 测试 SSVC 决策逻辑

python3 -c " from scripts.process import ssvc_decision

CVE-2024-3400 - Palo Alto PAN-OS 命令注入(已列入 KEV)

assert ssvc_decision('active', 'total', 'yes', 'essential', 'material') == 'Act'

CVE-2024-21887 - Ivanti Connect Secure(存在 PoC)

assert ssvc_decision('poc', 'total', 'yes', 'support', 'minimal') == 'Attend' print('All SSVC decision tests passed') "

参考

  • CISA SSVC Framework
  • CERT/CC SSVC Documentation
  • CISA SSVC Guide PDF
  • FIRST EPSS API
  • CISA Known Exploited Vulnerabilities

限制

资料未提供该技能的具体部署方式细节、支持范围上限、错误处理策略或除上述示例之外的使用步骤,暂未提供。