OWASP GenAI Top 10(v2.0) 对抗验证

共 19 题
📑 题目列表 19 题
#
★★★

1. OWASP GenAI Top 10(v2.0) 已取代旧 v1.1,如何为 LLM01—LLM10 各定义一条可执行红队用例

OWASP GenAI Top 10(v2.0) 已取代旧 v1.1,如何为 LLM01—LLM10 各定义一条可执行红队用例?

  • v2.0 的十大风险分类
  • 红队用例的定义
  • 可执行性

为 LLM01-LLM10 各定义一条可执行红队用例,要求"可执行、可判定、可复现"。LLM01 Prompt Injection:构造直接/间接注入,验证能否诱导越权或泄露;LLM02 Sensitive Information Disclosure:测试能否诱导泄露 PII/密钥/系统提示;LLM03 Supply Chain:测试依赖、模型、提示词模板投毒;LLM04 Data and Model Poisoning:测试训练/微调数据投毒;LLM05 Improper Output Handling:测试输出是否被下游利用(XSS/SQL 注入);LLM06 Excessive Agency:测试高权工具是否被滥用;LLM07 System Prompt Leakage:测试能否套取系统提示;LLM08 Vector and Embedding Weaknesses:测试向量检索越权/反演;LLM09 Misinformation:测试事实错误与幻觉;LLM10 Unbounded Consumption:测试资源耗尽/DoS。每条用例含攻击步骤、预期结果、判定标准与复现样例。

v2.0 把风险从 v1.1 的 10 类重构为更细的 10 类。为每类定义可执行用例,是把"风险清单"变成"可验证的测试",让红队覆盖不留死角。

#
★★★

2. 如何联合测试 LLM01 Prompt Injection 与 LLM06 Excessive Agency,证明注入不能触发高权工具

如何联合测试 LLM01 Prompt Injection 与 LLM06 Excessive Agency,证明注入不能触发高权工具?

  • 注入与工具越权的联动
  • 联合测试设计
  • 缓解有效性验证

关键测试"注入能否触发工具越权":构造 indirect/direct injection 诱导模型调用高危工具(删除、支付、发送消息、权限变更),验证工具层是否被保护。联合测试:1) 注入场景——注入指令要求调用高权工具;2) 验证工具调用是否被拦截(工具白名单、参数校验、审批、权限检查);3) 验证即使注入成功,工具层是否拒绝高危操作。若注入能触发高权工具,说明 LLM06 缓解不足;若工具被拦截,则证明工具层兜底有效。判定标准:注入不能直接触发高权工具,工具调用需审批/过滤。测试覆盖直接与间接注入两种路径。

注入是"入口",工具滥用是"后果",两者联动才能测出真实风险。证明"注入不能触发高权工具"需工具层兜底(白名单、审批、校验),而非只靠模型拒答。

#
★★★

3. OWASP GenAI Top 10(v2.0) 已取代旧 v1.1,LLM01-LLM10 的最新定义和优先级如何对齐

OWASP GenAI Top 10(v2.0) 已取代旧 v1.1,LLM01-LLM10 的最新定义和优先级如何对齐?

  • v2.0 与 v1.1 的差异
  • 最新定义
  • 优先级与落地

v2.0 取代 v1.1,重新编号并调整了定义与优先级。v2.0 的十大类:LLM01 Prompt Injection、LLM02 Sensitive Information Disclosure、LLM03 Supply Chain、LLM04 Data and Model Poisoning、LLM05 Improper Output Handling、LLM06 Excessive Agency、LLM07 System Prompt Leakage、LLM08 Vector and Embedding Weaknesses、LLM09 Misinformation、LLM10 Unbounded Consumption。相比 v1.1,v2.0 新增了供应链、向量检索、错误信息、不可控消费等类别,并把过度代理等显式化。对齐方式:以 v2.0 为基准重排风险清单,按业务场景确认每类风险的实际优先级(如 Agent 场景重点 LLM06/LLM07,RAG 场景重点 LLM08/LLM02),并映射到对应红队用例与修复项。

v2.0 是对新兴风险(Agent、RAG、供应链)的更新覆盖。对齐就是"以 v2.0 为准重排风险与优先级",结合自身场景确定重点,避免沿用 v1.1 的过时清单。

#
★★★

4. LLM01 Prompt Injection 的直接与间接攻击如何分别测试,如何验证 system prompt 隔离

