在最近的博客文章中,NVIDIA的AI红队揭示了大型语言模型(LLM)Tokenizer的潜在漏洞,并提供了减少这些风险的策略。Tokenizer将输入字符串转换为LLM处理的Token ID,如果没有正确保护,它们可能成为关键的失效点,据NVIDIA技术博客所述。
理解漏洞
Tokenizer经常在多个模型之间重复使用,通常作为明文文件存储。这使得任何具有足够权限的人都能访问和修改它们。攻击者可以修改Tokenizer的.json配置文件,改变字符串映射到Token ID的方式,可能在用户输入和模型解释之间制造差异。
例如,如果攻击者修改了单词“deny”到Token ID的映射,使其与“allow”关联,生成的Token化输入可能会从根本上改变用户提示的意义。这种情况说明了一种编码攻击,即模型处理用户意图输入的修改版本。
攻击向量与利用
Tokenizer可以通过各种攻击向量成为目标。一种方法是将脚本放置在Jupyter启动目录中,以在管道初始化之前修改Tokenizer。另一种方法可能包括在容器构建过程中修改Tokenizer文件,从而促进供应链攻击。
此外,攻击者可能通过引导系统使用其控制下的缓存目录来利用缓存行为,从而注入恶意配置。这些行为强调了需要运行时完整性验证来补充静态配置检查的重要性。
缓解策略
为应对这些威胁,NVIDIA建议多种缓解策略。对Tokenizer进行强版本控制和审计至关重要,特别是当Tokenizer作为上游依赖项继承时。实施运行时完整性检查可以帮助检测未经授权的修改,确保Tokenizer按预期运行。
此外,全面的日志记录实践可以通过提供输入和输出字符串的清晰记录来帮助法证分析,识别由Tokenizer操作引起的任何异常。
结论
LLM Tokenizer的安全性对于保持AI应用程序的完整性至关重要。对Tokenizer配置的恶意修改可能导致用户意图和模型解释之间的严重差异,破坏LLM的可靠性。通过采纳强大的安全措施,包括版本控制、审计和运行时验证,组织可以保护其AI系统免受此类漏洞的影响。
有关AI安全性的更多见解并及时了解最新发展,考虑探索即将推出的NVIDIA深度学习研究院课程《对抗性机器学习》。
Image source: Shutterstock