想象一座刚开张的现代化综合医院——每天清晨,急诊分诊台前涌进形形色色的“病人”:有人捂着肚子喊疼、有人低烧不止、还有人只是熬夜头晕。要是没有分诊制度,医生只会手忙脚乱,轻症占用了抢救室,真正的危重病人反而被晾在走廊。于是护士开始给每个人量体温、看主诉、测血氧,在手腕上系上红黄绿三色腕带;每收治一位病人,就建立一份标准化病历,归档进档案室;医生查房时翻开旧病历,五分钟就能判断新病人的病情走向。 AI 系统的安全运营,和这座医院一模一样。模型在生产环境中每天都会遭遇投毒、后门、提示注入、对抗样本等各种“病症”,红队和 AI 安全工程师就是分诊台的护士,漏洞知识库就是病历档案室。漏洞发现与分类体系,本质上是给 AI 安全建立一套“分诊—归档—复盘”的基础设施:先确认问题是不是真漏洞,再给它归类定级,最后塞进可检索的知识库,驱动修复与协同。这套体系让安全团队在攻击浪潮中不慌不乱、资源不浪费、风险不遗漏。

岗位关联

对 AI 从业者而言,掌握漏洞发现与分类体系,等于是拿到了 AI 安全运维的“急诊分诊执照”——无论做红队、安全运营还是合规审计,都需要这套通用语言来定位风险、排出修复优先级。

目录
  1. 可视化演示
  2. 漏洞定义来源
  3. 攻击面四大类
  4. 危害等级评估
  5. 知识库架构设计
  6. 生命周期管理
  7. 团队协同运营
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

通过五步红队测试流程可视化AI系统漏洞的发现、分类与修复过程,支持步进切换查看每个阶段的详细状态。

本节配有交互动效(进入视口后自动加载,约 3KB)。

威胁建模阶段 STRIDE六维度威胁分类框架,覆盖欺骗/篡改/抵赖/信息泄露/拒绝服务/提权 AI系统特有威胁需额外考虑模型逆向与数据投毒 覆盖率 = 已识别威胁 / 总威胁面 × 100% 威胁建模是红队测试的起点,定义攻击面与优先级。

漏洞定义来源

分诊台护士上岗第一课,不是学量血压,而是学会辨认“什么样的人算病人”。有人抱怨昨晚没睡好,护士不会给他挂急诊;有人胸口剧痛冒冷汗,哪怕他自己说“没事”,护士也会立刻推来轮椅。AI 安全也一样——第一步不是防御,而是先给“漏洞”下一个清晰的定义,否则团队会把攻击行为、误报、正常波动统统混为一谈,分诊台瞬间瘫痪。

在 AI 系统里,漏洞是指模型或其数据链路中固有存在的、可被攻击者利用的安全缺陷。它不是某一次攻击动作本身,而是“墙上本来就有的洞”。这个洞可能藏在训练数据里(数据投毒的入口)、可能藏在不安全的反序列化接口里、也可能藏在模型推理逻辑对异常输入的过度信任中。定义漏洞时,我们要区分三个概念:攻击是一个“事件”,漏洞是一个“属性”,危害是一个“后果”。一栋房子被人闯入是事件;房子门锁坏了是漏洞;贵重物品丢失是后果。把这三者分开,漏洞管理工作台才不会乱套。

要严格判断一个缺陷算不算漏洞,通常需要同时满足三个条件。写成简洁的逻辑表达式:

等式右边三项相乘,任一项为 0,整体就是 0——漏洞不成立。这正是分诊台护士的逻辑:哪怕病人确实发烧(存在缺陷),但如果只是轻微咽炎且能自己走进诊室(攻击不可达、防御未失效),那就不占用抢救室。先把“什么是漏洞”锁死,后面的分类、定级、归档才有真正的起点。

P(漏洞可利用)=P(存在缺陷)×P(攻击可达)×P(防御失效)\displaystyle P(\text{漏洞可利用}) = P(\text{存在缺陷}) \times P(\text{攻击可达}) \times P(\text{防御失效})
一个缺陷只有当“确实存在”、“攻击者摸得着”、“现有防御拦不住”三条同时成立时,才会升级为实战漏洞,缺一条都只是“潜在隐患”。
  1. 存在缺陷模型或数据链路中确实有某种设计或实现错误。
    P(存在缺陷)∈[0,1]P(\text{存在缺陷}) \in [0,1]
  2. 攻击可达攻击者能从外部输入或间接途径触碰到这个缺陷。
    P(攻击可达)∈[0,1]P(\text{攻击可达}) \in [0,1]
  3. 防御失效现有的过滤、校验、监控机制无法阻断利用路径。
    P(防御失效)∈[0,1]P(\text{防御失效}) \in [0,1]

