LOADING

加载过慢请开启缓存 浏览器默认开启

ChatGPTSecurity

2023/9/30 ChatGPT安全性

这篇博客主要介绍如何利用安全策略来进行渗透ChatGPT或进行操作。

背景

​ 近期,基于 Transformer 的大语言模型(Large Language Model,LLM)研究 取得了一系列突破性进展,模型参数量已经突破千亿级别,并在人类语言相似文 本生成方面有了卓越的表现。目前已有多个商业化大模型发布,如 OpenAI 推出 的 GPT 系列[1-3]、Google 推出的 T5[4]和 PaLM[5],以及 Meta 推出的 OPT[6]等大语 言模型等。特别是 OpenAI 推出 ChatGPT[7],由于其强大的理解与生成能力,在 短短 2 个月内突破了 1 亿用户量,成为史上用户增长速度最快的消费级应用程 序。为了应对市场冲击,谷歌也推出了 BARD 聊天机器人,Meta 则开源了 LLaMA 模型[8]。国内各大企业、高校和研究机构也纷纷进入大模型领域,推出了一系列 对话大模型,包括百度文心一言[9]、360 智脑[10]、讯飞星火[11]、商汤商量[12]、阿 里通义千问[13]、智源悟道[14]、复旦 MOSS[15]、清华 ChatGLM[16]等。

​ 大语言模型正在各个应用领域引起巨大的变革,并已经在搜索、金融、办公、 安全、教育、游戏、电商、社交媒体等领域迅速普及和应用。例如微软将 GPT4 应用于必应搜索引擎和 Office 办公软件,而谷歌把 PaLM2 等模型应用在 Workspace 办公套件、Android 以及 Bard 聊天机器人。

​ 然而,伴随着大语言模型广泛应用的同时,也衍生出一系列严重的安全风险, 并引发了多起安全事件。如 OpenAI 曾经默认将用户输入的内容用于模型训练, 从而导致了多起隐私数据泄漏事件。据媒体报道,亚马逊公司发现 ChatGPT 生 成的内容中发现与公司机密非常相似的文本[17]。韩国媒体报道称,三星公司在引 入 ChatGPT 不到 20 天内就发生 3 起涉及机密数据泄漏的事故,其中 2 起与半导 体设备有关,1 起与会议内容有关[18]。据网络安全公司 Cyberhaven 的调查,至少 有 4%的员工将企业敏感数据输入 ChatGPT,而敏感数据占输入内容的 11%[19]。

​ 此外,大模型系统近期也被相继爆出多个安全漏洞。例如,ChatGPT 的 Redis 客户端开源库的一个错误,导致 1.2%的 ChatGPT 付费用户个人信息泄露,包括 聊天记录、姓名、电子邮箱和支付地址等敏感信息[20]。随后,OpenAI 网站又被 爆出 Web 缓存欺骗漏洞,攻击者可以接管他人的账户,查看账户聊天记录并访 问账单信息,而被攻击者察觉不到[21]。360 AI 安全实验室近期还发现大模型软件LangChain 存在任意代码执行的严重漏洞[22]。

​ 总体而言,目前大语言模型面临的风险类型包括提示注入攻击、对抗攻击、 后门攻击、数据污染、软件漏洞、隐私滥用等[23][24],这些风险可能导致生成不良 有害内容、泄露隐私数据、任意代码执行等危害。在这些安全威胁中,恶意用户 利用有害提示覆盖大语言模型的原始指令实现的提示注入攻击,具有极高的危害 性,最近也被 OWASP 列为大语言模型十大安全威胁之首[25]。

提示注入攻击

提示注入(Prompt Injection)攻击是一种通过使用恶意指令作为输入提示的 一部分来操纵语言模型输出的技术[31]。与信息安全领域中的其他注入攻击类似, 当指令和主要内容连接时可能会发生提示注入,从而使大语言模型很难区分它们。 提示注入是近期对 AI 和机器学习模型产生较大影响的新型漏洞,特别是对于那 些采用提示学习方法的模型而言。注入恶意指令的提示可以通过操纵模型的正常 输出过程以导致大语言模型产生不适当、有偏见或有害的输出。

直接提示注入

