第二章:零信任的四大基石

好,咱们开始聊正题。零信任这东西,说起来玄乎,其实底子就那么几条原则。我这些年做安全评估,发现很多团队把零信任搞成了「买一堆盒子堆着」,结果该漏还是漏。说白了,原则没吃透。

今天我就把这四条核心原则掰开揉碎了讲。你理解透了,后面讲架构、讲密钥边界融合,才能接得住。

核心记忆口诀:不验证就不信任,不最小就风险。

2.1 永不信任,始终验证

这是零信任的「魂」。传统安全模型默认内网是安全的——你只要进了内网,防火墙后面随便跑。我当年在甲方时,亲眼见过内部员工用一台没打补丁的笔记本,连上内网就横向扫,把整个研发部的数据库拖走了。

零信任的态度很明确:不信任任何人、任何设备、任何网络位置。无论请求来自哪儿——是数据中心内部,还是来自 VPN——都必须验证。

  • 持续验证:不是登录时验一次就完事。每次请求都要重新检查身份、设备状态、行为链路。
  • 动态信任评分:设备如果突然从北京跳到了纽约,信任分直接降到0。
  • 多因子验证(MFA):密码加生物特征,这是最基础的。我在一个金融客户那里,要求每次敏感操作都走一次动态口令,连管理员都要扫脸。

避坑指南:我曾经见过一家公司,把自己内部的Kubernetes API Server暴露在零信任网关后面,却忘了给服务账户开MFA。结果一个被攻破的容器拿到了集群管理员权限——「永不信任」连机器对机器的调用也要管。

2.2 最小权限

这个原则不新鲜,但零信任把它推到了极致。传统权限模型往往给用户「要么全有要么全无」的权限,比如一个开发人员,可能同时拥有Git、Jenkins、生产数据库的访问权——就为了省事。

零信任要求:只给执行当前任务所必需的最小权限。而且权限不是静态的,是动态按需分配的。

场景 传统做法 零信任做法
运维登录服务器 SSH密钥直接加到服务器 通过PAM(特权访问管理)动态签发临时SSH证书,用完即废
API调用数据库 长期数据库连接字符串 每次请求颁发一次性的JWT,限定查询范围
数据访问 全表SELECT权限 行级权限、属性级脱敏

小技巧:我个人习惯用「恰好的权限」原则——如果撤销某个权限后用户无法完成当前操作,那就是最少;如果还能完成,说明给多了。你可以试着给团队做一次权限审计,结果会让你冒冷汗。

2.3 微分段

传统网络防护像「一个硬壳鸡蛋」——壳破了,蛋清蛋黄全流出来。微分段的思路是:把网络切成很多小格子,每个格子之间用策略墙隔开。东西向流量也要经过策略检查。

为什么要这么做?因为攻击者一旦突破某个入口,他会开始横向移动。你没有微分段,他五秒钟就能从Web服务器跳到数据库。你在日志里看到的只有一次正常SQL查询。

微分段的实现方式,我大致归成三类:

  1. 网络层微分:在VPC、子网级别用安全组/ACL做隔离。粒度较粗。
  2. 主机/容器层微分:使用策略代理(比如Cilium、Calico的NetworkPolicy)在Pod或VM级别控制流量。
  3. 应用层微分:在七层协议里做细粒度授权,比如基于URL路径、HTTP方法、甚至参数内容做决策。

你想想看,如果每个微服务之间只有必要端口开放,且每条流量都经过身份验证——攻击者就算进了你一个容器,也只能看着隔壁的数据库干瞪眼。

注意:微分段不是「把所有流量都丢进同一个安全组然后让策略全通」。我曾经遇到一个客户,ta们做了上百条微分段策略,结果因为业务更新太快,策略长期没人清理,最后整个网络「微」不下去——策略冲突导致业务全挂。所以策略生命周期管理也很关键。

2.4 假设已失陷

这个原则听起来有点悲观,但它恰恰是安全实战中最务实的出发点。你默认攻击者已经在内网里,默认你的凭据已经被泄漏,默认某台服务器已经中了木马。然后你设计系统时要确保:即便这些假设成真,损失依然可控。

怎么落地?

  • 加密一切:数据在传输中加密(TLS),数据在存储时加密(静态加密),甚至处理中的数据也要考虑机密计算。
  • 日志不可篡改:所有审计日志双向写入区块链或WORM存储,防止攻击者灭迹。
  • 爆破演练:我建议每季度做一次红蓝对抗,红队就用「已失陷」的前提去模拟,看蓝队能不能在几分钟内检测并阻断。

核心逻辑:假设敌人已在城堡内,你的防御设计就不能只靠城墙。

知识体系一览

下面这张图把四个原则的关系画出来了。我习惯把它称为「零信任四脚凳」,缺一条腿就站不稳。

零信任架构四大基本原则 策略决策点 (PDP) 永不信任 持续验证 动态信任评分 最小权限 按需分配 临时凭证 微分段 隔离东西向流量 策略强制执行 假设已失陷 加密一切 不可篡改审计 四条原则缺一不可,协同支撑策略决策点 → 执行引擎

你仔细看看这张图,中心是策略决策点(PDP),四个原则像四条腿一样撑着它。没有「永不信任」,验证就形同虚设;没有最小权限,权限泛滥迟早出问题;没有微分段,横向移动无法遏制;没有假设已失陷,你的加密和审计永远是事后补救。

原则之间的关系

实际落地的时候,这四个原则是互相嵌套的。我举个例子:

  • 永不信任 + 最小权限:每次请求都验证身份,并且只给这次请求能看的数据行。
  • 微分段 + 假设已失陷:默认网络里到处都是坏人,所以每段之间一定要加密,即使穿越内部VPC也得走TLS。
  • 最小权限 + 微分段:在Kubernetes里,一个Pod只被允许访问特定IP段的特定端口,而且Pod的ServiceAccount只能调特定API。

个人经验:我建议你在设计零信任方案时,先拿一个小业务做「原则沙盘推演」。画清楚谁访问什么、经过哪些策略点、数据怎么流转。推演完再上工具,否则很容易买一堆设备但策略稀烂。

好了,这一章的内容就这些。四个原则,记住之后,后面的密钥边界融合才会好理解——因为密钥管理系统本身就是零信任策略的执行器之一。你把这些原则刻在脑子里,后面讲具体技术就不容易跑偏。