Show HN:我为OpenCode构建了一个静态验证器,用于阻止不安全的AI工具调用
一位开发者构建了一个名为Guardians的静态形式验证插件,用于OpenCode,以防止AI在执行工具调用时产生安全漏洞。该插件实现了路径包含检查、秘密污点分析和安全自动机状态机,有效拦截危险操作。
近日,开发者Albert Joseph发布了一个名为Guardians的开源插件,为OpenCode项目提供静态形式验证能力,旨在防止AI在执行工具调用时发生不安全行为。该插件基于Erik Meijer在CACM上发表的论文“Guardians of the Agents”中的思想,实现了代码与数据分离、Z3路径包含分析、秘密污点分析以及安全自动机状态机。
Guardians的工作原理是在OpenCode的AI循环中插入一个验证步骤。当AI提出工具调用(如bash、read、edit、write)时,OpenCode会触发一个钩子,将请求发送到本地的Guardians Python验证守护进程。该守护进程使用Z3求解器进行路径包含检查,防止路径遍历攻击(例如../../../../etc/passwd)。同时,它还能检测秘密文件(如.env、credentials.json、id_rsa)的读取请求,并防止这些敏感信息被写入其他文件或命令字符串中。此外,安全自动机强制执行操作顺序,例如在允许编辑文件之前必须先执行文件读取或列表操作。
如果验证失败,工具执行将被中止,并将违规信息反馈给AI,使得AI可以调整其行为。如果验证通过,工具正常执行。这样的设计可以显著增强AI工具调用的安全性,特别适合需要控制文件系统访问的自动化场景。
安装过程相对简单:用户需要在opencode.json中注册插件,然后克隆项目并启动Python验证侧车守护进程。该项目以MIT许可证开源,验证核心依赖于上游的Guardians仓库作为git子模块。
该插件的推出,为OpenCode用户提供了一道有效的安全防线,有望在AI驱动的自动化任务中减少误操作和恶意攻击的风险。