在数字化转型的浪潮中,大语言模型(以下统称LLM)已成为企业技术栈中不可或缺的智能组件,这种强大的AI技术同时也带来了前所未有的安全挑战。它输出的内容如同双面刃,一面闪耀着效率与创新的光芒,另一面却隐藏着"幻觉"与不确定性的风险。此类"高度自信的错误"比明显谬误更危险,因为它们伪装成可靠信息,传统信任模型在面对高度智能化的AI系统输出时,正面临着严峻的适应性挑战和局限性。
1、LLM 输出处理风险
想象一下,你刚刚聘请了一位博学多才的新员工。他懂多国语言,能写代码,能分析数据,还能写诗作画。听起来完美,对吧?但这位新员工有个问题:他时不时会"口无遮拦",可能会不经思考地泄露公司机密,或者在公共场合说些不恰当的话。这位"员工"就是你的 LLM,而它的"口误"可能会让你的企业付出惨重代价。OWASP 在其 LLM 应用程序 Top 10 风险榜单上,将不安全的输出处理列为关键漏洞。这一漏洞源于LLM生成的输出内容传递到下游组件或者呈现给用户之前,未对其进行充分验证、清洗和处理。
当 LLM 生成的内容未经适当审查就被直接使用时,用户实际上是在玩一场危险的俄罗斯轮盘赌。这些"口误"可能会变成:
跨站脚本攻击(XSS):就像是 LLM不小心在你的网站上涂鸦了恶意代码,访客一点击就被感染。
幻觉(Hallucination):想象 LLM在周一准确地完成一份季度报告,却在周二突然热情洋溢地宣布"地球是平的",还引经据典作为佐证。
服务器端请求伪造(SSRF):LLM误把内部网络的地图分享给了外部访客。
权限提升:LLM好心地给普通用户提供了管理员指令的"备忘录"。
远程代码执行:最危险的"口误",LLM不经意间为黑客提供了一把打开你服务器的万能钥匙。
这些漏洞往往源于一个看似合理但实际危险的假设:"LLM生成的内容应该是安全的",开发人员经常忽视强大清洗机制的必要性,或者高估了模型的"自我约束"能力开发人员经常忽视强大清洗机制的必要性,或者高估了模型的"自我约束"能力。常见的不安全输出漏洞与传统Web安全有较多重叠之处,下面结合具体案例进行分析。
2、解码AI的危险独白
(1) "善变的演员":提示注入与输入操纵
提示注入是一种数字版的"社会工程学",攻击者通过巧妙设计输入内容,让 LLM"越狱"——突破其原本设定的安全边界。这就像是黑客找到了 AI 的"后门密码",能让它执行原本不允许的操作。
虽然现代 LLM 通常会抵抗这种简单的尝试,但更复杂的技术已经被开发出来。研究表明,某些特定的"对抗性后缀"几乎可以百分百地绕过主流 LLM 的安全机制,就像是找到了安全系统的"万能钥匙"。
风险因素包括:
-
输入验证的"筛子":许多系统对用户输入的验证就像是一个漏洞百出的筛子,无法拦截精心设计的恶意提示。
-
上下文管理的"健忘症":LLM 在处理长对话时容易"忘记"早期设定的安全约束,给了攻击者可乘之机。 -
过度依赖 LLM 的"自律":仅仅依靠模型内置的安全机制,就像是把家门钥匙藏在门垫下,看似方便实则危险。
(2)"贪吃的信息收集者":过度依赖外部数据和 RAG
现代 LLM 越来越依赖 RAG(检索增强生成)技术来提供最新、最准确的信息。
然而,这种依赖也带来了新的风险维度。如果 RAG 系统从不可靠的来源检索信息,或者被"数据投毒"攻击所影响,LLM 可能会自信满满地输出错误或有害信息,就像是一个被错误资料误导的专家。
风险因素包括:
-
数据来源的"不设防":对外部数据源缺乏足够的审查,就像是在不检查食材来源的情况下制作食物。
-
实时验证的"缺席":没有实时验证机制来确认数据的准确性和安全性,等同于在没有质检的情况下生产产品。
-
集成不良的"松散接口":检索系统和 LLM 之间的集成不良,就像是两个部门之间缺乏有效沟通,导致重要信息被错误传达。
ConfusedPilot就是一种专门针对广泛使用RAG系统的攻击手法,攻击者只需要具备向组织的文档库添加文件的基本权限,就能通过在文档中嵌入精心设计的"指令字符串",操纵AI的响应内容。与传统安全中的SQL注入类似,文档中的特定字符串被AI系统错误地解读为"指令",进而导致响应可能被错误地归因于合法来源,增加其可信度。这种攻击的危害不仅在于它能改变AI的输出,更在于它能够绕过现有的大多数安全措施,因为从系统角度看,这些文档是"合法"添加的。
(3)梦游的数字大脑:AI幻觉与不确定性解析
大模型安全语义下的幻觉从技术分类角度可以分为两种类型:
上下文内幻觉:指模型输出与提供给它的上下文或源内容不一致。例如,当你向模型提供一篇文章并要求其总结时,如果总结中包含文章中不存在的内容,就属于上下文内幻觉。这类幻觉相对容易检测,因为我们可以直接将输出与给定的上下文进行比对。
外在幻觉:指模型输出与其预训练数据集中的世界知识不一致。这类幻觉更难检测,因为预训练数据集规模庞大,无法为每次生成都进行完整的知识冲突检查。如果将预训练数据看作是"世界知识的象征",这本质上是在要求模型输出必须是事实性的,可以通过外部权威知识源验证。
在准确率要求非常高的场景下幻觉是不可接受的,比如金融领域、医疗领域、能源领域等。幻觉现象背后隐藏着一个更深层次的技术问题——模型不确定性。从本质上讲,LLM是一个庞大的概率预测系统,它的任务是:给定前面的文字,预测下一个最可能出现的词。
虽然幻觉问题可能无法完全消除,目前已开发出多种有效的缓解策略来对抗幻觉:
检索增强生成(RAG):将LLM与外部知识库结合,使模型能够"查阅"事实而非仅依赖参数记忆。
不确定性显式量化:训练模型输出置信度分数,并在低置信度时主动表达不确定性,或者同时给出多个LLM的结果与置信度分数给终端用户。
对抗训练:通过故意训练模型识别和拒绝生成虚假信息,增强其区分事实与非事实的能力。
3、案例研究
案例1: Vanna.AI 命令执行漏洞
Vanna.AI 是一款开源AI工具,在Github上拥有13.9K stars,旨在简化与 SQL 数据库的交互。通过自然语言处理技术,用户可以用日常语言提问,Vanna.AI 会自动将这些问题转换为 SQL 查询,并返回相应的数据结果。
很容易联想到,将LLM直接联入SQL查询可能会导致严重的SQL注入问题,而且Vanna提供了数据可视化功能,在执行SQL查询后,Vanna会将结果通过Python 的图形库Plotly以图表形式呈现结果。Plotly代码是由LLM Prompt与代码评估动态生成的,通过类似SQL注入的技巧可以绕过系统的预定义约束,从而实现完整的 RCE。
下载项目,跟踪到ask方法,可以看到如果visualize被设置为True,则plotly_code字符串将通过 generate_plotly_code 方法生成,该方法会调用 LLM 以生成有效的 Plotly 代码,如下所示:
submit_prompt函数负责通过包含用户输入的Prompt来生成代码,然后将代码传递到Python的exec方法中,该方法将执行由提示生成的动态 Python 代码。
复杂问题简单化,主要能控制传入参数并正确格式化到generate_plotly_code中,便能实现RCE。
案例2: Manus 越狱漏洞
近期,AI 领域出现一款备受瞩目的智能体——Manus。它被认为是 Deepseek 之后又一匹“当红炸子鸡”,迅速在技术社区中引起广泛关注,其邀请码甚至被炒十万元。
尽管该系统在技术实现上展现了不少创新,但其安全设计却暴露出了严重的问题。近期,有用户报告称,通过简单的指令请求,就能获取Manus系统的内部工作机制、事件流处理方式、代理循环逻辑等敏感信息。
获取难度极低:相比于其他系统,获取Manus的系统提示不需要复杂的"越狱"技术,只需通过自然语言询问系统其内部结构和工作方式。这表明系统对提示注入攻击几乎没有任何防御措施。
泄露信息的完整性:泄露的信息包含了完整的系统架构、工具使用逻辑、文件处理规则、浏览器交互方式以及事件处理流程。这些信息足以让攻击者理解系统的决策流程和限制条件。
模块化架构暴露:泄露显示Manus使用了一个包含事件流(Event Stream)、计划者(Planner)、知识(Knowledge)和数据源(Datasource)等多个模块的架构,这种设计本身很先进,但当其细节被暴露后,却成为了攻击者的路线图。
这类信息泄露极大地降低了系统的安全性,因为攻击者可以基于这些信息设计针对性的提示注入,从而更容易绕过系统的安全限制。
案例3: ChatGPT 混淆代理漏洞
随着LLM应用生态的快速发展,各种插件大大扩展了AI助手的能力边界。然而,强大的功能扩展也带来了新的安全风险维度。2023年6月,安全研究人员揭示了ChatGPT插件系统中的一个严重安全漏洞,这一漏洞允许攻击者通过恶意网站窃取用户的私有代码,甚至操纵用户的Github仓库权限。
这一安全事件的核心问题是所谓的"混淆代理"(Confused Deputy)问题,这是一种特殊类型的权限提升漏洞。在LLM插件生态系统中,插件可以作为用户的代理,访问用户授权的第三方服务(如Github、Google Drive等),而插件在处理请求时缺乏有效的身份验证和权限控制,从而可能被攻击者利用执行未授权操作。
插件获取的 OAuth 令牌在整个会话期间保持有效,没有基于操作类型的动态校验,仅验证用户初始授权,而不验证每个后续操作是否符合用户意图。而插件 API 调用基于 HTTP,缺乏操作连续性验证,无法检测到异常操作序列,LLM平台本身缺少输入源验证机制,允许非用户输入的内容触发与用户输入相同的执行路径。这种多层次的技术缺陷组合,最终导致攻击者能够通过注入恶意提示,利用用户已授权的 OAuth 插件执行未经用户确认的高权限操作,形成了一个完整的混淆代理漏洞利用链。
"零信任":AI时代的新安全范式
现代网络安全架构已经从传统的边界防御模型转向了零信任网络访问(ZTNA)模型。这一理念在LLM应用安全中同样适用,但需要进一步扩展为双向零信任原则:即对输入和输出实施同等严格的验证机制。这种方法论要求在整个LLM交互流程中实施持续性认证、最小权限原则和多因素验证。
在AI技术的浪潮中,安全问题既不应被夸大为末日威胁,也不能被低估为小概率事件。通过建立健全的零信任机制,企业可以释放LLM的创新潜力,同时将风险控制在可接受范围内。
来源:默安科技
★
★ ★ ★
★
原文始发于微信公众号(信息安全与通信保密杂志社):大模型与安全|第一弹:AI防口误指南之LLM输出安全实践
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论