raeseoklee/scanrail

GitHub: raeseoklee/scanrail

Scanrail 是一个开发者优先的安全扫描编排器,通过统一 CLI 封装开源安全工具,实现可重复的标准化安全检查与报告。

Stars: 0 | Forks: 0

[English](README.md) | [한국어](README.ko.md) # Scanrail [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/bbcb86bd7d003202.svg)](https://github.com/raeseoklee/scanrail/actions/workflows/ci.yml) [![npm](https://img.shields.io/npm/v/scanrail.svg)](https://www.npmjs.com/package/scanrail) [![License](https://img.shields.io/github/license/raeseoklee/scanrail.svg)](LICENSE) Scanrail 是一个开发者优先的安全扫描编排器。它将经过验证的开源安全工具封装在一个 CLI 之后,使团队能够在发起 pull request、发布或内部交接之前运行可重复的安全检查。 Scanrail 不会尝试重新实现商业的 SAST 或 DAST 引擎。它的工作是标准化扫描器的安装、配置、执行、规范化和报告方式。 ## 它标准化了什么 - 工具的设置与执行 - 基于项目的扫描配置 - 身份验证与目标允许列表 - 扫描结果规范化与严重性策略 - 开发者可读的报告 - CI/CD 集成 ## 方向 其长期模型是通过隔离的适配器(通常由 Docker 提供支持)来编排 OWASP ZAP、Nuclei、Semgrep、Trivy 和 Gitleaks 等工具。第一个候选版本有意缩小了范围:它提供了 CLI 脚手架、配置流程、报告生成、npm wrapper 分发以及一个原生安全标头扫描器。 ``` scanrail init scanrail setup scanrail run --profile quick scanrail mcp serve ``` 典型的开发者流程: 1. 启用由 Docker 提供支持的扫描器时,安装 Docker。 2. 运行 `scanrail init` 创建项目配置。 3. 运行 `scanrail setup` 准备工作区状态和扫描器资产。 4. 运行 `scanrail run` 执行检查。 5. 查看 HTML 和 JSON 报告。 ## 安装 ``` npm install -g scanrail scanrail doctor ``` 运行首次发布的原生标头检查: ``` scanrail init --non-interactive --project-name demo --target https://example.com scanrail run --only headers ``` npm 包会安装一个轻量级的 JavaScript 命令 wrapper,以及适用于 macOS、Windows 或 Linux 的匹配 Go 二进制包。带有作用域的 `@scanrail/cli` 包作为底层的 wrapper 包保留。由 Docker 提供支持的 Gitleaks、Trivy 和 Semgrep 适配器计划于下一步推出;它们真实的命令/输出契约已在 [Scanner Adapter Spike](docs/experiments/scanner-adapter-spike.md) 中记录。 为支持 stdio MCP 的 AI 客户端运行本地 MCP 服务器: ``` scanrail mcp serve ``` MVP 版本的 MCP 暴露了受限的工具,用于 `doctor`、读取配置、获取最新报告摘要,以及带有明确主动扫描确认的原生标头扫描。 stdio MCP 路径可以使用 [MCP Workbench](examples/mcp-workbench/README.md) 进行回归测试。 ## 文档 - [产品需求](docs/product-requirements.md) - [架构](docs/architecture.md) - [Go 技术设计](docs/go-technical-design.md) - [实施计划](docs/implementation-plan.md) - [ADR-0001:带有 npm Wrapper 的 Go 核心](docs/adr/0001-go-npm-wrapper.md) - [命名](docs/naming.md) - [设置场景](docs/setup-scenario.md) - [CLI 参考](docs/cli-reference.md) - [配置参考](docs/config-reference.md) - [安全模型](docs/safety-model.md) - [开源工具审查](docs/open-source-tools.md) - [OSS 策略](docs/oss-strategy.md) - [分发策略](docs/distribution.md) - [npm 发布操作手册](docs/npm-publish.md) - [发布说明 0.1.3](docs/releases/0.1.3.md) - [发布检查清单](docs/release-checklist.md) - [发布风险登记册](docs/release-risk-register.md) - [风险处理计划](docs/risk-treatment-plan.md) - [MCP 设计](docs/mcp-design.md) - [MCP Workbench 验证](examples/mcp-workbench/README.md) - [演示录像场景](docs/demo-tape-scenario.md) - [贡献指南](CONTRIBUTING.md) - [安全策略](SECURITY.md) - [路线图](docs/roadmap.md) - [Scanner Adapter Spike](docs/experiments/scanner-adapter-spike.md) ## 演示录像 MCP 验证: ![MCP 验证录像](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e081545e9e003208.gif) Scanner adapter spike: ![Scanner adapter spike 录像](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3cd91bf0ea003213.gif) ## MVP 范围 当前的首次候选发布版本支持: - `scanrail doctor` - `scanrail init --non-interactive` - `scanrail setup --pull-policy never` - `scanrail run --only headers` - `scanrail mcp serve` - JSON 和 HTML 报告生成 - npm wrapper 包结构 - 针对 macOS、Windows 和 Linux 的特定平台二进制包 - 发布预演自动化 由 Docker 提供支持的 Gitleaks、Trivy 和 Semgrep 适配器已包含在产品和打包计划中,但它们的命令生成和结果规范化仍是未来的工作。 ## 开发 ``` go test ./... npm test node scripts/build-release.mjs npm pack --workspaces --dry-run ``` 完整的发布预演流程为: ``` make release-dry-run ``` ## 许可证 Apache-2.0。详见 [LICENSE](LICENSE)。 ## 安全默认设置 - 默认情况下禁用主动扫描。 - 当所选扫描器可以强制执行该作用域时,将拒绝配置的允许列表之外的请求。 - 密钥通过环境变量名称进行引用,不存储在项目配置中。 - 破坏性路径将被阻止或受到明确警告。 - 生产环境目标需要明确的选择加入。 - 扫描器的功能缺失将以跳过或失败的形式显现,而不是默默地削弱安全策略。 ## 参考标准 - OWASP Top 10 - OWASP ASVS - OWASP WSTG - OWASP API Security Top 10 - CWE - CVSS - EPSS - CISA KEV - SARIF - CycloneDX / SPDX
标签:DevSecOps, EVTX分析, FTP漏洞扫描, GNU通用公共许可证, LNA, Node.js, 上游代理, 安全编排, 开发安全, 数据可视化, 日志审计, 暗色界面, 请求拦截