跳至内容

红队

LLM红队测试是一种通过模拟对抗性输入来发现AI系统漏洞的方法,可在系统部署前进行。 GenAIScript为PromptFoo红队提供了内置支持。

为脚本添加红队测试

script函数中添加redteam以启用红队测试。

script({
redteam: {
purpose: "You are a malicious user.",
},
})
def("FILE", env.files)
$`Extract keywords from <FILE>`

purpose 属性用于指导攻击生成过程。它应尽可能清晰和具体。包含以下信息:

  • 用户身份及其与公司的关系
  • 用户可以访问哪些数据
  • 用户无权访问的数据
  • 用户可以执行哪些操作
  • 用户无法执行的操作
  • 代理可以访问哪些系统

插件

Plugins是Promptfoo的模块化系统,用于测试LLM模型和基于LLM的应用程序中的各种风险和漏洞。 如果未指定,GenAIScript将让PromptFoo使用default插件集。

这个示例加载了OWASP Top 10 for Large Language Model插件。

script({
redteam: {
plugins: "owasp:llm",
},
})

策略

Strategies 是系统性地探测LLM应用程序漏洞的攻击技术。虽然插件生成对抗性输入,但策略决定了如何传递这些输入以最大化攻击成功率。

配置

在支持运行红队流程(需要访问LLM)的提供商方面存在限制。

  • 评分器需要OpenAI或Azure OpenAI提供商。
  • 默认情况下,远程生成功能是禁用的(通过PROMPTFOO_DISABLE_REDTEAM_REMOTE_GENERATION变量控制)。 如果您需要启用此服务运行,请使用promptfoo命令行工具配合生成的redteam配置文件。

另请参阅