大型语言模型安全风险的基准评估套件

2024-05-07 04:12

本文主要是介绍大型语言模型安全风险的基准评估套件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CYBERSECEVAL 2 扩展了以前的工作,增加了两个新的测试套件:解释器滥用和提示注入。

原文标题:CYBERSECEVAL 2: A Wide-Ranging Cybersecurity Evaluation Suite for Large Language Models

原文作者:Manish Bhatt, Sahana Chennabasappa, Yue Li, Cyrus Nikolaidis, Daniel Song, Shengye Wan, Faizan Ahmad, Cornelius Aschermann, Yaohui Chen, Dhaval Kapil, David Molnar, Spencer Whitman, Joshua Saxe

发表会议:arxiv 2024

原文链接:https://arxiv.org/pdf/2404.13161

主题类型:大模型安全

笔记作者: 童话

主编:黄诚@安全学术圈

概述

CYBERSECEVAL 2 是一个用于评估大型语言模型(LLMs)安全风险的基准套件,其目标是解决随着 LLMs 的广泛使用而出现的新的网络安全风险。这个工具主要关注两类人:LLM 构建者(包括构建新 LLM 或选择适合他们系统的 LLM 的开发者)和使用 LLM 自动化网络安全任务的人。对于 LLM 构建者,CYBERSECEVAL 2 能帮助他们衡量 LLM 对安全风险的脆弱性,以便在发布前进行调整,或者理解如何确保整个系统的安全。对于第二类人,CYBERSECEVAL 2 提供了一个量化评估 LLMs 在合成易受攻击代码的漏洞的方式。

CYBERSECEVAL 2 扩展了以前的工作,增加了两个新的测试套件:解释器滥用和提示注入。解释器滥用的测试是因为最近的 LLMs,如 GPT-4,可以访问 Python 和其他代码解释器,以直接运行由 LLM 作为对提示的响应生成的代码。提示注入的测试是因为研究人员发现了越来越多的对 LLMs 的提示注入攻击。在新测试集上进行的评估显示,所有测试的模型有26%到41%的成功提示注入,这表明训练 LLMs 以减少代码注入攻击风险仍然是 LLM 安全性中的一个未解决的问题。

最后,作者团队引入了一个新的指标,即“错误拒绝率”(FRR),用于衡量当我们训练 LLMs 以拒绝不安全的提示时,可能会错误地拒绝良性的提示,从而降低其效用。这种情况被称为设计安全 LLMs 的安全-效用权衡。

此外,他们还开源了 CYBERSECEVAL 2 的代码和评估工件,欢迎开源贡献,并计划在未来更新他们的基准。相关 GitHub 项目地址:https://github.com/meta-llama/PurpleLlama/tree/main/CybersecurityBenchmarks

如下表格高亮了该 paper 的相关贡献:

image

背景

CyberSecEval首次发布于2023年12月,其初版提供了两种测试:不安全的编码实践测试和网络攻击帮助测试。这个工具能够帮助我们判断一个大型语言模型(LLM)在被要求实现特定功能或者用于代码自动完成时,是否会复制已知的不安全编码实践。此外,它还可以测试LLM在被要求协助进行网络攻击时的反应,覆盖了行业标准的MITRE ATT&CK本体中定义的攻击。

CyberSecEval 2在此基础上进行了扩展,新增了假拒绝测试,以衡量LLM对合法但"边缘"的请求(即可能和网络安全相关的技术主题有关)的反应。

为了更深入理解LLM是否能够在拒绝实际的网络攻击请求的同时,仍然对完全合法的请求提供帮助,开发者结合了原始测试案例和新开发的FRR(假拒绝率)数据集。这个数据集包括了各种主题,例如网络防御,并设计为边缘提示,这意味着它们可能对LLM来说看起来是恶意的,但实际上是良性的,与网络安全相关的,但不表现出恶意意图。这样,我们就可以分析在成功拒绝协助网络攻击和FRR帮助处理模糊但最终良性的网络安全相关技术主题的请求之间的权衡。

