本文档涵盖了大型语言模型(LLM)应用程序特有的安全风险和缓解策略。它侧重于LLM的训练、提示和部署方式所产生的独特漏洞。有关特定于部署的安全基础设施,请参阅部署与优化。
LLM引入了传统软件漏洞之外的新型安全问题,需要专门的知识和防御措施来构建安全的AI系统。
LLM应用程序面临着传统软件漏洞和AI特定攻击向量的独特组合。了解这种安全格局对于开发强大的防御措施至关重要。
OWASP LLM应用程序十大风险提供了识别LLM系统中最关键安全风险的全面框架
| 排名 | 漏洞 | 描述 |
|---|---|---|
| 1 | 提示词注入 | 通过精心设计的输入操纵模型输出 |
| 2 | 不安全的输出处理 | 在使用模型输出之前未能验证其有效性 |
| 3 | 训练数据投毒 | 将恶意内容引入训练数据 |
| 4 | 模型拒绝服务 | 使用资源密集型提示使系统过载 |
| 5 | 供应链漏洞 | 来自第三方模型和集成的风险 |
| 6 | 敏感信息泄露 | 模型泄露私有或机密数据 |
| 7 | 不安全的插件设计 | 与外部工具易受攻击的集成 |
| 8 | 过度的代理权 | 赋予LLM过多的自主控制权 |
| 9 | 过度依赖 | 假定模型输出始终正确或安全 |
| 10 | 模型盗窃 | 未经授权访问或提取模型权重 |
基于提示的攻击利用LLM的输入机制来操纵模型行为。这些攻击不需要访问模型权重或训练数据,因此在生产环境中尤其危险。
当攻击者插入恶意指令以覆盖原始系统提示或应用程序意图时,就会发生提示注入。
此攻击旨在从模型中提取敏感信息
越狱技术可以绕过安全措施和内容过滤器,使模型生成有害、不道德或受限的内容。
常见的越狱方法包括
来源:README.md408
基于数据的攻击针对模型训练过程或用于增强模型的數據。
训练数据投毒包括将恶意示例引入训练数据集以损害模型行为
后门是嵌入在模型中的隐藏触发器,激活时会导致模型产生恶意行为
后门可以通过以下方式实现
来源:README.md409
保护LLM应用程序需要一种多层方法,该方法可解决各种攻击向量。
| 防御技术 | 描述 | 实现 |
|---|---|---|
| 输入验证 | 过滤恶意模式和字符 | 正则表达式、关键词阻止列表 |
| 参数化 | 将用户输入与指令分开 | 使用带有清晰边界的模板 |
| 提示强化 | 加强系统提示以防止操纵 | 添加防御性指令,使用分隔符 |
| 最小权限 | 限制模型可以访问或执行的操作 | 限制API功能,使用沙箱 |
红队演练涉及使用对抗性技术系统地测试LLM系统以抵御潜在攻击。这种主动方法有助于在漏洞被利用之前识别它们。
有效的红队演练计划的关键组成部分
监控生产环境中的LLM应用程序对于检测和响应安全事件至关重要。
有效的监控包括
Langfuse等工具提供LLM应用程序的专门监控,深入了解使用模式和潜在的安全问题。
来源:README.md410
已开发出多种专用工具来测试和保护LLM应用程序
| 工具 | 目的 | 特性 |
|---|---|---|
| Garak | LLM漏洞扫描器 | 测试提示注入、越狱、数据泄露 |
| Langfuse | LLM可观测性平台 | 生产监控、异常检测、日志记录 |
| LLM Guard | 输入/输出过滤 | 净化、检测、上下文分析 |
| Rebuff | 提示注入防御 | 模式识别、输入验证、攻击模拟 |
来源:README.md410
构建安全的LLM应用程序时,请遵循以下最佳实践
对于RAG(检索增强生成)系统,必须在多个点实现安全性
这种方法确保在整个管道中保持安全性,从用户输入到最终响应。
LLM应用程序的安全性需要一种专门的方法,该方法可解决传统软件漏洞和AI特定攻击向量。通过实施全面的安全措施,包括提示工程、输入验证、输出过滤、监控和定期测试,开发人员可以构建强大的LLM应用程序,以抵御各种攻击技术。
随着该领域的不断发展,及时了解最新的安全研究和最佳实践至关重要。OWASP LLM十大风险为理解当前威胁格局提供了极好的起点,而Garak和Langfuse等工具则提供了测试和监控LLM系统的实用方法。
请记住,安全是一个持续的过程,而不是一次性的实施。定期的安全审查、红队演习和安全措施的更新将有助于确保您的LLM应用程序能够抵御新兴威胁。