攻击面四大类

病历归档时,护士会把病人分到不同科室:胸痛去心内科、咳嗽去呼吸科、外伤去外科。漏洞分类也是同样的道理——按“病因所在的位置”给漏洞挂上科室牌。AI 系统的攻击面大致可以分成四条主链路,对应四类最常见的漏洞家族。

第一个科室是“血库”——数据投毒。攻击者污染模型的训练数据,就像往血库里掺入带病原体的血液,模型学到的“常识”从一开始就是歪的。第二个科室是“神经内科”——提示注入。攻击者通过精心构造的提示词操控大语言模型的输出,相当于用语言催眠接线员,让他把机密信息说出来。第三个科室是“潜伏感染科”——后门攻击。攻击者在模型中植入一个隐蔽触发器,平时模型完全正常,一旦输入中出现特定图案或关键词,模型就表现出预设的恶意行为,像一颗定时炸弹。第四个科室是“皮肤科”——对抗样本。攻击者对输入施加肉眼几乎不可见的微小扰动,让模型把“熊猫”认成“长臂猿”,本质是模型决策边界在局部过于脆弱。

对抗样本的杀伤力可以用一个数学量来描述——模型在扰动前后的输出差异:

四大攻击面虽然都在“让模型犯错”,但病灶位置完全不同:数据投毒烂在根上、后门攻击藏在深处、提示注入写在话里、对抗样本贴在输入表面。分诊台把病人送对科室,后续的定级和修复才能对症下药。

\displaystyle \delta^{\*} = \arg\max\_{\| \delta \| \le \epsilon} \| f(x + \delta) - f(x) \|
这个式子在找“最小的输入扰动”,却能让模型输出产生最大的偏差,揭示模型在局部区域的鲁棒性缺口。
  1. 输入扰动攻击者在原始样本 \(x\) 上叠加一个微小改动 \(\delta\)。
    x′=x+δx' = x + \delta
  2. 扰动限量\(\delta\) 的强度被限制在 \(\epsilon\) 范围内,保证人眼几乎察觉不到。
    ∥δ∥≤ϵ\|\delta\| \le \epsilon
  3. 最大化偏差攻击者寻找让模型输出前后差异最大的那个扰动方向。
    arg⁡max⁡_δ∥f(x+δ)−f(x)∥\arg\max\_{\delta} \| f(x + \delta) - f(x) \|

危害等级评估

分诊台最核心的动作是系腕带——红色腕带送抢救室、黄色腕带留观、绿色腕带去普通门诊。危害等级评估,就是给每个漏洞系上一条“风险腕带”。不是所有漏洞都值得连夜修复,有些漏洞只影响演示环境,有些漏洞却能让核心模型全面失控,两者的处置优先级天差地别。

评估危害等级需要综合三个维度。第一是影响范围:这个漏洞如果被利用,会波及多少用户、多少业务?是单个离线模型,还是线上核心推荐系统?第二是可利用性:攻击者发动攻击的门槛有多高?是需要物理接触服务器,还是随便发一条消息就能触发?第三是业务暴露度:漏洞所在的组件是否直接暴露在公网或不可信输入之下?一个藏在内网管理后台的漏洞,暴露度就远低于对外 API 接口。

业界常用一个简化的风险评分模型:

三个分数相乘,直观地体现了“组合放大”效应。一个影响巨大但只存在于离线环境的漏洞,风险分会被暴露因子压下来;一个利用难度极低但只影响日志文件的漏洞,影响因子会把它拉低。根据最终分数,团队把漏洞划成高危(≥7)、中危(4~7)、低危(<4),高危漏洞 24 小时内响应,中危进入迭代计划,低危纳入例行巡检。腕带一系,处置顺序立刻清晰——这才是分诊的价值。

