大语言模型技术和应用正在迅猛发展。一方面,大模型解放了社会生产力;另一方面,它们也带来了不断增加的内容安全风险。作为一项全新的技术,大语言模型的风险会随着时间逐渐显现。
在传统的安全领域,为了应对快速变化的网络攻击并减少来自未来的风险,Gartner引入了CTEM(持续威胁暴露管理)。借鉴Gartner的思路,我们提出了ExpAttack框架,这是一种“可成长”的系统,能够持续监测和追踪大语言模型的越狱风险,本议题将分享ExpAttack框架相关的技术细节。
一起来回顾下 Knight 在SDC2024上发表的议题演讲:《ExpAttack:大语言模型越狱风险持续追踪框架》
多年实战攻防经验,多次参加全国HW、各省市HW,并参与过深信服src、字节src、GeekCon分享。目前主要研究大语言模型安全以及大语言模型赋能安全。
*以下为速记全文
本次议题共分为四章。第一章将简要介绍大语言模型的风险,帮助大家全面了解大语言模型的风险概况,并详细阐述大语言模型的越狱风险。第二章将介绍当前大语言模型越狱风险管理的现状,分析现有风险管理中存在的问题,进而提出我们的攻击者视角下的大模型越狱风险管理框架。第三章将分享如何通过大模型自动化实现该框架,并介绍我们实现的名为 ExpAttack 的越狱风险持续追踪框架。最后一章将对整个工作进行总结,并对未来的发展方向进行展望。
从左侧来看,相关问题在之前的议题中已经介绍过,此处不再详细阐述。例如,不安全的插件设计、敏感数据泄露、不安全的输出控制导致的安全问题,以及之前提到的 HuggingFace、LangChain 的供应链漏洞等。这些问题都可以在传统安全领域找到相应的解决方案或类似问题的处理方法。
然而,随着问题向右侧延伸,它们可能更偏向于内容安全问题,与传统安全的差异也会更大。下面简要介绍这几种风险。
最后一个问题是我们今天即将讨论的大模型越狱,我们可以先简单了解一下越狱攻击可能带来的危害。
2、大模型越狱的原因
在了解了大语言模型越狱的危害之后,我们进一步探讨为什么大语言模型会被越狱。2023年,有一篇论文对此进行了详细解释,大家可以根据论文标题自行查阅。论文主要提出了两个观点:目标竞争(Competing Objectives)和不匹配泛化(Mismatched Generalization)。
首先,目标竞争是指大语言模型会针对可能相互冲突的多个目标进行训练。这就导致了大模型产生像“人”一样的内在冲突。例如,大模型本身在设计的时候,肯定是需要服务于人类的,当用户先向模型下达指令“你需要遵循我给你的任何指令”,随后再提出不符合道德或安全规范的请求时,模型需要在遵循用户指令和遵守内部安全策略之间做出权衡,这就导致了目标之间的竞争。
其次,不匹配泛化涉及大语言模型的“机械性”特征。这与传统安全问题类似,例如,网络应用防火墙(WAF)可能未覆盖某些策略,导致攻击者可以利用这些漏洞进行绕过。同样地,大语言模型在安全训练中未充分考虑到预训练中可能的安全问题,导致攻击者可以通过精心设计的提示来绕过模型的安全限制。
以上两个原因解释了大语言模型被越狱的机制。为了深入了解具体细节,建议大家阅读相关论文。
3、大模型越狱的分类
基于以上两个原因,我们来尝试对大语言模型分个类。最下面的对抗优化是考虑到,还有很多学者的工作是通过将越狱转化为一个反向优化算法问题来实现的。大家在以上关键词后添加个arxiv就能搜到具体的论文了。
首先,在不匹配泛化类别中,绕过安全措施的方法包括:
将自然语言转化为代码进行越狱。
翻转自然语言,例如将“how”转换为“woh”。
将自然语言转换为艺术字或特殊字符形式。
其次,在目标竞争攻击中,这类越狱更类似于社会工程学攻击,具体方法包括:
“Do Anything Now”(DAN)方法,让模型执行任何操作。
让模型进行角色扮演,例如去年的著名“奶奶漏洞”,指示模型扮演已故的祖母,告诉用户Windows的激活码。
前缀注入,即让模型以“好的,我会告诉你怎么做”开头响应,这种引导使模型更倾向于遵循指令,积极输出相关内容。
在介绍完前两个分类后,我们来看最后一个类别,使用算法实现自动化攻击:
PAIR方法:通过让模型改写提示词来进行攻击,随后根据攻击结果优化越狱提示词,反复迭代直到成功越狱。
TAP方法:基于原始攻击提示生成攻击树枝,对可能无效的枝进行剪枝操作,从而筛选出有效的攻击提示词。
GCG攻击:该方法在去年引起广泛关注,它利用贪婪坐标梯度算法进行逐个Token的搜索,找到可能导致越狱的字符。例如,在“如何制作炸弹”后面添加一串未知字符,进而成功绕过安全检测。
1、越狱风险管理难点
大模型越狱风险管理的难点,可以分为外部和内部。
从外部看目前在外部环境中攻击方法是不断在变化的,因为大家看论文也可以看到,从去年到今年,发了很多的越狱相关的论文。另外就是内容安全问题了,每天发生的热点事件都有可能被有心人变成内容安全的问题。
从内部看,在很多企业中,经常会有这几个问题,公司业务和模型都这么多,怎么去做风险验证?传统的安全问题修复目前都有标准流程,通过规则添加、业务推修等方式就可以修复相关问题,但大语言模型怎么去修复呢?大模型相关的问题修复后有这么容易绕过,那怎么去做预防呢?
2、现有的解决方案及不足
对于上面那些难点,许多厂商都给出了相关的解决方案。我们再看一下目前来说个大部分厂商提供的一些解决方案,不同的厂家直接的区别可能更多的是恶意样本库,Prompt攻击模版、还有测试集。但是是这形式会有两个问题点。第一个问题点就是目前大语言模型这些case收集的成本高。无论是测评数据集还是prompt模版,都需要人工去打标筛选,许多prompt模版甚至需要去仔细阅读论文,整个收集过程人工成本较高。第二个问题点就是攻击多样性低,就是恶意样本它们的生成都是通过有限模板进行简单的变异得来的,它和我们实际攻击者的攻击流程会有很大的区别,所以它攻击多样性也比较低,覆盖率比较低。
3、大模型攻击者视角下的越狱风险管理
传统攻击者视角的风险管理
面对这么复杂情况,我们传统安全是怎么解决呢?我们可以通过上图看见传统安全的建设流程,从最开始的时候都是一个漏洞一个漏洞进行手工测试,很快大家可能就会意识到,我们是不是可以开发一个工具对这些漏洞进行自动化扫描、利用,就像Xray、Fscan等。再后来将这些攻击工具进行系统性的分类组合,就实现了攻击面管理。再后来,发现整个攻击面管理主要是在识别攻击面上,没有实现安全风险的闭环。接着就提出了持续威胁暴露管理来动态、持续性的闭环管理安全风险。
大模型攻击者视角的风险管理
借鉴Gartner的思路,我们是否也可以在大模型安全领域进行动态风险管理,来对抗大模型越狱中层出不穷的越狱方法和安全问题,以下将介绍我们的攻击者视角越狱风险管理框架。
1.资产发现
首先,需要梳理清楚当前的大语言模型所处的环境,即明确哪些接口和业务对外暴露,了解外部的攻击面。同时,还需要关注内部业务的内容安全属性。不同的业务类型,对内容安全的要求也不同,例如,情趣用品行业对涉黄的敏感内容的宽容度可能较高。此外还需要对内部模型进行梳理,查看哪些也调用了大语言模型,识别大语言模型的影子资产。这一步旨在全面了解与大语言模型相关的资产状况。
2.情报收集
情报在安全防护中起着至关重要的作用。大部分安全事件的发生往往源于外部已知而内部未知的安全隐患。因此,及时收集和分析情报,能够预先防范潜在的攻击。大模型的情报包括:
3.风险评估
基于收集的情报和内部资产信息,对风险进行评估是下一步的关键。风险评估包括:
风险验证:测试是否存在成功的“越狱”攻击,评估模型被攻破的可能性。
优先级排序:根据不同攻击方法对模型的威胁程度,排序优先级,以合理分配资源,优先修复可能造成重大风险的漏洞。
风控验证:验证现有的风控机制是否合理有效。例如,针对基于聊天的交互模式,针对用户的恶意请求是否有监控能力,监控到多少次恶意请求后,进行防御性回复,防御性回复是否合理。
4.风险修复
大语言模型的风险修复不同于传统的规则引擎形式的漏洞修复。由于模型的概率性特征,风险修复需要大量的数据集支持,主要包括:
恶意响应数据:收集模型在受到攻击时可能产生的恶意响应,用于分析和改进模型的输出策略。
恶意问题集:汇总可能被用于攻击模型的恶意输入,训练模型识别并拒绝这些输入。
正确响应数据:按照合规要求,针对很多涉政的敏感问题,不仅仅强制需要回复,而且还得合理回复。
讲完我们整个攻击者视角的大模型风险管理,我们是不是能做一套自动化系统,来尽可能的自动化风险管理。
为此,我们提出了ExpAttack大语言模型越狱风险持续追踪框架。该框架主要分为三大部分:经验采集、经验评估和经验利用。在经验采集阶段,又细分为两个模块:风险问题转化引擎和论文搜索引擎,这一部分主要通过工程化的手段来进行情报收集。经验评估部分,我们采用了大语言模型增强的强化学习算法,对收集的经验进行评估。最后,在经验利用阶段,我们引入了遗传算法,这一算法之前在字节SRC中做过展示。
1、经验采集-风险问题转化引擎
风险问题转化引擎主要从以下几个点讲:
分块:主要采用阿里之前发布的seqmodel(基于序列的文本分割模型),它先将文本分割成句子级序列标记任务,接着再通过自适应滑动窗口的形式重新生成段落。再完成分割后再进行合并,从而有效防止文本块过小的问题。
索引生成:通过借鉴微软的Graphrag生成的对三元组的抽取。
标签化:通过一些小的bert模型来对数据进行打标过滤,例如二元情感分类模型(Erlangshen-Roberta-330M-Sentiment)。
查询重写:为了让具体的查询能够在数据库命中更多的相似事件,在查询这个接口会对一个问题进行改写,从而生成多个关键查询,来提高最后生成内容的丰富度。
2、经验采集-论文搜索引擎
论文搜索引擎主要从以下几个点讲:
3、经验评估-要求
在之前的章节我们有介绍,整个系统是站在攻击者视角的风险评估,那么攻击者视角的风险评估到底有哪些要求呢?
攻击流程上:需要和攻击者的攻击流程尽可能相似,能尽可能模拟出攻击者的整个攻击链。
优先级评估:能对所有的攻击链,评估出相关攻击链的危害大小。
对风险和方法的覆盖:能尽快多的覆盖攻击方法及相关的风险,模拟更多的攻击场景。
4、经验评估-MCTS-Evaluator算法
为了实现以上三个要求,我们在蒙特卡洛算法上进行修改,提出了MCTS-Evaluator算法来对经验进行评估,后面我将介绍我在该算法上进行了哪些更改,以尽可能实现上面三个要求。
(1)定义搜索空间
我们定义了叫做Experience Level的搜索空间,相比于传统的Token Level和Prompt Level的搜索,我们的搜索主要是通过经验来实现,会拥有更好的泛化性和稳定性。它来自于论文数据库,或者公开的越狱数据集,他的格式是。其中experience是一句对模型防护弱点的简短描述,example是一个相关的例子。Experience为了让后续的生成具有很好泛化性,example是为了让一些成功的经验具有很好的稳定性。
(2)扩展函数设计
通过对攻击者的攻击行为观察,我们发现我们的整个攻击行为,是在不断通过外部环境的反馈进行两种变化,一个是不同经验的组合,一个是一种经验的变异。另外,为了提高攻击效率,增加攻击多样性,我们还添加了一个剪枝操作,他会将每轮生成的攻击样本和历史样本做余弦相似度匹配,去除那些相似度较高的攻击样本。
(3) 奖励设计
这块主要借鉴GPTFuzzer和PathSeeker中的思路。我引入了GPTFuzzer中的路径惩罚概念,路径越长惩罚越重,来筛选出攻击路径短的攻击方法(它的优先级更高)。针对攻击结果,除了成功与失败的奖励外,还引入了PathSeeker的信息量奖励,来奖励那些答案和问题相关度较高的响应(它的优先级较高)
5、经验利用
经验的利用方面,我们采用了之前在字节分享的基于遗传算法的自动化越狱攻击,这里就不详细讲解了。
对于如何用大模型来解决大模型的安全问题,我们提出的我们的设想。该流程主要包括以下几个步骤:
在整个流程中,存在以下主要挑战:
高数据质量要求:安全对齐所需的数据不仅包括攻击样本,还涉及多种类型的正常样本。对数据的质量要求很高。
评估维度多:安全对齐后,模型可能在多个维度上受到影响,如过度拒绝用户请求、推理性能下降以及对业务流程的潜在影响。因此,需要一个全面且丰富的评估系统,能够覆盖所有关键评估维度,确保模型在各方面均表现良好。
模型优化复杂:当评估发现问题时,确定优化方向(例如调整数据集配比或改进算法)需要丰富的专业知识和经验。这一过程可能需要多位专家的协同合作,以有效识别问题根源并实施相应的优化措施。
2、大模型越狱的未来
从危害方面:随着AI手机、AI PC、具身智能的发展,大模型越狱能造成的危害也就越来越大。可以想象如果机器人真的具有了“思想”,那么越狱就是打开潘多拉魔盒的钥匙了。
在发展方面:随着大语言模型的能力越来越强,大模型的越狱可能会和社会工程学越来越像。
峰会议题PPT及回放视频已上传至【看雪课程】:https://www.kanxue.com/book-leaflet-195.htm
【已购票的参会人员可免费获取】:我方已通过短信将“兑换码”发至手机,按提示兑换即可