LLM01 Prompt Injection 的直接与间接攻击如何分别测试,如何验证 system prompt 隔离?

  • 直接与间接注入测试
  • system prompt 隔离验证
  • 增强与防御

直接注入测试:用户输入直接包含"忽略以上指令""模仿系统"等,验证模型是否被劫持;间接注入测试:外部内容(RAG 文档、网页、邮件)携带指令,验证模型是否把外部内容当指令执行。system prompt 隔离验证:测试注入能否套取或覆盖 system prompt——尝试用注入让模型泄露系统提示、尝试覆盖系统指令、验证外部内容是否被隔离为数据而非指令。防御:明确指令与数据边界、外部内容标记为不可信、对 system prompt 加密/脱敏、拒绝泄露请求。判定标准:直接/间接注入不改变系统指令行为,外部内容不触发越权指令。

直接与间接注入的路径不同,需分别测。system prompt 隔离是核心——验证注入无法覆盖或泄露系统指令,是 LLM01 缓解的关键。

#
★★★

5. 攻击链的编排与判定,多步骤攻击(注入→工具越权→数据外泄)如何拆解为可复现用例,任一步失败即证明缓解有效?

攻击链的编排与判定:多步骤攻击(注入→工具越权→数据外泄)如何拆解为可复现用例,任一步失败即证明缓解有效?

  • 攻击链拆解
  • 可复现用例
  • 缓解有效性判定

把多步骤攻击拆解为串行用例,每步独立可复现:步骤1 注入(能否让模型接受指令);步骤2 工具越权(能否调用高危工具);步骤3 数据外泄(能否拿到数据)。判定标准:任一步失败即证明攻击链被阻断,缓解有效。例如注入成功但工具被拦截,则 LLM06 缓解有效;注入成功且工具调用成功但数据被访问控制拦截,则数据保护有效。用例要记录每步的输入/输出/判定,标注"阻断点"(在哪一步被拦截)。这样可定位是哪个缓解层起效,而非只看整链是否成功。

攻击链判定的关键是"定位阻断点"。拆成串行用例,任一步失败即证明对应缓解有效,比"整链成功与否"更精确,能指明防御有效的层次。

#
★★★

6. 红队测试隔离,影子环境、脱敏数据集与专用账号如何设计,避免对抗测试污染生产数据与真实用户?

红队测试隔离:影子环境、脱敏数据集与专用账号如何设计,避免对抗测试污染生产数据与真实用户?

  • 影子环境隔离
  • 脱敏数据集
  • 专用账号与沙箱

隔离设计:影子环境——独立部署一套与生产等价的测试环境,不接生产数据与真实依赖;脱敏数据集——用合成/脱敏数据而非真实用户数据,避免泄露 PII;专用账号——用测试专用账号(非真实用户、独立身份),与真实用户隔离,避免污染真实会话与数据。工具调用也在沙箱(Mock 工具、测试支付、测试邮箱)。测试产生的对抗数据与生产物理隔离,测试后清理。同时监控测试账号行为,防止误连生产。隔离是"底线"——对抗测试本质是制造有害行为,必须控制在隔离环境。

红队测试注定产生"有害输入",隔离是防止污染生产与真实用户的根本。影子环境、脱敏数据、专用账号、沙箱工具四重隔离,让测试既真实又安全。

#
★★

7. 应怎样测试依赖、模型与知识库来源的可信性,供应链投毒与文档污染如何纳入红队范围

应怎样测试依赖、模型与知识库来源的可信性,供应链投毒与文档污染如何纳入红队范围?

  • 供应链可信性测试
  • 投毒与文档污染
  • 纳入红队范围

测试依赖与来源可信性:核对依赖包/模型权重的来源与完整性(校验和、签名、SBOM)、供应链上是否有被篡改的中间件;测试模型是否被投毒(特定触发词诱导有害行为);测试知识库文档是否被污染(恶意文档注入、检索投毒)。纳入红队范围:把供应链作为独立攻击面——模拟依赖投毒、模型权重复改、文档污染,验证是否被检测与防御。防御:来源校验、SBOM 管控、内容审核、文档可信度分级、依赖版本锁定。红队验证这些防御是否真能拦截供应链攻击。

供应链是隐藏攻击面,投毒与文档污染可静默造成危害。红队要把它显式纳入范围,验证来源校验与内容审核的防御有效性。

#
★★

8. LLM03 Supply Chain 的攻击面(模型权重、依赖包、Prompt 模板、Embedding 模型)应如何逐一测试与加固

