AI智能总结
人工智能技术与风险工作组的官网是https://cloudsecurityalliance.org/research/working-groups/ai-technology-and-risk ©2025云安全联盟大中华区——保留所有权利。你可以在你的电脑上下载、储存、展示、查看及打印,或者访问云安全联盟大中华区官网(https://www.c-csa.cn)。须遵守以下:(a)本文只可作个人、信息获取、非商业用途;(b)本文内容不得篡改;(c)本文不得转发;(d)该商标、版权或其他声明不得删除。在遵循中华人民共和国著作权法相关条款情况下合理使用本文内容,使用时请注明引用于云安全联盟大中华区。 致谢 《基于大语言模型(LLM)的系统安全:关键授权实践》由CSA工作组专家编写,CSA大中华区组织AI安全工作组进行翻译并审校。 中文版翻译专家组 翻译组成员: 何伊圣卜宋博崔崟邢海韬卞超轶郭建领刘刚 审校组成员: 崔崟高健凯卜宋博 感谢以下单位的支持与贡献: 北京启明星辰信息安全技术有限公司天翼云科技有限公司北京百度网讯科技有限公司 (以上排名不分先后) 英文版本编写专家 主要作者: NateLee、LauraVoicu 联合主席:ChrisKirschke、MarkYanalitis 贡献者: BhuvaneswariSelvadurai、DamiánHasse、ErikHajnal、JasonGarman、JohnJiang、MalteHøjmark-Bertelsen、MichaelRoza、TimMichaud 审校组: ArsalanKhan、AkhilMittal、AdamLundqvist、AlexRebo、AmityFox、DanGora、GauravPuri、IlangoAllikuzhi、IvanDjordjevic、KenHuang、OttoSulin、PrathibhaMuraleedhara、SemihGelisli、SvenOlensky、SrinivasInguva、RavinKumar、WalterHaydock CSA全球工作人员: JoshBuker、StephenSmith 在此感谢以上专家及单位。如译文有不妥当之处,敬请读者联系CSAGCR秘书处给予雅正!联系邮箱research@c-csa.cn;国际云安全联盟CSA公众号。 目录 致谢............................................................4引言............................................................7目标读者........................................................8范围............................................................8原则............................................................9 编排器......................................................11向量数据库..................................................11LLM缓存.....................................................12验证器......................................................12机器学习的安全运维(MLSecOps)..............................13 挑战和注意事项.................................................14 提示注入....................................................15系统与用户提示..............................................16微调与模型训练..............................................17 LLM的系统的常见架构设计模式................................19 使用 检索增强生成(RAG).........................................19上下文数据..................................................19使用向量数据库的RAG访问.....................................21使用关系数据库的RAG访问.....................................23使用API调用外部系统的RAG....................................26LLM系统编写和执行代码.......................................29基于LLM的自主智能体.........................................33 结论...........................................................36 摘要 自2022年ChatGPT等生成式AI应用推出以来,越来越多的组织开始利用大语言模型(LLM)解决各种业务问题。尽管发展迅速,但安全设计这类系统的的正式指导和最佳实践依然匮乏,特别是在涉及LLM外部数据源或LLM参与决策过程的场景中。 LLM的非确定性,及缺乏明确的控制和数据平面的特点,为系统架构师和工程师带来了独特的挑战。这些挑战影响了集成LLM的系统的安全性和授权机制。 本报告旨在为工程师、架构师以及隐私和安全专业人士提供指导,帮助他们深入理解在设计使用LLM的系统时所面临的特定风险与挑战。本报告探讨了授权和安全相关的潜在风险,并说明了需要特别注意的事项。 本报告概述了将LLM集成到更广泛系统中的设计模式和最佳实践,涵盖了扩展LLM功能的高级模式,如添加上下文或实现与其他组件和服务的交互。每种模式都有相应的推荐实践、注意事项和常见误区,帮助系统架构师更有效地权衡设计决策。 关键原则强调了避免让LLM参与授权决策和策略执行的重要性,同时持续验证身份和权限,并通过系统设计来减少潜在问题的影响。默认拒绝访问并简化系统复杂性可以减少与授权相关的错误。此外,验证所有输入和输出对于防范恶意内容至关重要。 本报告还介绍了LLM支持系统所需的关键组件。向量数据库因其在管理高维数据方面的优势,成为AI系统中检索和处理数据的重要组成部分。编排器负责协调LLM的输入和输出,管理与其他服务的交互,并降低如提示注入的安全风险。LLM缓存加快了响应速度,但需要进行控制检查以防止未经授权的访问。尽管主要的安全保障应来自确定性授权,验证器依然为抵御攻击增加了防御层。 引言 随着现有企业和新兴创业公司在大语言模型(LLM)领域争夺先发优势,这些组织迫切需要更多关于这类安全设计利用LLM的系统的正式指导和最佳实践。这在需 要LLM处理外部数据源的用例或依赖LLM做出决策并采取行动的下一代应用程序和系统中尤为重要。 将LLM用作系统组件为架构师和工程师们带来了新的挑战,特别是在可预测性、安全性和授权方面,这主要是由于LLM的非确定性以及缺乏独立的控制和数据平面所导致的。 目标读者 本报告旨在帮助工程师、架构师以及隐私和安全专业人士理解使用LLM构建系统时,与授权相关的独特风险和挑战。它强调了由于LLM的特性而需要做出的特殊考虑,并探讨了这些系统可能面临的挑战和常见误区。 范围 本报告概述了将LLM作为更广泛系统组件集成的系统设计模式和最佳实践,涵盖了通过提供额外的上下文或让模型进行推理并与其他组件和外部服务交互的高级模式。每个设计模式包括建议、注意事项和常见误区。这些要素有助于系统架构师在设计决策时做出权衡。 本报告旨在帮助来自不同背景的读者就利用LLM构建系统时所面临的独特授权挑战做出明智的选择。系统设计人员将获得控制实施的实用建议,而评估供应商产品的人员则可以更好地评估市场上利用LLM提供服务的产品的安全设计。 本报告重点指出了一些软件系统的特有问题作为相关建议的背景参考,这些问题在传统的确定性组件架构中并不存在。 本报告假设读者已熟悉授权的基本知识和最佳实践,主要探讨在系统中引入LLM时产生的新挑战和考虑事项。对于基础授权知识的读者,建议参考其他文档,以获取有关授权控制设计过程中需要权衡的其他考虑事项的更多详细信息。 原则 本报告的建议基于若干基本原则和最佳实践,部分原则特别针对LLM系统进行了调整。 输出可靠性评估:LLM可能会产生不可靠的结果;应根据所涉及业务流程的重要性,仔细评估其使用。授权:授权策略的决策点和执行点应始终位于LLM之外,以保持安全性和控制。认证:LLM永远不应负责执行认证检查。认证应由系统中的其他机制处理。漏洞:应假设LLM特定的攻击(如越狱和提示注入)始终是可行的。访问:应执行最小权限原则和按需访问,以最小化暴露面和潜在的控制疏漏带来的损害。 基于LLM的系统的组成部分 将LLM集成到系统中会引入几个新组件,这些组件具备独特的安全和控制问题。图1描述了基于LLM的系统中的常见组件,还描绘了一个“内部服务”的块,抽象地代表了系统中现存的内部服务。LLM及其相关组件可与之交互,包括那些直接与用户交互的服务。 我们将在下文进行定义并描述与之相关的授权注意事项。值得注意的是,各种系统提供的内容可能会在提示中与身份和授权信息混在一起。虽然提示词中使用的内容或由LLM生成的内容可能会描述某些权限、操作或身份,但绝不能信任LLM做出的授权决策。系统应该始终依赖权威做出授权决定。 当编排器与返回内容的系统交互时,不应使用这些系统的内容来通知授权,因为它们在涉及到LLM时易受到类似“糊涂助手”攻击等问题的影响。 编排器 编排器是系统的一部分,负责协调LLM的输入、输出,并将其转化为行动,使得LLM能够与其他服务交互。 一般而言,编排器是使用LangChain、LlamaIndex、Autogen等工具构建的,用于处理LLM与其他组件(如API、验证器、内部服务、外部数据存储等)之间的接口。 编排器的授权问题源于LLM经常与来自信任边界之外的内容交互,这会导致“糊涂助手”攻击的风险。下文的提示注入部分将会对此说明。如果不在系统设计层面加以考虑,这些内容一旦被纳入到上下文窗口中,便可能导致意外操作。编排器是确定性的,并且参与了大多数内容进出LLM的流程。因此,它显然是协调向其他组件传递身份信息的协调点。终端组件在向编排器提供上下文以生成LLM的输入提示词前会进行授权检查。 向量数据库 随着大型语言模型(LLM)的兴起,向量数据库因其在管理和查询高维数据向量方面非常有效而被广泛应用。最流行的开源向量数据库有Milvus、Vespa、Weaviate或Faiss。这些数据库以其处理深度学习模型生成的嵌入向量的能力而闻名,并促进了相似性搜索和AI应用。向量数据库已经成为AI系统的基石技术。 向量是多维空间中数据的数字表示。每个向量都是一个数字数组,其中每个数字代表数据的一个特定特征或属性。在LLM中,使用的向量被称为嵌(embeddings)。它们捕捉了给定数据片段的语义。嵌入的功能非常强大,因为它们可以应用数学和统计技术来分析、比较和处理数据,而这是单靠文本无法做到的。例如,可以通过计算找到与向量数据库中给定输入文本最相似的文档。 之所以要