零信任相关知识

发布于 2023-07-12  47 次阅读


SDP

SPA 单包授权

https://www.zhihu.com/question/526769738

http://www.cww.net.cn/article?id=566321

传统的网络接入控制是先接入认证,端口暴露在互联网。SPA则是先认证再接入,这样的情况下,网络扫描就无法发现VPN等服务,无法通过VPN的漏洞达到漏洞版本攻击。

一个单一数据包(Single Packet)携带认证鉴别信息(Authentication)从而在完成认证后获得授权(Authorization),再允许访问业务。

而SPA一定程度上通过UDP实现的。SPA的前身是PK端口敲门(简单来说就是需要按照一定的端口访问顺序才能添加一条允许访问的防火墙规则,最终达到访问特殊端口的目的)。

在UDP传输的数据包中client存入了加密数据,而这个加密数据在到达服务器防火墙时,会被进行认证处理,如果认证成功,才会进行下一步的构造链接,不然就会丢弃数据包。

这里需要知道一点,加密数据完全是由客户端本身决定的。在加密上,SPA敲门包主要由一个预共享密钥进行签名和加密,该密钥存在泄露风险,攻击者得到该密钥后,可直接敲门成功,并且预共享密钥在泄露后无法进行更换,否则将导致原有客户端无法敲门成功。

SPA单包授权的核心原则有三,一是在单个敲门数据包内集成认证信息,简化敲门流程;二是对设备进行预认证,不响应认证设备之外的连接请求;三是把服务隐藏在防火墙之后,实现服务的“网络隐身”。

而在这种标准SPA中,存在一个问题,如果攻击者通过CDN或者一台经过认证的前置服务器(rookie)就可以达到服务器。

因此还有TCP SPAhttps://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=214985

在本质上,是通过client同时发送UDP(knock包)和TCP(申请connect),UDP用于认证后添加IP(tcp)白名单,TCP包在SPA server通过白名单后用于建立两端联系。

SDP的核心是使用单包授权技术(SPA,Single-Packet Authorization )实现业务系统的隐藏,并使用类似“IP白名单”的访问控制模式,阻止未经认证授权的客户端对业务资源的访问。

SDP安全模型由3大组件构成,分别是:

  1. SDP Client,即:SDP客户端软件
  2. SDP Gateway,即:SDP业务代理网关
  3. SDP Controller,即:SDP控制中心

建设

做到动态持续鉴权、分级响应

https://www.gartner.com/teamsiteanalytics/servePDF?g=/imagesrv/media-products/pdf/JD.COM/JD.COM-1-2BS633CS-CHS.pdf

在认证基础上,后续建设增加了几个概念:微隔离、Mesh、零信任控制模型(O\R\A\P\T based Access Control)、DLP。

控制模型

RBAC(Role-Based Access Control):

https://zhuanlan.zhihu.com/p/513142061

RBAC的中心是角色,角色是权限的集合,权限根据实际生产场景不同而不同,

标准4级RBAC:RBAC0(多个用户拥有相同角色,一个用户拥有多个角色),RBAC1(高级角色自动获取下级角色的权限),RBAC2(角色冲突),RBAC3(角色权限的上下文有效期)

但这会导致角色过多、权限混乱。

ABAC(attribute-based access control)

https://zhuanlan.zhihu.com/p/267269194

属性可以是任意的对象,一般会涉及的属性主要是以下四类:

1.访问主体属性:访问者自带的属性,比如年龄,性别,部门,角色等;

2.动作属性:比如读取,删除,查看等;

3.对象属性:被访问对象的属性,比如一条记录的修改时间,创建者等;

4.环境属性:比如时间信息,地理位置信息,访问平台信息等。

典型的XACML的架构控制访问流程如下:

1. 用户访问资源,发送原始请求,请求会被PEP拦截;

2. PEP(策略实施点)把请求转换成一个XACML的访问申请请求;

3. PEP把访问申请请求转发给PDP(策略决策点:评估访问是否被允许);

4. PDP根据策略配置对认证请求进行评估。策略保存在PRP(策略提取点:保存策略信息的数据库),并由PAP(策略管理点:管理节点)维护。如果需要采集属性信息,还会从PIP(策略信息点:提供访问的信息)收集属性;

5. PDP收到访问申请请求的结果(允许,禁止)并发送给PEP;

6. PEP根据收到的信息,允许或者禁止用户访问资源。

可以看出ABAC中有NLP的用武之地

PBAC

基于角色的访问控制(RBAC)是一种根本上有缺陷的方法,用于管理组织中的用户身份和访问权限。RBAC的固有弱点在于它的笨拙性,对手动输入的依赖以及对维护的持续需求。所有这些因素共同构成了风险高且漏洞百出的系统。

解决由RBAC引起的问题的方法是基于策略的访问控制系统(PBAC)

其实PBAC可以理解为RBAC+ABAC,通过计算RBAC和ABAC中分配权值,减少R的数量,减少A的复杂度,但是需要做到R与A的配合。

TBAC

基于任务的访问控制。每个任务的执行都被看做是主体使用相关访问权限访问客体的过程。在任务执行过程中,权限被消耗,当权限用完时,主体就不能再访问客体了。但是TBAC的基础上同样需要对角色进行限制,任务本身也是由用户发起的,如果攻击者以用户身份发起任务,任务本身是不能进行彻底的访问控制。

微隔离

https://www.aqniu.com/learn/67586.html

https://zhuanlan.zhihu.com/p/205047645

上面的内容都是如何进行南北向(用户与服务器)的隔离,而微隔离用于服务器与服务区的隔离,我们看一下零信任的几个原则:

(1)假设已经被攻破
(2)持续验证,永不信任
(3)只授予必须的最小权限

微隔离实现

基于Agent客户端

每个服务器的操作系统上装一个agent,agent通过调整自身所在服务器的防火墙策略进行隔离

基于云原生能力

云平台基础架构中虚拟化设备自身的防火墙功能来做访问控制

基于防火墙服务器

在各服务器的关键节点插入第三防火墙,进行流量控制


间桐桜のお菓子屋さん