LLM03 Supply Chain 的攻击面(模型权重、依赖包、Prompt 模板、Embedding 模型)应如何逐一测试与加固?

  • 供应链各攻击面
  • 逐一测试
  • 加固措施

逐一测试四个攻击面:模型权重——校验来源、完整性(哈希/签名)、是否存在投毒(触发词测试);依赖包——SCA 扫描漏洞、依赖锁定、版本校验(防依赖替换攻击);Prompt 模板——检查模板是否被注入/污染、模板来源是否可信、变量是否被恶意注入;Embedding 模型——验证向量化是否被投毒/被反向利用、相似度检索是否被污染。加固:来源可信、签名校验、SBOM、依赖锁定、模板审计、embedding 版本固定与内容过滤。每个攻击面设独立测试用例并纳入 CI。

供应链攻击面分散,需逐一覆盖。模型权重、依赖、模板、embedding 各有攻击方式,逐一测试才能发现薄弱环节,加固需"来源校验+完整性+审计"。

#
★★

9. LLM05 Improper Output Handling 的 XSS、SQL 注入、Shell 注入、SSRF 等下游利用如何构造

LLM05 Improper Output Handling 的 XSS、SQL 注入、Shell 注入、SSRF 等下游利用如何构造?

  • 输出处理不当的下游危害
  • 各类注入构造
  • 编码与消毒防御

LLM05 指模型输出被不安全地处理,导致下游利用。构造用例:XSS——诱导模型输出含 <script>/<img onerror> 的 HTML/JS,验证前端渲染时是否执行;SQL 注入——诱导模型输出含 SQL 语句的文本,用于拼接查询时是否被注入;Shell 注入——诱导输出含命令的文本,被 shell 执行时是否被注入;SSRF——诱导模型输出 URL,被服务器请求时是否触发内网访问。防御:输出编码(HTML 转义、SQL 参数化、命令白名单)、内容消毒(过滤危险标签/字符)、输出与解释器隔离(不直接执行模型输出)。红队验证这些防御是否拦截。

LLM05 的核心是"模型输出不可信,不能直接进下游执行"。构造各类注入验证下游是否被利用,并用编码/参数化/隔离防御,是输出处理的关键。

#
★★

10. LLM06 Excessive Agency 的“高权工具被滥用”如何测试(删除、支付、权限提升)

LLM06 Excessive Agency 的"高权工具被滥用"如何测试(删除、支付、权限提升)?

  • 高权工具滥用场景
  • 权限与调用约束
  • 测试与验证

测试高权工具滥用:构造触发删除(诱导调用删除工具/删除数据)、支付(诱导发起支付/转账)、权限提升(诱导修改权限/提升 role)的场景,验证工具是否被无授权调用。测试要点:1) 工具是否被注入诱导调用;2) 工具是否有参数校验与白名单;3) 高危操作是否有审批/确认/人工把关;4) 权限是否最小化(Agent 是否拥有本不该有的高权工具)。防御:权限最小化、工具白名单、高危操作审批、操作审计、参数校验。验证"高权工具无法被无授权触发",是 LLM06 缓解的核心。

Excessive Agency 是"Agent 能力过大导致被滥用"。删除/支付/权限提升是高危动作,测试聚焦"能否被诱导触发",防御靠权限最小化+白名单+审批+审计。

#
★★

11. LLM07 System Prompt Leakage 的防护(指令隔离、检测告警、敏感字段过滤)

LLM07 System Prompt Leakage 的防护(指令隔离、检测告警、敏感字段过滤)如何实现?

  • System Prompt 泄露面
  • 防护措施
  • 检测与告警

System Prompt 泄露是攻击者诱导模型输出系统提示/内部指令。防护:指令隔离——把系统提示与用户输入严格隔离,外部内容不可访问系统提示;检测告警——对包含系统提示特征(内部指令、特殊标记、参数)的输出做检测,检测到泄露告警并记录;敏感字段过滤——系统提示中的敏感信息(密钥、内部端点、权限规则)脱敏或分离,不直接进入提示。同时用拒绝策略:模型被要求"输出 system prompt"时拒答。测试:诱导模型输出系统提示,验证是否被隔离、检测与过滤。定期审计泄露日志。

LLM07 的防护是"隔离+检测+过滤"三管齐下。隔离防取到,检测告警防漏,过滤防敏感字段泄露。配合拒答策略,形成对系统提示泄露的防护。

#
★★

