opendefender/OpenRisk

GitHub: opendefender/OpenRisk

企业级风险管理与威胁情报管理平台,提供风险识别、评估评分、缓解追踪和合规审计的一站式解决方案

Stars: 13 | Forks: 1

OpenRisk Logo # OpenRisk **企业级风险管理平台** [OpenDefender](https://github.com/opendefender) 生态系统的一部分 [![GitHub 许可证](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![GitHub 发布版](https://img.shields.io/badge/version-1.0.6-brightgreen.svg)](https://github.com/opendefender/OpenRisk/releases) [![Go 版本](https://img.shields.io/badge/go-1.25.4-blue.svg)](https://golang.org) [![React 版本](https://img.shields.io/badge/react-19.2.0-61dafb.svg)](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 包含键盘快捷键以帮助您更快地工作。以下是可用快捷键的完整列表: ### 全局快捷键 | 快捷键 | 操作 | 上下文 | |----------|--------|---------| | ⌘KCtrl+K | 打开全局搜索 | 应用内的任何位置 | | ⌘NCtrl+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, 上游代理, 企业安全, 威胁情报, 子域名突变, 安全态势感知, 安全编排, 安全编程, 开发者工具, 微服务架构, 搜索引擎查询, 攻击面发现, 日志审计, 测试用例, 漏洞管理, 网络空间测绘, 网络资产管理, 请求拦截