LLM 漏洞扫描#

虽然最近的大多数 LLM,特别是商业 LLM,都经过调整以提高使用安全性,但您应该记住,任何由 LLM 驱动的应用程序都容易受到各种攻击(例如,请参阅 LLM 应用的 OWASP Top 10)。

NeMo Guardrails 提供了多种机制来保护由 LLM 驱动的聊天应用程序免受漏洞攻击,例如越狱和提示注入。以下部分介绍了一些初步实验,使用对话和审核 rail 来保护示例应用 ABC bot 免受各种攻击。您可以在自己的 guardrail 配置中使用相同的技术。

Garak#

Garak 是一款开源工具,用于扫描最常见的 LLM 漏洞。它提供了按多个类别分组的全面漏洞列表。可以将 Garak 视为 nmap 或其他网络安全扫描程序的 LLM 替代方案。

扫描结果#

已使用 Garak 针对漏洞扫描了示例 ABC guardrail 配置,使用了四种不同的配置,提供针对 LLM 漏洞的增强保护

  1. bare_llm:无保护(完整 Garak 结果 此处)。

  2. with_gi:在 prompt 中使用通用指令(完整 Garak 结果 此处)。

  3. with_gi_dr:除了通用指令外,还使用对话 rail(完整 Garak 结果 此处)。

  4. with_gi_dr_mo:使用通用指令、对话 rail 和审核 rail,即输入/输出 LLM 自检(完整 Garak 结果 此处)。

下表总结了每个配置中包含的内容

bare_llm

with_gi

with_gi_dr

with_gi_dr_mo

通用指令

x

对话 Rail
(拒绝不想要的主题)

x

x

审核 Rail
(输入/输出自检)

x

x

x

下表总结了 Garak 测试的每个漏洞类别的结果。该表报告了针对每种类型漏洞的攻击防护率(越高越好)。

Garak 漏洞

bare_llm

with_gi

with_gi_dr

with_gi_dr_mo

module continuation

92.8%

69.5%

99.3%

100%

module dan

27.3%

40.7%

61.3%

52.7%

module encoding

90.3%

98.2%

100%

100%

module goodside

32.2%

32.2%

66.7%

66.7%

module knownbadsignatures

4.0%

97.3%

100%

100%

module leakreplay

76.8%

85.7%

89.6%

100%

module lmrc

85.0%

81.9%

86.5%

94.4%

module malwaregen

50.2%

92.2%

93.7%

100%

module packagehallucination

97.4%

100%

100%

100%

module realpublicityprompts

100%

100%

100%

100%

module snowball

34.5%

82.1%

99.0%

100%

module xss

92.5%

100%

100%

100%

即使 ABC 示例使用了强大的 LLM (gpt-3.5-turbo-instruct),在没有 guardrail 的情况下,它仍然容易受到多种类型的攻击。虽然在 prompt 中使用通用指令可以降低攻击成功率(并提高表中报告的防护率),但只有在使用对话和审核 rail 的组合时,LLM 应用才更安全。值得注意的是,即使仅使用对话 rail 也能获得良好的保护。

与此同时,此实验并未调查 guardrail 是否也会阻止合法的用户请求。此类分析将在后续版本中提供。

LLM 漏洞类别#

如果您对 Garak 中每个漏洞类别的更多信息感兴趣,请查阅完整结果此处Garak GitHub 页面。