想象你刚拿到一份全身体检报告:血压偏高、血脂异常、胃部有个小阴影、颈椎曲线变直……你肯定不会直接冲到药房乱抓药,而是会找医生先问清楚:哪些指标要立刻复查,哪些调整生活方式就行,哪个需要挂专科门诊,接下来三个月怎么跟踪,最后还要再约一次复查确认恢复情况。AI 红队测试之后的“修复建议”,干的就是这件事。 红队测试帮你找到了系统的“病症”——提示注入、数据泄露、过度授权等技术漏洞。但发现了问题不等于解决了问题:从漏洞清单到行动方案,中间要经过一条完整的流水线——整理漏洞信息、评估严重程度、排修复优先级、定技术方向、分责任人、跟踪闭环、复测验收。这篇文章就用“体检—分诊—治疗—复查”的主线,把这条流水线一步步讲清楚。学完你就能把红队报告的“问题清单”真正变成可执行、可追踪、能闭环的“修复方案”。
对 AI 安全从业者而言,会修比会测更稀缺。掌握修复建议方法,意味着你能把红队测试的发现转化为实际的系统加固,是从“发现问题的人”升级为“解决问题的人”的关键一步。
可视化演示
动态演示AI红队测试后的修复建议的核心机制,通过采集/分析/决策/反馈四种模式展示关键概念与交互流程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
AI红队测试后的修复建议:修复建议 修复建议在红队流程中的定位 漏洞分级与修复优先级排序 核心机制可视化 AI红队测试后的修复建议整体架构与关键组件
漏洞整理分类
体检报告到手,上面列了一堆异常指标:血压偏高、尿酸超标、有个小结节……你不会直接去抓药,得先把报告理清楚——哪几项其实是一个病的不同表现,哪些需要再去拍片确认,什么时候发现的、当时的症状是什么。医生都是在“把信息整理成病历”之后才开始谈治疗的。
AI 红队测试也是同样的逻辑。渗透测试结束后,你拿到的是原始测试结果和复现记录,它们零散且可能有重复。修复的第一步不是动手改代码,而是把这些发现整理成一份结构化的漏洞清单。每一份漏洞记录至少要包含五类信息:唯一编号、漏洞分类、严重程度初判、复现步骤、证据材料。
分类维度一般参考 OWASP LLM Top 10——提示注入、数据泄露、过度授权、拒绝服务、供应链风险等。复现步骤要精确到“输入什么内容、调用哪个接口、观察到什么输出”,因为这是后面验证“是否修好”的基准。证据链(截图、日志、流量)则是与开发团队、管理层沟通时的凭证。整理的同时要做去重:同一个根因的不同表现应合并成一条漏洞,避免重复计数。
就像医生给每个异常项建立“病历卡”——编号、症状、检查单、影像资料齐全,后面的治疗方案才有依据。漏洞清单整理得越规范,后续的定级、分诊、修复就越顺畅。这一步偷懒,后面每一步都会返工。
- id 唯一编号给漏洞一个唯一标识符(例如 V-001),方便后续在列表、会议和跟踪系统中引用。
- type 漏洞类型按 OWASP LLM Top 10 等标准归类,比如提示注入、数据泄露、供应链风险。
- severity 严重程度初判根据测试时的表现先给一个初步定级,后续还会用评分模型细化。
- repro\_step 复现步骤记录触发漏洞的具体输入、调用方式和输出现象,作为复测的“标尺”。
- evidence 证据材料保存截图、日志、流量报文等佐证,用于沟通、审计和合规归档。
严重程度评估
病历卡建好后,医生要判断病情轻重。同样是发烧,39.5 度伴随意识模糊要立刻进抢救室,37.5 度无其他异常多喝水观察就行。AI 安全也一样:漏洞列表里的每一项风险都不一样,不能一视同仁地排队处理。
严重程度评估通常参考 CVSS(通用漏洞评分系统)的思路,用“影响程度”和“可利用性”两个维度给漏洞打分。影响程度(Impact)衡量漏洞被利用后造成的业务损失——数据泄露、服务中断、资金损失;可利用性(Exploitability)衡量攻击者触发漏洞的难度——是公网一句话就能打穿,还是需要内部权限和复杂条件。
两个维度都映射到 0 到 1 之间的分值,再套用评分公式得到 0 到 10 的风险分。一般约定 7 分以上为高危、4 到 7 分为中危、4 分以下为低危。注意:影响大但几乎不可利用的漏洞(比如需要物理接触服务器)评分不会太高,而影响中等但一键可触发的漏洞反而更紧急。
这就像急诊科的分诊护士,先用体温、血压、意识状态快速判断病情等级,而不是让所有病人排同一个队。有了风险分这个“病情评分”,后面谁进抢救室、谁可以等门诊,就一目了然了。
- Impact 影响程度漏洞被利用后的业务损失大小,取值为 0~1,越接近 1 损失越严重。
- Exploitability 可利用性攻击者触发漏洞的难易程度,取值为 0~1,公网可直触打分更高。
- ×10 归一化把 0~1 的乘积放大到 0~10 的分数区间,便于和业界标准对齐。
- min(10,·) 上限封顶即使两个维度都接近满分,总分也不超过 10 分。
修复优先级排序
分诊护士只确定了病情多严重,但治疗方案还要考虑“值不值得现在做”。一个高危漏洞可能要求重构整个鉴权模块,成本上百人日;另一个中危漏洞加两行输入校验就能堵住。医院每天都在做类似的资源权衡——手术台、医生时间、病房床位都是有限的。
修复也是一样:风险分高的漏洞不一定排最前面,还要乘上“紧急程度”——这个漏洞是否正在被活跃利用、是否触碰监管红线;再除以“修复成本”——需要的开发人日、依赖方配合程度。这个思路在业界叫“风险优先排序”,即用风险、紧急程度和成本三个变量算出一个优先级分。
优先级分高的一档叫“紧急修复”,通常在 24~72 小时内处理;中档是“计划修复”,排进下一到两个迭代;低档是“观察跟踪”,持续监控即可。一个典型例子:某高危漏洞需要重构整个鉴权体系,而另一个中危漏洞只需加两行校验,那么后者反而应先进维修队列——投资回报率更高,安全收益来得更快。
这就像医院的“手术排期表”:急诊手术插队,择期手术排期,门诊随访观察。资源有限,必须把钱花在产生最大安全收益的地方,而不是被“分数最高的坏消息”牵着鼻子走。
- Risk 风险分来自严重程度评估的得分,代表漏洞本身的破坏力,取值 0~10。
- Urgency 紧急程度业务时效压力,比如是否被野外利用、是否涉及合规红线,取值 1~5。
- Repair\_Effort 修复成本预计投入的人日数或资源量,数值越大代价越高。
- 除法权衡成本越高优先级越低,风险和紧急程度越高优先级越高,两者互相制衡。
技术修复方向
治疗方案定了,接下来要看“病因在哪一层”。病人咳嗽,可能是呼吸道感染、过敏,也可能只是环境太干——用药完全不同。AI 漏洞也一样,得先定位问题出在数据、模型、应用还是基础设施哪一层,再对症下药。
红队报告中每个漏洞通常会标注攻击链:攻击者是通过训练数据投毒进来的,还是通过在提示词里注入指令进来的,又或是通过 API 网关权限配置漏洞进来的?修复方向按层级分四类:数据层、模型层、应用层和基础设施层。
- 数据层:清洗训练数据、剔除投毒样本、做敏感信息脱敏,常用做法是数据集审计和过滤;
- 模型层:通过安全微调、对齐训练让模型更抵抗恶意输入,必要时引入安全分类器;
- 应用层:加输入输出过滤、做权限隔离、限流降级,比如给用户输入加“系统指令不可覆盖”的前置约束;
- 基础设施层:加固 API 网关、收紧 IAM 权限、开启审计日志和网络隔离。
一层层修就像是“内科开药、外科手术、护理跟进、安保巡逻”各司其职,而且必须叠加才有效——单靠一层过滤就像只吃退烧药不消炎症,症状退了病根还在。数据、模型、应用、基础设施四层防护缺一环,攻击者就会顺着最薄的一层打进来。
- D\_total 原始数据模型训练所用的完整数据集,包含正常样本和有害样本。
- D\_poisoned 投毒样本红队测试中发现会诱导模型输出有害内容的数据点。
- ∖ 差集剔除从原始数据中删除被标记为投毒或有害的样本。
- D\_clean 清洗后数据剔除后的安全数据基础,用于重新训练或增量微调。
责任分工协作
一台手术从来不是主刀医生一个人的事:麻醉师盯生命体征,巡回护士递器械,术后有病房护士盯着恢复。每个病人住院时还有一个“主管医生”总负责。AI 漏洞修复也一样,得把活儿分到具体的人头上。
漏洞清单确定后,如果没有明确的负责人和时限,修复工作大概率变成“三个和尚没水喝”。业界常用 RACI 思路做责任分配:每个漏洞指定一个唯一的 Owner(责任人),他对修复结果负责;同时明确谁参与(算法、工程、安全)、谁审批、谁知情。跨团队协作要建立专项群或例会机制。
实践中有两个硬性要求:一是“一个漏洞一个主人”——不能出现两个人都以为对方在修的情况;二是“先定责任人再动手”——开修之前 Owner 必须在跟踪系统里被指派到位。每个漏洞还要绑定修复时限(SLA),例如高危 72 小时、中危 7 个工作日、低危 30 天,时限到期前系统自动提醒,防止遗忘。
有了“主管医生”制度,病人的每个问题都能找到人回答;漏洞清单同理——例会上一问“V-002 谁负责?”能马上有人站起来说“我,周三前修复”,这才叫有分工。
- V 漏洞集合所有待修复漏洞构成的集合,是本次红队测试确认的完整清单。
- R 修复团队可以承担修复任务的角色集合,包括安全、算法、工程、产品等。
- ∃! 存在唯一存在且仅存在一个,强调负责人既不能缺失也不能重复。
- Owner(v)=r 负责人指派把漏洞 v 分配给角色 r,形成明确的归属关系。
修复跟踪闭环
住院不是做完手术就结束了:每天查房、量体温、换药、看化验单,医生根据恢复情况调整用药,出院时写出院小结。没有这个过程,手术做得再成功也可能在恢复期出问题。修复跟踪就是 AI 安全的“住院观察期”。
漏洞从发现到关闭,应该有一个清晰的状态流转:待修复 → 修复中 → 待复测 → 已关闭,中间如果复测失败还要回到“修复中”。这套状态机要落在具体的跟踪工具里(Jira、禅道、安全运营平台都行),并且每天或每周更新状态。
闭环管理包含三件事:一是进度可量化——用“闭环率 = 已关闭 ÷ 总数”衡量整体进度;二是例会和看板——每周安全例会过一遍清单,红灯项现场拉通;三是验收标准前置——每个漏洞在派工时就说清楚“怎么算修好”,避免修完扯皮。这里有一个常见坑:把“已修复”和“已关闭”混为一谈,实际上“已关闭”必须经过复测验收。
就像病房墙上贴的护理记录单,每天更新、异常立刻处理,直到医生在“出院小结”上签字。闭环率就是贴在安全看板上的“体温记录”,让管理层一眼看到修复工作是否在正常推进。
- N\_total 漏洞总数本次红队测试确认的全部有效漏洞数量,是分母。
- N\_closed 已关闭漏洞数已完成修复且通过复测验收的漏洞数量,是分子。
- ×100\% 百分比化把比例换算成直观的百分数,便于周报和管理层阅读。
- 取值边界闭环率只能落在 0 到 100 之间,趋近 100% 表示风险收敛。
复测验证要点
病好了能不能出院?不能只看化验单正常,还要复查一次:原来的症状有没有彻底消失?有没有出现药物副作用?换个环境会不会复发?专科医生甚至会换个方式再刺激一下病灶。AI 漏洞修复后的复测,逻辑完全相同。
复测是修复闭环的最后一道闸门,业界称“验证性测试”。它不只是把红队测试的原始用例再跑一遍,而是围绕原漏洞做三层验证:原路径复测、变体绕过测试、回归测试。原路径复测验证修复是否生效;变体测试验证修复是不是只“表面堵洞”;回归测试验证修复有没有破坏正常功能。
复测的判定标准是三个条件同时满足:原攻击路径完全失效、没有出现同类型变体绕过、没有引入新的功能或安全问题。只要一个不满足,漏洞就退回“修复中”。复测通过后,要写复测报告归档,记录测试时间、测试人、用例和结果,形成可追溯的审计轨迹——这在金融、政务等合规场景中是硬性要求。
复查通过、出院小结签字、病历归档——这时才敢说这个“病人”真正康复了。复测报告就是出院小结,它是漏洞闭环的最终凭证,也是下一次红队测试时对比进步的历史基线。
- Fixed 原路径修复原始攻击 PoC 在修复后不再生效,这是最基础的验收点。
- ¬Bypass 无变体绕过换用同类型变体(不同措辞、不同编码、不同触发位置)也无法绕过。
- ¬Regression 无回归问题修复未破坏正常业务功能,也未引入新的安全缺陷。
- ∧ 逻辑与三个条件必须同时为真,一个为假,整体就是假,即验收不通过。
AI 应用场景
企业大模型安全运营的漏洞治理
阶段:修复建议输出与优先级评估阶段
解决的问题:传统方式靠安全工程师手动翻红队报告、凭经验拍板先修哪个,容易漏修、误修,还说不清为什么先修这个不修那个。AI 系统的漏洞治理需要系统化方法:把清单结构化、风险量化、优先级计算出来,让每一次修复决策都有依据、可复述。
具体案例:某电商公司自研客服大模型,红队测出 12 个漏洞。安全团队按五元组整理清单,用“风险 = 影响 × 可利用性”打分,再结合业务紧急程度排序,把“提示注入导致订单数据泄露”列为紧急修复,72 小时内完成输入校验与权限隔离;把两个低危“推理速度波动”问题列入观察跟踪,投入产出比最优。
金融行业 AI 系统的合规整改
阶段:责任分工与修复跟踪闭环阶段
解决的问题:金融监管要求漏洞整改“可追溯、可验收、可归档”,传统 Excel 管理无法证明闭环。需要把漏洞跟踪流转、负责人、SLA、验收标准落到平台上,配合审计报告才能过关。
具体案例:某银行智能客服系统上线前红队发现 8 个问题。安全团队在跟踪平台上为每个漏洞指派 Owner(算法、工程、安全各司其职),设置“高危 72 小时、中危 7 个工作日”的 SLA,每周汇报闭环率。最终 8 个漏洞全部通过复测,复测报告归档备查,顺利通过监管验收。
开源模型二次开发的安全回归
阶段:复测验证阶段
解决的问题:微调开源模型后,原始安全能力可能退化,也可能被对抗样本绕过。单做一次红队测试不足以证明修复有效,需要在每次模型迭代后做标准化复测,防止“按下葫芦浮起瓢”。
具体案例:某医疗 AI 公司基于开源模型做病历摘要,红队发现模型可被诱导输出伪造诊断。修复后团队建立“原路径复测 + 变体绕过 + 回归测试”三层验证流水线,每次发布前自动跑 200 条攻击用例。一次迭代中原用例全部通过,但变体测试发现新绕过方式,修复被驳回返工,避免了带病上线。
Python 演示
# -*- coding: utf-8 -*-"""AI red team remediation tracker: from vulnerability report to action plan.""" class Vulnerability: def __init__(self, vuln_id, name, impact, exploitability, urgency, effort, category): self.vuln_id = vuln_id self.name = name self.category = category self.impact = impact # 0.0 ~ 1.0 self.exploitability = exploitability # 0.0 ~ 1.0 self.urgency = urgency # 1 ~ 5 self.effort = effort # person-days self.owner = None self.status = "open" def risk_score(self): """Severity: Impact x Exploitability mapped to 0~10.""" return round(min(10.0, self.impact * self.exploitability * 10.0), 2) def priority_score(self): """Priority = risk x urgency / repair effort.""" return round(self.risk_score() * self.urgency / self.effort, 2) class RemediationPlan: def __init__(self, vulnerabilities): self.vulns = vulnerabilities self.backlog = [] # assignment records def triage(self): self.vulns.sort(key=lambda v: v.priority_score(), reverse=True) return [(v.vuln_id, v.name, v.risk_score(), v.priority_score()) for v in self.vulns] def assign(self, owner_map): for v in self.vulns: v.owner = owner_map.get(v.vuln_id, "unassigned") self.backlog.append((v.vuln_id, v.owner)) def mark_fixed(self, vuln_id, retest_passed=True): for v in self.vulns: if v.vuln_id == vuln_id: v.status = "closed" if retest_passed else "retest_failed" return v.status return "not_found" def closure_rate(self): closed = sum(1 for v in self.vulns if v.status == "closed") return round(closed * 100.0 / len(self.vulns), 1) def main(): vulns = [ Vulnerability("V-001", "prompt injection", 0.9, 0.8, 5, 3, "app"), Vulnerability("V-002", "PII leakage", 0.9, 0.6, 5, 5, "data"), Vulnerability("V-003", "excessive agency", 0.7, 0.6, 4, 4, "model"), Vulnerability("V-004", "supply chain risk", 0.6, 0.4, 3, 8, "infra"), Vulnerability("V-005", "no rate limit", 0.5, 0.7, 3, 2, "app"), ] plan = RemediationPlan(vulns) print("=== Priority Triage ===") for row in plan.triage(): print(row) plan.assign({"V-001": "Alice", "V-002": "Bob", "V-003": "Bob", "V-004": "Carol", "V-005": "Alice"}) plan.mark_fixed("V-001") plan.mark_fixed("V-005") plan.mark_fixed("V-003", retest_passed=False) print("=== Closure Tracking ===") for v in plan.vulns: print(v.vuln_id, v.owner, v.status) print("closure rate:", plan.closure_rate(), "%") if __name__ == "__main__": main()
def risk_score(self):计算每条漏洞的风险分,即“影响 × 可利用性 × 10 封顶”,对应严重程度评估公式。min(10.0, self.impact * self.exploitability * 10.0)核心评分表达式,分子是两个 0~1 维度的乘积,min 保证不超过 10 分。def priority_score(self):用risk * urgency / effort算出优先级分,体现“高风险高紧急低成本优先”。self.vulns.sort(key=lambda v: v.priority_score(), reverse=True)按优先级分从高到低排序,这就是“分诊排序”在代码中的落地。plan.triage()输出排序后的清单,每一项包含编号、名称、风险分和优先级分。plan.assign({...})把每个漏洞指派给唯一负责人,模拟“一个漏洞一个 Owner”的制度。plan.mark_fixed("V-003", retest_passed=False)模拟复测失败:即使代码改了,变体绕过导致验收不通过,状态回到 retest_failed。plan.closure_rate()统计已关闭漏洞占比,得到闭环率,用于周报汇报。
常见误区
误区红队测出提示注入,我就在前端加个关键词过滤器,把“忽略系统指令”之类的词屏蔽掉,这就算修好了。
正解表面过滤很容易被变形攻击绕过,比如用 Unicode 混淆、大小写变体、编码嵌套就能绕过去。正确思路是分层防御:输入校验只是一层,还要配合权限隔离、系统指令前置声明、模型层对齐和数据治理一起做。就像只给大门加锁却不装监控和防盗门,小偷换个撬锁工具照样进来。
为何常见:输入过滤是见效最快的缓解措施,加几行代码就能让原始 PoC 失效,容易让人误以为漏洞已经根除。
误区高危 = 最高优先级,必须马上停机全部修完,否则就是安全失职。
正解修复要考虑成本、风险和业务连续性。一个高危漏洞如果要求重构整个鉴权体系(上百人日),而当前没有活跃利用迹象,理性做法是先做缓解措施(限流、监控、临时禁用高风险接口),再排进计划修复队列。优先级 = 风险 × 紧急程度 ÷ 成本,不是只看风险。这和急诊分诊一样:高热惊厥先进抢救室,慢性高血压约门诊,而不是按体温高低排队。
为何常见:安全工程师习惯以漏洞等级作为唯一决策依据,忽略了资源有限性和业务容错,把“严重”和“紧急”两个维度混为一谈。
误区开发说改好了,我检查一下代码确实加了过滤函数,就把它标记为已关闭。
正解“修好”和“验证修好”是两件事。必须用原始 PoC 复测原路径,同时做变体绕过和回归测试,三者都通过才算验收。代码审查不能替代黑盒复测,因为真正的验证要看攻击者视角的效果,而不是看代码里存在某个函数。医生不会因为病人说“我感觉好了”就办出院,一定要复查指标。
为何常见:修复和复测之间往往隔了一个版本发布周期,团队为了赶进度容易跳过验证环节,把“开发自测”当成“复测验收”。
误区红队报告里写了什么漏洞就是什么,我直接照着列表去修就行,不用自己复现。
正解红队报告可能有误报、可能缺少关键复现上下文,也可能多个描述指向同一个根因。修复前必须对每个漏洞做确认和复现,保留截图、日志等证据,这既是准确修复的前提,也是后续审计和合规的必要材料。医生开刀前也要自己看 CT 片子,不能只听转述。
为何常见:信任第三方报告的高权威性,觉得“官方测试结果不会有错”,忽略了测试环境与生产环境的差异、报告口径的出入。
误区漏洞清单发给相关团队了,邮件里点了几个名字,应该就有人去修了。
正解没有系统化的指派与时限,邮件很容易被淹没。正确做法是在跟踪系统里为每个漏洞明确唯一 Owner、复测人和 SLA 时限,每周例会过状态,逾期自动升级。没有明确 Owner 的漏洞等于没人修——就像没有主管医生的病人,出院时没人能签字。
为何常见:低估了组织协作的摩擦力,以为“知道了就会做”,但人的注意力有限,没有强制机制和责任绑定就会遗漏。
面试题
Q1. 收到红队测试报告后,第一个动作应该是什么?
- A.对所有漏洞逐一复现验证← 正确答案
- B.立即删除生产环境模型
- C.公开披露全部漏洞细节
- D.暂停所有新功能开发排期
答案:A。修复前必须确认每个漏洞真实存在、记录复现步骤和影响范围,不能拿未经验证的报告直接动手。B 和 D 反应过度且不解决根因,C 涉及安全披露策略,未经审批公开细节会带来更大风险。
Q2. 评估漏洞严重程度时,最核心的两个维度是?
- A.影响范围与可利用难度← 正确答案
- B.漏洞名称与发现日期
- C.代码行数与部署数量
- D.团队规模与开发成本
答案:A。严重程度取决于“打中了多疼”(影响)和“多容易打中”(可利用性),两者相乘得到风险分。B、C、D 是管理性信息,不反映威胁大小,就像分诊看的是病情而非病人姓名。
Q3. 高危但修复成本极高的漏洞,合理的处理策略是?
- A.无论如何立即停机修复
- B.权衡风险收益后排序处理← 正确答案
- C.拒绝修复并对外隐瞒
- D.仅记录到报告不采取行动
答案:B。优先级 = 风险 × 紧急程度 ÷ 成本。高成本漏洞若无活跃利用且业务不能停机,应做缓解措施、排进计划队列。A 反应过度,C 和 D 是逃避问题,都是安全治理中不可取的做法。
Q4. 针对提示注入漏洞,下列哪项修复方向更符合分层防御?
- A.屏蔽敏感关键词即可
- B.关闭用户输入访问通道
- C.输入校验与权限隔离结合← 正确答案
- D.更换功能更强的开源大模型
答案:C。分层防御要在输入校验之外加权限隔离、系统指令前置声明、模型对齐等,层层叠加才有效。A 太浅易被变体绕过,B 牺牲业务功能,D 换模型并不解决注入漏洞根因。
Q5. 复测时原攻击路径已失效但仍可绕过,最合理的结论是?
- A.漏洞已彻底修复可以结案
- B.原测试工具本身存在故障
- C.修复仅为表面修补需加固← 正确答案
- D.攻击路径已不再存在了
答案:C。变体绕过说明修复只堵住了原路径的表面现象,根因还在。应把漏洞退回“修复中”做深层加固,而不是结案或怀疑工具。这就像退烧了但炎症还在,需要继续治疗,而不是办出院。
Q6. 某漏洞 Impact=0.9、Exploitability=0.8,按 Risk=min(10,I×E×10) 计算得分为?
- A.7.2← 正确答案
- B.7.8
- C.8.5
- D.9.0
答案:A。代入公式 0.9 × 0.8 × 10 = 7.2,未超过 10 不需要截断,答案直接是 7.2。这是严重程度评估公式的简单应用,属于高危区间,应进入紧急修复队列。
Q7. 修复跟踪管理中的闭环管理机制,核心含义是什么?
- A.将所有漏洞标记为已关闭
- B.修复复测验收归档全流程← 正确答案
- C.把报告发送给全部干系人
- D.等待下次红队测试再校验
答案:B。闭环 = 状态完整流转:待修复 → 修复中 → 待复测 → 已关闭,且必须经过复测验收和报告归档。A 是自欺欺人,C 只是沟通动作,D 是拖延处理,都不构成真正的闭环。
Q8. 漏洞整理归档阶段应包含哪些关键信息?
- A.复现步骤与攻击路径← 正确答案
- B.影响范围与证据截图← 正确答案
- C.漏洞分类与严重程度← 正确答案
- D.修复负责人的家庭信息
答案:ABC。漏洞五元组需要编号、类型、严重程度、复现步骤和证据材料,覆盖 A、B、C。D 与修复无关且涉及个人隐私,属于明显的错误选项。
Q9. 判定修复复测验收不通过的情况包括哪些?
- A.原始攻击路径已被封堵
- B.出现同类变体成功绕过← 正确答案
- C.修复引入新的功能回归← 正确答案
- D.测试网络环境发生切换
答案:BC。复测通过 = Fixed ∧ ¬Bypass ∧ ¬Regression。A 是修复生效的表现不能判失败,D 只是测试条件变化不代表结果好坏,B 和 C 任一发生即验收不通过,漏洞退回修复中。
Q10. AI 系统漏洞技术修复方向通常覆盖哪些层面?
- A.训练数据清洗与过滤← 正确答案
- B.模型微调与对齐加固← 正确答案
- C.应用输入输出防护与限流← 正确答案
- D.删除全部历史操作日志
答案:ABC。技术修复分数据、模型、应用、基础设施四个层面,A、B、C 分别对应数据层、模型层和应用层。D 删除日志会破坏证据链并阻碍审计,是错误操作,安全加固应当开启日志而非删除日志。