内容
<div align="center">
<img src="src-tauri/icons/128x128.png" width="72" alt="Codex 保安图标" />
# Codex 保安
**OpenAI Codex 的本机安全审计工具。** 实时检查 Codex 执行的每条命令、改动的每个文件、读进上下文的每段内容,发现提权、删库、偷凭据、数据外传、提示注入、投毒篡改就提示你。
[](https://github.com/jliushi/codex-baoan/releases/latest)
[](https://github.com/jliushi/codex-baoan/releases)
[](LICENSE)

</div>

它只读 Codex 自己写的会话日志,发现问题就提示你。
**不代理流量、不装证书、不改 Codex 或 CC Switch 的任何配置。** 装上就能用,删掉不留痕迹。
## 它检查什么
| 类别 | 例子 |
| --- | --- |
| 提权越权 | `sudo` / `RunAs` / `gsudo`、把账户加进管理员组、改 HKLM 注册表、建系统服务、Codex 申请越出沙箱 |
| 破坏性操作 | 递归删除根目录 / 家目录 / 整个盘、格式化、`git push --force`、`git reset --hard`、`DROP TABLE` |
| 凭据访问 | SSH 私钥、`~/.codex/auth.json`、浏览器 Cookie / 登录数据、`cc-switch.db`、云平台凭据、`.env` |
| 数据外传 | 读凭据同时联网、`curl -d @文件` 上传、内网穿透 |
| 下载即执行 | `curl … \| sh`、`irm … \| iex`、编码的 PowerShell 命令(会先解码再检查) |
| 持久化 | 计划任务、开机自启、crontab、WMI 订阅 |
| 规避防护 | 关 Defender、加排除项、删卷影副本、清日志、结束保安进程 |
| 提示注入 | 命令输出、网页、MCP 工具返回里藏着给 AI 的指令:「忽略之前的指令」、伪造的对话模板、「不要告诉用户」、Markdown 图片外带数据、不可见 Unicode 字符藏的文字(中英文都识别) |
| 投毒篡改 | 改 `AGENTS.md`、`config.toml`、技能、命令放行规则、MCP 配置、shell 启动脚本、git hook、依赖源、hosts;写入的内容里带注入指令会升级为严重 |
另外两项:
- **配置体检**:检查 Codex 主目录与近期项目的指令文件、技能、放行规则和 MCP 配置——过宽的放行规则、临时目录启动的 MCP、未锁版本的 MCP 包、明文 HTTP 上游、明文密钥、藏在指令文件里的注入内容;并记下每个文件的哈希,告诉你上次体检后哪些被改过。
- **模型审计**:如果你用 CC Switch 转发 Codex,只读它自己的请求日志,对比「请求的模型」和「上游自报的模型」。快照日期、版本号、`-build` 这类后缀不算替换;`-mini` / `-lite` 这类换小模型的算。

## 使用
从 [Releases](https://github.com/jliushi/codex-baoan/releases/latest) 下载:
- `…-Windows-Setup.exe`:安装版
- `…-Windows-Portable.exe`:免安装,双击即用
打开后自动回看最近 7 天的会话,之后每 1.5 秒读一次新日志。有新的中高危记录会在右下角提示。每条记录都有触发片段、完整命令 / 文件、所在会话和建议;确认过的可以标记为「已查看」。
## 边界(如实说明)
- **事后发现,不是事前拦截。** 保安读的是 Codex 已经写进日志的记录。如果你让 Codex 以「完全访问 + 从不审批」运行,它执行命令前不会问任何人,保安只能在执行后告诉你。
- 规则是启发式的:能抓住常见手法,挡不住刻意绕过的写法;提示注入的识别基于语义特征,有漏报也可能有误报,所以每条都附证据让你判断。
- 模型审计依赖上游自报的模型名。上游若连自报名一起改写,日志里看不出来。
- 检测记录、已查看标记和体检基线保存在 `%APPDATA%\codex-baoan`,只在本机。证据和命令在保存前会抹掉常见格式的密钥。
## 常见问题
**怎么知道 Codex 在我电脑上做了什么?**
Codex 会把每次会话以 JSONL 写进 `~/.codex/sessions`。Codex 保安实时解析这些日志,把每条命令、文件改动、MCP 调用和扫描过的输出列在看板上,有风险的按严重度排好。
**能发现针对 Codex 的提示注入吗?**
能。命令输出、抓取的网页、MCP 工具返回里如果有写给模型的指令——「忽略之前的指令」、伪造的系统 / 对话模板、「不要告诉用户」、Markdown 图片外带数据、不可见 Unicode 字符——都会被标出来,并附上原文片段。
**会拖慢 Codex,或者卡在网络中间吗?**
不会。它不碰 Codex 的任何流量,只读日志文件,Codex 的运行方式和原来完全一样。
**能在危险命令执行前拦住吗?**
不能。事前拦截请用 Codex 自带的审批策略和沙箱。保安是事后审计层,告诉你实际发生了什么——包括 `--full-auto` / 从不审批的会话。
**怎么知道中转站有没有偷偷把模型换成小模型?**
如果你用 CC Switch 转发,打开「模型审计」页。它逐个请求对比「请求的模型」和「上游自报的模型」,`gpt-5` → `gpt-5-mini` 这类降级会被标红。
**支持 Claude Code 等其他智能体吗?**
暂不支持,目前只解析 Codex 的会话日志。
**一个读我日志的安全工具,本身安全吗?**
MIT 开源、完全本地运行、自身不发任何网络请求。具体读写了什么见 [SECURITY.md](SECURITY.md)。
## 从旧版升级
v0.3(Go)和 v0.4 靠本机 MITM 抓包,需要往系统里装一张自签根证书,还会改 CC Switch 的出口代理。新版完全不需要这些。打开新版后:
- 如果提示「旧版装过的根证书」,点「一键移除」(Windows 会弹一次确认框)。
- 如果提示 CC Switch 的出口代理还指向 `127.0.0.1:8899`,请在 CC Switch 里清空或改回你自己的代理——新版不会替你改 CC Switch。
## 开发
```
pnpm install
pnpm dev # 开发模式
pnpm tauri build # 出安装包和 exe
cargo test --manifest-path src-tauri/guard-core/Cargo.toml # 检测引擎测试
```
检测引擎在 `src-tauri/guard-core`(不依赖 Tauri,可单独测试):
- `security/commands.rs`:高危命令规则
- `security/injection.rs`:提示注入识别
- `security/poisoning.rs`:投毒写入识别与配置体检
- `monitor.rs`:会话日志监控
- `model_audit.rs`:CC Switch 请求日志审计
- `legacy.rs`:旧版遗留清理
用真实日志试跑(写到临时目录,不影响应用数据):
```
set CODEX_BAOAN_DATA_DIR=%TEMP%\guard-test
cargo run --manifest-path src-tauri/guard-core/Cargo.toml --example scan -- 30
```
觉得有用的话,点个 ⭐ 能让更多 Codex 用户看到它。
## 许可
MIT