La interfaz está localizada; las descripciones y documentos de las Skills se traducen automáticamente con IA a su idioma. El código, los comandos, rutas y términos técnicos se mantienen en el original, y prevalece el documento del autor.
Explorar Skills
Productividad · SKILL.md

triaging-vulnerabilities-with-ssvc-framework

triaging-vulnerabilities-with-ssvc-framework

使用 CISA 的利益相关方特定漏洞分类(SSVC)决策树框架对漏洞进行分类和优先排序,产出可操作的修复优先级:Track、Track*、Attend 或 Act。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentación de la Skill

GitHub

name: triaging-vulnerabilities-with-ssvc-framework description: 使用 CISA 的利益相关方特定漏洞分类(SSVC)决策树框架对漏洞进行分类和优先排序,产出可操作的修复优先级:Track、Track*、Attend 或 Act。 domain: cybersecurity subdomain: vulnerability-management tags: [ssvc, vulnerability-triage, cisa, vulnerability-prioritization, decision-tree, cvss, remediation, risk-management] version: "1.0" author: mahipal license: Apache-2.0

使用 SSVC 框架对漏洞进行分类(Triaging Vulnerabilities with SSVC Framework)

概述

利益相关方特定漏洞分类(Stakeholder-Specific Vulnerability Categorization,SSVC)框架由卡内基梅隆大学软件工程研究所(SEI)与 CISA 合作开发,提供一种用于漏洞优先排序的结构化决策树方法。与单独使用 CVSS 不同,SSVC 综合考虑漏洞利用状态、技术影响、可自动化程度、任务普遍性和公共福祉影响,产出以下四种可操作结果之一:Track(跟踪)、*Track(重点跟踪)**、Attend(关注) 或 Act(立即行动)。

前置条件

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

SSVC 决策点

1. 漏洞利用状态(Exploitation Status)

评估当前漏洞利用活动:

  • 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')"

2. 技术影响(Technical Impact)

确定被利用后的受损范围:

  • Partial(部分) - 仅限于系统功能或数据的子集
  • Total(全部) - 完全控制受影响系统,完整数据访问

3. 可自动化程度(Automatability)

评估漏洞利用是否可以大规模自动化:

  • No(否) - 需要针对每个受害者进行手动、有针对性的利用
  • Yes(是) - 可以编写脚本或具有蠕虫式传播能力

4. 任务普遍性(Mission Prevalence)

受影响产品在您的环境中的部署范围:

  • Minimal(最小) - 有限部署,非关键系统
  • Support(支持) - 间接支持关键任务功能
  • Essential(核心) - 直接支撑核心任务能力

5. 公共福祉影响(Public Well-Being Impact)

对人身安全和公共福利的潜在后果:

  • Minimal(最小) - 对安全或公共服务影响可忽略
  • Material(实质) - 公共服务显著降级
  • Irreversible(不可逆) - 人员伤亡、重大财产损失或关键基础设施故障

SSVC 决策结果

结果所需行动SLA
Track(跟踪)监控,在正常补丁周期内修复90 天
Track(重点跟踪)*密切监控,在下一个补丁窗口优先处理60 天
Attend(关注)上报高级管理层,加速修复14 天
Act(立即行动)立即应用缓解措施,执行层知晓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('所有 SSVC 决策测试通过')
"

参考资料

Skills guardadas