Risk=Impact×Exploitability×Exposure\displaystyle Risk = Impact \times Exploitability \times Exposure
三因子全部归一化到 0~10 分后相乘再归一化,得出 0~10 的风险分,分数越高代表漏洞越紧急。
  1. 影响因子漏洞被利用后对机密性、完整性、可用性的破坏程度打分。
    Impact∈[0,10]Impact \in [0, 10]
  2. 利用因子攻击者复现攻击的技术难度和前置条件打分,难度越低分越高。
    Exploitability∈[0,10]Exploitability \in [0, 10]
  3. 暴露因子组件对外暴露程度打分,公网可达的接口显著高于内网组件。
    Exposure∈[0,10]Exposure \in [0, 10]

知识库架构设计

老医生最珍贵的资产是记忆:二十年前见过一个罕见病例,今天再遇到就能立刻认出。但单个医生的记忆会遗忘、会模糊,医院把病历归档成档案室,才让经验变成机构的资产。漏洞知识库就是 AI 安全团队的“病历档案室”——把每一次漏洞发现沉淀为标准化档案,让后来者不再重复踩坑。

知识库的核心是标准化元数据结构。每一条漏洞记录必须包含:漏洞编号(病历号)、漏洞名称(主诉)、所属攻击面分类(科室)、危害等级(腕带颜色)、影响组件与版本(病灶部位)、复现步骤(检查报告)、修复建议(处方)、当前状态(在院/出院)。字段不统一,档案室就会变成杂物间——检索靠翻箱倒柜,统计靠人肉数数,根本支撑不了规模化运营。

有了标准化档案,检索就成了关键能力。工程师输入一段漏洞描述,系统应能返回相似的历史漏洞,这背后是语义向量的匹配:

档案室还需要版本管理:漏洞情报更新、攻击手法演进、修复方案迭代,都应记录时间戳和历史版本,绝不能把新结论覆盖在旧记录上。今天的“未修复”可能变成明天的“已缓解”,追溯链条一断,审计和复盘就没了依据。一个设计良好的知识库,让安全团队从“靠人记”进化为“靠库查”,响应速度提升一个数量级——新漏洞一出现,先查库,可能已有现成的排查路径。

cos⁡(θ)=q⋅d∥q∥∥d∥\displaystyle \cos(\theta) = \frac{q \cdot d}{\| q \| \| d \|}
把查询文本和漏洞档案都编码成向量,用余弦相似度衡量语义接近程度,数值越接近 1 代表越相似。
  1. 文本编码将查询语句 \(q\) 和漏洞档案 \(d\) 分别编码为语义向量。
    q→q⃗,d→d⃗q \to \vec{q}, \quad d \to \vec{d}
  2. 点积计算两个向量的点积反映方向一致性,值越大越相似。
    q⃗⋅d⃗=∑_iq_id_i\vec{q} \cdot \vec{d} = \sum\_{i} q\_i d\_i
  3. 长度归一除以模长消除文本长度差异,得到标准化相似度。
    cos⁡(θ)=q⃗⋅d⃗∥q⃗∥∥d⃗∥\cos(\theta) = \frac{\vec{q} \cdot \vec{d}}{\|\vec{q}\| \|\vec{d}\|}

生命周期管理

一份病历从急诊挂号开始,历经确诊、治疗、复诊,直到康复出院、归档进档案室,全程有状态、有记录、有责任人。漏洞管理同样是一条完整的生命周期流水线,而不是“发现一个修一个”的散装操作。

生命周期通常包含四个阶段。第一阶段发现上报:红队、监控系统或外部研究者报告疑似漏洞,系统自动生成漏洞工单,相当于护士挂号的瞬间。第二阶段分析验证:安全工程师复现攻击路径、确认漏洞真实性、定位根因——这是主治医生下诊断的过程;若复现失败,工单打回“疑似误报”,相当于护士发现病人其实只是吃坏了肚子。第三阶段修复复测:开发团队修复缺陷,安全团队重新验证攻击路径是否被阻断,修复不彻底就继续打回。第四阶段退役归档:漏洞确认修复完成,工单关闭,完整记录转入知识库,成为历史档案。

生命周期状态流转可以用状态机表达,每个状态迁移都需满足验证条件:

