### 第 1 章:安全概述与威胁建模

端到端安全架构设计从入门到精通 - 第1节

1. 信息安全基本概念

咱们先聊聊最基础的东西。信息安全,说白了就是保护信息不受威胁。它有三个核心目标,圈内人常叫“CIA三元组”。

要素 英文 大白话解释 我踩过的坑
机密性 Confidentiality 该看的看,不该看的别看 有一次把加密密钥写死在代码里,结果代码泄露,所有数据都暴露了……
完整性 Integrity 数据在传输或存储中没被改过 做过一个文件同步系统,没做校验,结果文件在中间被篡改,用户还以为是我们的锅
可用性 Availability 需要的时候,系统得能用 用户DDOS打过来,系统直接挂掉,老板问我为什么没做限流……
记住:CIA三元组是所有安全工作的基石。你设计的任何一个安全控制,最终都要回答一个问题——它在保护哪个要素?

2. 常见威胁类型

威胁类型多如牛毛,但你可以按来源简单分个类:

  • 外部攻击:黑客、病毒、恶意软件、DDOS攻击。我一个朋友的公司,就因为一个钓鱼邮件,整个内网被勒索软件加密了。
  • 内部威胁:员工操作失误、权限滥用、内鬼。我见过最典型的案例:一个离职员工带走了数据库密码,直接远程删库跑路。
  • 物理威胁:自然灾害、硬件故障、盗窃。别笑,真有人把服务器机房的空调关了,结果夏天过热全机柜宕机。
  • 供应链威胁:第三方组件漏洞、供应商被攻破。别忘了 log4j 的教训,一个日志库能搞瘫半个互联网。

你想想看,是不是每个威胁都对应着CIA三元组里的某个要素?这就是我前面强调概念的原因。

3. STRIDE威胁建模方法

STRIDE是微软提出的一套威胁分类法。我个人习惯用它来做设计阶段的威胁识别。为什么好用?因为它把威胁分成了6类,每类对应一种安全属性。咱们用表格来看看:

威胁类型 英文 违反的安全属性 举例
S - 欺骗 Spoofing 认证 假冒用户身份登录系统
T - 篡改 Tampering 完整性 中间人修改交易金额
R - 抵赖 Repudiation 不可否认性 用户说“我没下过单”,但你拿不出证据
I - 信息泄露 Information Disclosure 机密性 API返回了不该返回的密码哈希
D - 拒绝服务 Denial of Service 可用性 频繁请求耗尽服务器资源
E - 权限提升 Elevation of Privilege 授权 普通用户获得了管理员权限
我的习惯:每次做设计评审时,我都会把系统按数据流切开,然后逐一对每个数据流节点问“S-T-R-I-D-E”。一个都不能少。

4. 攻击树分析

攻击树是一种用树状结构描述攻击方式的方法。根节点是攻击目标,子节点是达成目标的各种路径。我建议你在高威胁场景下用这个工具,因为它能帮你穷举攻击路径。

举个例子:假设攻击目标是“获取数据库中的信用卡信息”。攻击树可能是这样的:

获取信用卡信息 (根节点)
├── 1. 通过网络攻击
│   ├── 1.1 注入SQL (需要Web应用漏洞)
│   └── 1.2 利用未授权API (需要API鉴权缺陷)
└── 2. 通过物理访问
    ├── 2.1 直接连接数据库 (需要内网访问)
    └── 2.2 偷走备份硬盘 (需要物理进入)

用这种树,你能快速评估哪些节点最容易防守。我曾经在一个项目中用攻击树发现了我们都忽略的“后门账户”问题,避免了上线后的安全事件。

避坑指南:攻击树别画得太细。我见过有人画到“使用高级持续威胁APR”之类,结果树长到几十层,根本没法分析。聚焦在能防守的节点上。

5. 安全架构原则

讲完威胁,咱们得聊聊怎么设计安全的架构。以下是我在实战中反复验证的几条核心原则:

原则 解释 我的经验
纵深防御 不要依赖单层防护 防火墙+WAF+应用层校验,多叠几层才不会被人一波带走
最小权限 只给完成任务所需的最小权限 我见过把root权限给应用的,这种设计一出事就是灾难
默认安全 默认配置就是安全的 不要指望用户去改配置开安全,默认禁掉所有不必要功能
失败安全 系统失败时也保持安全状态 认证服务挂了,应用应该拒绝所有请求,而不是放行
分离职责 不把太强的能力给一个人 比如,同一个系统里,配置管理员和运维管理员必须是不同的人
可审计性 所有操作都能追溯 没有日志的安全是耍流氓,出事了只能靠猜
保持简单 复杂性是安全的敌人 我曾经被一个搞了20层依赖的微服务折磨得怀疑人生
信任但验证 不信任任何输入 即使是内部服务请求,也照样校验签名,别偷懒
核心思路:安全架构不是加锁,而是设计一个体系,让攻击者花更多的钱才能攻破它,且攻破后也得不到太多东西。

6. 本章核心知识图谱

下面的流程图展示了本章的核心逻辑:从资产识别开始,经过STRIDE建模和攻击树分析,最终落地到安全架构原则。

安全概述与威胁建模知识图谱 端到端安全架构设计——第一章知识图谱 资产识别与价值评估 STRIDE威胁建模 Spoofing · Tampering · Repudiation · Information Disclosure · DoS · Elevation 攻击树分析(攻击路径穷举) 安全架构原则(对策落地) 纵深防御 · 最小权限 · 默认安全 · 失败安全 · 分离职责 · 可审计性 可落地的安全架构 我的建议: 先画系统数据流图 避坑指南: 不要跳过资产识别

你看,从资产识别到威胁分析,再到架构原则,是一条清晰的链条。缺了任何一环,设计就会出现漏洞。我个人习惯在每个项目开始时,先把这张图背一遍。