nerdy-krishna/securecoder
GitHub: nerdy-krishna/securecoder
基于 OWASP 框架的 AI 智能体安全编码技能包,将 SAST 静态扫描、自动漏洞修复与安全构建监督整合到主流编码智能体中,无需服务器即可完成代码审计与合规检查。
Stars: 2 | Forks: 0
# securecoder
一个可安装的 AI 智能体技能集合,用于根据 OWASP 安全框架对代码进行审计、修复和监督。可在 Claude Code、Cursor、Codex、Cline、Copilot、Windsurf、Gemini 和其他智能体宿主环境中运行。
securecoder 是**完全由智能体驱动**的。没有服务器,没有守护进程,没有 API 密钥。它会在运行时于您的机器上获取 SAST 工具(Semgrep、Bandit、Gitleaks、OSV-scanner)和 OWASP 框架 markdown 文件(ASVS、MASVS、Cheatsheets、Proactive Controls)——技能本身不会向第三方发送任何数据。
## 快速入门
安装一次:
```
npx skills@latest add nerdy-krishna/securecoder
```
`skills.sh` 安装程序会检测您机器上的所有编码智能体,并提供将 securecoder 安装到每个智能体中的选项。选择您常用的即可。
然后在任何项目中运行:
```
/securecoder-setup # one-time team config (3 minutes)
/securecoder-scan # audit your code
/securecoder-fix # remediate findings
```
这是最简操作路径。其他四个技能可提供特定的价值——请参阅下面的 [§ 七大技能](#the-seven-skills)。
## 技能如何串联工作
```
┌─────────────────────┐
│ /securecoder-setup │ one-time config
└──────────┬──────────┘
│ writes .securecoder/config.json
▼
┌─────────────────────────────────────────────────────────────────┐
│ │
│ Auditing existing code │
│ ───────────────────── │
│ /securecoder-scan → /securecoder-fix → /securecoder-scan │
│ (audit) (remediate) (verify) │
│ │
│ OR the easy-button equivalent: │
│ /securecoder-secure (does all the above in one approval) │
│ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ │
│ In-flight work / new projects │
│ ───────────────────────────── │
│ /securecoder-build ─→ (you work with the agent, supervised) │
│ /securecoder-review ←─ pre-commit gate on each change set │
│ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ │
│ Q&A and learning │
│ ─────────────── │
│ /securecoder-advise any time, grounded in framework docs │
│ │
└─────────────────────────────────────────────────────────────────┘
```
## 九大技能
| 技能 | 单行用途 | 何时调用 | 后续操作 |
| --- | --- | --- | --- |
| `/securecoder-setup` | 配置框架、严重性阈值、修复范围、推送策略。 | 在开始使用 securecoder 时,或团队偏好发生变化时配置一次。 | `/securecoder-scan` |
| `/securecoder-scan` | 审计您的代码 — SAST(Semgrep、Bandit、Gitleaks、OSV)和/或 ASVS/MASVS LLM 合规性。 | 当您想在修改代码前了解有哪些问题时。 | `/securecoder-fix` |
| `/securecoder-fix` | 通过完整的安全循环,对之前扫描的发现应用修复。 | 在运行 `/securecoder-scan` 之后进行修复。 | `/securecoder-scan`(验证) |
| `/securecoder-secure` | 一键式流水线:扫描 → 修复 → 合规性扫描 → 修复 → 报告,只需一次批准。 | 当您不想在扫描模式之间做选择时 — 让流水线自动执行正确的操作。 | `/securecoder-review`(下一次提交) |
| `/securecoder-review` | 对暂存或分支更改进行差异范围的审查。作为 pre-commit 关卡。 | 就在您提交 / 推送代码之前。 | `/securecoder-fix`(如果发现问题) |
| `/securecoder-build` | 在剩余的聊天会话中激活持久的 ASVS 监督。 | 在开始开发新功能或新项目时。 | `/securecoder-review`(每次实质性更改) |
| `/securecoder-advise` | 基于缓存的框架 markdown 进行问答。提供逐字引用。 | 当您不理解某个发现、想查找某个控制措施或正在权衡设计选择时。 | (无特定后续操作 — 阅读并学习) |
| `/securecoder-suppress` | 将发现标记为误报。通过 `.securecoder/suppressions.json` 在团队间共享。 | 当某个发现是错误的或符合预期时。也可通过 HTML 报告中每个发现/集群的抑制 UI 来操作。 | `/securecoder-scan`(重新运行以生效) |
| `/securecoder-update` | 检查已安装的 securecoder 是否为最新版本。如果存在升级,会报告最新版本及安装命令。 | 定期检查(约每月一次)。只读操作;绝不修改任何内容。 | (如果提供升级,则运行安装命令) |
### 调用示例
```
# 首次设置
/securecoder-setup
# 审计 Python 仓库的 SAST + ASVS 合规性
/securecoder-scan
# 在 mode 提示符处:"Both"
# 将修复应用于最新扫描,仅限 critical 和 high 严重级别
/securecoder-fix
# 在 scope 提示符处:"Critical + High"
# 按 id 执行特定运行(例如,重做之前的修复)
/securecoder-fix run 20260514T140000Z
# 回滚上次修复运行
/securecoder-fix --restore 20260514T143000Z
# 或自然语言:"undo my last sccap-fix"
# 简单按钮 — 整个 pipeline,一次批准
/securecoder-secure
# 仅对暂存的更改进行 Pre-commit 审查
/securecoder-review
# 对你的 feature branch 与 main 进行 Pre-PR 审查
/securecoder-review
# 在 scope 提示符处:"Branch vs base"
# 安装仅限 SAST 的 pre-commit hook
/securecoder-review
# 在 scope 提示符处:"Install pre-commit hook"
# 为此 session 的剩余部分激活 secure-build 模式
/securecoder-build
# 提出安全问题
/securecoder-advise "How do I prevent SSRF in this codebase?"
# 查找特定的 ASVS control
/securecoder-advise "Explain ASVS V1.2.1"
# 深入了解上次扫描中的特定发现
/securecoder-advise
# 在 mode 提示符处:"Specific finding deep-dive"
# 然后提供 finding ID 前缀
# 将发现标记为误报 (v1.1.0)
/securecoder-suppress 5823722d "Validated upstream by middleware"
# 将模式标记为误报
/securecoder-suppress add --match "rule=B105 and file_glob=tests/**" --reason "Test fixtures"
# 或直接对源代码进行注释 (v1.2.0)
# 在任何源文件内部:
# # securecoder: ignore reason="..."
# 在代码行末尾内联:
# PASSWORD = "x" # securecoder: ignore reason="dev only"
# 检查您是否使用的是最新的 securecoder 版本 (v1.2.0)
/securecoder-update
```
每个技能的详细指南位于 [`docs/guides/per-skill/`](docs/guides/per-skill/)。
## 常见场景
| 场景 | 推荐顺序 |
| --- | --- |
| **我刚接手一个代码库** | `/securecoder-setup` → `/securecoder-secure` → 审查 `report.html` |
| **开始一个新项目** | `/securecoder-setup` → `/securecoder-build`(然后与智能体一起编码)→ 每次提交前运行 `/securecoder-review` |
| **准备提交 PR** | `/securecoder-review`(范围:分支与基础分支对比)→ 如果有发现则运行 `/securecoder-fix` |
| **日常学习** | `/securecoder-advise "<问题>"` — 如果您曾运行过一次扫描以填充框架缓存,则无需进行设置 |
| **合规性审计交付物** | `/securecoder-scan`(模式:仅 LLM 合规性)→ 共享 `report.html` 和合规状态部分 |
| **某个发现看起来是错的** | `/securecoder-advise`(模式:特定发现深入分析)— 查看逐字的 ASVS 文本 + securecoder 为何标记它 |
| **回滚糟糕的修复** | `/securecoder-fix --restore ` |
完整的场景演练:[`docs/guides/scenarios.md`](docs/guides/scenarios.md)。
## 安装到了哪些位置
```
/
└── .securecoder/
├── config.json team-shared (checked in)
├── .gitignore (auto-generated)
├── runs// scan / fix runs (gitignored)
└── reviews// diff-scoped reviews (gitignored)
/ (~/.cache/securecoder/ on Linux, ~/Library/Caches/securecoder/ on macOS, %LOCALAPPDATA%\securecoder\ on Windows)
├── tools/
│ ├── semgrep/ pipped into a private venv
│ ├── bandit/ ditto
│ ├── gitleaks/ GitHub release binary
│ └── osv-scanner/ GitHub release binary
└── rules/
├── semgrep// returntocorp/semgrep-rules cloned, content-addressed
└── frameworks/
├── asvs// OWASP/ASVS cloned, content-addressed
├── masvs//
└── proactive-controls//
```
该技能**绝不会修改 `/.securecoder/` 和 `/securecoder/` 以外的任何内容**,除非您明确运行 `/securecoder-fix`(或 `/securecoder-secure`),这会写入您的源文件。即使如此,每个被修改的文件都会事先进行备份。
## 隐私
securecoder 本身**绝不会将源代码发送到任何地方**。它执行以下网络操作:
- 通过 HTTPS 对官方 OWASP 和 Semgrep 规则仓库(以及任何明确指定的自定义源)执行 `git clone`
- 通过 HTTPS POST 请求访问 `api.osv.dev`,仅发送依赖包的名称和版本(不包含源代码)
- 从 GitHub 通过 HTTPS 下载 Gitleaks 和 OSV-scanner 的发布二进制文件
- 仅当您配置的推送策略要求时才执行 `git push`,并且仅推送到您自己的远程仓库
**LLM 调用会将源代码发送到您的编码智能体使用的模型提供商** — Anthropic、OpenAI、Google 等。这是您与该提供商已有的既有关系;securecoder 不会引入新的供应商。compliance-scan、fix、build 和 review 技能本质上会在提示词中包含源代码。
一旦工具和规则包被缓存,您就可以完全离线运行 securecoder。
## 与 SCCAP 的关系
本项目将 [SCCAP 平台](https://github.com/nerdy-krishna/ai-secure-coding-compliance-platform) 中基于 OWASP 的扫描/修复工作流提炼为一个便携的、无服务器的技能包。SCCAP 仍然是重量级的服务器端解决方案(FastAPI、多智能体 LangGraph、Postgres、RabbitMQ、仪表板、多用户)。securecoder 则是轻量级的、驻留在智能体中的解决方案,面向希望获得相同审计优先纪律而无需搭建基础设施的个人开发者和小型团队。
这两个项目共享设计意图,但**彼此之间没有运行时依赖关系**。
## 设计与贡献
- [`docs/design.md`](docs/design.md) — 每一个架构决策、模式(schema)和协议
- [`docs/prd.md`](docs/prd.md) — 基于用户故事的需求
- [`docs/issues/`](docs/issues/) — 14 个实施切片,按依赖关系排序
- [`docs/guides/`](docs/guides/) — 使用演练和每个技能的深入解析
- [`docs/roadmap.md`](docs/roadmap.md) — v1.2.0 及后续版本的计划
- [`CHANGELOG.md`](CHANGELOG.md) — 从 v0.1.0 开始的完整发布历史
欢迎贡献。最简单的途径:
1. 从 `docs/issues/` 中挑选一个列出了待完成测试工作的切片,或者为新功能发起讨论。
2. 提交一个包含实现和测试(如适用)的 PR。
3. 两个标记为 HITL 的切片(07 ASVS 提示,11 build-mode 策略)需要维护者对其字面文本进行审查,因为它直接决定了智能体的行为。
## 许可证
[MIT](LICENSE)。
标签:AI编程助手, ASVS, Bandit, CISA项目, Claude Code, Cline, Codex, Copilot, Cursor, DevSecOps, Gemini, Gitleaks, MASVS, MITM代理, NPX, OSV-scanner, SAST, Semgrep, Windsurf, WordPress安全扫描, 上游代理, 人工智能, 代码安全, 威胁情报, 安全构建, 安全漏洞扫描, 安全编码, 开发者工具, 技能插件, 漏洞修复, 漏洞枚举, 用户模式Hook绕过, 盲注攻击, 结构化查询, 网络安全培训, 自动化安全, 软件供应链安全, 远程方法调用, 静态应用安全测试