ps-fuzz简介
ps-fuzz是Prompt Security公司开发的一款专门用于测试和加强生成式AI应用安全性的开源工具。它主要针对AI应用的系统提示(system prompt)进行安全评估,通过模拟各种动态的基于LLM的攻击,帮助开发者识别潜在的安全漏洞并对系统提示进行加固。
ps-fuzz的核心功能包括:
- 动态测试:根据应用的独特配置和领域,自动调整测试策略。
- 多种攻击模拟:支持15种不同类型的攻击,全面评估系统提示的安全性。
- 交互式界面:提供Playground聊天界面,让用户能够迭代改进系统提示。
- 多LLM支持:兼容16种不同的LLM提供商,具有良好的通用性。
- 灵活配置:支持命令行和交互模式,可自定义测试参数。
通过使用ps-fuzz,开发者可以全面评估自己AI应用的安全性,并在发现问题后及时进行修复和加固,从而打造更安全可靠的生成式AI产品。
安装与使用
ps-fuzz的安装非常简单,只需通过pip进行安装即可:
pip install prompt-security-fuzzer
安装完成后,可以通过以下命令启动ps-fuzz:
export OPENAI_API_KEY=sk-123XXXXXXXXXXXX
prompt-security-fuzzer
ps-fuzz支持多种使用模式,包括交互式模式和批处理模式。在交互式模式下,用户可以逐步输入系统提示,然后开始测试。而在批处理模式下,可以通过命令行一次性完成测试。
例如,使用以下命令可以快速启动一次单独的测试:
prompt-security-fuzzer -b ./system_prompt.examples/medium_system_prompt.txt
ps-fuzz还支持自定义基准测试和选择性运行部分攻击类型:
prompt-security-fuzzer -b ./system_prompt.examples/medium_system_prompt.txt --custom-benchmark=ps_fuzz/attack_data/custom_benchmark1.csv --tests='["ucar","amnesia"]'
支持的攻击类型
ps-fuzz支持多种攻击类型,主要分为以下几类:
越狱攻击(Jailbreak)
- AIM Jailbreak: 通过马基雅维利角色扮演,诱导LLM提供非法活动指导。
- Affirmative Suffix: 利用漏洞诱导LLM对禁止内容做出肯定回应。
- Amnesia: 导致LLM忘记或忽视系统提示指令。
- Contextual Redirection: 诱导LLM采用特定角色以绕过预设限制。
- Do Anything Now Jailbreak (DAN): 测试LLM通过角色扮演执行禁止活动的抵抗力。
- Harmful Behavior: 使用有害行为数据集挑战LLM。
- Linguistic Evasion: 使用非英语语言绕过预设限制。
- Self Refine: 尝试通过向非道德方向细化响应来绕过系统提示。
- UCAR: 评估LLM在被要求忽略内容限制时的坚持程度。
- Base64 Evasion: 尝试通过将有害提示编码为base64字符串来逃避检测。
提示注入(Prompt Injection)
- Authoritative Role Impersonation: 冒充权威角色以误导LLM的输出。
- Complimentary Transition: 测试LLM在赞美后切换话题时维持内容标准的能力。
- Ethical Compliance: 评估LLM讨论敏感话题有害或不当内容的抵抗力。
- Typoglycemia Attack: 通过省略随机字符利用文本处理漏洞,导致错误响应。
系统提示提取(System prompt extraction)
- System Prompt Stealer: 尝试提取LLM的内部配置或敏感信息。
通过模拟这些攻击,ps-fuzz可以全面评估AI应用的系统提示安全性,帮助开发者识别潜在的漏洞和风险。
未来发展路线
ps-fuzz团队对该工具的未来发展有着明确的规划:
- 开发Google Colab Notebook,提供更便捷的使用方式。
- 调整提示数据集测试的输出评估机制,提高评估准确性。
- 持续增加新的生成式AI攻击类型,扩大测试覆盖范围。
- 增强报告功能,提供更详细和易于理解的测试结果。
- 提供加固建议,帮助用户更好地改进系统提示安全性。
社区贡献
ps-fuzz是一个开源项目,欢迎社区成员参与贡献。如果您有自己的攻击类型想要添加到项目中,可以参考贡献指南进行操作。对于新贡献者,可以查看GitHub仓库中标记为new-test
和good-first-issue
的问题,这些是很好的起点。
通过社区的共同努力,ps-fuzz将不断发展壮大,为生成式AI应用的安全性提供更全面和有力的保障。无论您是AI应用开发者、安全研究人员,还是对AI安全感兴趣的爱好者,都可以从ps-fuzz中受益,并为其发展贡献自己的力量。
总之,ps-fuzz作为一款强大的生成式AI应用安全测试工具,为开发者提供了全面评估和加强AI应用安全性的能力。通过模拟各种攻击,识别潜在漏洞,并提供改进建议,ps-fuzz正在为构建更安全、更可靠的AI生态系统做出重要贡献。随着生成式AI技术的快速发展和广泛应用,ps-fuzz这样的安全工具将在未来扮演越来越重要的角色,助力AI技术的健康发展。