Fida 是一个本地优先的密钥泄露防护层,专门用于让 AI 编程智能体接触不到原始密钥值。它的目标非常克制:只做一件事——检测到的密钥不得进入模型上下文。它明确不是一个通用的智能体策略引擎、审批系统或开发者工作流防火墙,不决定智能体可以运行哪些普通命令、编辑哪些文件,也不管理是否可以使用 curl | sh。项目状态方面,资料显示 MVP 已实现:Fida 可以安装本地集成、用合成凭证验证脱敏路径、扫描仓库风险,并记录脱敏安全的审计事件。
用途与主要能力 当智能体需要的内容可能包含凭证时,Fida 会提供经过消毒的视图,而不是原始字节。其集成由三层组成:
- 脱敏 MCP 网关:fida_read 和 fida_shell 返回经过脱敏的文件内容以及捕获到的命令输出。fida_shell 仍会运行真实命令,子进程保留真实凭证,因此工作能够正常完成;只有回传给模型的输出会被脱敏,从而实现智能体“使用密钥却看不到密钥”。文件读取默认限制在工作区内,可通过可选显式读取根目录来覆盖受信任的用户附件;这些根目录之外的密钥(例如 ~/.aws)在受强制保护的智能体上仅由原生读取钩子覆盖。
- 智能体引导:通过一条托管指令告诉智能体,在需要敏感内容时使用这些脱敏工具。
- 原生读取钩子(在支持的环境中):Codex 和 Claude Code 在 Fida 检测到原生工具无法脱敏的密钥内容时,可以阻止原生读取,并引导智能体改用网关。 普通的干净读取、编辑、命令、安装、网络访问和审批仍由智能体和开发者自行负责。Fida 的网关遵循同样的低摩擦规则:它捕获并脱敏输出,但不应用命令允许列表或仓库审批策略。
检测范围 内置检测器目录可识别 dotenv 赋值、PEM 私钥,以及针对 AWS、GitHub、Google、Slack、Stripe、OpenAI、Anthropic 和 JWT 凭证的高精度格式。它优先保证精确率而非召回率:Fida 无法识别格式的凭证会原样通过而不被脱敏。这是一种针对意外暴露的尽力而为的防护,并不保证零泄露,建议配合 gitleaks 或 GitGuardian 等专用历史扫描器一起使用。Fida 在脱敏上采取失败关闭策略:如果无法证明响应是干净的,它会抑制该响应,而不是返回部分密钥。
安装与使用方式 二进制文件默认安装到 ~/.local/bin。在交互式终端中运行时,安装程序会主动提出为你接好防护;否则需要自行启动设置。资料提供了安装到默认位置、固定版本或选择其他安装目录的方式(具体安装命令请参见项目仓库说明)。日常命令包括:fida scan 报告原始密钥是否可能到达已检测到的智能体,它从不打印密钥值、长度或其片段;fida status 报告每个已检测智能体的实际状态:enforced(强制)、best_effort(尽力)、incomplete(不完整)或 inactive(未激活)。fida 是安装后即可不管(install-and-forget)的设计:它会接入检测到的每个编程智能体,之后再次运行会检查更新。在终端运行时安装程序会主动完成接入;在管道或 CI 环境中则保持安静,仅打印 fida 作为下一步。
适用范围与限制 Fida 只在其已安装的集成路径上保护发往模型的内容,不是操作系统沙箱,也不是完整的数据防泄漏(DLP)产品。如果智能体能够忽略引导、绕过钩子,或者通过未经中介的原生工具访问文件,那么仍可能需要操作系统级别的隔离。Fida 会如实说明其覆盖范围,而不是把日常开发变成处处授权的迷宫。如发现可能暴露密钥、绕过脱敏或误报防护覆盖范围的安全敏感问题,请私下报告,并参见 SECURITY.md;许可条款见 LICENSE。