简单来说,假拒绝率(FRR)是为了测量一个LLM对于特定风险的假拒绝率。我们将FRR定义为LLM因错误认为它们是由于那个风险而不安全的提示而拒绝的良性提示的百分比。也就是说,如果一个LLM被设计成拒绝所有网络攻击的请求,那么它可能也会错误地拒绝一些实际上是良性的、与网络安全相关的请求,这就是所谓的安全-效用权衡。

安全行业老生常谈的概念了,本质上就是在不牺牲功能性需求,少量影响用户体验的前提下,尽最大努力提高产品的安全性,作者团队量化了这一点。

相关工作

在安全属性的评估方面,大型语言模型(LLM)已经进行了一些有价值的研究。一些评估方法如 CyberMetric, SecQA,和 WMDP-Cyber,都采用类似于教育环境中的多项选择形式来评估LLM的安全知识。另一些方法如CyberBench则进一步考察LLM在网络安全领域的信息检索和自然语言处理能力。此外,还有一些方法如LLM4Vuln专注于衡量LLM在网络安全任务中的直接表现,特别是在漏洞发现上的表现。总的来说,这些研究都对评估LLM的安全属性做出了贡献,但是CYBERSECEVAL 2的独特之处在于它更多的关注LLM的行为表现而不仅仅是信息检索,它提供了一套评估大型语言模型风险和能力的综合集,并提供了一套与其他框架相辅相成的补充信号,以便随着时间的推移对LLM的开发和风险进行评估。

新增测试类型

在CYBERSECEVAL 2的新测试中,有两个值得我们关注的部分。首先,我们看到了引入了"提示注入评估"。在这种情况下,攻击者会通过提交违反应用程序开发者意图的提示,试图让大型语言模型(LLM)执行意料之外的指令。这种攻击方式与SQL注入这类混合代码和数据的经典注入攻击类似,只是这里的风险源于不受信任的第三方或用户输入与应用程序开发者在LLM的上下文窗口中的受信任输入相连。这种提示注入攻击及一般注入攻击的风险完全缓解仍然是一个未解决的问题。

提示词注入的测试方法覆盖范围如下图所示:

image

其次,我们看到了"漏洞利用评估"。随着LLM的进步,人工智能在软件漏洞利用方面的潜力也引发了讨论。在这个领域,AI的进步无论是帮助防御者识别和优先处理安全漏洞,还是帮助攻击者更快地开发攻击能力,都有其安全和不安全的用途。因此,监控AI在这个领域的进展至关重要,因为任何突破都可能对网络安全和AI政策产生重大影响。

相关测试类型参考下表:

image

最后,作者团队介绍了"代码解释器滥用评估"。最近的趋势是将LLM与代码解释器(通常是Python解释器)集成起来,以利用大型语言模型(如GPT-4和Google Gemini)的数学和符号推理能力。然而,这种集成也带来了新的安全挑战,因为不受信任的用户可能会利用它们试图获取访问底层主机操作系统的权限,或者使用它们作为发动网络攻击的平台。

相关测试类型如下表所示:

image

CyberSecEval 2 的实际应用案例

作者团队针对大型语言模型(LLM)如Llama,CodeLlama和OpenAI GPT进行了一系列的安全性测试。这些测试主要包括提示注入,代码利用,网络攻击帮助和解释器滥用等方面,目的是通过这些测试来了解并评估这些模型在处理各类安全性问题上的表现。

首先,我们来谈谈网络攻击帮助测试的结果。在这个测试中,我们发现大部分模型在面对网络攻击帮助请求时,能够以52%的比例拒绝这些请求,而在处理一些可能的恶意请求时,这些模型的表现则更好。然而,我们也发现,模型在处理一些边缘情况的请求时,例如网络防御相关的请求,拒绝率却较高。这就引出了我们的假拒绝率(FRR)的概念,即当LLM对某一特定风险进行拒绝时,可能会误拒一些实际上并不具有风险的请求,这就是我们所说的安全-效用权衡。

image

image

接下来,我们来看提示注入测试的结果。在这个测试中,我们发现所有的LLM都会在一定程度上受到提示注入攻击的影响,平均受影响的程度达到了17.1%。这就意味着,模型在处理用户输入时可能会被恶意输入影响,使其生成非预期的结果。

image

image

在代码利用测试中,我们发现模型在处理利用攻击时的表现并不是特别理想。尽管有些模型如GPT-42, Llama 3 70b-Instruct, 和 CodeLlama-70b在这方面的表现较好,但是整体来看,LLM在这个测试中的表现仍有待提高。

