frousselet/open-grc

GitHub: frousselet/open-grc

一套功能完备的开源治理、风险与合规管理平台,支持 ISO 27005 和 EBIOS RM 风险方法论。

Stars: 0 | Forks: 0

# Open GRC 基于 Django 构建的开源治理、风险与合规 (GRC) 平台。 ## 功能特性 ### 治理 (背景与组织) - **范围** — 具有版本控制和审批流程的层级组织边界 - **站点** — 具有层级的物理和逻辑位置(办公室、数据中心、云端区域) - **议题** — 具有影响和趋势追踪的内部/外部战略议题(PESTLE 类别) - **利益相关者** — 具有期望、影响力/利益水平及 RACI 支持的相关方 - **目标** — 具有 KPI 追踪的安全和业务目标(目标值/当前值、进度 %) - **SWOT 分析** — 具有影响级别的结构化优势/劣势/机会/威胁分析 - **角色与职责** — RACI 矩阵、强制角色执行、职责分配 - **活动** — 具有关键性级别的层级业务流程(核心、支持、管理) ### 资产管理 - **核心资产** — 具有 DIC 评估(机密性、完整性、可用性,5 级量表)的业务流程和信息资产 - **支持资产** — 具有生命周期追踪(EOL、保修)的 IT 基础设施(硬件、软件、网络、服务、站点、人员) - **依赖关系** — 核心资产到支持资产的映射,包含关键性、SPOF 检测和冗余追踪 - **资产组** — 支持资产的逻辑分组 - **DIC 继承** — 支持资产自动继承关联核心资产的最大 DIC 级别 - **评估记录** — 每个核心资产的历史 DIC 评估追踪 ### 风险管理 - **风险评估** — ISO 27005 和 EBIOS RM 方法论 - **风险准则** — 可配置的可能性/影响尺度,支持动态风险矩阵生成 - **风险** — 三级追踪(初始、当前、残留)及处理决策(接受、缓解、转移、规避) - **威胁目录** — 按类型(蓄意、意外、环境)和来源分类的可复用威胁 - **漏洞目录** — 可复用的漏洞,包含严重性、CVE 参考和修复指导 - **ISO 27005 分析** — 原子威胁 x 漏洞风险场景,包含综合可能性/影响计算 - **处理计划** — 结构化补救措施,包含有序操作、进度追踪和成本估算 - **风险接受** — 正式接受记录,包含到期日期、条件和审查追踪 - **风险矩阵** — 可视化热力图(当前 vs 残留) ### 合规管理 - **框架** — 监管和标准框架(ISO 27001、GDPR、NIS2 等),包含类型、类别和管辖范围 - **章节** — 层级化的框架结构 - **要求** — 针对特定框架的要求,包含合规状态、证据和差距追踪 - **评估** — 合规性评价,包含逐项要求的结果和自动合规水平计算 - **行动计划** — 差距补救计划,包含优先级、进度和成本追踪 - **跨框架映射** — 跨框架的要求对要求映射(等效、部分、包含、相关) - **框架导入** — 基于 Excel 的框架和需求批量导入 ### 用户与访问控制 - **自定义用户模型** — 基于邮箱的身份验证,使用 UUID 主键 - **基于角色的访问控制** — 使用 `module.feature.action` 代码名的细粒度权限 (90+) - **6 个系统组** — Super Admin、Admin、RSSI/DPO、Auditor、Contributor、Reader - **基于范围的租户** — 组可被限制在特定的组织范围内 - **账户安全** — 登录失败锁定(5 次尝试 / 15 分钟),强制密码复杂度 - **双重认证** — 基于会话(Web UI)+ 带有 Token 轮换的 JWT(API) - **访问日志** — 认证事件的完整审计追踪(登录、登出、锁定、密码更改) ### 实时仪表盘 - **WebSocket 更新** — 通过 Django Channels 推送实时仪表盘统计数据,无需刷新页面 - **动画计数器** — 平滑的计数动画,采用 easeOutExpo 缓动和本地化千位分隔符 - **连接状态** — 声纳风格的视觉指示器,显示 WebSocket 连接状态 - **自动重连** — 指数退避重连(最长 30 秒) - **范围感知** — 每个用户仅查看与其分配范围匹配的数据 ### 指标 (KPI 追踪) - **自定义指标** — 手动 KPI、度量值和合规度量追踪,支持数字、布尔值或百分比格式 - **预定义指标** — 自动计算的度量(全局合规率、风险处理率、目标进度等) - **阈值** — 关键阈值检测,支持可配置运算符和最小/最大边界 - **测量历史** — 带有时间戳的测量记录,包含趋势和增量追踪 - **迷你图** — 仪表盘上数值指标的嵌入式图表 ### 通用能力 - **审批工作流** — 对所有领域模型的两步审批(提交/批准),具有专用权限 - **审计追踪** — 通过 django-simple-history 记录每个模型的完整变更历史 - **版本控制** — 所有领域对象自动版本递增 - **上下文帮助** — 带有多语言内容 (FR/EN) 的内联帮助横幅 - **Excel 导出** — 将资产、风险、合规数据导出到 Excel - **深色模式** — 根据操作系统偏好自动切换主题 - **响应式 UI** — 可折叠侧边栏,适配移动端的布局 - **REST API** — 对所有资源提供完整的 CRUD + 过滤、搜索、分页和导出功能 - **HTMX 集成** — 无需整页重载的动态局部更新 - **Passkey 认证** — FIDO2 WebAuthn 无密码登录,支持可发现凭证 - **MCP Server** — 支持 JSON-RPC 2.0 的服务器,包含 40+ 工具和用于外部客户端的 OAuth 2.0 认证 ## 技术栈 | 组件 | 技术 | |-----------|-----------| | 后端 | Django 5.2 LTS | | 数据库 | PostgreSQL 16 | | 实时通信 | Django Channels + Redis 7 | | ASGI 服务器 | Uvicorn | | REST API | Django REST Framework | | 身份验证 | djangorestframework-simplejwt, fido2 (WebAuthn) | | 审计追踪 | django-simple-history | | 过滤器 | django-filter | | 前端 | Bootstrap 5.3 + HTMX | | 导出 | openpyxl | | 容器 | Docker & Docker Compose | ## 快速开始 ### 前置条件 - [Docker](https://docs.docker.com/get-docker/) - [Docker Compose](https://docs.docker.com/compose/install/) ### 快速启动 1. 复制环境文件: ``` cp .env.example .env ``` 2. 启动服务: ``` docker compose up --build ``` 3. 应用数据库迁移(在另一个终端中): ``` docker compose exec web python manage.py migrate ``` 4. 创建超级用户: ``` docker compose exec web python manage.py createsuperuser ``` 应用程序访问地址为 [http://localhost:8000](http://localhost:8000)。 管理界面地址为 [http://localhost:8000/admin/](http://localhost:8000/admin/)。 ### 使用 Docker Hub 镜像 您可以直接使用发布的镜像运行 Open GRC,而无需克隆仓库。 创建一个 `docker-compose.yml` 文件: ``` services: web: image: frousselet/open-grc:latest ports: - "8000:8000" environment: SECRET_KEY: change-me-to-a-random-secret-key DEBUG: "False" ALLOWED_HOSTS: localhost,127.0.0.1 POSTGRES_DB: open_grc POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_HOST: db POSTGRES_PORT: "5432" REDIS_HOST: redis REDIS_PORT: "6379" depends_on: db: condition: service_healthy redis: condition: service_healthy redis: image: redis:7-alpine ports: - "6379:6379" healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 db: image: postgres:16 volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_DB: open_grc POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 volumes: postgres_data: ``` 然后启动堆栈: ``` docker compose up -d docker compose exec web python manage.py migrate docker compose exec web python manage.py createsuperuser ``` ## 许可证 MIT
标签:Django, EBIOS RM, GPT, GRC, ISO 27005, IT治理, KPI追踪, Python, RACI矩阵, SWOT分析, 业务连续性, 企业治理, 占用监测, 合规自动化, 威胁目录, 开源GRC平台, 搜索引擎查询, 数据隐私, 无后门, 治理风险与合规, 测试用例, 漏洞管理, 网络安全, 请求拦截, 资产管理, 隐私保护