NickCrew/Crucible

GitHub: NickCrew/Crucible

下一代开源安全测试平台,提供 80+ 预构建攻击场景、可视化编辑器和实时仿真引擎,支持通过/失败评估评分。

Stars: 0 | Forks: 0

Crucible — Open-source attack simulation and compliance assessment engine

# Crucible 下一代安全测试平台。Crucible 提供了包含 80+ 攻击场景的目录、可视化场景编辑器、实时仿真引擎以及通过/失败评估评分——所有这些均通过由 WebSocket 流支持的 Web UI 进行编排。 ## 核心功能 - **场景目录** — 80+ 预构建的安全场景,涵盖 OWASP API Top 10、Web 攻击、业务逻辑缺陷、合规性检查等 - **可视化编辑器** — 通过基于表单的编辑器或原始 JSON 创建和修改场景,并带有实时验证 - **实时仿真** — 通过实时时间线观察逐步执行过程,支持暂停/恢复/取消控制和变量提取 - **评估评分** — 在评估模式下运行场景,获取包含百分比评分的通过/失败判定 - **DAG 执行** — 步骤按依赖顺序执行,支持条件分支、重试和模板变量 ## 架构 ``` crucible/ ├── packages/catalog # @crucible/catalog — scenario schemas, validation, and loader ├── apps/web-client # Next.js 16 web UI (scenarios, assessments, simulations) └── apps/demo-dashboard # Express + WebSocket simulation orchestrator ``` | 包 | 技术栈 | 描述 | |---------|-------|-------------| | `@crucible/catalog` | TypeScript, Zod | 场景类型定义、JSON schema 验证、Runbook 解析器 | | `web-client` | Next.js 16, React 19, Tailwind 4, Radix UI | 用于浏览和编辑场景的主要 Web 界面 | | `@crucible/demo-dashboard` | Express, WebSocket | 带有实时仪表盘的实时场景执行引擎 | ## 快速开始 ### 前置条件 - **Node.js** 22+ - **pnpm** 9.15.4 (通过 `corepack enable` 启用) ### 安装并运行 ``` pnpm install pnpm build ``` 启动两个服务器(在单独的终端中): ``` # 后端 — scenario engine + REST API + WebSocket (端口 3001) pnpm --filter @crucible/demo-dashboard dev # 前端 — web UI (端口 3000) pnpm --filter web-client dev ``` 打开 **http://localhost:3000** 并验证 **CONNECTED** 指示器是否出现在页头中。 ### 使用 Docker 运行 ``` docker run -p 3000:3000 ghcr.io/nickcrew/crucible/web-client:latest ``` ## 文档 ### 用户指南 | 指南 | 描述 | |-------|-------------| | [入门指南](docs/user-guides/getting-started.md) | 安装、配置并启动 Crucible | | [运行场景](docs/user-guides/running-scenarios.md) | 浏览目录、运行仿真并查看评估结果 | | [编辑场景](docs/user-guides/editing-scenarios.md) | 创建和修改场景定义 | ### 架构 | 文档 | 描述 | |----------|-------------| | [系统概览](docs/architecture/system-overview.md) | 组件映射、数据流图和通信协议 | | [场景引擎](docs/architecture/scenario-engine.md) | DAG 调度、步骤执行、断言和 WebSocket 事件 | ### 开发 | 文档 | 描述 | |----------|-------------| | [测试指南](docs/development/testing/testing-guide.md) | 测试基础设施、约定和覆盖率细分 | 查看完整的 [文档导航器](docs/NAVIGATOR.md) 以获取所有可用文档。 ## CI/CD ### Pull Request 检查 每个提交到 `main` 的 PR 都会通过 [GitHub Actions](.github/workflows/ci.yml) 运行构建、类型检查和测试。 ### Docker 发布 推送 semver 标签会触发 Docker 构建并推送到 GitHub Container Registry: ``` git tag v0.2.0 git push origin v0.2.0 ``` 这将发布 `ghcr.io/nickcrew/crucible/web-client`,其标签派生自版本号(例如 `0.2.0`、`0.2`、`latest`)。 ## 项目命令 | 命令 | 描述 | |---------|-------------| | `pnpm build` | 构建所有包(由 Nx 编排) | | `pnpm test` | 运行所有测试套件 | | `pnpm type-check` | 跨所有包进行 TypeScript 类型检查 | | `pnpm lint` | 对所有包进行 Lint |
标签:AES-256, API 安全, CISA项目, CSV导出, DAG 执行, GNU通用公共许可证, MITM代理, Node.js, OWASP Top 10, Radix UI, React, Syscalls, Tailwind CSS, TypeScript, WebSocket, Web 安全, Zod, 业务逻辑漏洞, 仿真引擎, 依赖分析, 可视化编辑器, 合规性评估, 安全插件, 安全测试, 属性图, 开源安全工具, 攻击性安全, 攻击模拟, 漏洞评估, 自动化攻击, 请求拦截, 逆向工程平台, 驱动签名利用