2. 企业系统架构与信任边界
威胁建模的第一步不是画攻击树,而是把系统“看清楚”。如果连数据从哪来、经过哪些组件、在哪里跨越了信任级别都说不清,后续的 STRIDE 分析、攻击面评估都会变成凭感觉猜测。本节围绕四个相互咬合的问题展开:企业系统通常如何分层、业务流与数据流如何区分、信任边界画在哪里、资产如何分类并映射到安全等级。
一、典型企业系统分层架构
企业系统虽然形态各异,但绝大多数可以抽象为五层结构,从外到内依次是:接入层、应用层、服务层、数据层、基础设施层。接入层负责用户与外部系统的入口,包括 Web 前端、移动 App、API 网关、反向代理;应用层承载业务编排,如订单服务、审批引擎;服务层提供可复用的领域能力与集成能力,如用户中心、支付网关、消息总线;数据层包括关系库、缓存、对象存储、数据仓库;基础设施层则是主机、容器编排、网络、密钥管理。
分层的价值在于:每一层对外暴露的接口不同,被攻破后的影响半径也不同。接入层被攻破通常影响单个会话,数据层被攻破则可能造成批量数据泄露。因此分层不是画着好看,而是为后续“按层设防”提供依据。
二、业务流与数据流:两条必须分开画的线
初学者常把业务流和数据流混为一谈。二者的区别是:业务流描述“谁在什么条件下触发了什么业务动作”,数据流描述“数据在组件之间如何移动、被谁读写”。以“员工报销”为例,业务流是:员工提交 → 主管审批 → 财务复核 → 打款;数据流则是:报销单从移动端 POST 到 API 网关,网关转发给报销服务,报销服务写入报销库,同时把附件写入对象存储,审批通过后向支付系统发送打款指令。
威胁建模更依赖数据流,因为攻击者关心的是数据在哪里、谁能读、传输是否加密、是否跨越了信任级别。业务流则帮助我们判断哪些数据流是关键的、哪些可以降级处理。
三、信任边界识别
信任边界是信任级别发生变化的接口或位置。它不是物理边界,而是逻辑边界。常见的企业信任边界包括:互联网与企业内网之间(DMZ 边界)、用户浏览器与 Web 服务器之间、API 网关与后端服务之间、应用服务与数据库之间、生产环境与办公网之间、企业与第三方 SaaS 之间。
识别方法可以遵循三条规则:第一,跨越不同管理域的位置,例如从自建系统调用外部支付接口;第二,跨越不同信任级别的位置,例如从匿名访问进入需登录区域;第三,跨越不同数据敏感级别的传输,例如从普通业务库导出数据到分析平台。每一条信任边界都应当被视为潜在的攻击入口,需要在图上明确标注并逐一分析。
四、资产分类与安全等级划分
资产分类的目的是把有限的安全资源投向最关键的资产。企业通常按数据敏感度和业务重要性两个维度划分,形成四级安全等级:
| 等级 | 典型资产 | 泄露/破坏影响 | 典型控制要求 |
|---|---|---|---|
| L1 公开 | 官网内容、公开文档 | 无实质影响 | 完整性校验 |
| L2 内部 | 内部通知、普通工单 | 轻度影响 | 登录访问、审计日志 |
| L3 敏感 | 客户信息、合同、财务数据 | 较大影响,可能触发合规 | 加密存储、最小权限、脱敏 |
| L4 核心 | 密钥、支付凭证、核心算法 | 严重,可能危及企业存续 | 硬件加密、双人审批、强审计 |
分类完成后,需要把资产等级映射到信任边界上。例如 L4 资产不应出现在边界①外侧,L3 资产跨越边界③时必须加密传输并记录访问日志。这样,信任边界就不再是抽象概念,而是与具体资产等级绑定的控制点。