概述
协作支柱提供多用户、多组织基础设施,使团队能够在汽车网络安全项目上协同工作。它涵盖实时协同编辑、面向 OEM 和多级供应商的基于角色的访问控制、租户隔离的供应商门户、灵活的报告共享、用于工具集成的开放 API 访问以及全面的通知系统。
实时协同编辑
在线状态跟踪
- 每个用户的编辑活动都通过 5 分钟 TTL(300 秒过期)进行跟踪
- 客户端每 60 秒发送心跳,带有指数退避重试逻辑
- 可见性变化检测在用户切换浏览器标签时暂停/恢复在线状态
- Socket 事件:
editing:start和editing:stop广播给所有项目成员
实体级锁定
- 当用户开始编辑实体时,其他用户会看到在线状态指示器
- 乐观锁定防止并发冲突写入
- 版本冲突检测在冲突发生时显示解决 UI
- 锁定在会话过期或显式停止时自动释放
自动保存与撤销/重做
- 自动保存在 2 秒防抖周期后触发
- 撤销/重做堆栈每个会话维护 50 个操作
- 图形结构变化通过
graph:updatedsocket 事件广播给所有查看者
支持的协作场景
- 系统架构图(组件放置、连接)
- 威胁建模图(威胁关系、攻击路径)
- 风险登记册(风险编辑、处置关联)
- 所有实体编辑器(目标、需求、控制措施、声明、测试用例)
基于角色的访问控制 (RBAC)
两级架构
| 级别 | 范围 | 用途 |
|---|---|---|
| 组织角色 | 平台范围 | 管理组织设置、文档、目录访问 |
| 项目角色 | 按项目 | 在单个项目中授予特定模块权限 |
组织角色权限
Org_Settings:组织级管理的读取 / 写入 / 删除权限canEditDocumentation:文档编辑的布尔标志- 系统角色(不可删除)与自定义角色
项目角色权限
每个项目角色按模块定义权限:
| 模块 | 描述 |
|---|---|
| System_Modelling | E/E 架构编辑 |
| Threat_Modelling | 威胁分析访问 |
| Attack_Path_Analysis | 攻击路径创建(需要 Threat_Modelling 读取权限) |
| Risk_Assessment | 风险评分和登记册 |
| Risk_Treatment | 目标、需求、控制措施、声明 |
| SBOM | 软件供应链管理 |
| Monitoring_and_Incidents | 安全事件和事件响应 |
| Validation_and_Testing | 测试用例和活动管理 |
| Compliance_Reporting | 合规评估和报告 |
| Activity_Log | 项目活动动态 |
权限操作: Read、Write、Delete、Full_Access
RBAC 执行
- 在每个 API 端点基于中间件执行
- 装饰器:
@RequireRead()、@RequireWrite()、@RequireDelete()、@RequireFullAccess() @RequireProjectMembership()验证项目级访问- 活动动态根据查看者的模块权限进行过滤
许可证层级限制
| 层级 | 用户限制 | 模块访问 | 功能 |
|---|---|---|---|
| Team | 基本限制 | 基础模块 | 核心 TARA、基本合规 |
| Professional | 扩展限制 | 基础 + TARA + SBOM | 完整分析、中国 GB 标准 |
| Enterprise | 无限制 | 所有模块 | 完整平台、蓝图、高级治理 |
许可证执行在 API 和 UI 层同时验证,限制功能、用户数量和模块可用性。
多租户供应商门户
租户隔离
- 每个组织获得专用数据库实例
- 数据库上下文从 JWT 租户声明中动态解析
- 所有 API 请求在数据访问前验证租户隔离
- 全局控制平面管理跨租户操作
租户配置
- 组织创建 webhook 触发配置
- 创建专用数据库并使用加密连接凭据
- 初始化默认用户、角色和权限
- 初始化目录(SPDX 许可证、风险方法、漏洞来源、工具定义)
- 根据许可证层级配置功能标志
- 执行许可证有效期和层级限制
供应商访问模型
- OEM 管理自己的租户,拥有完整平台访问权限
- Tier-1 供应商获得自己的租户,具有层级适当的功能
- 跨项目共享实现租户间受控协作
- 每个供应商只能看到分配给他们的项目和模块
报告共享
| 选项 | 值 | 用途 |
|---|---|---|
| 链接类型 | 实时 / 快照 | 实时数据 vs. 冻结的时间点 |
| 访问模式 | 公开 / 认证 / 密码 | 访问控制级别 |
| 评论 | 启用 / 禁用 | 允许外部评论 |
| 过期时间 | 可选时间戳 | 到期后自动撤销 |
| 状态 | 活跃 / 已撤销 | 手动访问控制 |
安全功能包括唯一 URI 生成、SHA256 密码哈希、令牌轮换和即时链接撤销。
报告评论
- 共享报告的线程化评论支持
- 权限中间件控制谁可以评论
- 带权限检查的评论删除
开放 API 与外部集成
API 密钥管理
- 256 位熵密钥生成,带识别前缀
- 项目范围内的读取/写入权限级别
- SHA256 哈希安全存储
- 密钥生命周期:创建、列出、撤销
- 最后访问跟踪用于使用分析
Webhook 集成
- HMAC-SHA256 签名验证(
X-Uraeus-Signature头部) - Webhook 来源的 IP 白名单
- 支持类型:组织配置、GitHub SBOM 同步、SendGrid 邮件事件
- 关联 ID 用于请求跟踪
OpenAPI 文档
- 完整 OpenAPI 3.0.0 规范
- 三个 API 服务器组:主 API(
/api/v1)、Webhooks(/webhooks/v1)、管理(/admin) - 安全方案:Bearer JWT、Session Token、Admin API Key
- 18 个全面的文档模块覆盖所有平台端点
集成用例
- 通过 API 密钥的 CI/CD 管道 SBOM 上传
- VSOC 事件导出(JSON、AUTOSAR、STIX、自定义)
- 威胁情报源导入
- GitHub webhook 驱动的 SBOM 自动同步
- 外部测试台代理注册
通知系统
通知类别
| 类别 | 触发条件 |
|---|---|
| 分配 | 风险、任务、目标、控制措施或需求分配给用户 |
| 提及 | 评论或描述中的 @提及 |
| 审批 | 创建审批请求或做出审批决定 |
| 漏洞 | 在 SBOM 组件中发现严重/高危 CVE |
| 升级 | 风险严重级别变化或事件升级 |
| 系统 | 项目邀请、角色变更、导出完成 |
投递渠道
- 应用内: 通过 Socket.IO 的实时通知,使用用户特定房间
- 邮件: 基于许可证层级和用户偏好的条件发送
- 备用方案: 当 WebSocket 不可用时,60 秒轮询通知摘要
优先级别: 严重、高、中、低 — 影响投递紧急度和渠道选择。
用户偏好
- 按类别启用/禁用
- 安静时段配置
- 项目级静音
- 90 天通知保留,自动清理
活动跟踪
平台上的所有操作都记录在项目活动动态中:
- 跟踪的模块: 系统建模、威胁建模、风险评估、合规、SBOM、分析
- 记录的数据: 用户、时间戳、模块、操作类型、实体引用、严重级别
- 权限过滤: 用户只能看到拥有读取权限的模块的活动
- 组织级视图: Org_Settings 读取权限可查看所有模块活动