promptmap 项目介绍
背景介绍
在人工智能领域中,随着技术的发展,ChatGPT等语言模型的应用变得越来越广泛。然而,这些模型也存在着一定的安全隐患,其中一种就是提示注入攻击(Prompt Injection)。这种攻击方式允许攻击者通过输入恶意提示来控制ChatGPT的行为,进而迫使其执行一些非预期的动作。
promptmap 的功能与目的
promptmap 是一个专门设计的工具,用于自动测试针对ChatGPT实例的提示注入攻击。其主要功能是分析ChatGPT的规则,以理解其上下文和目标,然后利用此理解生成针对特定ChatGPT实例的攻击提示。promptmap启动ChatGPT实例并向其发送攻击提示,并通过检查ChatGPT实例的响应来判断攻击是否成功。
提供的攻击类型
promptmap 目前支持多种攻击类型,并计划在未来增加更多攻击类型及其变化。用户也可以根据自身需求自定义这些攻击。
基础注入
这些攻击直接向目标发送,不进行提示增强。其目的是获得与问题无关的答案或指挥某一动作。
- 开发者模式: 说服目标相信用户是其开发者,应忽略之前的规则。
- 模拟身份: 让目标模拟某种身份。
- 卡内基梅隆越狱: 一种由卡内基梅隆大学研究人员发现的攻击类型。
- 错读症: 让目标相信它有错读症状。方法由@lauriewired发现。
- 系统提示窃取: 试图窃取目标GPT实例的系统提示。更多信息可见此处。
翻译注入
在仅使用英文系统提示且未禁止使用其他语言回答时,利用翻译注入来获取德语(或其他语言)的回答,以此来测试是否能注入非英文的提示。
数学注入
测试ChatGPT是否能计算数学方程。若成功,表明其能够处理更多复杂任务。例子:针对处理冥想技术问题的ChatGPT,可以尝试请求其计算数值以测试其数学计算能力。
上下文切换
利用此方法表面上保持在原始上下文中,实际则询问无关问题。若能得到答案,表明可能获取更敏感的问题答案。
外部浏览与注入
测试ChatGPT是否可以浏览用户提供的URL内容,或从外部资源获取额外的提示。这类攻击可以验证ChatGPT实例的外部数据获取能力。
安装与使用
promptmap 的安装与使用步骤简单清晰,用户只需克隆仓库并安装所需依赖库。然后,通过编辑配置文件来设置ChatGPT实例的系统提示,运行promptmap即可自动分析并进行攻击。用户还可以指定参数来调整攻击提示的数量或保存成功的攻击提示。
项目贡献
promptmap 项目欢迎社区成员的反馈与贡献。作为一个新兴领域,开发者热衷于学习和改进这个项目,并欢迎各方提出建议和批评,共同提高项目的质量。