12. 修复有效性验证,防御上线后如何用绕过变体回归证明修复有效,防止只堵已知样本?

修复有效性验证:防御上线后如何用绕过变体回归证明修复有效,防止只堵已知样本?

  • 回归验证方法
  • 绕过变体生成
  • 防闭集过拟合

修复上线后要验证"真的修好了"而非"只堵了已知样本":用绕过变体回归——对原始攻击样本生成大量变体(同义词、编码、改写、角色扮演、多轮、插入字符),用新防御检测,测绕过率。判定标准:不仅是已知样本被拦截,变体样本的绕过率也需显著下降。若变体仍能绕过,说明修复过拟合,需加固。持续用动态攻击集回归,防止新手法绕过。变体回归要覆盖不同攻击类型,并纳入 CI 使每次变更都可验证。同时对比修复前后指标(绕过率、误报率)确认无回归。

修复有效性要看"泛化"而非"匹配已知样本"。变体回归是检验泛化的标准方法,能发现"只堵已知样本"的假修复。纳入 CI 持续回归是关键。

#

13. LLM08 Vector and Embedding Weaknesses 的跨租户检索、恶意文档、向量反演攻击如何测试

LLM08 Vector and Embedding Weaknesses 的跨租户检索、恶意文档、向量反演攻击如何测试?

  • 向量检索弱点
  • 跨租户与恶意文档
  • 向量反演

测试三类:跨租户检索——测试租户 A 的查询能否检索到租户 B 的私有文档(验证向量库是否按租户隔离、检索是否有权限过滤);恶意文档——测试向向量库注入恶意文档能否被检索并诱导模型输出(检索污染);向量反演——测试从向量反向重建原始文本/推断敏感信息(验证向量是否能被反演利用)。防御:向量库租户隔离与权限过滤、检索结果过滤与来源校验、向量加密/访问控制、对高敏感向量做保护。红队验证这些弱点是否被防护。

LLM08 的弱点是"向量检索的信任与隔离"。跨租户检索测隔离、恶意文档测污染、反演测隐私,需权限过滤与来源校验防御。

#

14. 如何对 LLM09 Misinformation 同时评估事实、引用支持和高风险建议的人工升级

如何对 LLM09 Misinformation 同时评估事实、引用支持和高风险建议的人工升级?

  • 事实准确性评估
  • 引用支持验证
  • 高风险建议升级

LLM09 是错误信息/幻觉。评估维度:1) 事实准确性——用有事实基准的评测集(Q&A 正确率、与权威来源比对),衡量模型输出的客观正确性;2) 引用支持——验证模型引用的来源是否真实存在、是否支持其结论(引用真实性、相关性、一致性);3) 高风险建议——对医疗、法律、金融等高风险领域,评估高风险建议是否触发人工升级(记录"人工升级率"与升级及时性)。三方面结合:事实准+引用支持+高风险升级,才能全面评估错误信息风险。高风险建议要有明确的升级与兜底机制。

错误信息是"事实+引用+风险"三方面。事实与引用评估"说错没有",高风险升级评估"会不会造成伤害"。三者缺一不可,尤其高风险领域需人工兜底。

#

15. 模型拒绝服务(DoS)风险,超长上下文、高并发与资源耗尽攻击应如何通过配额、输入长度上限与限流防护

模型拒绝服务(DoS)风险:超长上下文、高并发与资源耗尽攻击应如何通过配额、输入长度上限与限流防护?

  • DoS 攻击方式
  • 配额与限流
  • 输入长度上限

DoS 攻击:超长上下文(大量 token 消耗算力)、高并发(并发请求耗尽资源)、资源耗尽(大量请求/输出使服务不可用)。防护:输入长度上限——限制单次请求的 token 数,超长拒绝或截断;配额——按用户/租户设 token 配额与费用上限,防止滥用;限流——限制请求频率与并发量,超限返回 429 并退避;资源隔离——不同租户隔离资源,防止单租户拖垮全局;降级——资源紧张时降级到小模型/非实时模式。监控资源使用与 DoS 特征(异常并发、超长请求),触发告警与自动防护。

DoS 是"资源被耗尽"。输入长度上限、配额、限流、资源隔离、降级五道防线,把"资源消耗"控制在可承受范围,并监控异常特征。

#

16. 不安全输出处理,模型输出中的可执行代码、危险 URL 与敏感内容应如何通过输出编码、内容过滤与消毒防护