生命周期管理的价值在于闭环和责任可见。每个漏洞从生到死都有时间戳和负责人,管理看板上一目了然:哪些漏洞卡在分析阶段超过三天?哪些工单反复打回?这些数据直接暴露流程瓶颈。病历随病人走,状态驱动协同,这是医院运营的常识,也是漏洞管理的第一性原理。

S_t+1={分析与验证,S_t=已上报∧复现成功修复与复测,S_t=已分析∧根因确认已归档,S_t=已修复∧复测通过\displaystyle S\_{t+1} = \begin{cases} \text{分析与验证}, & S\_t = \text{已上报} \land \text{复现成功} \\ \text{修复与复测}, & S\_t = \text{已分析} \land \text{根因确认} \\ \text{已归档}, & S\_t = \text{已修复} \land \text{复测通过} \end{cases}
状态机确保漏洞不能“跳级”:未复现成功不能进入修复,未复测通过不能关闭工单,每一步都有硬性门禁。
  1. 上报转分析状态从“已上报”进入“分析验证”,前提是复现成功。
    S_t=已上报→S_t+1=分析验证S\_t = \text{已上报} \rightarrow S\_{t+1} = \text{分析验证}
  2. 分析转修复根因定位后进入开发修复阶段。
    S_t=已分析→S_t+1=修复复测S\_t = \text{已分析} \rightarrow S\_{t+1} = \text{修复复测}
  3. 修复转归档复测通过、确认攻击路径失效,工单关闭归档。
    S_t=已修复→S_t+1=已归档S\_t = \text{已修复} \rightarrow S\_{t+1} = \text{已归档}

团队协同运营

急诊科医生再能干,也离不开检验科、药剂科、手术室和住院部的配合。AI 安全的漏洞运营,本质是一场多角色协奏——红队、AI 安全官、算法工程师、运维工程师各司其职,通过共享的知识库和流程工具咬合成一个整体。

红队是“外部侦察兵”,负责发现漏洞并提交高质量报告——不仅要写“这里有问题”,更要附上复现脚本、影响评估和修复建议。AI 安全官(或安全运营负责人)是“总值班医生”,审核漏洞真实性、仲裁评分争议、分配修复资源,并根据知识库的历史数据判断新漏洞的优先级。算法团队是“手术医生”,负责实施修复——可能是清洗训练数据、加输入过滤器,也可能是重新微调模型。运维团队则是“后勤保障组”,负责把修复版本安全地部署上线,并监控上线后的异常波动。

多角色协同需要一个统一的优先级排序公式,避免“谁嗓门大谁先修”:

流程自动化进一步放大协同效率:红队一提交报告,知识库自动查重、自动定级、自动通知相关责任人;修复完成后自动触发回归测试,通过后自动生成上线申请。管理层则通过可视化报表——本周新增漏洞数、高危漏洞时长、修复通过率——掌握安全态势。当每个人都在同一套体系里工作,AI 安全就不再是“救火队”,而是一台运转精密的医院机器。

Priority=Impact×ExploitabilityTimeToFix×BusinessWeight\displaystyle Priority = \frac{Impact \times Exploitability}{TimeToFix} \times BusinessWeight
修复优先级由危害程度除以修复所需时间,再乘上业务权重系数——危害大、修得快、影响核心业务的漏洞永远排在最前。
  1. 危害评估分子中的 \(Impact \times Exploitability\) 就是前面定级环节算出的风险分。
    Risk=Impact×ExploitabilityRisk = Impact \times Exploitability
  2. 修复时长分母 \(TimeToFix\) 是估算的修复工作量,修得越慢优先级越高,防止快速小修被长期大修挤掉。
    修复时长=开发+测试+上线\text{修复时长} = \text{开发}+ \text{测试}+ \text{上线}
  3. 业务权重乘以业务权重系数,核心链路漏洞相对边缘业务获得加成。
    BusinessWeight∈[0.5,2.0]BusinessWeight \in [0.5, 2.0]

AI 应用场景

安全运营中心漏洞告警分诊

阶段:漏洞发现与分类 → 危害等级评估

解决的问题:传统 SOC 每天收到大量 AI 模型告警,安全工程师手动逐条研判,效率极低且漏报率高。引入漏洞分类体系后,告警自动按攻击面分类、按风险公式打分,高危告警直接升级推送,低危告警自动归档。

具体案例:某互联网公司的内容审核模型在夜间突增异常请求,告警系统自动识别为“提示注入”类漏洞,风险分 8.6 分,系统立即通知值班安全工程师。工程师调用知识库中相似漏洞的复现脚本,5 分钟内确认攻击路径并触发应急响应。

红队渗透测试漏洞闭环管理

阶段:漏洞发现 → 知识库归档 → 生命周期管理

解决的问题:红队测出的漏洞散落在各自报告中,修复情况靠邮件追踪,无法形成闭环。通过漏洞知识库统一归档后,每个漏洞都有工单号、状态和负责人,复测结果自动关联原报告。

具体案例:红队在一次大模型渗透测试中发现 12 个漏洞,其中 3 个高危。报告提交后自动生成 12 张工单,安全官将 3 个高危工单指派给算法组,并设定 24 小时修复时限。修复完成后红队自动收到复测通知,验证通过后工单关闭归档。

模型上线前安全评估

阶段:漏洞知识库查询 → 团队协同运营

解决的问题:新模型上线前需要对照历史漏洞清单逐项排查,人工核对费时费力。知识库提供“按模型类型检索历史漏洞”的能力,自动生成评估检查单。

具体案例:某金融公司准备上线一款智能客服大模型。安全工程师在知识库检索“对话模型”标签,命中 23 条历史漏洞记录,其中提示注入类 9 条。评估团队据此重点测试了提示注入防护,提前发现 2 个可被利用的注入点,修复后才放行上线。

Python 演示

python77 行
class VulnKnowledgeBase:    def __init__(self):        self.vuln_list = []        self.category_counter = {"数据投毒": 0, "提示注入": 0, "后门攻击": 0, "对抗样本": 0}     def add_vuln(self, vuln_id, name, category, attack_score, impact_score, exposure):        risk = self.compute_risk(attack_score, impact_score, exposure)        record = {            "vuln_id": vuln_id,            "name": name,            "category": category,            "risk": risk,            "severity": self.severity_level(risk),            "status": "已上报"        }        self.vuln_list.append(record)        self.category_counter[category] += 1        return record     def compute_risk(self, attack_score, impact_score, exposure):        raw = attack_score * impact_score * exposure        return round(min(raw / 100, 10.0), 2)     def severity_level(self, risk):        if risk >= 7.0:            return "高危"        if risk >= 4.0:            return "中危"        return "低危"     def recommend_priority(self, risk):        if risk >= 7.0:            return "24小时内修复"        if risk >= 4.0:            return "一周内修复"        return "纳入下一季度计划"     def transition_status(self, vuln_id, new_status):        for rec in self.vuln_list:            if rec["vuln_id"] == vuln_id:                rec["status"] = new_status                return rec        return None     def query(self, category=None, severity=None):        result = []        for rec in self.vuln_list:            if category and rec["category"] != category:                continue            if severity and rec["severity"] != severity:                continue            result.append(rec)        return result     def summary(self):        return {            "总数": len(self.vuln_list),            "分类统计": dict(self.category_counter),            "高危数量": sum(1 for r in self.vuln_list if r["severity"] == "高危")        } def main():    kb = VulnKnowledgeBase()    kb.add_vuln("VULN-001", "图片分类器后门触发", "后门攻击", 8.5, 9.0, 8.0)    kb.add_vuln("VULN-002", "对话模型提示词越权", "提示注入", 7.0, 6.5, 9.0)    kb.add_vuln("VULN-003", "训练数据标签污染", "数据投毒", 6.0, 7.5, 7.0)    kb.add_vuln("VULN-004", "人脸识别对抗贴纸", "对抗样本", 3.5, 4.0, 5.0)    for rec in kb.vuln_list:        print("%s %s 风险%.2f [%s] %s" % (            rec["vuln_id"], rec["name"], rec["risk"],            rec["severity"], kb.recommend_priority(rec["risk"])))    print("知识库统计:", kb.summary())    kb.transition_status("VULN-002", "修复复测中")    print("VULN-002 当前状态:", kb.query(severity="高危")[0]["status"] if kb.query(severity="高危") else "无") if __name__ == "__main__":    main()
目的:实现一个简化版 AI 漏洞知识库——支持漏洞录入、风险评分、危害分级、状态流转和分类统计,对应正文中的“分诊—归档—闭环”全流程。
  1. class VulnKnowledgeBase:定义知识库类,相当于给医院建了一个数字档案室。
  2. raw = attack_score * impact_score * exposure实现 Risk = Impact × Exploitability × Exposure 三因子相乘评分公式。
  3. self.severity_level(risk)按风险分划出高危/中危/低危三色腕带。
  4. self.category_counter[category] += 1按攻击面分类统计,对应四大科室的病历台账。
  5. def transition_status(...)实现生命周期状态流转,相当于更新病人的在院状态。
  6. def query(...)支持按分类和等级筛选漏洞,对应档案室的检索功能。

常见误区

误区刚接触 AI 安全时,我总把“模型被攻击了”直接等同于“模型有漏洞”。看到有人用提示词越权,我就记一条漏洞,也不管根因是什么。

正解攻击是“事件”,漏洞是“缺陷”。就像有人闯空门是事件,门锁坏了才是漏洞。同理,一次成功的提示注入背后,可能是输入过滤缺失、可能是权限设计缺陷、也可能是提示词模板拼接不当。漏洞分类要落到“为什么能成”,而不是“发生了什么”。事件用于复盘,缺陷用于归档,两者混用会让知识库充满噪音。

为何常见:初学者从攻击现象切入安全工作,自然把最显眼的攻击结果当成了研究对象,忽略了更本质的缺陷定位。

误区CVSS 评分 9.8 的漏洞,团队就必须放下手头所有工作连夜修复,不然就是安全失职。

正解评分只是标准化的风险快照之一,还要看业务上下文。一个评分 9.8 但只影响内部演示环境的漏洞,和一个 7.5 分但影响核心交易链路的漏洞,后者往往更紧急。修复优先级应当综合影响范围、暴露程度、业务权重和修复成本,而不是机械按分数排序。分诊台不仅看病情,更要看病人当下的处境。

为何常见:分数给出了“看起来很精确”的数字,人容易对数字产生锚定效应,忘了评分本来就是多维度的简化投影。

误区把历史漏洞整理成表格、搭好检索界面,知识库就算建成了,之后只需要偶尔往里加几条新记录。

正解知识库是活系统,不是死档案。攻击手法在进化、新模型在发布、旧修复可能被新版本回退,每条漏洞记录都要随着情报更新补充时间戳、复现脚本和修复验证结果。就像医院的病毒库必须跟着新毒株走,停更的知识库会快速贬值,甚至给出过时的错误结论。

为何常见:搭建知识库是一个“看得见完成”的项目,维护知识库却是一个永无止境的过程,人们天然高估前者、低估后者。

误区评估漏洞危害时,我主要看攻击者能不能稳定利用——成功率高的漏洞就是高危,成功率低的就是低危。

正解危害是“影响×可能性×暴露”的综合结果,攻击成功率只是可利用性的子因素。一个触发概率只有 5% 的漏洞,若一旦触发就导致全量用户数据泄露,其危害远高于一个 90% 成功率但只影响调试日志的漏洞。就像一场小火在油库和在空地,后果完全不同。定级必须拉着影响范围一起看。

为何常见:可利用性是安全测试中最直观的指标,测试人员天然关注“能不能打穿”,容易忽略“打穿了会怎样”。

误区开发修完漏洞,我复测一次攻击脚本没成功,就可以把工单关闭、记录归档了。

正解单次复测通过可能是偶然——攻击路径被堵住了,但旁路绕过可能还存在。规范的复测应覆盖原攻击路径、变体尝试、边界条件,并在修复版本上线后持续监控一段时间,确认无回归。医院手术后还要观察住院几天才让出院,不是缝完针就立刻赶人。

为何常见:修复验证是流程末端动作,人到了“快完成了”的时刻容易追求效率而牺牲严谨性。

面试题

Q1. AI 漏洞的本质是什么?

单选题 · easy

  • A.攻击者的恶意行为记录
  • B.系统固有可被利用的缺陷← 正确答案
  • C.训练数据量不足导致的
  • D.模型参数量过大引起

答案:B。漏洞是系统内部固有的缺陷,攻击是利用该缺陷的事件。选项 A 混淆了事件与属性,C、D 把漏洞归因于资源规模,属于典型误解。就像门锁坏了是缺陷,有人撬锁是事件。

Q2. 下列哪项属于模型推理阶段的攻击面?

单选题 · mid

  • A.训练数据投毒攻击
  • B.提示词注入攻击← 正确答案
  • C.模型后门植入攻击
  • D.数据集标签污染攻击

答案:B。提示注入发生在模型推理阶段,攻击者通过恶意输入操控模型输出;数据投毒、后门植入、标签污染都发生在训练阶段。可以理解为:投毒是“做饭时下毒”,注入是“上菜时骗服务员”。

Q3. 危害等级评估通常包含哪些维度?

多选题 · mid

  • A.漏洞影响范围← 正确答案
  • B.攻击可利用性← 正确答案
  • C.组件暴露程度← 正确答案
  • D.开发团队规模

答案:ABC。Risk = Impact × Exploitability × Exposure,三个维度缺一不可。开发团队规模是资源要素,不是漏洞本身的风险属性,不影响风险评分。

Q4. 漏洞知识库最核心的价值是什么?

单选题 · easy

  • A.记录攻击者身份信息
  • B.标准化沉淀漏洞档案← 正确答案
  • C.自动化修复全部漏洞
  • D.替代人工渗透测试

答案:B。知识库的核心是结构化归档漏洞信息,实现经验复用与快速检索。它不记录攻击者身份、不能自动修复、更不替代渗透测试,而是放大这些工作的价值——像病历档案帮助医生快速诊断,但不会替代医生看病。

Q5. 漏洞生命周期中,“复测未通过”的工单应当如何流转?

单选题 · mid

  • A.直接关闭归档
  • B.标记为误报
  • C.退回修复阶段← 正确答案
  • D.降级为低危漏洞

答案:C。复测不通过说明修复不彻底或引入了新问题,必须退回修复阶段重新处理。关闭归档只适用于复测通过,标记误报只适用于分析阶段,降级更不能掩盖未修复的事实。

Q6. CVSS 类评分体系通常包含哪几组指标?

多选题 · mid

  • A.基础指标组← 正确答案
  • B.时间指标组← 正确答案
  • C.环境指标组← 正确答案
  • D.团队效率指标组

答案:ABC。CVSS 三大指标组分别刻画漏洞内在属性、随时间变化的利用环境、以及特定部署环境下的最终风险。团队效率是被管理对象,不属于漏洞评分维度。

Q7. 某漏洞攻击难度极低,但修复它需要 3 个月重构数据管道,应如何处理?

单选题 · hard

  • A.立即停工三天强行修复
  • B.先加缓解措施再排期重构← 正确答案
  • C.完全不修复仅做日志监控
  • D.下架全部受影响模型

答案:B。高难度长时间修复不应阻塞业务,正确做法是先部署缓解措施降低可利用性,再安排重构排期。完全不管和下架模型都太极端,强制三天修完重管道也不现实——分诊台先止血,再安排手术。

Q8. 数据投毒攻击主要发生在哪个阶段?

单选题 · easy

  • A.模型训练阶段← 正确答案
  • B.模型推理阶段
  • C.模型部署阶段
  • D.模型量化阶段

答案:A。数据投毒是通过污染训练数据影响模型学习过程,发生在训练阶段。推理阶段对应提示注入,部署阶段对应配置篡改,量化阶段对应精度攻击,都不是投毒的典型位置。

Q9. 红队和安全运营团队围绕知识库的协作场景包括哪些?

多选题 · hard

  • A.红队复现漏洞验证修复← 正确答案
  • B.双方仲裁危害评分分歧← 正确答案
  • C.基于记录生成安全公告← 正确答案
  • D.直接替换生产模型权重

答案:ABC。红队用知识库做复测验证、与运营团队对齐评分标准、输出安全公告,都是典型协作。替换生产模型权重是运维变更动作,必须走发布流程,不属于知识库协作。

Q10. 知识库元数据设计中最应避免的错误是什么?

单选题 · extreme

  • A.缺少漏洞复现步骤← 正确答案
  • B.覆盖所有攻击类型
  • C.记录评分时间戳
  • D.包含修复验证结果

答案:A。复现步骤是验证和复测的基石,缺少它知识库就失去可操作性。覆盖更多攻击类型、记录时间戳、保存验证结果都是加分项,唯独缺失复现步骤会让档案变成“无法复查的传说”。