sfg-labs/ai-reviewer-security

GitHub: sfg-labs/ai-reviewer-security

一个基于AI的GitHub PR安全审查工具,用于自动检测代码中的安全漏洞和合规问题。

Stars: 0 | Forks: 0

# ai-reviewer 安全性 AI PR审查器专注于**安全**关切 — OWASP、SAST、密钥、PII、DPDP合规、RBAC、依赖项CVE。即插即用的GitHub Action,被`sfg-labs`多仓库中的每个仓库使用。 ## 状态 **v1 — 正在发布。** 包含13条规则,涵盖最高影响的安全类别。可重新运行,在静态分析器层面具有确定性,并辅以Claude推理来处理微妙模式(IDOR / RBAC缺陷 / 细微认证漏洞)。 ## 快速安装 ``` # .github/workflows/ai-review.yml - uses: sfg-labs/ai-reviewer-security@main with: anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }} github-token: ${{ secrets.GITHUB_TOKEN }} ``` 完整安装指南:[`docs/INSTALL.md`](./docs/INSTALL.md)。 ## 可检测的问题 | # | 规则 | 严重性 | |---|---|---| | 1 | [SEC.SECRET.001](./src/rule-packs/SEC.SECRET.001.md) — 源代码中的API密钥/私钥/提供商令牌 | 严重 | | 2 | [SEC.SQL.001](./src/rule-packs/SEC.SQL.001.md) — 使用用户输入的字符串拼接/模板化SQL | 高危 | | 3 | [SEC.SQL.002](./src/rule-packs/SEC.SQL.002.md) — Prisma的`$queryRawUnsafe` | 高危 | | 4 | [SEC.PII.001](./src/rule-packs/SEC.PII.001.md) — 源代码中的原始 Aadhaar / PAN / CIN | 高危 | | 5 | [SEC.PII.002](./src/rule-packs/SEC.PII.002.md) — PII被写入控制台/日志器 | 中危 | | 6 | [SEC.RBAC.001](./src/rule-packs/SEC.RBAC.001.md) — 数据库查询缺少租户范围 | 高危 | | 7 | [SEC.RBAC.002](./src/rule-packs/SEC.RBAC.002.md) — 路由绕过租户中间件 | 高危 | | 8 | [SEC.AUTH.001](./src/rule-packs/SEC.AUTH.001.md) — JWT签名未验证 | 严重 | | 9 | [SEC.CRYPTO.001](./src/rule-packs/SEC.CRYPTO.001.md) — 使用MD5 / SHA1 / DES / RC4 | 高危 | | 10 | [SEC.CRYPTO.002](./src/rule-packs/SEC.CRYPTO.002.md) — 对安全敏感值使用`Math.random` | 高危 | | 11 | [SEC.HTTP.001](./src/rule-packs/SEC.HTTP.001.md) — 禁用了TLS验证 | 高危 | | 12 | [SEC.DEP.001](./src/rule-packs/SEC.DEP.001.md) — 存在已知CVE的依赖项(npm audit) | 继承 | | 13 | [SEC.GIT.001](./src/rule-packs/SEC.GIT.001.md) — 使用`--no-verify`绕过提交钩子 | 中危 | 完整目录:[`docs/RULES.md`](./docs/RULES.md)。 ## 架构 ``` PR opened/updated │ ▼ fetch changed files (octokit) │ ▼ filter scannable (skip lockfiles, dist/, binaries) │ ▼ token-budget guard (skip + polite comment if > 50k tokens) │ ▼ ┌──────┴──────┐ ┌─────────┐ ┌─────────┐ ┌──────────┐ │ semgrep │ │gitleaks │ │ rbac │ │npm audit │ │ (patterns) │ │(secrets)│ │ (heur.) │ │ (CVEs) │ └──────┬──────┘ └────┬────┘ └────┬────┘ └────┬─────┘ └────────┬────┴─────┬────┴────────────┘ ▼ ▼ existing findings │ ▼ Claude reasoner (sonnet-4-6, escalates to opus-4-7 for ambiguous) │ ▼ aggregator: dedupe → applyConfig → sort → cap │ ▼ verdict policy (REQUEST_CHANGES on CRITICAL/HIGH; COMMENT otherwise) │ ▼ post inline comments + summary review ``` ## 仓库布局 ``` action.yml ← GH Action manifest (Node20) src/ runner.ts ← entry — bundled to dist/index.js by ncc orchestrator.ts ← top-level pipeline (test-target) config.ts ← parses .github/ai-review.yml diff.ts ← unified-diff parser + token estimator github/ ← octokit wrappers (pr-diff, post-inline, post-summary) tools/ ← static-analyzer wrappers (semgrep, gitleaks, npm-audit, rbac) claude/reasoner.ts ← @anthropic-ai/sdk wrapper prompts/system.ts ← Claude system prompt (rule catalog as context) rule-packs/SEC.*.md ← one markdown per rule (canonical source) aggregator.ts ← dedupe + verdict policy version.ts ← rule pack + analyzer version pins tests/ ← jest, ≥95% coverage, msw/nock-style mocks dist/index.js ← bundled action (committed — that is how GH Actions work) docs/RULES.md + docs/INSTALL.md ``` ## 开发 ``` npm install npm test # runs at ≥95% coverage npm run build # ncc -> dist/index.js (commit the result) ``` 编辑规则目录后,在`src/version.ts`中更新`RULE_PACK_VERSION`,并运行`npm run build`,以便Action提供新版本。 ## 硬性规则 - **引用每一项发现** — `rule_id` + `citation_url`指向该规则的Markdown文档 - **可重现性** — 每条评论中包含`rule_pack_version` + `analyzer_versions` - **自我抑制** — 内联注释`// ai-review-ignore: — 原因` - **Token预算** — 硬性上限为50k输入token(礼貌跳过) - **除了GitHub API + Anthropic API外,不进行网络调用** - **裁决策略** — 对任何严重/高危问题提出更改请求;否则仅发表评论 - **提交`dist/`目录** — GitHub Actions直接使用打包后的JS文件 ## 多仓库主页 - 组织:[`sfg-labs`](https://github.com/sfg-labs) - 同级审查器:`sfg-labs/ai-reviewer-quality`、`sfg-labs/ai-reviewer-qa` - 被所有23个标准化的服务/网络/基础设施仓库使用 ## 构建方 [Faith & Gamble IT × Suwalka Motors JV](https://github.com/sfg-labs) — `sfg-labs`。
标签:AI代码审查, AI辅助, CI/CD安全, DevSecOps, DOE合作, GitHub Action, Llama, MITM代理, OWASP合规, PII保护, RBAC检查, SQL注入防护, TLS验证, 上游代理, 云安全监控, 依赖漏洞, 加密安全, 安全审查, 密钥泄露检测, 自动化攻击, 静态分析