直接提示注入攻击是通过直接在用户输入中添加恶意指令来操纵模型的输 出。根据攻击的目的可以将直接提示注入攻击大致划分成三种类型:目标劫持、 提示泄露和越狱攻击。其中,目标劫持旨在改变原始任务设置,破坏模型完整性; 提示泄露则试图从原始提示中获取敏感或机密信息;而越狱攻击通过设计提示词, 试图绕过模型限制进而执行任意任务或输出违规内容。

目标劫持

目标劫持是一种通过将恶意指令添加到用户输入中以劫持语言模型输出的过程。该攻击通常是在提示词中添加一些恶意指令让模型忘记原始任务并执行目 标任务,它将导致允许攻击者执行任意操作的安全风险。依据劫持后模型所执行 的目标任务的类型可以将目标劫持分成同类型目标劫持和跨类型目标劫持。

  • 同类型目标劫持

同类型目标劫持是指攻击者劫持模型后要求其执行的目标任务与原始任务 类型相同,例如模型的原始任务是将英语翻译成法语,而目标任务则是将英语翻 译成中文。由于任务类型相同,该类目标劫持攻击实现较容易,且安全危害较弱。

image-20230930155107189

image-20230930155118448

  • 跨类型目标劫持

跨类型目标劫持是指攻击者劫持模型后要求其执行的目标任务与原始任务 类型完全不同,例如模型的原始任务是将英语翻译成法语,而目标任务则是要求 写一首诗。该类攻击要求模型执行任务的类型跨度大,可能执行任意恶意任务, 因此安全危害程度大,但攻击实现难度高。

image-20230930155233466

  • 提示泄露

提示泄露是一种试图操纵模型输出使其泄露部分或全部原始提示的行为。在 大语言模型中,提示泄露通常是将恶意指令添加到用户输入中以窃取模型原始提 示,这可能导致敏感信息的暴露和未经授权的个人对提示的潜在滥用。 开发人员设置的系统提示、AI 产品供应商设置的专有提示前缀以及用户对 话记录都可以被归类为模型的原始提示。因此,可以依据攻击者所要窃取的原始 提示的来源将提示泄露分成系统提示泄露和用户提示泄露。

  • 系统提示泄露

系统提示是开发人员为 AI 对话设置边界的初始指令集,该指令集包括了应 该遵守的规则、需要规避的话题、如何格式化响应等等。这些指令可能会插入原 始提示中,作为用户与 AI 进行对话之前的消息。如果攻击者获取到这些系统提 示,则可以从中分析出 AI 的行为模式或审查制度,进而在未经授权的情况下操 纵 AI。

  • 用户提示泄露

提示泄露攻击除了可以获取模型的系统提示外,还可能导致用户提示中隐私 信息的泄露,包括下游开发人员/厂商构建基于大语言模型的 AI 产品时设置的专 有提示前缀(如特殊的生成格式等),以及用户对话记录中的一些隐私信息(如 电子邮件地址、信用卡信息等)[36]。这些用户提示的泄露可能被攻击者用于恶意 目的,例如窃取专有信息或制作更有效的钓鱼电子邮件等。同时,这些厂商或开 发人员精心构造的提示作为产品的核心,可能包含重要的知识产权,因此需要采 取一定的措施,避免核心能力和数据的泄漏

  • 越狱攻击

大语言模型通常是通过在大量的文本数据上训练,以学习语言的各种模式和 关联性,从而可以生成连贯、合乎逻辑的文本,以回应给定的输入提示。然而, 这些模型并不具备真正的理解和推理能力,它们仅仅是根据之前的训练经验和统 计规律生成回复。针对大语言模型的越狱攻击是一种通过设计输入提示词,绕过 大语言模型开发者为其设置的安全和审核机制,引导或控制一个大语言模型生成 不合规的、本应被屏蔽的输出的攻击行为。 越狱攻击的目标是利用大语言模型对输入提示的敏感性和容易受到引导的 特性,通过巧妙构造的提示来影响大语言模型生成的输出。攻击者通过设计特定 的提示,以引导大语言模型生成误导性、不准确甚至具有有害意图的文本。这种 攻击可能会被滥用,用于生成虚假信息、误导性的内容、仇恨言论、欺诈性的文 本等。攻击者可以通过合理的输入提示来引导模型生成不真实的事实陈述,或者 利用模型的偏见和倾向来产生有害的结果。 依据恶意提示的构建逻辑可以将越狱攻击方法分成模拟对话、角色扮演、和 对立响应 3 类。

image-20230930155843341

image-20230930155850973

image-20230930160022845

image-20230930160218044

  • 角色扮演