TheLoneWulf-WA/agentic-security-baseline
GitHub: TheLoneWulf-WA/agentic-security-baseline
一套面向 AI 辅助开发的轻量级安全审查工作流,通过 Git 钩子和协议配置拦截未经审查的推送与常见安全隐患。
Stars: 0 | Forks: 0
# agentic-security-baseline
我在使用 Claude Code 进行开发时,用于安全防护和代码审查的配置。使用免费或已付费的工具。在此分享,希望能对你有所帮助。
## 这是什么
这个仓库是我为自己编写的一套小型工作流协议的实现。它旨在捕获我在使用 AI 辅助编写代码时常犯的错误——例如未经审查直接推送到 main 分支、忽略供应链警告、忘记运行安全检查——并在它们发布之前将其拦截。
我并非安全专家。我具备一定的技术背景,阅读广泛,并在 Web 和应用开发领域交付过各种项目。这里的系统代表了一个比普通 AI 开发者稍微谨慎一点的人会采取的做法。它并不高深,只是经过深思熟虑的。
完整的思考过程记录在这篇配套文章中:["You Can Just Do Things." But Maybe, Be Safe About It?](https://atmr.substack.com/p/you-can-just-do-things-but-maybe)。这篇文章解释了其架构和权衡。而这个仓库则是具体的实现文件。
## 包含内容
- **`CLAUDE.md`** — 加载到每个 Claude Code 会话中的工作流协议。定义了何时运行 `/security-review` 和 `/code-review`、push 如何路由、依赖安装如何管控,以及 PR 合并如何执行。
- **`hooks/push-routing-gate.sh`** — Claude Code 的 PreToolUse 钩子。每次 Claude 尝试运行 `git push` 时都会触发。如果推送的目标是 `main`、`master` 或 `production` 分支,它会提示进行确认。Claude 无法绕过此检查。
- **`hooks/pre-push`** — 一个全局的 git pre-push 钩子(通过 `core.hooksPath` 配置)。无论是否涉及 Claude,终端中的每次推送都会运行此脚本。它会执行 `npm audit --audit-level=critical`,并在敏感文件发生更改时发出警告。
- **`settings.snippet.json`** — 用于接入 PreToolUse 钩子的 Claude Code 设置项。
- **`install.sh`** — 用于放置文件、替换路径并配置 git 的 Shell 脚本。具备幂等性。
- **`docs/INSTALL.md`** — 分步安装指南。既可由代理(agent)执行,也可由你手动操作。
- **`docs/CUSTOMIZE.md`** — 需要根据你的技术栈进行调整的内容:支付处理器名称、敏感文件模式、分支名称等。
该系统还依赖于本仓库中未包含的两样东西:
- `/security-review` 和 `/code-review` 斜杠命令(由 Anthropic 提供,需单独安装——链接在 `docs/INSTALL.md` 中)
- GitHub 上用于在 PR 级别进行供应链扫描的 Socket.dev 免费套餐
## 适用人群
我是为自己构建了这个系统,但如果你是独立开发者、个人创客、凭直觉写代码的人、小型工作室创始人,或是利用 AI 交付项目的非技术人员,它可能同样适合你——尤其是在以下情况:
- 你的预算有限,付费安全工具过于昂贵
- 你的项目涉及支付、身份验证或用户数据,并希望在扩展规模前建立基本的安全基线
- 你在使用 Claude Code 进行开发时,尚未建立一套用于代码审查和安全强制的机制
如果你拥有安全团队、SOC2 合规认证以及专用的 SAST 基础设施,你可能不需要这个。你已经有更好的解决方案了。
## 安装
两种方式:
**让代理来完成。** 在 Claude Code(或 Cursor、Codex 等)中打开此仓库,并告诉它:*"按照 `docs/INSTALL.md` 的说明为我进行安装。"* 代理会阅读步骤,并根据你现有的设置进行调整——例如备份现有文件,以及在可能的情况下进行合并而不是替换。
**或者运行脚本。** `./install.sh` 会以确定性的方式完成相同的工作。结果一样,但减少了来回交互。
如果你想了解具体的操作步骤,可以查看 `docs/INSTALL.md`。
## 在投入使用前进行自定义
有一些默认设置需要根据你的技术栈进行调整:严格管控的支付处理器列表、git 钩子中敏感文件名的正则表达式、你的受保护分支,以及你的跳过短语。`docs/CUSTOMIZE.md` 详细说明了需要更改的内容以及更改的位置。
## 几点注意事项
- 这是我目前的做法。它未来会发生变化。如果你采纳了其中的内容,也请同样对待它——测试它,调整它,并摒弃那些不适合你的部分。
- “持续审查直到代码无隐患”会消耗大量 token。在一个充满干扰项的 diff 上,通常需要三到四个审查周期才能达到收敛。这会显著体现在你的用量额度上。
- `CLAUDE.md` 会带来永久的上下文开销。它会在每次会话中加载。随着它内容的增长,其成本也会增加。尽量不要无缘无故地让它变得臃肿。
- 我并不是 bash 钩子或 settings.json 内部机制的最深资深的专家。我让 Claude 编写了这些脚本,然后我阅读并测试了它们。它们目前运行良好。如果某天凌晨 2 点出了问题,调试它可能还需要再次向 Claude 提问。
- 威胁模型因人而异。这里的默认设置反映了我所担心的问题。它们可能会遗漏你应该担心的其他问题。
## 关于斜杠命令的说明
此协议引用的两个斜杠命令不在本仓库中。它们由 Anthropic 提供:
- `/security-review` — 来自 [anthropics/claude-code-security-review](https://github.com/anthropics/claude-code-security-review)
- `/code-review` — 来自 [anthropics/claude-code](https://github.com/anthropics/claude-code/tree/main/plugins/code-review) 中的官方 `code-review` 插件
两者都是本地斜杠命令。它们与 Anthropic 托管的 Code Review 服务(这是一项付费的 Team/Enterprise 功能,每次审查收费 $15-25)不同。
## 许可证
MIT。详情请见 [LICENSE](LICENSE)。
那篇文章介绍了架构。这个仓库提供了实现。取你所需,去你不需要的。
标签:AI安全, AI辅助编程, Chat Copilot, CI/CD安全, Claude, Cutter, CVE检测, DevSecOps, Git Hooks, GitHub Copilot替代, Llama, npm audit, Pre-push Hook, Web开发安全, 上游代理, 代码审查, 代码审查自动化, 威胁情报, 安全基线, 安全审查, 安全工作流, 开发者工具, 教学环境, 文档安全, 暗色界面, 结构化查询, 自动化安全, 防护脚本