opendefender/OpenRisk
GitHub: opendefender/OpenRisk
企业级风险管理与威胁情报管理平台,提供风险识别、评估评分、缓解追踪和合规审计的一站式解决方案
Stars: 13 | Forks: 1

# OpenRisk
**企业级风险管理平台**
[OpenDefender](https://github.com/opendefender) 生态系统的一部分
[](LICENSE)
[](https://github.com/opendefender/OpenRisk/releases)
[](https://golang.org)
[](https://react.dev)
## 🎯 概述
**OpenRisk** 是一个现代化的企业级 **风险管理平台**,旨在变革组织识别、评估、缓解和监控风险的方式。OpenRisk 采用可扩展的微服务架构构建,使团队能够摆脱电子表格和遗留系统,获得无缝、自动化的风险管理体验。
### 🎯 OpenRisk 的功能
OpenRisk 允许每个组织:
- ✅ **识别** IT 和安全风险
- ✅ **评分并确定优先级** 基于影响和概率对风险进行排序
- ✅ **跟踪** 缓解计划和行动项
- ✅ **监控** 通过交互式仪表板实时监控趋势
### 💡 适用对象
- **CTO 与 CISO** - 战略风险监督与合规
- **DevSecOps** - CI/CD 流水线中的集成安全
- **安全分析师** - 风险评估与调查
- **合规团队** - 审计追踪与治理
### 📈 主要优势
- ⚡ **自动化风险评估** - 减少人工评估时间
- 📊 **交互式仪表板** - 实时风险可视化
- 🔌 **原生集成** - Elastic、Splunk、TheHive、OpenCTI、AWS
- 🐳 **轻松部署** - Docker 和 Kubernetes 就绪
- 🔐 **企业级安全** - RBAC、SSO、审计日志
- 📈 **可扩展架构** - 微服务就绪
### 关键能力
- 🎲 **风险评估** - 全面的风险识别与评分
- 🛡️ **缓解追踪** - 实时监控和追踪风险缓解措施
- 📊 **高级分析** - 实时仪表板与趋势分析
- 🔐 **企业级安全** - RBAC、审计日志、OAuth2/SAML2 SSO
- 🔌 **集成就绪** - TheHive、OpenCTI、Splunk、Elastic 连接器
- ⚙️ **自定义字段** - 灵活的模式以满足组织需求
- 📈 **游戏化** - 参与度与激励机制
## 🚀 快速入门(5 分钟)
### 前置条件
- Docker 和 Docker Compose
- Git
- 4GB 内存,2GB 磁盘空间
### 本地开发
```
# 克隆 repository
git clone https://github.com/opendefender/OpenRisk.git
cd OpenRisk
# 启动所有服务 (PostgreSQL, Redis, Backend, Frontend)
docker compose up -d
# 访问 application
# Frontend: http://localhost:5173
# Backend API: http://localhost:8080
# API Docs: http://localhost:8080/swagger
```
### 默认凭据
```
Email: admin@openrisk.local
Password: admin123
```
## 🛠 技术栈
### 后端
| 组件 | 技术 | 版本 |
|-----------|-----------|---------|
| **语言** | Go | 1.25.4 |
| **框架** | Fiber | v2.52 |
| **数据库** | PostgreSQL | 16 |
| **ORM** | GORM | v1.31 |
| **测试** | Testify | v1.11 |
| **架构** | CLEAN | 领域驱动 |
### 前端
| 组件 | 技术 | 版本 |
|-----------|-----------|---------|
| **框架** | React | 19.2.0 |
| **状态** | Zustand | 5.0.8 |
| **样式** | Tailwind CSS | 3.4.0 |
| **表单** | React Hook Form | 7.66 |
| **路由** | React Router | 7.9.6 |
| **图表** | Recharts | 3.5.0 |
### 基础设施
| 组件 | 技术 | 用途 |
|-----------|-----------|---------|
| **容器化** | Docker | 应用打包 |
| **编排** | Kubernetes | 生产部署 |
| **Charts** | Helm | K8s 配置 |
| **CI/CD** | GitHub Actions | 自动化测试与部署 |
| **缓存** | Redis | 会话与缓存层 |
## 📋 功能特性
### 阶段 1:核心风险管理 ✅
- ✅ 风险 CRUD 操作(创建、读取、更新、删除、列表)
- ✅ 带加权计算的风险评分引擎
- ✅ 带清单子操作的缓解追踪
- ✅ 资产管理及其关系
- ✅ 支持软删除和审计追踪
### 阶段 2:安全与认证 ✅
- ✅ 基于 JWT 的认证
- ✅ API Token 管理(创建、撤销、轮换)
- ✅ 基于角色的访问控制 (RBAC) - 后端(37+ 端点,11 个领域模型)
- ✅ 权限矩阵(资源级粒度)
- ✅ 全面的审计日志
- ✅ OAuth2/SAML2 SSO(Google、GitHub、Azure AD)
### 阶段 3:基础设施与部署 ✅
- ✅ Docker Compose 本地开发
- ✅ GitHub Actions CI/CD 流水线
- ✅ 集成测试套件
- ✅ Kubernetes Helm Charts
- ✅ 预发布与生产运行手册
### 阶段 3.5:RBAC 前端实现 ✅
- ✅ 权限门控组件(7 个可复用包装器)
- ✅ 路由级权限守卫(4 种类型)
- ✅ 角色与租户管理页面(管理员界面)
- ✅ 高级 RBAC 工具(35+ 函数)
- ✅ 审计日志系统(合规追踪)
- ✅ 权限缓存(性能优化)
- ✅ 自定义 React Hooks(usePermissions, useAuditLog)
- ✅ 全面的文档(2,000+ 行)
### 阶段 4:企业级功能 ✅
- ✅ 自定义字段框架(5 种类型)
- ✅ 带验证的批量操作
- ✅ 风险时间线(审计追踪)
- ✅ 高级报告与导出
- ✅ SSO 集成(OAuth2/SAML2)
### 阶段 5:性能优化与全面测试 ✅
**性能优化:**
- ✅ Redis 缓存层(通用 CacheService,TTL 管理)
- ✅ 查询优化(7 种 GORM 模式,消除 N+1)
- ✅ 数据库索引(70+ 战略索引,速度提升 100 倍以上)
- ✅ 负载测试框架(k6 基准,50+ 并发用户)
**测试与验证:**
- ✅ 集成测试(8 个测试用例,312 行代码,CRUD + 并发)
- ✅ 使用 Playwright 的 E2E 测试(12+ 场景,5 种浏览器/视口)
- ✅ 安全测试(11 个类别,SQL 注入/XSS/CSRF/认证)
- ✅ 性能基准(9 项基准,全部达标)
- ✅ Docker Compose 测试基础设施(9 个服务,隔离环境)
- ✅ 全面的测试指南(529 行,CI/CD 示例)
**达成的性能目标:**
- 风险创建 > 100 ops/sec ✅
- 风险检索 > 500 ops/sec ✅
- 缓存操作 > 1000 ops/sec ✅
- 仪表板加载 < 3 秒 ✅
- 风险列表(100 项)< 5 秒 ✅
### 阶段 6:高级分析与监控 🚀
- 🚀 带实时数据的分析仪表板
- 🚀 风险热力图与趋势分析
- 🚀 事件管理系统
- 🚀 威胁追踪与映射
- 🚀 游戏化与参与度系统
- 🚀 性能监控与告警
## 📚 文档
| 文档 | 用途 |
|----------|---------|
| [TESTING_GUIDE.md](docs/TESTING_GUIDE.md) | 完整的测试流程与执行指南 |
| [TESTING_COMPLETION_SUMMARY.md](docs/TESTING_COMPLETION_SUMMARY.md) | 阶段 5 测试概览与指标 |
| [OPTIMIZATION_REPORT.md](docs/OPTIMIZATION_REPORT.md) | 性能优化策略与分析 |
| [PERFORMANCE_TESTING.md](docs/PERFORMANCE_TESTING.md) | k6 负载测试配置与指南 |
| [LOCAL_DEVELOPMENT.md](docs/LOCAL_DEVELOPMENT.md) | 开发环境设置指南 |
| [API_REFERENCE.md](docs/API_REFERENCE.md) | 完整的 API 端点文档 |
| [KUBERNETES_DEPLOYMENT.md](docs/KUBERNETES_DEPLOYMENT.md) | K8s 部署说明 |
| [PRODUCTION_RUNBOOK.md](docs/PRODUCTION_RUNBOOK.md) | 生产运维指南 |
| [SAML_OAUTH2_INTEGRATION.md](docs/SAML_OAUTH2_INTEGRATION.md) | SSO 集成指南 |
| [ADVANCED_PERMISSIONS.md](docs/ADVANCED_PERMISSIONS.md) | RBAC 与权限文档 |
更多文档,请参阅 [docs](docs/) 目录。
## 🚀 部署
### 本地开发
```
docker compose up -d
```
### 预发布环境
```
# 参见 docs/STAGING_DEPLOYMENT.md
./scripts/deploy-kubernetes.sh --environment staging
```
### 生产部署
```
# 参见 docs/PRODUCTION_RUNBOOK.md
helm install openrisk ./helm/openrisk \
-f helm/values-prod.yaml \
--namespace openrisk
```
## 🧪 测试与质量保证
### 可用测试套件
**集成测试** - 使用 PostgreSQL 和 Redis 进行数据库级测试
```
go test -v ./tests/integration_test.go -timeout 30m
```
- 8 个测试用例,涵盖 CRUD、关系、并发
- 查询性能验证
- 审计日志验证
**E2E 测试** - 使用 Playwright 在真实浏览器中进行用户工作流测试
```
npx playwright test [--headed] [--project=chromium|firefox|webkit]
npx playwright show-report
```
- 12+ 测试场景,覆盖 5 种浏览器/视口
- 认证、风险管理、自定义字段
- 移动端响应性(iPhone 12, Pixel 5)
- 性能指标验证
**安全测试** - 漏洞扫描与保护验证
```
go test -v ./tests/security_test.go -timeout 30m
```
- CSRF 防护、SQL 注入防御
- XSS 防护、速率限制、认证绕过检测
- 安全头验证、CORS 验证
**性能基准** - 吞吐量与延迟测量
```
go test -v -bench=. ./tests/performance_benchmark_test.go -timeout 30m
```
- 9 项基准,涵盖所有关键操作
- 缓存与数据库性能对比
- 并发操作处理
**Docker Compose 测试** - 隔离的测试环境
```
docker-compose -f docker-compose.test.yaml up -d
docker-compose -f docker-compose.test.yaml run integration_tests
docker-compose -f docker-compose.test.yaml run security_tests
docker-compose -f docker-compose.test.yaml run performance_tests
docker-compose -f docker-compose.test.yaml run e2e_tests
docker-compose -f docker-compose.test.yaml down -v
```
### 测试统计
- **30+ 测试用例** 覆盖所有测试套件
- **2,707 行** 测试代码
- **11 个安全类别**(覆盖 OWASP)
- **9 项性能基准**(全部达标)
- **5 种浏览器/视口组合**
详细的测试文档请参阅 [TESTING_GUIDE.md](docs/TESTING_GUIDE.md) 和 [TESTING_COMPLETION_SUMMARY.md](docs/TESTING_COMPLETION_SUMMARY.md)。
## 📊 API 概览
OpenRisk 提供了包含 37+ 端点的全面 REST API:
### 核心端点
```
POST /api/risks - Create risk
GET /api/risks - List risks
GET /api/risks/:id - Get risk details
PATCH /api/risks/:id - Update risk
DELETE /api/risks/:id - Delete risk
POST /api/mitigations - Create mitigation
GET /api/mitigations - List mitigations
PATCH /api/mitigations/:id - Update mitigation
POST /api/mitigations/:id/sub-actions - Add checklist item
PATCH /api/mitigations/:id/sub-actions/:aid - Toggle completion
```
### RBAC 与安全
```
POST /auth/login - JWT authentication
POST /auth/register - User registration
POST /auth/oauth2/:provider - OAuth2 login
POST /auth/saml/acs - SAML assertion endpoint
GET /api/tokens - List API tokens
POST /api/tokens - Create new token
DELETE /api/tokens/:id - Revoke token
GET /rbac/roles - List roles
POST /rbac/roles - Create role
PUT /rbac/roles/:id - Update role
DELETE /rbac/roles/:id - Delete role
GET /rbac/permissions - List permissions
GET /rbac/tenants - List tenants
POST /rbac/tenants - Create tenant
GET /rbac/tenants/:id/stats - Tenant statistics
DELETE /rbac/tenants/:id - Delete tenant
```
### 分析与报告
```
GET /api/analytics/dashboard - Dashboard metrics
GET /api/analytics/trends - Risk trends
GET /api/reports - List reports
POST /api/reports/export - Export risks/mitigations
```
包含示例的完整端点文档请参阅 [API_REFERENCE.md](docs/API_REFERENCE.md)。
## 🔐 安全
OpenRisk 实施了企业级安全措施:
- **认证**:带过期机制的 JWT Token
- **授权**:带权限矩阵的 RBAC
- **加密**:对敏感数据进行 SHA256 哈希处理
- **审计**:所有操作的完整审计追踪
- **SSO**:支持 OAuth2 和 SAML2
- **速率限制**:API 速率限制中间件
- **输入验证**:使用 Zod/validator 进行请求验证
详细的安全文档请参阅 [ADVANCED_PERMISSIONS.md](docs/ADVANCED_PERMISSIONS.md)。
## ⌨️ 键盘快捷键
OpenRisk 包含键盘快捷键以帮助您更快地工作。以下是可用快捷键的完整列表:
### 全局快捷键
| 快捷键 | 操作 | 上下文 |
|----------|--------|---------|
|
⌘K 或
Ctrl+K | 打开全局搜索 | 应用内的任何位置 |
|
⌘N 或
Ctrl+N | 创建新风险 | 仪表板和风险页面 |
|
Esc | 关闭模态框/对话框 | 任何打开的模态框或对话框 |
### 搜索与导航
| 快捷键 | 操作 | 上下文 |
|----------|--------|---------|
|
↑ | 上一个搜索结果 | 在搜索建议中 |
|
↓ | 下一个搜索结果 | 在搜索建议中 |
|
Enter | 选择搜索结果 | 搜索建议已打开 |
|
Esc | 关闭搜索下拉菜单 | 搜索建议已打开 |
### 风险管理
| 快捷键 | 操作 | 上下文 |
|----------|--------|---------|
|
Esc | 关闭风险详情 | 风险详情面板已打开 |
|
Esc | 关闭编辑模态框 | 险编辑模态框已打开 |
### 高级用户技巧
- **搜索提示**:在任意位置使用
⌘K /
Ctrl+K 快速搜索风险、资产或缓解措施
- **快速创建**:在仪表板上按
⌘N /
Ctrl+N 快速创建新风险
- **导航**:在搜索结果中使用方向键进行导航,无需使用鼠标
- **移动端**:这些快捷键在台式机/笔记本电脑键盘上效果最好
### 计划中的快捷键(即将推出)
- **编辑最后风险** -
⌘E /
Ctrl+E
- **过滤结果** -
⌘F /
Ctrl+F
- **删除选中项** -
⌘D /
Ctrl+D
- **聚焦搜索** -
/ 键
- **设置** -
⌘, /
Ctrl+,
## 🤝 贡献
我们欢迎社区的贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 了解指南。
### 开发工作流
1. Fork 本仓库
2. 创建一个功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交您的更改 (`git commit -m 'Add AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开一个 Pull Request
## 📝 许可证
OpenRisk 根据 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。
## 🙋 支持与联系
- **GitHub Issues**: [报告 Bug 或请求功能](https://github.com/opendefender/OpenRisk/issues)
- **Discussions**: [加入社区讨论](https://github.com/opendefender/OpenRisk/discussions)
- **Security**: 请参阅 [SECURITY.md](SECURITY.md) 以报告安全漏洞
## 🌟 路线图
### 2026 年第一季度 - 阶段 5:性能优化与测试 ✅ 完成
- ✅ Redis 缓存层实现
- ✅ 查询优化(消除 N+1)
- ✅ 数据库索引(70+ 索引)
- ✅ 集成测试套件(8 个测试)
- ✅ 使用 Playwright 的 E2E 测试(12+ 场景)
- ✅ 安全测试套件(11 个类别)
- ✅ 性能基准测试(9 项基准)
- ✅ Docker Compose 测试基础设施
- ✅ 全面的测试文档
- ✅ 所有性能目标达成 (100-1000 ops/sec)
### 2026 年第二季度 - 阶段 6:高级分析与监控
- 🚀 实时分析仪表板
- 🚀 风险趋势分析
- 🚀 事件管理
- 🚀 性能监控与告警
- 🚀 游戏化系统
### 2026 年第三季度
- [ ] 高级 RBAC 增强
- [ ] 额外的连接器集成
- [ ] 机器学习风险预测
- [ ] API Webhook 支持
### 2026 年第四季度
- [ ] 企业审计合规
- [ ] 自定义仪表板构建器
- [ ] 工作流自动化
- [ ] 多租户高级功能
## 👥 致谢
**OpenRisk** 由 [OpenDefender](https://github.com/opendefender) 社区开发和维护。
## 📞 有疑问?
- 📖 查看 [文档](docs/)
- 🐛 搜索现有的 [Issues](https://github.com/opendefender/OpenRisk/issues)
- 💬 在 [讨论区](https://github.com/opendefender/OpenRisk/discussions) 提问
由 OpenDefender 社区 ❤️ 制作
[⭐ 在 GitHub 上给我们点 Star](https://github.com/opendefender/OpenRisk)
标签:CISO仪表盘, DevSecOps, Docker容器, EVTX分析, EVTX分析, FTP漏洞扫描, Golang, GPT, GRC平台, IT风险, OpenDefender, React, Syscalls, 上游代理, 企业安全, 威胁情报, 子域名突变, 安全态势感知, 安全编排, 安全编程, 开发者工具, 微服务架构, 搜索引擎查询, 攻击面发现, 日志审计, 测试用例, 漏洞管理, 网络空间测绘, 网络资产管理, 请求拦截