Show HN:ModelFuzz – AI代理的开源运行时防护栏
ModelFuzz 是一个开源工具,通过红队扫描器和防护装饰器,帮助检测和阻止 AI 代理的提示注入攻击,保护基础设施和敏感数据。
随着AI代理技术在各个领域的广泛应用,安全性问题日益成为焦点。其中,提示注入(Prompt Injection)攻击是一种严峻的威胁:攻击者通过向模型输入中嵌入恶意指令,能够劫持LLM代理的行为,使其执行任意系统命令、窃取敏感数据或发起其他破坏性操作。例如,一封看似无害的邮件可能包含隐藏的指令,诱导代理调用shell.run执行任意命令,或通过http.post将机密信息外泄至攻击者控制的服务器。传统的提示级过滤器无法彻底防范此类攻击,因为模型行为具有非确定性。
ModelFuzz 正是为解决这一问题而设计的开源运行时防护框架。它集成了攻防两端的能力:攻击端提供红队扫描器,可以对任何兼容OpenAI API的端点进行自动化的提示注入测试,暴露代理的脆弱点;防御端则通过一个轻量的装饰器,在工具函数执行前对参数进行安全策略检查,一旦发现违规立即阻止调用。
具体而言,扫描器通过命令行即可运行,例如使用命令‘modelfuzz scan --endpoint http://localhost:11434/v1 --model qwen2.5’,它会向目标端点发送一系列精心构造的提示注入载荷,并报告哪些攻击成功触发了工具调用。测试结果如‘3/5 payloads triggered a tool call’,清晰地展示了代理的防御漏洞。
防御部分则通过装饰器@shield_tool实现。开发者只需在工具函数定义前添加该装饰器,ModelFuzz便会自动检查每次调用参数是否符合预设策略。例如,对于发送邮件的函数,它会检查收件人地址和邮件正文是否包含敏感关键字。如果检测到试图发送API密钥等机密信息,ModelFuzz会抛出异常并阻止操作,同时记录详细的审计日志:LLM决策、传入参数以及阻断原因,如‘字符串包含敏感关键字:secret’。
此外,ModelFuzz还提供了可选的托管仪表板,支持集中式策略管理、审计日志查看和持续代理扫描,方便团队协作。该项目完全开源,代码可在GitHub上获取,用户可立即部署使用。