零信任网络环境主要是由google(BeyondVCorp架构)开始,目前国内很多厂商(360、新华三、安恒等)已有零信任的解决方案,如:360的零信任架构依托身份中心、业务安全访问及动态访问控制三个层面,主要解决零信任环境中业务信任问题。因为零信任建需要“刮骨”建设,涉及客户基础环境支撑及改动(奔跑的赛车换发动机)、领导支持力度等多个方面,总的来说落地效果不是特别好。
应用层零信任建设主要依托于应用安全网关,通过安全网关串联部署,实现隐藏内部,统一对外、实时监测的效果,因此本文主要介绍应用安全网关。但因为网关需要与用户管理所结合,所以文章会对用户管理系统部分进行介绍,以便读者更清晰了解应用层的零信任建设框架。
零信任环境的建设应从主机、网络、应用等多个层面的,具体零信任内容,请参考之前所写文章《零信任网络架构设计》,在此对零信任不过多介绍。
零信任网络架构示例图
应用层面的零信任建设相对于主机与网络更容易落地及切入用户。应用层零信任建设从实施周期、业务影响、建设效果等多个方面相比主机与网络,短期效果会更直接,更容易起步。
应用层零信任建设主要包含应用安全网关系统、用户管理系统两大系统(可以将系统中的模块拆分,因产品及项目而异)。
应用安全网关系统包括:访问控制、反向代理、负载均衡、统一接入、安全防护(主要为WAF相关功能)、访问审计(审计4-7层流量)、HTTPS支持等。
用户管理系统:身份认证、动态授权、SSO、用户管理、信任评估等。
功能参考图
实际过程中会将身份认证、动态授权等功能抽离成独立系统。因为需要考虑网络与主机层面的认证与授权等操作,所以抽离后的身份认证和动态授权会提供主机、网络、应用三个层面的相关服务。 具体需要因产品及项目而异。
目前业界应用应用安全网关基本是基于自有安全产品基础上进行的开发,有的基于WAF,有的基于VPN、有的基于下一代墙,但是功能基本都有限。
本次应用安全网关的选择可基于开源JanusecWAF网关进行二次开发。Janusec是基于Golang打造的应用安全网关,支持HTTP2和HTTPS,私钥加密存在数据库中,提供负载均衡的统一的WEB管理。
逻辑图
基于Janusec架构的设计重点
举例场景:
1.工程师员工笔记本发起访问请求,提交给网关。如果结合主机可信,需要携带设备证书。
2.访问网关没有检测到有效凭据,重定向至用户管理系统中的身份认证模块。
3.工程师通过基于U2F的双因子身份通过认证,获得token,重定向至网关。
4.网关认证后,访问控制会对每一个请求执行授权检查(通过转到对应服务器,不通过则拒绝请求)。访问控制可基于属性的权限控制(ABAC)与信任评估模型两者集合进行检验。如:满足信任等级,满足相应用户群组,满足相应操作属性等内容才可访问该应用。
总体来讲,通过应用安全网关建设会加强应用管控能力,但零信任环境建设单靠应用层是完全不够的,我们应从主机、网络、应用多个层面进行建设并有效串联,才能实现零信任最大化。同样实施的周期、环境的改动、业务的变动、管理层意愿等多个方面也是制约零信任发展的重要因素。