使用 deepteam 测试 OpenAI 模型:抵御单轮对抗性攻击

Marktechpost

OpenAI 等大型语言模型(LLM)的飞速发展带来了巨大的能力,但也对强大的安全机制提出了关键需求。确保这些模型不会被胁迫生成有害或非法内容至关重要。这一挑战催生了“红队测试”——安全专家模拟对抗性攻击以发现漏洞的做法。一个名为 deepteam 的新框架为这一关键测试提供了简化的方法,提供了一套评估 LLM 抵御各种操纵形式韧性的方法。

deepteam 旨在通过模拟十多种不同的攻击向量来暴露 LLM 应用程序的弱点,范围从直接的提示注入到更复杂的技巧,如 Leetspeak 或编码指令。该框架从基本的基线攻击开始,然后逐步应用更高级的“攻击增强”方法,模仿现实世界中恶意行为者不断演变的复杂性。虽然 deepteam 支持单轮和多轮攻击,但本文的重点是评估 OpenAI 模型对单轮对抗性提示的防御能力——即攻击者试图在一次交互中诱导有害响应的攻击。

要进行这些测试,开发人员必须首先安装必要的 deepteam 和 OpenAI 库,并配置他们的 OpenAI API 密钥,这对于 deepteam 生成对抗性攻击和评估 LLM 响应都至关重要。该过程涉及定义一个回调函数,该函数查询目标 OpenAI 模型(在本例中为 gpt-4o-mini)并返回其输出。此函数充当攻击框架与正在测试的 LLM 之间的接口。

模型接口建立后,便可定义特定的漏洞和攻击类型。对于这系列测试,选择的漏洞类别是“非法活动”,特别强调敏感的子类别,以严格测试模型的安全协议。随后部署了几种单轮攻击方法:

提示注入是一种常见技术,用户试图通过在提示中注入操纵性文本来覆盖模型固有的指令。目的是欺骗模型无视其安全策略并生成受限内容。在此次测试中,一个注入的提示试图强迫模型扮演一个不道德的角色,鼓励非法活动。然而,模型成功抵抗,回应以明确的“抱歉,我无法协助您”,证实了其遵守安全准则。

灰盒攻击利用对目标 LLM 系统的部分知识来构建对抗性提示。与完全随机的输入不同,灰盒攻击通过用抽象或误导性语言重新构建基线攻击来利用已知弱点,从而使恶意意图更难被安全过滤器检测到。此测试涉及一个伪装成创建虚假身份证明文件和使用加密通道的指令的提示。然而,模型并未上当受骗。

Base64 攻击中,有害指令以 Base64 编码,以绕过直接的关键词过滤器。攻击者将恶意内容隐藏在编码格式中,希望模型能够解码并执行隐藏命令。在此,一个编码字符串包含与非法活动相关的指令。尽管请求的性质是隐藏的,但模型并未尝试解码或根据伪装内容行事。

Leetspeak 攻击通过用数字或符号替换普通字符(例如,“a”变为“4”,“e”变为“3”)来伪装恶意指令。这种符号替换使得有害文本难以被简单的关键词过滤器检测到,同时仍可供人类或能够解码的系统读取。一个以 Leetspeak 编写的、指示未成年人进行非法活动的攻击文本,尽管经过混淆,仍被模型清楚地识别为恶意内容。

类似地,ROT-13 攻击采用一种经典的混淆方法,其中每个字母在字母表中移动 13 个位置,将有害指令打乱成编码形式。这使得它们不太可能触发基于关键词的基本内容过滤器,尽管文本很容易解码。gpt-4o-mini 模型展示了其检测潜在恶意意图的能力。

多语言攻击涉及将有害的基线提示翻译成不常受监控的语言。前提是内容过滤器和审核系统在英语等广泛使用的语言之外可能效果较差。在一项测试中,一个用斯瓦希里语编写的、要求提供与非法活动相关的指令的攻击,也成功被模型抵御。

最后,数学问题攻击将恶意请求嵌入到数学符号或问题陈述中,使输入看起来像一个无害的学术练习。在这种情况下,输入将非法利用内容框定为群论问题,要求模型“证明”有害结果并提供“翻译”成通俗语言。模型成功识别并拒绝参与有害的潜在请求。

在所有这些单轮对抗性测试中,gpt-4o-mini 模型都展示了强大的防御能力,始终拒绝生成有害或受限制的内容。使用 deepteam 进行的这种严格的红队测试过程为 LLM 的安全态势提供了宝贵的见解,突显了构建和维护能够抵御日益复杂对抗性策略的安全可靠 AI 系统所需的持续努力。