作者:Atone,混元安全防守团队成员
随着大模型应用的逐步发展,出现了一种新型的攻击手法,它的隐蔽性强且难以检测。本文将探讨如何有效检测此类攻击,并在实际战场中的有所成效。
一、新的安全战场
由于大模型独有的对话业务特性:通过大量的数据训练,学会了从用户输入的 Prompt 中理解和生成语言。恶意 Prompt 攻击正在成为新的安全威胁战场。
攻击者可以通过精心设计的恶意 Prompt 来操纵模型行为,进而诱导模型调用插件产生错误的输出、执行恶意命令或泄露各类敏感信息,这种恶意 Prompt 攻击的隐蔽性极强,且通过传统的安全检测能力难以察觉。
(图1:大模型时代下面临的安全威胁分类)
以下简单列举几个典型案例,由恶意 Prompt 攻击引发的大模型安全事件:
1.1 借助大模型“黑掉”你的电脑
近期,某海外大厂发布了前沿大模型的新功能 —— “Computer Use“ ,这是一个可以让大模型控制计算机的神奇能力。它通过截取屏幕截图来做出决策,可以运行 bash 命令、控制鼠标键盘等操作,听起来很神奇吧?但同时也带来了很大的安全隐患,那就是恶意 Prompt 攻击。
只需要准备好三样东西就可以黑掉你的电脑。接下来我们来看一下黑客是如何借助大模型实现的:
1、 准备好 C2 Server(黑客控制的服务器)、恶意文件、下载页面(让大模型下载木马文件);
2、 诱导大模型模仿正常用户,点击下载恶意文件;
3、 利用大模型查找、修改权限以运行恶意文件;
4、 用户电脑在大模型的帮助下成功“上线”(被黑客获取机器权限)。
(图2:绕过某大模型产品的应用层限制,诱导模型下载恶意文件)
(图4:大模型在本地查找并运行恶意文件)
(图5:用户电脑被黑客远程控制并查看目录)
1.2 “唾手可得”服务器权限
黑客通过 Prompt 注入 + 代码变形 + 字符串编码拼接等攻击手法组合利用,成功绕过应用层的限制,从而让大模型应用在后端容器中执行任意代码或者命令,拿到对应服务器权限。
(图6:绕过某大模型产品的对话层限制,成功执行系统命令)
(图7:利用某大模型产品工作流,成功获取云服务凭证)
1.3 “手到擒来” 用户隐私数据
黑客通过散布含有恶意配置的钓鱼 URL 或文件,利用大模型的长期记忆(Memory Update)功能漏洞,植入虚假记忆或恶意指令。用户在对话中触发这些链接或文件后,其对话内容会被恶意配置,导致后续对话记录被拼接成 Markdown 图片链接泄露到外部URL,从而实现对用户隐私的窃取。
(图8:某大模型产品泄露用户对话数据)
(图9:某大模型产品泄露用户对话数据)
二、新战场的布防 2.1 大模型方案的优势
传统Web应用防火墙(WAF)因其局限性,无法理解自然语义的目的,导致真实攻击事件频频漏检,难以应对新型威胁,比如恶意用户在进行攻击测试,由于 Prompt 的内容未命中WAF正则关键词,导致该攻击被识别成正常请求,未被拦截。
( 图10:真实攻击漏报事件)
基于行业内三种通用解决方案进行不同方案优劣势进行对比, 发现在检测外部恶意 Prompt 攻击场景下,大模型在泛化能力、检出效果、维护成本上均优于另外两个方案,详细情况如下表:
可选方案
基于大语言模型
基于传统机器学习引擎
基于正则引擎
方案说明
基于大模型海量知识底座,利用Prompt调优进行恶意攻击场景泛化识别。
利用机器学习算法对大量的正常和恶意流量进行分析,从而自动学习并识别恶意流量模式,然后对流量进行分类和阻止。
基于专家经验针对各种攻击类型提炼的特征编写正则,对流量进行正则特征匹配检测。
方案优点
维护成本低
有安全知识基础
场景泛化能力极强
无需规则维护
能够自我学习,一定程度可以应对未知威胁
开发成本较低
方案缺点
偶尔存在模型幻觉、分析结论不稳定情况
对数据量和质量要求较高,不同攻击类型需要单独训练,泛化能力较差,误报率较高
正则维护繁琐,且检测模式单一,无法应对未知威胁
检测效果
维护效率
泛化能力
⭐️⭐️⭐️⭐️
⭐️⭐️⭐️⭐️
⭐️⭐️⭐️⭐️⭐️
⭐️⭐️
⭐️⭐️
⭐️⭐️
⭐️⭐️
2.2 大模型 Cosplay 派对侦探
通过聚类分析恶意攻击样本和拦截日志,发现恶意 Prompt 攻击的核心场景在于:如何深入分析提问者的提问实际场景与提问意图。而大模型在这个分析场景下存在天然的优势(超强推理能力、语言理解能力),当仁不让的成为了安全运营分析的最佳助手。
借鉴过往经验设计了一个更有性价比的流程。想象一下,在一个派对上,你要辨别哪些宾客可能是不受欢迎的捣蛋鬼,那么的流程如下:
1)首先,用一份“不受欢迎名单”筛选出可疑人物,初步过滤掉正常行为的来宾。(恶意攻击特征初筛)
2)接着你请来一位侦探朋友,他凭借出色的观察力和理解力,进一步识别出潜在的麻烦制造者。(大模型检测)
3)最后,只有侦探依然怀疑是捣蛋鬼的宾客,才需要你亲自处理。(人工研判处置)
(图11:恶意 Prompt 检测分析流程)
这个过程就像一个漏斗,逐步筛选出捣蛋鬼。但有时侦探也会粗心大意,所以你会使用一些策略和行为标签来提高他的准确性,确保派对顺利且尽可能少的出问题。
同样的,也可以通过黑白样本多维度验证,结合提示词工程(Prompt Engineering)以及通用攻击子场景归类拆分,以帮助这位侦探更好地识别出恶意的捣蛋鬼。具体包括:
1)通用攻击场景拆分:根据现网样本日志,划分六大类场景,细化 30+ 攻击子场景,让大模型利用其语义理解能力和网络安全知识储备,快速判断用户行为并根据场景归类打标。
2)Prompt Engineering:通过构造 Prompt 来引导大模型如何进行打标和分类。若发现大模型识别错误、子场景描述模糊或是不准确的情况,通过对大模型的回答内容的分析,反哺运营同学对子场景精细化定义与阐释,闭环场景分类的优化。
除此之外,为应对复杂 Prompt 的人工审核漏判/误判问题,引入大模型辅助安全运营,自主识别并提供解释,配合人工快速复核。同时,利用企业微信机器人来推送恶意 Prompt 至群内,便于运营人员迅速研判和处理。
2.3 老生常谈的沙箱加固
随着各种功能丰富的插件以及工作流的引入,一种常见的攻击方式是通过恶意 Prompt 来调用大模型运行恶意代码,通过插件实现服务器入侵,直接威胁到用户数据以及业务敏感文件。
( 图12:某大模型产品遭受 Prompt 攻击泄露内部云账号密码)
因此,除了前端恶意 Prompt 的检测,后端的组件加固也十分重要。通过容器加固后,能实现网络、多用户隔离及容器逃逸防护,确保用户代码执行环境与业务环境完全隔离,实现较为安全的代码执行环境。
三、总结
恶意 Prompt 攻击仅仅是大模型时代安全挑战的冰山一角。安全从业人员面临的不仅是技术难题,更是一场持久的安全攻防战。
安全不是一蹴而就的工程,而是一个需要持续投入、不断更新的过程。我们要正视当前的挑战,同时也要未雨绸缪,为未来可能出现的新型威胁做好准备。
这条安全之路没有终点,期待与诸位同僚一起,不断前行。
原文始发于腾讯技术工程:黑掉大模型?恶意 Prompt 攻击成无解之谜?