什么是即时注入?攻击类型与防御
Posted: Mon Mar 17, 2025 6:52 am
GPT-4o或Llama 3.1 405B等大型语言模型 (LLM)非常强大且用途广泛,能够通过自然语言交互解决各种任务。
用户通常通过提供自然语言输入(称为提示)与 LLM 进行交互,然后模型对其进行处理并继续执行提示中指定的任务。
使用自然语言交流为用户提供了一种直观的方式来与这些模型互动。它也非常灵活,因为程序员不需要明确编写这些指令。LLM 会自动执行提示中描述的任务。
然而,这种对提示的依赖引入了一种称为提示注入的新形式的安全漏洞。当通过在提示中插入新指令来改变 LLM 的预期行为时,就会发生这种情况。如果执行得当,这些注入可能会导致意外甚至恶意的后果。
成为一名机器学习科学家
提升 Python 技能,成为一名机器学习科学家。
下图展示了通过提示注入修改机器人行为 瑞士赌博数据 的示例。尽管该机器人旨在提供有关远程工作的有用信息,但给出的提示指示它偏离此目的并错误地声称对 1986 年挑战者号灾难负责。
X(以前称为 Twitter)机器人上的提示注入示例
目前尚未找到万无一失的即时注入解决方案。在本文中,我们将探讨各种类型的即时注入。我们将使用 OpenAI API 创建简单的机器人,并学习如何对其进行即时注入。此外,我们将讨论缓解即时注入漏洞的策略。
即时注入攻击的类型
即时注入攻击有多种分类方法。我们先来了解一下直接即时注入。
直接喷射
直接提示注入是指攻击者直接向 LLM 输入提示。简介中的示例说明了直接提示注入的一个例子。
直接喷射
我最近使用OpenAI API开发了一个小型机器人来帮助我学习中文。这个简单的例子可以帮助我们了解注入在幕后是如何运作的。该机器人旨在接收一个英文句子,然后解释如何用中文说这个句子。
法学硕士汉语导师示例
如果我们删除用户界面,机器人本质上就是一个 Python 脚本,它可以从用户那里捕获一个英文句子并将该句子输入 ChatGPT。机器人的行为由系统提示控制,系统提示指导机器人如何处理用户输入。
from openai import OpenAI
用户通常通过提供自然语言输入(称为提示)与 LLM 进行交互,然后模型对其进行处理并继续执行提示中指定的任务。
使用自然语言交流为用户提供了一种直观的方式来与这些模型互动。它也非常灵活,因为程序员不需要明确编写这些指令。LLM 会自动执行提示中描述的任务。
然而,这种对提示的依赖引入了一种称为提示注入的新形式的安全漏洞。当通过在提示中插入新指令来改变 LLM 的预期行为时,就会发生这种情况。如果执行得当,这些注入可能会导致意外甚至恶意的后果。
成为一名机器学习科学家
提升 Python 技能,成为一名机器学习科学家。
下图展示了通过提示注入修改机器人行为 瑞士赌博数据 的示例。尽管该机器人旨在提供有关远程工作的有用信息,但给出的提示指示它偏离此目的并错误地声称对 1986 年挑战者号灾难负责。
X(以前称为 Twitter)机器人上的提示注入示例
目前尚未找到万无一失的即时注入解决方案。在本文中,我们将探讨各种类型的即时注入。我们将使用 OpenAI API 创建简单的机器人,并学习如何对其进行即时注入。此外,我们将讨论缓解即时注入漏洞的策略。
即时注入攻击的类型
即时注入攻击有多种分类方法。我们先来了解一下直接即时注入。
直接喷射
直接提示注入是指攻击者直接向 LLM 输入提示。简介中的示例说明了直接提示注入的一个例子。
直接喷射
我最近使用OpenAI API开发了一个小型机器人来帮助我学习中文。这个简单的例子可以帮助我们了解注入在幕后是如何运作的。该机器人旨在接收一个英文句子,然后解释如何用中文说这个句子。
法学硕士汉语导师示例
如果我们删除用户界面,机器人本质上就是一个 Python 脚本,它可以从用户那里捕获一个英文句子并将该句子输入 ChatGPT。机器人的行为由系统提示控制,系统提示指导机器人如何处理用户输入。
from openai import OpenAI