不安全输出处理:模型输出中的可执行代码、危险 URL 与敏感内容应如何通过输出编码、内容过滤与消毒防护?

  • 输出中的风险类型
  • 编码与消毒
  • 内容过滤

模型输出可能含可执行代码(XSS、命令)、危险 URL(钓鱼、SSRF)、敏感内容(PII、密钥)。防护:输出编码——对 HTML/JS/SQL 做上下文相关编码,防止 XSS/SQL 注入;内容过滤——对输出做危险 URL 检测(拦截恶意/内网 URL)、敏感内容检测(泄露 PII/密钥);消毒——去除可执行标签、危险字符、限制 URL 协议;隔离——输出不被直接执行/渲染,需经过净化层。分层处理:按输出用途(渲染/存储/执行)采取不同编码与消毒。红队验证输出被恶意利用时是否被拦截。

不安全输出处理的防护是"输出不可信"原则。编码、过滤、消毒、隔离四层,按输出用途差异化处理,防止模型输出在下游造成危害。

#

17. 知识库/文档投毒(检索中毒)与第三方模型、依赖供应链风险应如何通过来源校验、内容审核与 SBOM 管控

知识库/文档投毒(检索中毒)与第三方模型、依赖供应链风险应如何通过来源校验、内容审核与 SBOM 管控?

  • 检索中毒与供应链风险
  • 来源校验与内容审核
  • SBOM 管控

知识库/文档投毒(检索中毒):通过恶意文档污染检索结果。防护:来源校验——只接受可信来源的文档、校验文档来源与权限、防止越权注入;内容审核——对入库文档做内容安全审核(注入指令检测、敏感内容过滤),防止恶意文档入库。供应链风险:依赖包、第三方模型、embedding 可能被投毒。防护:SBOM(软件物料清单)——记录依赖清单与版本,扫描漏洞;来源校验——依赖与模型来源可信、签名校验;依赖锁定与完整性校验。订阅 CVE 并及时更新。红队验证来源校验与审核能否拦截投毒。

检索中毒与供应链风险都是"不可信输入进入系统"。来源校验、内容审核、SBOM 是三道防线,分别防"文档入库"与"依赖被篡改",让投毒难以进入。

#

18. 敏感信息泄露(PII、密钥、商业机密)在 RAG、工具调用与日志链路中的泄露面有哪些,输出过滤与访问控制如何落地

敏感信息泄露(PII、密钥、商业机密)在 RAG、工具调用与日志链路中的泄露面有哪些,输出过滤与访问控制如何落地?

  • 各链路的泄露面
  • 输出过滤
  • 访问控制与脱敏

泄露面:RAG——检索内容含 PII/机密,模型输出引用;工具调用——工具返回的敏感数据被模型输出或日志记录;日志链路——输入/输出/工具调用日志中记录敏感信息。防护落地:输出过滤——对模型输出做 PII/密钥/机密检测,命中即脱敏或拦截;访问控制——按用户/租户限制可访问的数据(RAG 权限过滤、工具鉴权),未授权不可见;日志脱敏——日志链路对敏感信息脱敏(遮罩、哈希、不落盘),设日志访问控制与保留期。红队验证各泄露面是否被输出过滤与访问控制覆盖。

敏感信息泄露面广(RAG、工具、日志),需"输出过滤+访问控制+日志脱敏"三管齐下。核心是"数据最小化、访问按权限、日志不落敏感"。

#

19. 红队结果闭环,攻击用例、评分与整改项如何形成可跟踪清单,并支持残余风险接受?

红队结果闭环:攻击用例、评分与整改项如何形成可跟踪清单,并支持残余风险接受?

  • 可跟踪清单的结构
  • 整改闭环
  • 残余风险接受

形成可跟踪清单:每条红队发现含唯一 ID、攻击用例(复现步骤)、评分(严重度/可利用性)、整改项(责任人、期限、状态)、回归状态。清单贯穿"发现→整改→验证→关闭",支持状态流转与审计。残余风险接受:对无法立即修复或成本过高的风险,由业务负责人评估后"接受"(明确残余风险、影响、缓解措施与复审时限),记录在案而非忽略。清单支持按严重度/状态筛选,供管理层决策与上线门禁。闭环保证"每条发现都有归宿"(修复或接受)。

红队闭环的核心是"每条发现可追踪、有归宿"。可跟踪清单让发现可流转可审计,残余风险接受让"暂不修"也有明确记录与复审,避免风险悬空。