用途
本技能面向安全工程工作流,主要在用户提出「创建威胁模型」「定义安全目标」「生成数据流图」「编写安全定义」等需求时使用。它服务于 Bitwarden 的四阶段安全协作模型,重点支持第一阶段(工程团队负责的初始安全评估),并协助第二至第四阶段的产出物生成。
四阶段协作模型
第一阶段(工程团队):查阅架构决策记录以确保威胁模型与已接受的架构一致;创建 Mermaid 数据流图;将安全需求与产品需求分离;提出安全定义(威胁模型 + 安全目标);使用 STRIDE 识别初始威胁。
第二阶段(AppSec + 工程):提前共享数据流图与安全定义;协作梳理系统架构;验证或完善拟定的安全定义;识别更多威胁并评估风险;避免假设外部缓解措施已经存在。
第三阶段(工程团队):实现必要的安全缓解措施;为尚无防护的威胁创建 Jira 后续工作;在迭代规划中纳入安全考量。
第四阶段(工程 + AppSec):验证缓解措施按预期工作;在代码审查中采用对抗性思维;通过逆向推导检验假设(如「我能绕过 SSO 吗?」);随系统演进更新安全定义。
安全定义的三要素
安全定义(SD)是沟通系统安全态势的正式构造,每个定义包含三部分:
威胁模型组件:描述攻击者的能力与限制,两面都要写以精确定义范围。例如「攻击者可在用户客户端登出后运行用户态进程」+「攻击者无法访问安全存储机制」;「攻击者拥有数据库访问权限,可读写 Send 表」+「攻击者无法访问 ASP.NET Core Data Protection 加密密钥」。应包含具体示例,不假设外部缓解措施存在。作用域规则包括:删除被支配的威胁(若描述的攻击者能力严格弱于已被认可的界外能力,其残余风险会退化为同义反复);纳入被动观察者而非仅对抗性攻击者(对任何进入外部服务的机密数据,至少写一条攻击者为诚实但好奇的 SD);核验「攻击者不具备 X」在目标平台上是否属实。
安全目标组件:给出简洁、可测试的保证。每条目标附带由三行组成的理由(Rationale):原则(对应 Bitwarden P01–P06 中的哪条)、资产(被保护的具体数据、密钥或令牌)、危害(目标被违反时用户可见的后果)。没有理由的目标只是主张,不是需求。另有两条规则:对照运行时现实检验目标(在垃圾回收、字符串驻留的运行时中,「从内存清除」「归零」「不保留」等目标无法强制实现);机密优先通过 stdin 或文件描述符传递,而非环境变量或 argv。
已接受目标状态组件:诚实评估当前状态,分为「已达成」「部分达成」「未达成」「尽力而为」。目标已知失效时应链接跟踪问题,并注明作用域限定。另有两条规则:量化「短暂」之类理由(如「机密在子进程环境中驻留的时长随 KDF 迭代次数与保管库大小变化,在代表性硬件上观察为 1 至 8 秒」);强制内部一致性(威胁模型、安全目标与已接受状态必须相互一致)。
编写安全定义的要点
可以先从「系统应当保证什么」出发,再通过威胁分析验证;区分宏观定义(如端到端加密)与功能特有的微观定义;顺序编号(SD1、SD2、SD3),每条自成一体;功能引入领域词汇时附术语表;按影响而非枚举排序,聚焦真正影响设计的 3–5 个威胁;为每条 SD 标注严重级别(Critical / High / Medium / Low)并按降序排列;避免冗长,删去只涉及实现细节、非设计关键的 SD。
产出物与参考文档
生成产出物时使用 examples/ 中的模板:security-definition-document.md(含术语表、编号定义、严重级别标注、目标理由与已接受状态)、data-flow-diagram.md(含信任边界的 Mermaid DFD 模板)、threat-catalog.md(威胁目录表与缓解跟踪模板)。编写或审查 SD 时可查阅:references/writing-quality-sds.md(反模式与自洽性检查清单)、references/bitwarden-vocabulary.md(标准术语)、references/security-principles.md(P01–P06)、references/stride-framework.md(STRIDE 类别)、架构决策记录对齐检查文档。
何时联系 AppSec
绿场项目或新服务、数据共享变更(组织成员关系、Send、共享功能)、组件间新增 IPC 通道、跨域或跨源功能,应发起完整协作。若不确定安全影响,可先做初始安全评估并将发现提交至相应渠道并注明不确定是否需要完整协作。第三方库或编码实践等快速问题无需完整协作。
关键规则
技术拆解中将产品需求与安全需求分离;安全定义是活文档,功能变更、新威胁出现或发现安全问题时需重新审视;复杂度提升脆弱性风险,应将过于复杂的安全关键代码标记为技术债;威胁建模永远无法发现全部漏洞,需与代码分析、安全测试、对抗性审查配合;不假设外部缓解措施;删除被支配或实现上无足轻重的威胁;每条安全目标都携带理由;定稿前应用自洽性检查清单。
限制
本技能资料未提供具体的价格、收费、平台支持范围或效果数据,这些信息暂未提供。