深夜的急诊室里,分诊护士面前排着十几号病人。她没有按挂号顺序叫号,而是花三十秒看瞳孔、摸脉搏、问主诉,把一位胸痛大汗的病人直接推进抢救室,再让一个低烧的孩子去普通门诊候诊。如果按顺序看完再处理,那位心梗患者可能就等没了。AI 安全团队面对的处境和这位护士一模一样:一次评测可能同时发现二三十条漏洞——越狱提示词能绕过护栏、训练数据混入恶意样本、日志泄漏用户对话摘要、推理接口偶尔超时……如果眉毛胡子一把抓,修复资源会耗尽在最不重要的漏洞上,真正的致命缺陷反被耽误。本篇要讲的,就是 AI 安全体系里的“急诊分诊台”——严重度评分体系:如何定义等级、如何从影响范围和可利用性两个维度打分、与传统软件漏洞评分有何不同、如何建立分级响应机制并与合规要求对接。
学会 AI 安全漏洞严重度评分,你就能在实测中快速区分“要命的”与“不要紧的”漏洞,用有限的修复资源优先堵住最大的风险,这是 AI 安全测试与风险管理岗位最核心的分诊能力。
目录
可视化演示
展示AI安全漏洞多维度评分雷达图、与传统CVSS体系差异对比与分级响应SLA时限,切换模式观察评分到响应全流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
AI安全漏洞多维度评分 影响范围、可利用性、不可逆性、扩散性四维度量化打分 各维度加权综合得出严重度等级,指导修复优先级 Severity = Σ(wi × Di) AI特有维度使评分比传统体系更精准
为什么要建分诊台:评分体系概述
分诊护士小陈的第一课,是“永远先救最危重的病人”。这句话的背后是残酷的资源约束:人手有限、抢救室有限、医生精力有限。AI 安全团队也一样——一次红队评测可能产出几十条漏洞报告,而修复工程师满打满算一周也只能处理几条。如果按发现顺序平均用力,真正决定生死的缺陷一定会被淹没在琐碎问题里。
严重度评分体系,就是把“凭感觉排序”变成“用统一标准排序”的制度。它给每个漏洞算出一个 0~10 的分数,再映射到致命、高危、中危、低危四个等级,让测试、开发、运维、管理层都用同一种语言讨论风险。一个可用的体系包含三块:统一的打分维度、明确的等级阈值、与等级绑定的处置规则,三者缺一不可。
为什么分级这么重要?可以用一个极简模型说明:一组漏洞造成的总损失,往往由最严重的那一个主导,其余漏洞合起来只是噪声。
这就像分诊护士的判断——抢救室里那位胸痛病人决定了整晚的医疗结局,门口那些擦伤和低烧排到天亮也不至于恶化。评分体系的意义,正是让团队在资源有限时,把力气花在决定成败的“最大项”上。
- 总损失项 表示全部 n 个漏洞各自损失的叠加,即评估的总风险。
- 最大项分离 是所有漏洞中损失最大的那一个,对应最严重的缺陷。
- 剩余噪声 是其余漏洞损失之和,实际场景中通常远小于最大值。
- 约等关系 说明在资源有限时,可以先聚焦最大项,其余项后续迭代处理。
四色腕带:严重度等级定义
分诊台会给每位病人系上不同颜色的腕带:红色代表立即抢救,黄色需要快速处置,绿色可以候诊,蓝色只需简单处理。颜色不靠护士心情,而靠统一的生命体征标准。AI 安全等级定义同样追求“对事不对人”——测试员小赵和小钱拿到同一个漏洞,按同一套标准,必须得出同一个等级。
四级划分是评分体系的骨架。致命级:评分 ≥ 8.0,典型情形如可完全绕过安全护栏直接操控模型行为、批量窃取训练数据或对话数据;高危级:6.0~7.9,典型如可越权访问其他租户的推理结果、大面积触发有害内容但不影响数据完整性;中危级:4.0~5.9,有限信息泄露或特定条件下才可利用;低危级:< 4.0,仅影响体验或需要极端苛刻前提。每个等级既要有分数区间,也要有典型情形示例,防止纯数字带来的误判。这个四级离散映射可以写成:
四色腕带让抢救室和候诊区的划分有了客观依据。同理,四级评分把“致命级漏洞优先修、低危级漏洞排队修”从一句口号变成可执行的制度,而不是靠某个人的主观裁量。
- 输入评分 是综合评分,取值在 0~10 之间。
- 第一分支,满足即判为致命级,进入最高处置通道。
- 第二分支,判为高危级。
- 第三分支,判为中危级。
- 兜底分支,其余情况判为低危级。
量一量伤有多重:影响范围评估
病人进了分诊台,护士要先问“伤在哪、要花多大代价?”评估漏洞严重度的第一个维度就是影响范围——漏洞一旦被利用,会捅多大的娄子。AI 系统的影响范围通常拆成三个子项:数据资产影响、业务功能影响、系统可用性影响。
数据资产影响看泄漏数据的敏感度与规模:训练数据是否含个人隐私?用户对话能否被批量导出?业务功能影响看核心能力是否被破坏:推荐、审核、对话功能是否失灵或可被操纵;可用性影响看服务是否宕机、推理是否显著劣化。三个子项分别打分后,再按业务特点加权汇总。
为什么数据资产权重最高?因为对大多数 AI 产品来说,数据就是最核心的资产——模型靠它训练,产品靠它服务用户,泄露一批训练数据可能比服务宕机几个小时更致命。通用的加权公式如下:
就像护士记录“失血量多少、伤在哪个部位”来决定送哪科,影响范围打分回答了“漏洞到底伤在 AI 系统的哪块要害、伤得有多深”,是判断等级上限的第一步。
- 三个分量、、 分别是数据、功能、可用性三个子项的得分(各自 0~10)。
- 数据权重 表示数据资产影响在总影响中占四成,是权重最高的子项。
- 功能权重 表示业务功能影响占三成。
- 可用性权重 表示系统可用性影响占三成。
- 汇总结果 是加权后的总影响分,范围仍然落在 0~10,便于后续与可利用性合并定级。
摸一摸脉搏:可利用性评估
一个伤势再重的病人,如果被锁在三十层楼顶的密室里没人能靠近,急诊室也不会立刻倾巢出动。评估严重度,必须再问一句:“攻击者到底够不够得着?”这就是可利用性评估 E,衡量一个漏洞被真实攻击利用的难易程度。
可利用性由四个子项决定:攻击前提条件(是否需要内网权限、是否需要特定账号)、攻击复杂度(是否需要专门工具或高级技巧)、用户交互要求(是否需要诱导受害者点击或输入)、已知利用情报(网上是否已有公开利用代码或现成攻击模板)。前提越少、复杂度越低、交互越少、情报越热,E 就越高。
把四个子项压缩成三个 0~1 的系数可以简化计算:c 为攻击复杂度、u 为是否要求受害者交互、p 为前置条件苛刻程度。三项越容易满足,E 越接近满分:
分诊护士不会因为病人叫得响就优先——她看的是能不能快速止血、是否有人能实施救助。可利用性评分把“理论上严重”和“实际会被打的”区分开,避免高影响漏洞长期霸占修复队列而真正容易被攻击的中危漏洞被冷落。
- 复杂度系数 是攻击复杂度,越接近 1 代表实现攻击越难,会拉低 E。
- 交互系数 是是否需要受害者交互,需要交互则 变小,E 被压低。
- 前提系数 是前置权限或条件的苛刻程度,门槛越高 E 越低。
- 连乘缩放 三项补数相乘,任何一个“困难项”都会显著降低得分。
- 满分封顶 保证 E 不会出现负值,最大为 10。
换一张处方:与传统 CVSS 的区别
内科医生若拿胃炎处方去治骨折病人,必然误事。传统软件漏洞领域的 CVSS(通用漏洞评分系统)直接拿到 AI 安全场景套用,就像用内科思维做外科分诊——不是不能用,而是误诊风险极高。
CVSS 用攻击向量、攻击复杂度、机密性/完整性/可用性影响等指标打分,在传统 Web 和系统中非常成熟。但 AI 系统的漏洞形态完全不同:提示词注入、越狱、训练数据投毒、模型窃取、对抗样本攻击,这些在 CVSS 的指标字典里一个都找不到。比如“越狱提示词”不涉及网络端口,不涉及内存破坏,用 CVSS 打分只能得到很低的分数,但它实际可以完全废掉模型的安全护栏。
所以 AI 安全严重度评分 = CVSS 可复用部分 + AI 特有增量。增量至少要覆盖四块:护栏绕过、数据污染、模型窃取、内容滥用。用公式表达:
骨折病人需要骨科医生会诊,AI 漏洞也需要“AI 专科量表”。CVSS 可以作为跨行业的公共语言,但最终等级必须由懂模型、懂数据、懂算法的团队按 AI 特有因子重新裁决。
- 传统基线 是 CVSS 计算出的分数,作为公共语言基线。
- 护栏增量 是提示词注入或越狱导致安全机制失效时增加的分数。
- 数据增量 是训练数据或对话数据被投毒、窃取时增加的分数。
- 窃取增量 是模型参数或推理能力被复制、盗用时增加的分数。
- 滥用增量 是生成内容被大规模用于诈骗、造谣等滥用场景加分。
急救路线图:分级响应机制
分了级还不够,急诊室还要规定:红色腕带两分钟内必须有人接,抢救室床位多久腾出,主治医生什么时候到场——这些时效承诺就是分诊的 SLA。分级响应机制把等级翻译成动作,让每个漏洞都知道“自己该走哪条通道”。
每一级绑定三类时效:首次响应时限(安全团队开始介入调查)、临时缓解时限(止血措施生效,如先给模型加一层输入过滤)、修复闭环时限(漏洞彻底关闭)。同时定义升级上报路径:致命级从一线工程师直达安全负责人,甚至触发管理层会议;低危级则进入常规迭代队列。常见 SLA 参考值如下,具体数值按企业风险承受力调整:
就像胸痛病人的绿色通道有固定的抢救时间表,评分体系给每个级别画好了路线图——先止血、再转科、最后出病历,人人都知道下一步是谁、在什么时间点做什么事。修复优先级排序也由此而生:致命级先缓解止血,高危级紧跟其后,中低危按排期消化。
- 致命级时限,致命漏洞两小时内必须被安全人员接手响应。
- 高危级时限,高危漏洞一个工作日内响应。
- 中危级时限,中危漏洞一天内响应。
- 低危级时限,低危漏洞三天内处置,进入排期。
- 分级驱动 是整个处置流程的时钟,等级越高,时钟走得越快。
病历要归档:合规与审计对接
急诊室不能光救人,每份病历都要写清楚:谁接诊、诊断依据是什么、用了什么药、转归如何,否则医疗纠纷和卫生检查没法交代。AI 安全严重度评分的每一条记录,同样是必须归档的“病历”。
生成式人工智能服务的监管要求(如《生成式人工智能服务管理暂行办法》)以及等级保护 2.0 对 AI 系统的安全评估要求,普遍需要企业留存安全测试与风险处置记录。评分体系恰好提供了结构化的病历:漏洞描述、复现步骤、评分依据、等级结论、处置动作与闭环时间。对接审计的关键是“评分可追溯”——每一条评级记录都必须有证据链,否则审计人员无法核验。
合规判定的数学表达很简单:所有已登记的漏洞都要有非空的证据记录。用符号表示:
急诊室的病历让医院经得起检查,也帮医生复盘改进。评分体系的证据留存既让 AI 安全团队经得起监管审计,又让“哪个环节容易漏诊”有据可查,驱动评分策略在每次迭代中持续优化。
- 漏洞集合 表示遍历企业登记的所有已评分漏洞。
- 证据函数 是漏洞 v 对应的证据记录集合。
- 非空校验 要求证据记录不得为空,至少包含复现步骤和评分说明。
- 双向条件 表示“符合当且仅当全部满足”,任何一个漏洞证据缺失即判定不合规。
AI 应用场景
红队评测漏洞分诊
阶段:安全测试与风险管理
解决的问题:红队一次评测产出 30 多条漏洞报告,传统做法按发现顺序全部抛给开发团队,工程师疲于奔命,真正的致命问题却排不上号。用严重度评分后,致命和高危漏洞走应急通道,中低危进入迭代池,修复效率显著提升。
具体案例:某大模型产品发布前红队评测发现:越狱提示词可绕过护栏(致命 9.2 分)、训练数据含少量违规文本(高危 7.5 分)、错误日志泄漏元数据(中危 4.8 分)。按评分排序,先对越狱做输入过滤止血,再清洗数据管线,日志问题安排到下个迭代。
AI 产品发布安全门禁
阶段:研发运营(DevSecOps)
解决的问题:发布流程要求“无致命、高危漏洞”才能上线,但“怎样算高危”必须有一致口径。评分体系给版本化门禁提供了可自动判定的依据,避免开发与安全之间扯皮。
具体案例:每次模型更新进入 CI/CD 流水线时自动触发安全评测,新发现的漏洞经严重度评分后,若出现致命级则直接阻断发布;高危级要求先给出临时缓解方案再放行。
合规审计证据链对接
阶段:合规与审计
解决的问题:生成式 AI 服务监管要求留存安全评估记录,审计人员会核对“致命漏洞是否在两小时内被响应、是否在规定时限内闭环”。缺了评分台账,企业很难自证合规。
具体案例:等保测评时,审计师随机抽取 5 条漏洞记录,逐条验证评测数据、评分判定、责任人、SLA 达成时间。评分体系配合证据留存,直接生成可导出的审计报告,节省数周人工整理时间。
Python 演示
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""AI安全漏洞严重度评分器: 影响范围、可利用性、环境因子加权定级, 并输出SLA响应时限""" class SeverityScorer: """加权打分 -> 四级定级 -> SLA 映射""" def __init__(self): # 权重: 影响范围 0.5, 可利用性 0.3, 环境因子 0.2 self._weights = (0.5, 0.3, 0.2) self._thresholds = (8.0, 6.0, 4.0) self._bands = ("致命", "高危", "中危") self._sla_map = {"致命": "2小时", "高危": "8小时", "中危": "24小时", "低危": "72小时"} def calc(self, impact, exploit, env=0.0): if not all(0 <= v <= 10 for v in (impact, exploit, env)): raise ValueError("各维度分值必须在 0~10 之间") score = sum(w * v for w, v in zip(self._weights, (impact, exploit, env))) band = "低危" for t, b in zip(self._thresholds, self._bands): if score >= t: band = b break return round(score, 2), band, self._sla_map[band] def main(): scorer = SeverityScorer() vulns = [ ("越狱提示词绕过护栏", 9.5, 8.0, 8.0), ("训练数据投毒后门", 8.5, 3.5, 6.0), ("推理接口资源耗尽", 6.0, 7.0, 5.0), ("日志泄漏对话摘要", 4.0, 6.0, 3.0), ] for name, impact, exploit, env in vulns: score, band, sla = scorer.calc(impact, exploit, env) print("{:<14s} 评分={:>5} 等级={} SLA={}".format(name, score, band, sla)) if __name__ == "__main__": main()
self._weights = (0.5, 0.3, 0.2)把影响范围、可利用性、环境因子的权重定义成不可变的元组,保证打分口径统一。score = sum(w * v for w, v in zip(self._weights, (impact, exploit, env)))用 zip 把权重和三个得分一一配对,加权求和得到最终评分。for t, b in zip(self._thresholds, self._bands):从 8.0 开始逐级向下比对阈值,与“更高等级优先命中”的分诊逻辑一致。if score >= t:命中高阈值立即定级并跳出循环,保证致命级优先于高危级判定。if not all(0 <= v <= 10 for v in (impact, exploit, env)):入口校验,三个维度得分必须落在 0~10,防止脏数据污染评分。return round(score, 2), band, self._sla_map[band]一次性返回分数、等级和 SLA 时限,供下游流程直接消费。
常见误区
误区“漏洞不就是漏洞吗?直接用 CVSS 打分不就行了,为什么还要搞一套 AI 专用评分?我平时都用 CVSS 给 Web 漏洞打分,套到 prompt 注入上应该也没问题。”
正解CVSS 的指标体系围绕网络端口、内存破坏、机密性完整性可用性展开,它根本不认识“提示词注入”“训练数据投毒”“模型窃取”。一个能完全废掉 AI 护栏的越狱漏洞,用 CVSS 打可能只有 3 分——因为传统指标完全评估不到护栏失效的影响。AI 评分必须在 CVSS 基础上叠加护栏、数据、窃取、滥用四类增量,否则会系统性低估最危险的 AI 漏洞。
为何常见:CVSS 是行业里最熟悉的评分语言,大家天然倾向于把它当成“通用答案”,忽略了 AI 漏洞形态与传统软件的断层。
误区“影响越大越严重,所以只要影响范围得分高,就一定是致命级。那个能窃取全部训练数据的漏洞,肯定比一个只能查询几行日志的漏洞优先级高。”
正解严重度 = 影响 × 可利用性 的联合判断。一个能窃取全部数据但需要内网权限加物理接触的漏洞,实际被打的概率极低;一个只能查几行日志但任何人通过公网 API 就能触发的漏洞,反而每天都有被批量扫描的风险。分诊护士不会因为病人叫得响就优先抢救,她看的是“能不能快速救、会不会立刻恶化”。评分必须同时看影响范围和可利用性两个维度。
为何常见:影响范围数值大,看起来“直观严重”,而可利用性需要更细致的技术判断,容易被偷懒省略。
误区“漏洞定完级就完事了,记录在台账里,下次审计直接调出来。反正分数是评测当时算好的,不用改。”
正解严重度评分是环境敏感的动态值。同一个模型漏洞,从内部演示环境迁移到对外生产服务,暴露面变大、数据敏感度变高,环境因子 R 变了,评分就该重算;公开利用情报出现后,可利用性 E 也要上调。实践上建议至少每个发布周期复查一次漏洞台账,环境发生重大变化时立即重评。
为何常见:评分看起来是个“一次性的数字”,人们容易产生“打完分就归档”的思维惯性,忽略了安全风险随环境流动的本质。
误区“救命级=马上修好,不然就是响应不及时。致命漏洞这么多,那就都停下来不发布,全部修完再说。”
正解分级响应的重点是“先止血、再根治”,而不是“所有致命级都当场修完”。重构训练数据管线可能需要数周,但可以先加输入过滤、关停高危接口等临时缓解措施压住风险,再排期根治。SLA 要求的是响应时限和缓解时限,最终关闭时限按修复复杂度可以分层管理。混淆“等级”和“处置方式”,会让团队被不可能完成的任务拖垮。
为何常见:“致命”两个字容易让人联想到“必须立刻彻底解决”,忽略了应急响应分缓解和根治两阶段的基本常识。
误区“严重度评分是安全测试小组内部的标准,我们自己打分自己看就行,开发团队不需要参与,业务方更不用知道。”
正解评分体系的价值在于“让所有角色用同一语言讨论风险”。如果开发不认可分数口径,修复排期就会扯皮;如果业务方不理解等级含义,紧急上线决策就缺乏依据。落地时要让开发、运维、法务共同评审权重配置和 SLA 承诺,确保评分结果能真正驱动资源分配。闭门打分的体系,最终只会变成一张没人执行的表格。
为何常见:安全团队长期习惯“自己发现问题自己评级”,忽视了评分本质上是跨团队的资源分配契约。
面试题
Q1. 严重度评分体系最核心的目的是什么?
- A.给每个漏洞分配一个唯一编号
- B.按严重度排序确定修复优先级← 正确答案
- C.证明安全团队发现了足够多的漏洞
- D.替代渗透测试完成全部检测工作
答案:B。评分体系是为“分诊”服务的——资源有限时,先修最致命的漏洞。编号只是管理手段,发现数量和替代检测都不是目的。就像急诊分诊台的核心是决定先救谁,而不是给病人发号。
Q2. 以下哪个不属于影响范围评估的三个子项?
- A.数据资产影响
- B.业务功能影响
- C.漏洞复现所需时间← 正确答案
- D.系统可用性影响
答案:C。影响范围看“捅多大娄子”,包含数据资产、业务功能、系统可用性三个子项。漏洞复现耗时属于可利用性的范畴(攻击复杂度),不是影响范围的维度。
Q3. 加权评分公式中影响范围权重最大(0.5),根本原因是什么?
- A.影响范围最容易量化与计算
- B.影响范围决定了损失的规模上限← 正确答案
- C.可利用性在评分后才能有意义
- D.环境因子由外部监管来规定
答案:B。影响范围决定“最坏能损失多少”,这是风险的上限;可利用性只决定“发生的概率”,概率再高也改变不了损失上限。就像分诊先看伤情部位,再看能不能救,伤在要害永远是第一优先。
Q4. 某漏洞影响范围得分 9 分,但需内网权限并多次诱导用户,按可利用性评估应如何处理?
- A.保持九分不变,只看影响大小
- B.调低可利用性,因前提门槛高← 正确答案
- C.直接拉到满分,发现即高危
- D.忽视可利用性,纯按后果计分
答案:B。可利用性公式中,前提条件 p 越高,E 越低。内网权限加多次诱导属于高门槛,E 应显著下调。影响大不等于可利用,两者必须分开打分再合并,否则高影响漏洞会长期霸占队列。
Q5. 与传统 CVSS 相比,AI 安全评分需新增哪些风险因子?
- A.提示词注入与越狱绕过← 正确答案
- B.训练数据的投毒与污染← 正确答案
- C.模型参数与逻辑的窃取← 正确答案
- D.常规 SQL 注入的利用链
答案:ABC。AI 特有增量覆盖护栏绕过、数据污染、模型窃取、内容滥用四类。SQL 注入是传统 Web 漏洞,CVSS 已经覆盖,不需要新增因子。就像骨科处方不需要再写“骨折”——那本来就是专科范围。
Q6. 致命级评分 8.5 但修复需重构数据管线,高危级 7.2 当天可修复,按分级响应机制应如何处置?
- A.严格按分数从高到低串行修复
- B.致命级先止血,高危级当天修← 正确答案
- C.只修致命漏洞,其余全部搁置
- D.把致命级降级走普通流程处理
答案:B。分级响应的核心是“先止血再根治”。致命级加输入过滤等临时缓解措施压住风险,同时并行修复当天能闭环的高危漏洞;致命级的根治修复进入排期和升级跟踪。串行修复和只修致命都浪费资源,降级则是掩盖问题。
Q7. 分级响应机制中的 SLA 通常包括哪些时效承诺?
- A.首次响应的时限要求← 正确答案
- B.临时缓解措施的时限← 正确答案
- C.最终修复闭环的时限← 正确答案
- D.漏洞公开披露的时限
答案:ABC。SLA 三件套:首响应时限(安全团队介入)、临时缓解时限(止血生效)、修复闭环时限(彻底关闭)。公开披露是企业 PR 和法务的决策,不属于安全响应的 SLA 范畴。
Q8. 致命级漏洞通常要求的安全团队首次响应时限是?
- A.两个小时内响应← 正确答案
- B.七十二小时以内
- C.三十个自然日以内
- D.无需进行任何响应
答案:A。致命级对应最高响应级别,常见 SLA 是 2 小时首响应。72 小时是低危级别的时限,30 天是迭代排期节奏,“无需响应”直接违背分级思想。级别越高,时钟走得越快。
Q9. 对接合规审计时,评分体系需要留存哪些证据?
- A.漏洞评测数据与复现步骤← 正确答案
- B.评分判定记录与责任人← 正确答案
- C.处置记录与 SLA 达成情况← 正确答案
- D.修复工程师的考勤记录
答案:ABC。审计核验的是“评分可追溯”:原始证据、判定过程、处置闭环三者齐全才算合规(evidence(v) ≠ ∅)。考勤与漏洞处置无关,不属于证据链。
Q10. 同一模型漏洞在内部演示环境与对外生产服务中评分不同,主要原因是什么?
- A.评分体系不统一造成的误差
- B.环境因子不同导致暴露面差异大← 正确答案
- C.CVSS 规范强制要求必须不同
- D.测试人员主观偏好造成的差异
答案:B。环境因子 R 会随部署位置、暴露面、数据敏感度变化:内部演示环境几乎无真实用户数据,对外生产服务则直接面对公网和真实隐私数据。同一漏洞的固定属性没变,但环境变量变了,最终评分就不同。这不是误差,而是体系设计上应有的敏感性。