报告分享 | 大语言模型安全和隐私研究综述
大语言模型的强大能力和广泛应用引发了大量的相关研究,尤其是其在安全和隐私方面所带来的问题。本报告以 2024 年发表在《High-Confidence Computing》期刊上的一篇综述论文为核心,介绍大语言模型安全和隐私研究概况。
1 背景和动机
大型语言模型(Large Language Model,LLM)是具有大量参数且执行预训练任务(例如,掩码语言建模和自回归预测)的语言模型,它通过对来自大量文本数据的语义和概率进行建模,来理解和处理人类语言。例如 ChatGPT 和 Bard,已经彻底改变了自然语言的理解和生成,它们拥有深厚的语言理解能力、文本生成能力、上下文意识和解决问题的能力,广泛应用于搜索引擎、客户支持、翻译等诸多领域。
有许多 LLM 在 2023 年开发并发布,非常受欢迎。著名的例子包括 OpenAI 的 ChatGPT,MetaAI 的 LLaMA,Databtick 的 Dolly。LLM 在安全界越来越受欢迎,截至 2023 年 2 月一项研究报告称,GPT-3 在一个代码存储库中发现了 213 个安全漏洞(只有 4 个被证明是假阳性)。相比之下,市场上领先的商业工具只检测到了 99 个漏洞。最近,一些由 LLM 驱动的安全论文出现在了著名的会议上。例如 2023 年的 S&P 会议,Pearce H.等人进行了一项商用 LLM 的调查,表明大模型能够成功解决安全漏洞环境下的代码合成场景。2024 年的 NDSS 会议,Fuzz4All 工具展示了使用 LLM 对输入数据的生成和变异,创新了一种自动提示技术和模糊测试循环。
这些显著的初步尝试促使深入研究三个与安全相关的关键研究问题:
- 问题 1:LLM 如何对不同领域的安全和隐私产生积极影响?
- 问题 2:LLM 会对网络安全领域产生哪些潜在的风险?
- 问题 3:LLM 自身有哪些漏洞和弱点,如何抵御这些威胁?
为了全面解决这些问题,综述进行了细致的文献回顾,收集了 281 篇关于 LLM 与安全和隐私相关的论文。将这些论文分为三组
- The Good:那些强调 LLM 有利于安全的文献
- The Bad:那些探索利用 LLM 破环安全的文献
- The Ugly:那些关注讨论 LLM 自身漏洞的文献
2 大语言模型
大语言模型代表了语言模型的演变,最初的语言模型在本质上是基于统计学的,为计算语言学奠定了基础,Transformer 的出现大大增加了它们的规模。这些模型在大量的数据集上经过了广泛的训练,以理解和产生模仿人类语言的文本,由此在自然语言处理领域取得了许多实质性的进展。根据 Yang 等人的研究,一个 LLM 应该至少有 4 个关键特征。
- 理解能力。模型应该展示对自然语言文本的深刻理解,能够提取信息并执行各种语言相关的任务(如翻译)。
- 提示生成。模型应该有能力在提示时生成类似于人类习惯的文本。
- 上下文意识。模型应该通过考虑领域专业知识等因素来表现出上下文意识。
- 问题决策。模型应该擅长利用文本段落中下信息来解决问题和做出决策。
此外,该研究还整理了大语言模型的发展演化树,根据时间轴进行了阶段划分,按模型采用的不同框架进行颜色标记,同时还区分了开源和闭源项目,标注了发布机构,如图 1 所示。
越来越多的大语言模型相继发布,相应地出现了对不同模型的能力测评,下列是比较主流的开源测评榜单:
- Open LLM Leaderboard:由 Hugging Face 发布的评测榜单,主要针对英文的开源大型语言模型和聊天机器人进行跟踪、排名和评估,旨在提供一个标准化的方法来评估和比较不同开源模型的性能。
- Chatbot Arena LLM Leaderboard:由 LMSYS 组织发布的一个大语言模型评测排行榜,通过众包的方式对大模型进行匿名评测,然后由一个或多个匿名的大模型同时返回结果,最终形成不同的大模型众包的评测结果。
- C-Eval:一个全面的中文基础模型评估套件,由上海交通大学、清华大学和爱丁堡大学合作开发,评估中文环境下的高级知识和推理能力,包含了 13948 个多项选择题,涵盖了 52 个不同的学科和四个难度级别。
3 文献综述
大语言模型在不同的领域都具有深远的影响,综述深入探讨其在安全和隐私环境下发挥的角色,围绕Good
,Bad
和Ugly
三类进行全面的文献回顾。在谷歌学术上收集的相关论文,数量和时间分布如图 2 所示。大部分论文发表在 2023 年,每月发表的论文数量呈持续上升驱动。
发现 1:大多数研究人员倾向于使用 LLM 来支持安全,LLM 对安全社区的贡献积极(用于漏洞检测)大于消极(制作攻击工具)。
3.1 The Good
代码安全。大语言模型可以跨越多种编程语言和不同代码片段,利用其高级语言理解能力来检查代码相关的文本,在整个代码安全生命周期重扮演关键角色,包括程序编写、测试用例生成、执行监控。
程序编写方面
- Sandoval 等人的研究发现学生程序员在 LLM 协助下编写的代码没有引入新的安全风险。
- SVEN 方案利用连续提示词来控制 LLM 生成安全的代码。
- SALLM 涉及一个由安全数据集、评估环境和新指标组成的框架,用于系统评估 LLM 生成安全代码的能力。
- …
测试用例生成方面
- Libro 涉及一个使用 LLM 自动生成测试用例以重现软件安全漏洞的框架。
- FuzzGPT 方案旨在为深度学习库进行模糊测试,通过使用历史错误来触发程序启动 LLM,解决边缘情况测试的需求。
- Fuzz4All 方案利用 LLM 作为输入生成器和变异引擎,为各种编程语言创建多样化且真实的输入。
- …
执行监控方面
- LATTE 是一种由 LLM 驱动的新型静态二进制污点分析方法,超越了现有的最先进技术,在真实固件中发现了 37 个新的错误。
- KARTAL 利用 LLM 进行 Web 应用程序漏洞检测,每秒可进行 539 次预测。
- Pentest GPT 是一种自动化渗透测试工具,它利用 LLM 固有的领域知识来解决渗透测试的各个子任务,从而显著提高任务完成率
- Apiiro 是一个使用 LLM 的恶意代码分析工具,结合了专有代码分析、概率采样等方法以识别潜在恶意代码。
- …
发现 2:大多数研究人员得出结论,基于 LLM 的方法优于传统方法,常有的问题是检测结果往往出现较高的误报和漏报。
数据安全。大语言模型在数据安全领域也有许多贡献,提供了保护敏感信息的多种方法,包括数据完整性,确保数据在整个生命周期内不被破坏;数据可靠性,确保数据的准确;数据机密性,防止未经授权的访问和泄露;数据可追溯性,涉及监控数据访问和使用情况。
数据完整性方面
- Liu 等人尝试使用 LLM 制定针对减轻勒索软件攻击的网络安全政策,建议将 GPT 纳入数据治理、风险和合规政策的制定中。
- Amine 等人引入了一种基于 LLM 的监控框架,应用于自动驾驶的有限状态机策略和用于对象操作的学习策略。
- HuntGPT 是一种基于 LLM 的网络异常检测入侵检测系统,它在提高用户理解和交互方面有一定效果。
- …
数据可靠性方面
- Takashi 等人建议使用 ChatGPT 来检测包含网络钓鱼内容的网站,实验结果显示出良好的性能,具有很高的准确率和召回率。
- Fredrik 等人评估了四种大语言模型检测网络钓鱼电子邮件中恶意意图的能力,发现它们甚至超过了人类的检测,尽管有时准确度略低。
- IPSDM 模型可以有效识别网络钓鱼和垃圾邮件,在对不平衡和平衡数据集中的电子邮件进行分类方面表现出色。
- …
数据机密性方面
- Arpita 等人使用 LLM 通过将文本数据中的识别信息替换为通用标记来保护隐私。
- Hyeokdong 等人探索使用 ChatGPT 实现加密,最终保护数据机密性。
- …
数据可追溯性方面
- Scanlon 等人探讨了 ChatGPT 如何帮助分析操作系统文件,以及如何检查内存转储以检测可疑活动或攻击模式。
- Sladić 等人提出,可以使用像 ChatGPT 这样的生成模型来创建逼真的蜜罐来欺骗人类攻击者。
- Li 等人提出了第一个水印技术来保护基于大型语言模型的代码生成 API 免受远程模仿攻击。
- …
发现 3:大语言模型在数据保护方面表现出色,超越了当前的解决方案,ChatGPT 的多功能性和有效性使其成为各种安全相关任务的首选。
3.2 The Bad
综述根据攻击在系统基础设施中的位置将攻击分为五类,分别是硬件级攻击、操作系统级攻击、软件级攻击、网络级攻击和用户级攻击。如图 3 所示,上色的框表示已被证明可以使用 LLM 执行的攻击,灰色的框表示不能使用 LLM 执行的攻击。
硬件级攻击
- Yaman 探索了 LLM 技术在开发旁道分析方法中的应用,该研究评估了基于 LLM 的方法在 AES 旁道分析和深度学习加速器旁道分析有效。
- …
操作系统级攻击
- Andreas 等人建立了一个反馈循环,通过 SSH 将 LLM 连接到易受攻击的虚拟机,允许 LLM 分析机器的状态、识别漏洞并提出具体的攻击策略,然后在虚拟机内自动执行。
- …
软件级攻击
- Mika 等人提出了一个概念验证,其中 ChatGPT 被用于分发恶意软件,同时避免被发现。
- Antonio Monje 等人演示了如何诱骗 ChatGPT 快速生成勒索软件。
- Marcus Botacin 探索了不同的编码策略(例如,生成整个恶意软件、创建恶意软件功能),并研究了 LLM 重写恶意软件代码的能力。
- …
网络级攻击
- Julian Hazell 通过使用 ChatGPT 为 600 多名英国国会议员生成逼真且经济高效的网络钓鱼消息,展示了鱼叉式网络钓鱼活动的可扩展性。
- Wang 等人讨论了传统防御在 LLM 时代如何失败,验证码涉及扭曲的字母和数字,很难检测依赖文本和语音的聊天机器人。
- Tyson 等人研究了修改 ChatGPT 的输入如何影响生成的电子邮件的内容,使其更具说服力。
- …
用户级攻击
- 错误信息。LLM 生成的内容更难检测,并且可能使用更具欺骗性的风格,可能造成更大的危害。Canyu Chen 等人提出了 LLM 生成的错误信息的分类方法和验证方法。
- 社会工程学。Stabb 等人的研究 强调了训练有素的 LLM 能够从文本中推断出个人属性,例如位置、收入和性别,他们还揭示了这些模型如何从看似良性的查询中提取个人信息。
- 学术不端行为。不负责任地使用 LLM 可能会导致与科学不端行为相关的问题,这些问题源于 LLM 生成原创、连贯文本的能力。Kavita Kumari 等人提出了 DEMASQ,这是一种精确的 ChatGPT 生成内容检测器。
- 网络欺诈。FraudGPT 可以创建与银行相关的欺诈电子邮件,暗示内容中存在恶意链接,它还可以列出经常被攻击的网站或服务。网络犯罪工具 WormGPT 提供无限字符支持和聊天记忆保留等功能,该工具在机密数据集上进行了训练,重点关注恶意软件相关数据和欺诈相关数据。
发现 4:与其他攻击相比用户级攻击最为普遍,目前 LLM 还不具备对操作系统级或硬件级功能的访问。
3.3 The Ugly
综述深入探讨与 LLM 自身存在的普遍威胁和漏洞,并研究大语言模型背景下的具体风险挑战和防御措施,如图 4 所示。
针对 LLM 的风险
- 内在风险
-
对抗性攻击。有意操纵或欺骗机器学习模型的技术和策略,目的是利用模型行为中的漏洞。
- 数据投毒。攻击者通过向训练数据集注入恶意数据来影响训练过程,引入漏洞或偏差,危及模型的输出结果。Alexander 等人表明,即使只有 100 个投毒示例,LLM 也会在各种任务中产生一致的负面结果或有缺陷的输出。
- 后门攻击。攻击者恶意操纵训练数据和模型处理,将隐藏的后门漏洞嵌入到模型中,与投毒的区别在于后门在遇到触发器时产生特定行为或响应。Yao 等人提出了一种双向后门,它将触发机制与提示词微调相结合。
-
推理攻击。通过对模型进行特定查询或观察来获取有关机器学习模型或其训练数据的敏感信息。
- 属性推理。Robin 等人首次全面检查了预训练的 LLM 从文本推断个人信息的能力,该研究使用真实的 Reddit 个人资料数据集,表明当前的 LLM 可以高精度地推断各种个人信息(例如位置、收入、性别)。
- 成员推理。在给定对模型和特定数据记录的白盒/黑盒访问的情况下,确定数据记录是否是模型训练数据集的一部分。各种研究通过分析标签、确定阈值、开发通用公式等方法探索各种成员推理攻击。
-
提取攻击。攻击者试图从机器学习模型或其相关数据中提取敏感信息或见解。与推理攻击不同之处在于,提取攻击旨在直接获取特定资源(例如模型梯度、训练数据)或机密信息。Truong 等人的工作可在无需访问原始模型数据即可复制模型的能力。
-
偏见和不公平利用。模型表现出偏见结果或歧视行为。Urman 等人发现遵守政府的审查指导方针可能会产生偏见。Huang 等人发现在 LLM 生成的代码中也可能存在偏差。
-
指令调优攻击。基于指令的微调是一种机器学习技术,提供明确的指令或示例来训练和调整特定任务的语言模型,这类攻击旨在通过指令微调利用 LLM 中的漏洞或限制。
- 越狱攻击。绕过安全功能解锁通常受安全协议限制的功能。MASTERKEY 采用了一种基于时间的方法来剖析防御,并演示了概念验证攻击。Cao 等人开发了 RA-LLM,这是一种降低对抗和越狱提示成功率的方法,无需重新训练或访问模型参数。
- 提示注入。描述了一种操作 LLM 行为以引发意外且可能有害的响应的方法,这种技术可以绕过模型的安全措施。大量研究已经能够自动化识别提示中的语义并保留有效载荷的过程,He 等人探索了利用在大量数据集上训练的 LLM 来缓解此类攻击的转变。
- 拒绝服务。一种网络攻击,旨在耗尽计算资源,造成延迟或使资源不可用,攻击者使用故意构建的提示来降低模型的可用性。Shumailov 等人证明了在 LLM 领域进行海绵攻击的可能性,最大化能耗和延迟提高 10 到 200 倍,引起了自动驾驶汽车领域的关注。
发现 5:关于模型提取、参数提取等攻击仍然主要是在理论层面,LLM 中参数的规模使得这些传统方法复杂化,甚至不可行。
- 非内在风险
-
远程代码执行。这类攻击通常不直接适用于 LLM,但如果 LLM 集成在 Web 服务中,并且该服务的底层基础架构或代码中存在远程代码执行漏洞,则可能会导致 LLM 环境受到损害。
-
侧信道。在实际部署场景中,LLM 可能容易受到某些侧信道攻击。Edoardo 等人引入了隐私侧信道攻击,这些攻击利用系统级组件(例如数据过滤、输出监控)以比独立模型高得多的速率提取私人信息。
-
供应链漏洞。LLM 应用程序生命周期中可能因使用易受攻击的组件或服务而产生的风险,例如第三方数据集、预训练模型和插件。一些用于增强 LLM 功能的插件,包括网络搜索、文本分析等,可能被用于窃取聊天记录、访问个人信息。
针对 LLM 的防御
架构防御
- Li 等人发现,与较小的模型相比,使用适当的非标准超参数,可以更有效地以差异隐私方式训练具有较大参数大小的语言模型。
- Zhu 等人和 Li 等人发现,具有较大容量的 LLM(例如具有更大参数大小的 LLM)通常表现出对对抗性攻击的增强的鲁棒性。
- Zafar 等人旨在通过知识图谱增强 LLM 的推理能力,从而建立对人工智能的信任。
- …
训练防御
LLM 训练的核心组件包括模型架构、训练数据和优化方法。
- 语料库清理。从网络收集的原始语料库充满了多种问题,一般处理流程包括:语言识别、去毒化、去偏见、去识别化和去重复。
- 优化方法。指导 LLM 从训练数据中学习,鼓励或惩罚相应的行为。安全对齐是一种新兴的学习范式,使用对齐良好的附加模型或人工注释来指导 LLM 行为,证明对道德对齐非常有效。
推理防御
LLM 提供服务时接收用户的提示并生成完整的句子作为响应,在这种交互模式下的防御措施一般包括提示指令的预处理,检测有问题的查询事件,以及生成的响应后处理以确保它们遵守道德准则。
-
指令预处理
- Jain 等人和 Kirchenbauer 等人评估了多种针对越狱攻击的基线预处理方法,包括重新标记和释义。
- Li 等人提出通过首先屏蔽输入标记,然后用其他 LLM 预测屏蔽的标记来净化指令,预测的标记将作为纯化的指令。
- Wei 等人和 Mo 等人证明在指令中插入预定义的防御演示可以有效防御 LLM 的越狱攻击。
- …
-
异常检测
- Xi 等人从掩码敏感度的角度区分了正常指令和中毒指令。
- Shao 等人根据文本相关性识别可疑单词。
- Wang 等人根据多代之间的语义一致性检测对抗性示例.
- …
-
生成后处理
- Chen 等人提出通过与多个模型候选者进行比较来减轻生成的毒性。
- Helbling 等人结合了单独的 LLM 来识别生成答案的有害性。
- …
发现 6:明显缺乏模型架构对 LLM 安全性影响的研究,同时安全指令微调是一个相对较新的方向,值得进一步研究和关注。
4 未来方向
将 LLM 用于特定的机器学习任务。 LLM 可以有效地取代传统的机器学习方法,在这种情况下,如果传统的机器学习方法可以用于特定的安全应用(无论是攻击性还是防御性),那么 LLM 也极有可能用于解决这一特定挑战。
取代人类的努力。 LLM 有潜力在进攻性和防御性安全应用中取代人类的努力。例如,传统上依赖于人为干预的社会工程任务现在可以使用 LLM 技术有效地执行。
修改传统机器学习攻击应对 LLM。 LLM 中的许多安全漏洞都是传统机器学习场景中发现的漏洞的扩展。也就是说,LLM 仍然是深度神经网络的一个专门的立场,继承了常见的漏洞,例如对抗性攻击和指令调整攻击。
调整传统机器学习防御应对 LLM。 传统上用于缓解漏洞的对策也可用于解决这些安全问题。例如,现有的努力利用传统的隐私增强技术(例如零知识证明、差异隐私和联合学习)来应对 LLM 带来的隐私挑战。
解决 LLM 中特定攻击的挑战。 实施模型提取或参数提取攻击存在一些挑战例如,LLM 参数的规模巨大、私有所有权和强大 LLM 的机密性。
学习笔记
大语言模型能力确实很强,本人也有很多时候需要依靠模型提高工作效率,但是使用的时间越长也越能感受到模型的能力范围有限。由于模型本身参数规模大,且模型架构复杂,进行系统地安全性分析将持续成为难点。多数现有研究表明,无法使用模型一步到位,通常要设计某个框架流程,对模型生成的内容提炼筛选。不知道为什么,还是有种炼丹的感觉。最后,附上文献引用和 DOI 链接:
Yao Y, Duan J, Xu K, et al. A survey on large language model (llm) security and privacy: The good, the bad, and the ugly[J]. High-Confidence Computing, 2024: 100211.
https://doi.org/10.1016/j.hcc.2024.100211