安全章程
使命
Keycloak 安全任务组致力于通过持续改进文档、代码和流程来增强 Keycloak 项目的安全性。我们的核心职责包括
- 主动分流:快速处理报告给 Keycloak 的安全漏洞,并确保及时且一致地解决这些漏洞。
- 影响评估:评估新功能和现有功能的安全影响。
- 流程改进:定期审查和改进安全流程,以确保持续改进代码库。
团队
Keycloak 安全响应团队
由维护人员组成的专门小组,积极参与新问题的分流,并与解决团队协调。响应团队可以完全访问报告给项目的所有 CVE,并可以根据需要添加或删除解决团队的成员。
成员提名流程
- 新成员可以由现有维护人员和 Keycloak 安全响应团队成员提名。两个团队的成员在审批过程中都有投票权,批准需要 2/3 的多数票。
- 所有提名必须发送到 Keycloak 安全邮件列表。
- 成员可以随时辞职,并在辞职时提名继任者。
职责
- 保持积极和响应,参与日常活动。
- 沟通任何休假。
- 每周轮班参与。
- 连续三个月或更长时间不活跃或未履行职责且未提前通知的成员,将通过投票移除。
范围
- 漏洞分流:管理通过 Keycloak 安全邮件列表收到的报告。
- 协调:监督对报告漏洞的响应,以确保符合 SLA 截止日期。
- 流程改进:维护和加强安全措施,例如实施代码检查器、扫描器、模糊测试器和补丁管理器。确保安全主动集成到整个项目中。
轮班
- 团队成员每周轮流担任主要联系人。
- 轮班的指定人员处理收到的安全请求,协调事件响应,并在轮班期间管理日常安全任务。
- 其他团队成员将继续从事安全响应职责,支持轮班人员。
- Keycloak 安全办公室每周会议时间确定轮班结束时间,并向下一班人员更新状态。
- 假期和带薪休假在会议期间沟通,以便我们可以调整轮班。
Keycloak 安全解决团队
团队由协调修复的常任成员和积极分流或解决开放 CVE 的临时成员组成。临时成员在参与漏洞时添加,并在其参与结束后删除。这种设置允许有经验的协调员监督解决过程,并在需要时引入合适的人员。
范围
- 解决和测试:确保漏洞得到有效修复和彻底测试。
- 协作:与响应团队合作,优先处理修复,使其高于团队积压工作中的所有其他事项,无论其性质如何。
- 发布协调:与发布协调员和质量工程 (QE) 团队紧密合作,将补丁包含在即将发布的版本中。
访问权限
资源 |
响应团队 |
修复协调员 |
解决团队 |
邮件列表 |
完全访问权限 |
完全访问权限 |
添加到特定线程的抄送中 |
私有 GitHub 仓库 |
完全访问权限 |
完全访问权限 |
临时访问权限 |
安全公告和警报 |
完全访问权限 |
完全访问权限 |
无访问权限 |
Slack 频道 (#alerts-keycloak-cve) |
完全访问权限 |
完全访问权限 |
临时访问权限 |
协调安全漏洞修复
- 识别:响应团队识别受影响领域的相关工程师,并将他们临时纳入私有沟通渠道(例如,仓库、电子邮件线程),组成临时解决团队。
- 效率:为防止意外泄露,解决团队保持尽可能小的规模。
- 自主性:解决团队有权自主邀请其他方参与,例如发布协调员、QE 和文档团队。如有疑问,建议与响应团队沟通。
- 访问权限撤销:发布后,敏感沟通渠道的访问权限将被撤销,以维护最小权限原则。
流程概述
- 新的漏洞报告给 Keycloak 安全邮件列表。
- 漏洞报告被分流。
- 分配 CVE ID。
- 响应团队识别负责的团队(例如,由 Noah 和 Emma 组成的 A 团队)。
- A 团队将修复程序提交到私有仓库,并邀请领域专家进行审查。
- A 团队通知 QE 和发布协调员即将发布的补丁。
- 拉取请求被合并,并发布新版本以及官方公告。
在没有 CVE 需要修复的情况下,除 Keycloak 安全响应团队外,所有团队成员对安全敏感渠道的访问权限都将被撤销。
本章程概述了 Keycloak 项目为管理和缓解安全漏洞而采取的方法,确保项目对所有用户的完整性和可靠性。