0Pricing
Cyber Security Academy · 课时

OWASP LLM 十大风险

LLM 应用面临的主要风险。

OWASP LLM 十大风险 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

为什么需要 LLM 十大风险

OWASP 大型语言模型应用十大风险是由社区推动的清单,列出了专门针对基于 LLM 构建的系统的最关键安全风险。它与广为人知的 OWASP Web 十大风险相似,但涵盖了经典 AppSec 清单遗漏的威胁。

之所以需要这份清单,是因为 LLM 应用引入了新的攻击面:自然语言控制流、非确定性输出、模型供应链和自主代理。这份清单为安全团队提供了共同的术语和威胁建模检查清单。

下面的编号采用 2025 年版本中的 LLM01-LLM10 编号。

LLM01 提示注入

LLM01:提示注入始终是排名第一的风险。攻击者控制的文本会覆盖开发者的指令,因为模型无法区分受信任的指令和不受信任的数据。

  • 直接:用户输入覆盖指令。
  • 间接:指令隐藏在检索到的网页、文件或工具输出中。

缓解措施:对工具实施最小权限,将所有检索内容视为数据,为敏感操作增加人工检查点,并切断数据外泄路径。

LLM02 敏感信息泄露

LLM02:敏感信息泄露涵盖模型泄露不应泄露的数据:PII、机密信息、专有训练数据或其他租户的信息。

泄露可能源于模型记忆的训练数据、过于宽泛的上下文注入,或包含凭据的 system 提示词。

  • 清理并最小化放入上下文的数据。
  • 绝不要将实时有效的机密信息放入提示词;应通过带外机制使用范围受限且短时有效的令牌。
  • 返回响应前应用输出过滤和数据丢失防护检查。

LLM03 供应链

LLM03:供应链风险来自第三方模型、数据集、插件和库。被投毒的基础模型、来自模型中心且带有后门的微调模型,或恶意的 Python 依赖,都可能危及整个应用。

  • 核验模型来源和校验和。
  • 固定版本并审查许可证。
  • 扫描经过序列化的模型文件(pickle 可在加载时执行代码),并优先使用 safetensors 等安全格式。
# Pickle deserialization can run arbitrary code on load.
# Prefer safetensors for untrusted model weights:
from safetensors.torch import load_file
state = load_file("model.safetensors")

LLM04 数据和模型投毒

LLM04:数据和模型投毒针对训练或微调流水线。能够影响训练数据的攻击者可以植入后门(隐藏触发器)、使输出产生偏差,或降低质量。

即使部署完成,摄取用户提交文档的 RAG 流水线仍然是持续存在的投毒入口。

  • 审查并签署训练数据源。
  • 对数据集进行异常检测。
  • 在建立索引前隔离并审查用户贡献的内容。

LLM05 不当输出处理

当下游组件未经验证就信任模型输出时,就会发生LLM05:不当输出处理。由于注入可以影响输出,将其未经验证地传入命令解释器、SQL query、浏览器或求值操作,会直接导致 XSS、SSRF 或 RCE。

规则:将 LLM 输出完全视为不可信的用户输入。在接触任何解释器之前,先进行编码,调用 validate 进行验证,并在沙箱中执行。

# DANGEROUS: model output flows straight into a shell
os.system(model_output)        # never do this

# SAFER: validate against an allowlist, no shell
if action in ALLOWED_ACTIONS:
    run_safe(action, args)

LLM06 过度自主权

LLM06:过度自主权所造成的危害,源于赋予模型过多功能、权限或自主性。当模型能够调用工具时,注入就会变成实际操作,而不只是文本。

  • 功能过多:应用实际上不需要的工具。
  • 权限过多:在只需读取时却拥有写入或删除权限的工具。
  • 自主性过强:无需人工批准即可执行高影响操作。

对每个工具应用最小权限,并要求对不可逆操作进行确认。

LLM07 system 提示泄露

LLM07:system 提示泄露说明 system 提示词不是安全的机密存储空间。攻击者通常可以提取它,而其中有时包含凭据、隐藏的业务逻辑或过滤规则,为进一步攻击提供帮助。

  • 假设 system 提示词可以被恢复;绝不要在其中嵌入机密信息或密钥。
  • 在您的后端强制执行授权,不要寄希望于提示词规则能够生效。
  • 如果某项安全控制只存在于提示词文本中,就将其视为已失效。

LLM08、LLM09、LLM10

其余条目:

  • LLM08 向量和嵌入弱点:RAG 嵌入中的风险,例如跨租户泄露、嵌入反演,以及为投毒文档建立索引。在检索时强制执行访问控制。
  • LLM09 错误信息:自信而错误的幻觉和过度依赖。为高风险场景的输出增加事实依据、引用和人工审查。
  • LLM10 不受限制的消耗:昂贵或失控的 query 请求导致的钱包拒绝服务和拒绝服务。应用速率限制、令牌预算、超时限制和成本警报。

在威胁建模中使用该列表

前十项列表最适合在设计审查期间作为结构化检查清单使用:

  • 将每个组件(输入、检索、工具、输出)对应到相关的 LLM 风险。
  • 针对每项风险确定具体的控制措施和负责人。
  • 编写滥用场景,并将其转化为自动化测试。

将其与现有框架结合使用,例如标准的 OWASP 前十项、用于机器学习特定战术的 MITRE ATLAS,以及用于治理的 NIST 人工智能风险管理框架。

从检查清单到纵深防御

没有单一控制措施能覆盖这些风险。请分层实施:

  • 输入层:验证、分类和速率限制。
  • 模型层:最小权限工具、范围受限的上下文和防护模型。
  • 输出层:验证、编码、DLP 和人工批准。
  • 平台层:日志记录、监控、供应链核验和成本控制。

假设任何一层都可能失效,并进行设计以确保单次失效不会演变为安全入侵。

快速检查

检验您对 OWASP LLM 各类别的理解。

回顾

OWASP LLM 前十项一览:

  • LLM01 提示注入、LLM02 敏感信息泄露、LLM03 供应链、LLM04 数据和模型投毒、LLM05 不当输出处理。
  • LLM06 过度自主权、LLM07 system 提示泄露、LLM08 向量和嵌入弱点、LLM09 错误信息、LLM10 不受限制的消耗。
  • 将模型输出和 system 提示词视为不可信且非机密内容。
  • 将该列表作为威胁建模检查清单,与 MITRE ATLAS 和 NIST 人工智能 RMF 配合使用,并在输入、模型、输出和平台层实施纵深防御。

常见问题解答

「OWASP LLM 十大风险」课时是免费的吗?

是的 — 「OWASP LLM 十大风险」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「OWASP LLM 十大风险」这节课中我会学到什么?

LLM 应用面临的主要风险。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「OWASP LLM 十大风险」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 提示注入与越狱
  2. OWASP LLM 十大风险
  3. 保护人工智能代理与工具使用
  4. 模型、数据与供应链风险
← 返回 Cyber Security Academy