用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/killvxk/cybersecurity-skills-zh --skill building-vulnerability-aging-and-sla-tracking命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
通过分析 Zeek dns.log 中的高熵子域名查询、超量查询量、超长查询长度以及异常 DNS 记录类型,检测 DNS 隧道和数据外泄中的隐蔽通道通信。适用于:当需要狩猎基于 DNS 的 C2 或数据外泄通道、调查异常 DNS 查询模式、或响应涉及 DNS 隧道工具(iodine、dnscat2、DNSExfiltrator)的威胁情报时使用。
实施 Google 的 BeyondCorp 零信任访问模型,通过 IAP、Access Context Manager 和 Chrome Enterprise Premium,消除网络边界的隐式信任,强制执行基于身份的访问控制,实现无 VPN 的安全应用访问。适用于将传统 VPN 替换为零信任架构、部署 Identity-Aware Proxy、配置设备信任策略、或为远程办公实施上下文感知访问控制时使用。
在授权的安全评估过程中,使用 Burp Suite 的扫描器、Intruder 和 Repeater 工具识别和验证跨站脚本(XSS)漏洞。适用于 Web 应用渗透测试中检测反射型、存储型和 DOM 型 XSS,验证自动化扫描器报告的 XSS 发现,以及评估 CSP 和 XSS 过滤器的有效性时使用。
基于 SOC 职业分类
正在显示 SKILL.md
| name | building-vulnerability-aging-and-sla-tracking |
| description | 实施漏洞老化仪表盘和 SLA 跟踪系统,根据基于严重性的时间线衡量修复绩效,并推动问责制落地。 |
| domain | cybersecurity |
| subdomain | vulnerability-management |
| tags | ["vulnerability-management","sla-tracking","remediation-metrics","aging-report","kpi","compliance","risk-management"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
2024 年新发现的漏洞超过 30,000 个(比上年增加 17%),组织必须跟踪漏洞未修复的时间以及修复是否在规定的服务级别协议(SLA)内完成。漏洞老化衡量从发现到修复之间的时间,而 SLA 跟踪则强制执行基于严重性的截止时限。行业基准标准 SLA 为:关键漏洞 14 天、高危漏洞 30 天、中危漏洞 60 天、低危漏洞 90 天,但对于被主动利用的关键 CVE,更激进的时间线(24-48 小时)正越来越普遍。本技能涵盖 SLA 策略设计、老化仪表盘构建、自动化升级实施和合规指标生成。
| 严重性 | CVSS 范围 | 标准 SLA | 激进 SLA | CISA KEV SLA |
|---|---|---|---|---|
| 关键 | 9.0-10.0 | 14 天 | 48 小时 | BOD 22-01 截止日期 |
| 高 | 7.0-8.9 | 30 天 | 7 天 | 14 天 |
| 中 | 4.0-6.9 | 60 天 | 30 天 | 不适用 |
| 低 | 0.1-3.9 | 90 天 | 60 天 | 不适用 |
| 信息 | 0.0 | 尽力而为 | 尽力而为 | 不适用 |
| 因素 | 调节系数 | 理由 |
|---|---|---|
| 互联网暴露资产 | -50% SLA | 更高的暴露风险 |
| 列入 CISA KEV | 覆盖为 48 小时 | 已确认主动利用 |
| EPSS > 0.7 | -50% SLA | 高利用概率 |
| 一级(核心)资产 | -25% SLA | 最大业务影响 |
| 补偿控制已到位 | +25% SLA | 风险已部分降低 |
| 供应商补丁尚不可用 | 例外处理并设置审查日期 | 暂时无法修复 |
| KPI | 计算公式 | 目标 |
|---|---|---|
| 平均修复时间(MTTR) | 平均值(修复日期 - 发现日期) | 整体 < 30 天 |
| SLA 合规率 | (在 SLA 内修复的漏洞数 / 总漏洞数)* 100 | >= 90% |
| 超期漏洞数量 | 计数(年龄 > SLA)条目 | 持续下降趋势 |
| 漏洞老化分布 | 按年龄段计数(0-14 天、15-30 天、31-60 天、60+ 天) | 大多数在 0-30 天 |
| 修复速度 | 每周关闭的漏洞数 | 持续上升趋势 |
| 例外率 | (例外数 / 总漏洞数)* 100 | < 5% |
漏洞修复 SLA 策略 v1.0
1. 范围:所有信息系统和应用程序
2. 严重性分类:基于 CVSS v4.0/v3.1 基础评分
3. SLA 时间线:参见标准 SLA 框架表
4. 自适应调节系数:根据资产背景应用
5. 例外流程:
- 必须记录业务理由
- 需要补偿控制描述
- 最长延期:90 天(可续期一次)
- 关键/高危例外需要 CISO 批准
6. 升级路径:
- SLA 已过 50%:向资产负责人发送自动提醒
- SLA 已过 75%:升级至经理
- SLA 已过 100%(超期):CISO 通知
- SLA 已过 120%:VP/CTO 升级
7. 指标报告:每月向安全委员会报告
import pandas as pd
from datetime import datetime, timedelta
class VulnerabilityAgingTracker:
"""跟踪漏洞老化和 SLA 合规情况。"""
SLA_DAYS = {
"Critical": 14,
"High": 30,
"Medium": 60,
"Low": 90,
}
def __init__(self, sla_overrides=None):
if sla_overrides:
self.SLA_DAYS.update(sla_overrides)
def calculate_aging(self, vulns_df):
"""计算每个漏洞的老化指标。"""
today = datetime.now()
vulns_df["discovery_date"] = pd.to_datetime(vulns_df["discovery_date"])
vulns_df["remediation_date"] = pd.to_datetime(
vulns_df["remediation_date"], errors="coerce"
)
vulns_df["age_days"] = vulns_df.apply(
lambda row: (row["remediation_date"] - row["discovery_date"]).days
if pd.notna(row["remediation_date"])
else (today - row["discovery_date"]).days,
axis=1
)
vulns_df["sla_days"] = vulns_df["severity"].map(self.SLA_DAYS)
vulns_df["sla_deadline"] = vulns_df[] + \
pd.to_timedelta(vulns_df[], unit=)
vulns_df[] = vulns_df.apply(
row: row[] > row[]
pd.isna(row[]) ,
axis=
)
vulns_df[] = vulns_df.apply(
row: row[] <= row[]
pd.notna(row[]) ,
axis=
)
vulns_df[] = vulns_df.apply(
row: (, row[] - row[])
row[] ,
axis=
)
vulns_df[] = (
vulns_df[] / vulns_df[] *
).()
vulns_df
():
open_vulns = vulns_df[vulns_df[].isna()]
closed_vulns = vulns_df[vulns_df[].notna()]
kpis = {
: (vulns_df),
: (open_vulns),
: (closed_vulns),
: open_vulns[].(),
: closed_vulns[].mean() (closed_vulns) > ,
: (
closed_vulns[].mean() *
(closed_vulns) >
),
}
kpis[] = (
open_vulns[open_vulns[]]
.groupby()
.size()
.to_dict()
)
kpis
():
open_vulns = vulns_df[vulns_df[].isna()].copy()
escalations = []
_, vuln open_vulns.iterrows():
pct = vuln[]
pct >= :
level =
pct >= :
level =
pct >= :
level =
pct >= :
level =
:
escalations.append({
: vuln.get(, ),
: vuln[],
: vuln[],
: vuln[],
: vuln[],
: pct,
: level,
: vuln.get(, ),
: vuln.get(, ),
})
pd.DataFrame(escalations)
# Grafana/Kibana 漏洞老化查询示例
# 老化分布直方图(Elasticsearch)
age_distribution_query = {
"aggs": {
"age_buckets": {
"range": {
"field": "age_days",
"ranges": [
{"key": "0-7 天", "to": 8},
{"key": "8-14 天", "from": 8, "to": 15},
{"key": "15-30 天", "from": 15, "to": 31},
{"key": "31-60 天", "from": 31, "to": 61},
{"key": "61-90 天", "from": 61, "to": 91},
{"key": "90+ 天", "from": 91},
]
}
}
}
}
# SLA 合规趋势(按月)
sla_trend_query = {
"aggs": {
"monthly": {
"date_histogram": {"field": "remediation_date", "interval": "month"},
"aggs": {
"within_sla": {
: {: {
:
}}
}
}
}
}
}