> For the complete documentation index, see [llms.txt](https://elwood.gitbook.io/foundation-model-sec/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://elwood.gitbook.io/foundation-model-sec/privacy-attack/prompt-stealing-attacks-against-large-language-models-1.md).

# Prompt Stealing Attacks Against Large Language Models

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2FZZOrYlVb2owpipS0wqHA%2Fimage.png?alt=media&amp;token=5cd9ae0b-9a08-477d-b585-04087b6f310f" alt=""><figcaption></figcaption></figure>

## 阅读总结报告

### 1. 研究背景

随着大型语言模型（LLMs）如ChatGPT在各个领域的广泛应用，"prompt工程"（即设计高质量的输入提示以改善模型输出）变得越来越重要。公司大量投资于专业的提示工程师，并提供教育资源以满足市场需求。然而，这些精心设计的提示可能会被攻击者通过逆向工程手段窃取，从而引发安全问题。

### 2. 过去方案和缺点

以往的研究主要关注于如何设计高质量的提示以提高LLMs的性能，而没有充分考虑提示本身的安全性。现有的安全措施并未针对提示窃取攻击进行优化，因此存在潜在的安全漏洞。

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2FkqGdwhRenZHiSiWJEEOH%2Fimage.png?alt=media&amp;token=988b8f38-cfa2-4835-b640-56b3b98884b3" alt=""><figcaption></figcaption></figure>

### 3. 本文方案和步骤

本文提出了一种名为"提示窃取攻击"（prompt stealing attacks）的新方法，旨在通过生成的答案来窃取原始的提示。攻击包含两个主要模块：参数提取器（parameter extractor）和提示重构器（prompt reconstructor）。参数提取器用于确定原始提示的属性，而提示重构器则基于生成的答案和提取的特征来重建原始提示。

<figure><img src="https://1203660092-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVIbHxVNUonwDG5X6HrVv%2Fuploads%2F20yFW0Z894WADKuLEaL9%2Fimage.png?alt=media&amp;token=06546cb6-8149-40cf-a641-ccb29bc8897d" alt=""><figcaption></figcaption></figure>

### 4. 本文创新点与贡献

* 提出了一种新的针对LLMs的攻击方法，即提示窃取攻击。
* 设计了两个模块化的攻击工具：参数提取器和提示重构器，用于从生成的答案中逆向工程出原始提示。
* 通过实验验证了所提出攻击方法的有效性，并展示了攻击者可以如何利用这些技术来窃取提示。

在本文中，参数提取器（Parameter Extractor）和提示重构器（Prompt Reconstructor）是构成提示窃取攻击的两个关键模块。它们的工作原理和作用如下：

#### 参数提取器（Parameter Extractor）

参数提取器的主要目标是推断出用于生成给定答案的原始提示的属性。这些属性包括提示的类型（例如直接提示、基于角色的提示或上下文提示）以及进一步的结构信息（例如使用的特定角色或上下文的数量）。参数提取器的工作流程如下：

1. **分类提示类型**：首先，参数提取器使用一个三类分类器（Primary Classifier）来预测原始提示属于哪种类型。这些类型包括直接提示（用户直接提问）、基于角色的提示（用户让模型扮演特定角色）和上下文提示（用户提供额外信息以指导模型的回答）。
2. **进一步信息预测**：基于主分类器的预测结果，参数提取器进一步使用两个子分类器（Sub-Classifiers）来预测更详细的信息。如果预测结果是基于角色的提示，子分类器会确定原始提示中使用的特定角色。如果是上下文提示，子分类器会预测原始提示中使用了多少个上下文。

#### 提示重构器（Prompt Reconstructor）

在参数提取器确定了原始提示的属性之后，提示重构器的任务是生成与原始提示相似的逆向提示。这个过程包括以下步骤：

1. **直接提示重构**：如果原始提示是直接提示，提示重构器会利用ChatGPT根据给定的答案生成一个直接逆向提示。
2. **角色和上下文提示重构**：对于基于角色或上下文的提示，提示重构器会根据参数提取器提供的详细信息（如预测的角色或上下文数量）来修改逆向提示。例如，如果预测结果是角色提示，重构器会在逆向提示中添加相应的角色信息；如果是上下文提示，重构器会根据预测的上下文数量生成相应的上下文信息。
3. **生成逆向提示**：最终，提示重构器会结合ChatGPT生成的答案和提取的特征信息，生成一个与原始提示在语义和结构上相似的逆向提示。

这两个模块共同工作，使得攻击者能够从LLMs生成的答案中逆向工程出原始的提示，从而可能泄露敏感信息或用于其他恶意目的。这种攻击方法强调了LLMs在设计和使用提示时需要考虑的安全性问题。

### 5. 本文实验

实验在两个基准问答数据集（RetrievalQA和AlpacaGPT4）和两种流行的LLMs（ChatGPT和LLaMA）上进行。实验结果表明，所提出的参数提取器和提示重构器能够成功预测原始提示的类型和结构信息，并生成与原始提示相似的逆向提示。

### 6. 实验结论

实验结果显示，所提出的提示窃取攻击在预测提示类型和重构提示方面表现出色。这表明LLMs的提示可以被有效地窃取，从而暴露了LLMs在安全性方面的潜在风险。

### 7. 全文结论

本文提出了一种新的针对LLMs的提示窃取攻击方法，并展示了其有效性。这一发现强调了LLMs在安全性方面的脆弱性，并为未来的研究提供了新的视角。同时，本文也提出了一些可能的防御策略，尽管这些策略可能会影响LLMs的实用性，但它们为如何保护LLMs免受此类攻击提供了初步的思路。

### 阅读总结

本文针对LLMs的安全性问题提出了一种新的攻击方法——提示窃取攻击，并展示了如何通过生成的答案来逆向工程出原始的提示。这一研究不仅揭示了LLMs在安全性方面的潜在风险，也为如何设计更安全的LLMs提供了新的研究方向。同时，本文的实验结果也为防御此类攻击提供了实验基础。
