安全指导:SessionStart构建了304 MB SDK v,没有证书检查,并忽略了Security GUIDANCE-DISBAL
作者: fadmaz创建于 2026年8月14日更新于 2026年9月17日
总结
hooks/ensure_agent_sdk.py 在每个 SessionStart 中运行,并构建一个 304 MB 的 venv(~/.Claude/security/agent-sdk-venv,3,831 个文件)以安装 claude_agent_sdk。该 SDK 仅用于支持 LLM 提交/推送/停止审核。main() 根据六个条件来决定是否构建:Python 版本、系统路径上的 SDK、构建监控器、现有 venv、--target 回退选项以及信号杀死冷却时间。它不检查决定 SDK 是否会被使用的三个因素中的任何一个:
- API 认证。
grep -iE 'ANTHROPIC_API_KEY|AUTH_TOKEN|credential' hooks/ensure_agent_sdk.py返回空。LLM.py:123遍历每个 LLM 路径,检查HAS_API_CREDENTIALS,但引导程序从未查看它。 ENABLE_STOP_REVIEW/ENABLE_COMMIT_REVIEW。两者都只在security_reminder_hook.py中读取。明确关闭审核的用户仍然会获得 venv。SECURITY_GUIDANCE_DISABLE— 文档中描述的主杀死开关。security_reminder_hook.py:164-170将其描述为完全禁用 "插件",但它仅在该文件中读取。ensure_agent_sdk.py的导入包括importlib.util, json, os, subprocess, sys, time, pathlib和_base.state_dir— 杀死开关从未到达该位置。因此,在没有认证的机器上,插件自己的杀死开关无法阻止 SessionStart 为无法运行的功能构建 304 MB 的 venv。
从该机器的 ~/.Claude/security/log.txt + log.txt.1 中,2026-07-29 → 2026-08-14(16 天):
| 观察 | 值 |
|---|---|
| 运行的停止审核 | 0 的 315 — 所有日志都记录了 LLM review disabled or no API credentials |
| 运行的提交审核 | 0 的 227 — 224 个日志记录了相同的内容,3 个没有审核行 |
| 进行的 LLM API 调用,总计 | 0(使用 grep 查找请求/令牌/agent-sdk-query 标记:没有匹配) |
agent-sdk-venv 大小 |
318,800,844 B(304 MiB),3,831 个文件 |
| 为何安装 | claude_agent_sdk 0.2.115,构建于 2026-07-10 |
ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 都已被清除,并且在该 venv 的生命周期中一直如此。
内容来源: anthropics/claude-plugins-official