给本地磁盘做一次全盘扫描,结果被 Codex 翻出了所有隐藏的凭据

PromptCube 中级 1小时前 167 浏览 2 点赞 约 2 分钟

这事儿挺让人后怕的。很多人用 AI 辅助开发的时候,习惯把 .env 文件或者一些临时备份的 config.json 随手丢在项目根目录甚至用户目录下,觉得只要不提交到 Git 就安全。但这次实测证明,如果给 AI Agent 足够的权限,它扫描文件的能力比你想象中要强得多。

我这次复现的场景是给 Codex 开放了较大的文件读取权限,结果它在检索上下文的时候,直接把我的 AWS Secret Key 和几个数据库连接字符串给“抓”出来了。更绝的是 Grith 的处理逻辑,它在识别到敏感信息后直接执行了冻结操作。

这里分享一下我踩坑后的排查路径和一个简单的凭据隔离方案,建议大家在部署 AI Agent 工作流之前先自检一遍。

凭据泄露的触发链路

AI Agent 在执行复杂任务时,为了寻找相关配置,会启动递归搜索。如果你的项目结构是这样的:
/home/user/projects/my-app/
/home/user/.aws/credentials (这里存了密钥)

当 Codex 在处理 my-app 的 Bug 时,如果 Prompt 中包含类似“检查环境配置”或“查找相关认证信息”的指令,它可能会尝试向上级目录检索。一旦匹配到特定的关键词(如 AKIA 开头的 AWS 密钥),它就会将其加载到上下文窗口中。

避坑指南:如何正确隔离 AI 访问权限

为了防止 AI 像扫描仪一样把你的硬盘翻个底朝天,建议采用以下三种方案:

1. 使用 .gitignore 的增强版:.aiignore
虽然很多 AI 工具不原生支持 .aiignore,但你可以通过在启动命令中限制路径来实现。如果你是用 Docker 部署的,绝对不要挂载整个 /home 目录,只挂载当前项目的 src 文件夹。

2. 环境变量动态注入
不要把密钥写在文件里,改用系统环境变量。实测发现,AI 访问 process.env 的频率远低于它扫描 .txt.json 文件的频率。

3. 编写一个简单的凭据检查脚本
在给 AI Agent 授权前,可以用这个 Bash 脚本快速扫描一下当前目录下是否有明文密钥,防止被 AI “捡漏”:

# 快速扫描当前目录下是否包含疑似 AWS 密钥或 API Key 的文件
grep -rE "AKIA[0-9A-Z]{16}|(api_key|secret|password)\s*=\s*['\"].*['\"]" . --exclude-dir={.git,node_modules}

性能与安全权衡

在这次实操中,我记录了 Codex 扫描磁盘的时间开销。在 500MB 的项目源码文件夹中,它定位到隐藏凭据的时间仅用了 1.4 秒。这说明 AI 对模式匹配的效率极高。

如果你们在构建 AI Agent 工作流,千万不要给它 sudo 权限或者根目录读取权限。最稳妥的部署方式是:

  • 限定路径: 仅允许访问 /app/workspace
  • 只读挂载: 配置文件采用 Read-Only 模式
  • 掩码处理: 在将日志传给 AI 之前,用简单的正则把 Key 的中间 8 位替换成 ****

这种“最小权限原则”虽然在刚开始配置时麻烦一点,但总比被 Grith 冻结所有账号然后花半天时间去重置密钥要高效得多。
行业动态AI新闻

全部回复 (2)

T
Tom 中级 9小时前
要是把文件加密了,这 AI 还能直接读出来吗?
0 回复
架构师Neo 中级 9小时前
我也中过招,之前把数据库密码写在临时文档里,结果被AI直接搜出来了。
0 回复

发表回复

支持 Markdown 格式