cisoventures/RepoRook

GitHub: cisoventures/RepoRook

RepoRook 是一款免费开源的代码安全门控工具,将多种确定性扫描器统一到单一 CLI 与一致 schema 下,专为人类和 AI Agent 编写的代码提供可复现的发布前安全检测。

Stars: 0 | Forks: 0

# RepoRook RepoRook 是一款免费、开源的安全门控工具,专为人类或编程 Agent 编写的代码而设计。它将确定性扫描器整合在一个 CLI、一种 findings schema、一项 GitHub check 之下,并为 Claude Code、Codex、Cursor、GitHub Copilot、Gemini CLI 和 Windsurf 提供了轻量级集成。 **MIT 许可证 · 无托管服务 · 无遥测 · 无由维护者资助的推理。** RepoRook 扫描的是应用程序代码,而不是生成代码的 agent、技能、插件或 MCP 服务器。 ## 新手体验 询问你的编程 Agent: RepoRook 提供确定性证据。你现有的 agent 可以验证上下文并提出补丁。你来批准更改。RepoRook 和仓库测试会对其进行验证。CI 仍然是合并的门控。 ## 快速开始 要求:Node.js 20 或更高版本。RepoRook 会在适用时编排 Semgrep、Gitleaks、`npm audit` 和 `pip-audit`。 默认情况下,Semgrep 会下载公开的 `p/default` 规则包,并在禁用指标的情况下运行它。当你需要完全离线或逐字节可复现的源码扫描时,请将 `semgrepConfig` 设置为固定的本地规则文件。 ``` npx reporook doctor npx reporook setup npx reporook scan . ``` CI 的退出代码是稳定的: - `0`:没有发现结果达到配置的阈值 - `1`:至少有一个发现结果达到了阈值 - `2`:目标、配置或必需的扫描器错误 扫描器的缺失绝不会伪装成安全状态。每份报告都会说明覆盖率是 `complete`(完全)、`partial`(部分)还是 `failed`(失败)。 ## GitHub Action ``` name: RepoRook on: [pull_request] permissions: contents: read pull-requests: write security-events: write jobs: security: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 with: fetch-depth: 0 - uses: cisoventures/RepoRook@main # use a release tag once published with: fail-on: high mode: diff ``` 该 Action 会安装固定版本的扫描器,更新一条 PR 评论,上传 SARIF,保留完整的扫描回执,并在报告后强制执行配置的阈值。 ## 配置 创建 `reporook.yml`: ``` failOn: high outputDir: .reporook semgrepConfig: p/default # or a pinned local Semgrep rules file paths: - . ignore: - node_modules/** - dist/** requiredScanners: - semgrep - gitleaks scanners: pip-audit: true ``` ## 输出 - `.reporook/findings.json`:确定性标准化发现结果 - `.reporook/results.sarif`:兼容 GitHub 的投影 - `.reporook/scan-receipt.json`:commit、配置哈希、扫描器版本和覆盖率 - `.reporook/agent-review.json`:可选的,单独归因的 host-agent 分析 v1 schema 位于 [`schemas/`](schemas/) 中。发现结果的 ID 特意排除了行号,因此在发现结果上方插入代码不会改变其标识。 ## Agent 集成 本地 MCP 服务器提供以下功能: - `scan_repository` - `scan_changes` - `list_findings` - `get_finding` - `get_remediation_context` - `verify_fix` - `export_findings` 直接运行它: ``` { "mcpServers": { "reporook": { "command": "npx", "args": ["--yes", "@reporook/mcp-server"] } } } ``` 原生包位于 [`adapters/`](adapters/) 下。每个 host 都会获得相同的规范安全工作流。原生安全产品可能会深化验证,但它们的结论仍然会单独归因。 ## 信任模型 | 标签 | 含义 | |---|---| | RepoRook finding | 确定性扫描器在此版本中匹配到了证据 | | Native-agent validated | 指定的 host 安全员验证了上下文或攻击路径 | | Agent hypothesis | 尚未经过确定性复现的推理 | | Scanner resolution passed | 补丁应用后,原有的稳定发现结果已不存在 | | Fix verified | 扫描器解决、针对性的回归证据以及相关测试均已通过 | RepoRook 不会静默应用补丁、轮换凭证、创建工单或发布安全通告。 ## 开发 ``` npm install npm run check node cli/dist/index.js scan test-fixtures/vulnerable-app --require-scanners ``` 请参阅 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)、[`docs/ADAPTERS.md`](docs/ADAPTERS.md) 和 [`CONTRIBUTING.md`](CONTRIBUTING.md)。 ## 项目状态 该仓库包含完整的 beta 版架构。扫描器检测准确性和 host 打包应被视为 pre-1.0 阶段,并将通过基于测试用例的贡献进行扩展。
标签:MITM代理, 安全扫描, 开源框架, 持续集成, 时序注入, 自动化攻击, 错误基检测, 静态代码分析