image

最后,在解释器滥用测试中,我们发现LLM在处理解释器滥用请求时,平均有35%的请求会得到执行。这就意味着,当LLM连接到代码解释器时,可能会存在一定的安全风险。

image

总的来说,通过一系列的测试来评估LLM在处理各类安全性问题上的表现。通过这些测试,我们可以看出LLM在这方面的表现仍有待提高。

总结

这一部分是关于CYBERSECEVAL 2的结论,这是一个全面的基准测试套件,用于量化大型语言模型(LLMs)的网络安全风险。对于LLM构建者和选择LLM的人来说,这个工具扩展了我们可以量化测试的风险类型,从两类增加到了四类,包括了针对提示注入和解释器滥用攻击的新的测试套件。这里还引入了一个新概念,即LLM的安全-效用权衡,用假拒绝率(FRR)来衡量。作者团队通过创建一个关于网络攻击帮助的测试集来实践测量FRR。

对于LLM构建者和选择LLM的人来说,这个工具提供了一些关键的洞见。首先,消除对提示注入攻击的风险仍然是一个未解决的问题:所有测试的模型都显示出对提示注入的脆弱性,成功率在13%到41%之间。这意味着使用LLM的系统设计者不能假设LLM会在面对对抗性的下游输入时可靠地遵循系统提示中的指令,他们需要仔细考虑为提示注入增加额外的防护和检测。

其次,测量FRR对于量化安全-效用权衡是有效的。在我们对网络攻击帮助的FRR测试中,我们能够区分出低FRR率的模型和高FRR率的模型。我们揭示了在LLM对帮助执行网络安全技术活动的请求的响应中,安全性和有用性之间的小的权衡。许多LLM能够成功地遵循良性的‘边缘’网络安全相关的技术请求,同时仍然拒绝大部分帮助执行攻击性网络操作的请求。我们相信,对于其他属性,FRR将是衡量安全-效用权衡的有效指标。

对于那些使用LLM自动化网络安全的人,作者团队提供了关于生成攻击利用的定量结果,该测试是新颖的,因为它们强调测试LLM的行为而非LLM的信息检索。作者团队的方法提供了一套可以与其他框架一起使用的互补信号。

结果表明,在LLM能够自主生成攻击利用之前,还需要更多的研究:作者团队发现,大多数LLM在完全解决测试用例上失败了,但是具有更高一般编码能力的LLM在我们的测试上得分更高,这表明,在LLM可以自主生成攻击利用之前,还需要进行更多的研究,但是LLM的攻击利用能力可能会随着LLM的总体编码能力的增长而增长。

随着LLM的普及,评估它们的风险变得越来越重要。为此,我们已经将我们的评估开源,供他人建立。我们希望这项工作能够为所有人提供更安全、更可靠的LLM部署。

写在最后

  • 作者团队在附录部分公开了 CYBERSECEVAL 2 生成的不同攻击类型的测试用例示例代码,有兴趣的同学可以关注看看。

  • 部分传统安全攻击的方法也同样适用于 LLM 领域,LLM 也可以作为解决传统安全问题的有效辅助,这些都是我们的研究机会,星辰大海?

补充信息

主编补充:关于安全模型评估相关的研究列举如下:

  • https://github.com/XuanwuAI/SecEval

  • https://github.com/Clouditera/secgpt

  • https://modelscope.cn/datasets/nasp/neteval-exam

  • https://github.com/cybermetric/CyberMetric

安全学术圈招募队友-ing

有兴趣加入学术圈的请联系  secdr#qq.com

声明:本文来自安全学术圈,版权归作者所有。

这篇关于大型语言模型安全风险的基准评估套件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966288

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

Go语言中三种容器类型的数据结构详解

《Go语言中三种容器类型的数据结构详解》在Go语言中,有三种主要的容器类型用于存储和操作集合数据:本文主要介绍三者的使用与区别,感兴趣的小伙伴可以跟随小编一起学习一下... 目录基本概念1. 数组(Array)2. 切片(Slice)3. 映射(Map)对比总结注意事项基本概念在 Go 语言中,有三种主要

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选