Skip to content

Latest commit

 

History

History
253 lines (142 loc) · 18.5 KB

ZASentinel-cn.md

File metadata and controls

253 lines (142 loc) · 18.5 KB

ZASentinel 白皮书

感谢您对 ZASentinel 的关注

ZASentinel 通过提供一种更好、更简单的方法来保护对私有网络资源和应用程序的访问,帮助组织提高信息安全性。

本文档包含的信息旨在向客户和潜在客户提供有关ZASentinel安全状况、实践和流程的透明度和信心。虽然本文档代表了ZASentinel 在上次更新时的安全性,但确保信息安全是一个持续改进的过程,我们不会停止评估和支持。

本文件分为两个主要部分。第一部分从产品角度描述了 ZASentinel 的安全架构,第二部分描述了 ZASentinel 的一般信息安全实践。

产品安全性

1.1. 产品架构和设计

方法概述

ZASentinel 的设计初衷是为现代“随处工作”的员工提供一个安全的解决方案。现代劳动力越来越分散:

  • 越来越多的用户在家中和公共场所等远程位置工作;
  • 用户设备分散在桌面和移动设备、工作发布的设备和个人设备中;
  • 应用程序正在从内部迁移到云中或由第三方 SaaS 提供商提供;
  • 网络越来越基于云或由第三方管理。

因此,传统的基于 IP 地址的固定边界方法无法满足当今的安全性或可用性需求。ZASentinel的答案是一种基于零信任访问概念的方法,我们称之为身份优先网络。

身份优先网络

ZASentinel 的身份第一网络模型背后的前提是重新思考网络的基本假设,以满足现代劳动力的需求。用户、设备、应用和网络的分散和抽象(例如,通过 Terraform 这样的基础设施即代码框架)意味着需要不同的方法。

我们的身份优先方法从问一个简单的问题开始:网络请求应该被允许离开设备吗?而如果是,又该依附于谁的身份?因为没有明确授权的身份,网络连接永远不允许进入您的网络,所以不再存在网络 连接属于谁以及它为什么被授权的问题。

网络请求发起和身份之间的这种联系使得了解网络内部的活动变得非常容易。将 IP 地址列入白名单的日子已经一去不复返了,

维护复杂的子网分配和 VLAN 网段,或者跨物理网络手动拼凑网络事件。使用 ZASentinel,您可以为用户提供在任何地方工作所需的灵活性,同时保持对每个网络连接都根据用户身份进行授权和审核的信心。

零信任访问(ZTA)

ZASentinel 的架构是根据 ZTA 的主要理念设计的:

  • 对私有资源的每个请求都应该基于实时上下文信息进行身份验证和授权,例如用户身份、设备状态以及时间、位置等其他属性。
  • 用户应该只能访问最少的必要资源(最低特权原则)。
  • 应对事件进行详细记录,以支持监控、检测、调查和其他分析。

概括地说,这些原则在我们的产品中以下列方式体现出来:

  • 没有一个 ZASentinel 组件可以独立地决定允许流量流向远程网络上的安全资源。用户和数据流授权总是通过多个组件运行多个检查来确认。此外,用户数据流和用户身份验证流由单独的组件处理,并且需要单独的验证检查。
  • 我们将用户身份认证委托给第三方身份认证提供商(IdP ),这就产生了一种关注点分离,提供了额外的安全层。
  • 我们支持广泛的日志记录,提供增强的可见性,帮助管理员监控、故障排除和调查整个网络和终端的活动,包括未经授权的活动,以及被授权访问资源但可能超出其业务权限的个人的活动。
  • 从客户端到服务端的用户数据流是端到端加密的,即使它们可以通过中继(驻留在 ZASentinel 控制的基础架构中的组件),ZASentinel 也无法解密此类数据。(加密传输永远不会在中继上有中间终止/恢复。)
  • 我们的客户端-中继端-服务端,各个组件之间,通过升级到websocket协议通信,更好的支持自定义参数传递,方便各项数据安全性、合法性验证。
  • 我们的中继端是挂载至CDN网络下的,可以有效防止DDOS攻击,以及更好的优化网络线路,提升访问速度。CDN网络支持Websocket协议,无缝与ZASentinel网络进行结合。
  • 我们的客户端应用程序被设计为始终在后台运行。

从客户的角度来看,我们的产品架构在以下方面提供了额外的安全优势:

  • 隐藏网络 - ZASentinel 不会将接入点公开暴露在您的网络中,以促进对网络内部资源 的安全远程访问。这意味着,如果需要,客户网络可以对公共互联网保持不可见,并且不 会受到潜在攻击者的机会性探查
  • 支持端口级的精细访问控制 - 与提供整个网络访问的 VPN 相比,这有助于减少入侵的爆炸半径
  • 对所有私有资源的集中访问管理 - 这有助于 IT 团队审核和维护访问列表,以应对人员变动
  • 集中记录所有网络活动 - 身份索引日志和分析可以深入了解整个企业网络中谁在做什么
  • 为管理员提供更好的可用性 - 更易于配置和维护的解决方案更不容易出错,而且更有效
  • 为最终用户提供更好的可用性 - 这是一个易于部署、始终在线的解决方案,不妨碍用户的方式,促进了VPN客户机的采用,并避免了VPN客户机的常见问题,在VPN客户机中,用户会因为中断或减慢其internet连接而将其关闭
  • 提供安全快速的网路线路 - 中继端作为公共基础服务,挂载至CDN网络下,优化网路访问线路,有效防止DDOS攻击

架构&组件概述

本节高度概括了构成 ZASentinel 架构的主要组件及其交互方式。ZASentinel 的架构在我们的文件,我们强烈建议您阅读这篇文章,以便更全面地了解 ZASentinel 的安全基础。

cn-1

ZASentinel 保护对客户远程网络资源的访问。 ZASentinel 由四个主要组件组成,它们共同确保只有经过身份验证的用户才能访问他们有权访问的资源。 ZASentinel 完全配置后,最终结果是授权用户可以连接到任何资源,而不需要了解底层网络配置,甚至不需要知道资源驻留在哪个远程网络上。四个主要组成部分是:

  • 控制器-ZASentinel 的中央协调组件。控制器是由 ZASentinel 运营的多租户组件,它执行多项职责,包括存储由基于 web 的管理的客户配置信息管理控制台注册和验证服务端,向成功发出连接请求的客户端发布签名授权,将用户验证委托给身份提供者,以及向客户端和服务端分发签名的访问控制列表。
  • 客户端-安装在最终用户设备上的软件应用程序。对于用户对受保护资源的请求,客户端充当组合的身份验证和授权代理通过 ZASentinel。网络路由和授权决策发生在客户端的边缘。
  • 服务端-旨在部署在远程网络防火墙后的设备上的软件组件。服务端仅启动与控制器和中继端的出站连接,通过这些连接与客户端建立通信。
  • 中继端-由 ZASentinel 操作的地理上分布的组件。中继充当服务端的注册点和希望建立到服务端的连接的客户端的连接点。中继端挂载在CDN网络下,抵抗DDOS攻击。

客户端和服务端组件位于客户控制的设备和基础设施上,控制器和中继端组件位于 ZASentinel 控制的基础设施内。

下图说明了各种组件如何以安全的方式交换信息,以便于从客户端连接到远程网络上的特定资源:

image-20220402145306066

  1. 服务端向地理上最近的中继注册自己。

    除了随机生成的 ID 及其由控制器签名的签名之外,中继不接收关于服务端的任何信息。只有当服务端的签名由同一控制器签名时,中继才允许服务端注册。

  2. 客户端和服务端各自接收流量转发允许列表。

    允许列表特定于每个组件。客户端的允许列表对应于允许用户访问的内容,服务端的列表的 范围是管理员已经配置的资源。两个允许列表必须由同一个控制器签名。

  3. 客户端由第三方身份提供商进行身份验证,提供额外的深度防护。 image-20220402145100815

  4. 客户端向所请求的服务端发起单个端到端证书锁定的TLS连接。

    中继仅促进这种连接,而不能“看到”任何这种数据流。

  5. 服务端验证客户端请求是否由同一个控制器签名。

  6. 客户端验证服务端签名是否与控制器提供的签名相匹配。

  7. 服务端验证目标地址是否在其允许列表中。

  8. 一旦建立,流量就通过加密的TLS隧道流向目的地。

    DNS 查找和路由从客户端转发,并由目标网络上的服务端执行。

  9. 中继端可挂载至CDN网络下

    中继端挂载至CDN网络下,CDN支持websocket协议,更好的支持Header参数传递,在安全性方面CDN天然可抵抗DDOS攻击,并且有效优化网络线路,增加流量通信速度。

1.2. 客户数据

我们处理哪些客户数据?

ZASentinel 处理的主要客户数据类型有:

  • 用户详细信息(如电子邮件地址、姓名和组成员,但不包括密码,因为 ZASentinel 将身份验证委托给第三方身份提供商);
  • 基础设施信息(如网络详细信息、资源详细信息和访问控制列表);
  • 日志(如用于诊断和故障排除的崩溃和错误报告)。ZASentinel 组件还记录允许客户监控用户活动的事件(例如,用户登录和令牌请求)。

去往受 ZASentinel 保护的资源的用户网络流量可以以加密形式通过 ZASentinel 中继传输,这种承载数据的流量在瞬时的基础上通过中继,中继不存储流量或任何网络可识别信息。

ZASentinel 还可以处理客户提交的与客户支持请求相关的客户数据。这可能包括配置数据、错误日志以及客户决定向 ZASentinel 提供的报告和诊断技术问题所需的其他信息。

数据分离

客户数据在 ZASentinel 的系统中按照客户租户ID进行逻辑隔离。

数据保密性

根据我们与客户的合同,ZASentinel 将客户数据视为客户的机密信息,客户数据的所有权由客户保留。

1.3. 产品性能和可扩展性

服务可靠性是信息安全的核心方面。本节介绍与性能和可伸缩性相关的服务可靠性。有关可用性方面的服务可靠性的信息,请参见下面的基础设施&物理安全。

我们设计了我们的基础设施和软件,以确保 ZASentinel 性能良好,即使在个人客户或我们整个客户群的使用量增加时也能继续如此。我们实现这一目标的主要方式包括:

  • 消除回程/长号问题——通过 ZASentinel 路由的流量采用更直接的路线,而不是通过地理位置远离起点和终点的中央网关路由所有流量,从而减少用户的延迟和组织的带宽使用。ZASentinel 客户端 自动智能地连接到 ZASentinel 控制器和中继端,这些控制器和中继端根据用户当时所处的物理位置以及他们需要连接的资源来提供最佳性能。

  • 支持分割隧道-组织选择不通过 ZASentinel 路由的任何用户流量将完全绕过 ZASentinel,由用户设备独立处理。这减少了通过额外的中继段发送不必要的流量。

  • 负载平衡——ZASentinel 处理多个级别的负载平衡。ZASentinel 的控制器和中继端分布在不同的地点和地理区域。作为基础设施规划的一部分,我们的目标是战略性地分配它们,以减少延迟,并在预期流量负载较高的区域提供负载平衡。例如,在高流量区域,我们可以添加额外的控制器和中继端,并在它们之间平衡负载。通过使用客户使用的相同 IaaS 提供商托管控制器和中继端(例如,在阿里云、华为云和GCP内),延迟进一步降低。在客户端,客户可以在同一个远程网络中安装多个服务端,ZASentinel 将自动处理服务端之间的负载平衡,以满足特定网络的访问请求。

  • 为客户处理扩展-传统的网络访问安全模型要求组织部署和维护自己的安全基础设施,如 VPN 网关。扩大规模会不成比例地增加管理费用,并占用可用于其他计划的资源。ZASentinel 减轻了 IT 部门对扩展的担忧。

  • 分布式授权处理——授权处理工作负载是分布式的,比如在 ZASentinel 客户端级别,这有助于提高整体性能,而不是集中在一个位置。

信息安全计划

2.1. 概观

本部分包含 ZASentinel 信息安全计划的摘要。ZASentinel 保留了一套书面的信息安全计划、政策和程序,这些计划、政策和程序至少每年审查一次,并通过定期风险审查进行补充,这些审查将纳入 我们信息安全计划的持续发展中。

2.2. 管理和组织安全

治理&责任

ZASentinel 的首席技术官主要负责 ZASentinel 的信息安全计划。ZASentinel 还拥有一个跨学科的安全团队,负责实施、审查和维护其信息安全计划,成员包括高级管理人员。

然而,作为一项安全项目,ZASentinel 认为安全是一个普遍存在的问题,因此是我们整个组织的共同责任。例如,我们所有的工程师都被要求将安全视为其工作的基本部分,他们不会简单地将所有责任委托给更关注安全的其他同事。

2.3. 应用程序安全性

数据保护&访问控制

访问控制

我们根据用户角色和最低权限原则来提供用户对系统的访问。

使用 ZASentinel 保护对生产和其他环境中私有网络资源的访问,身份认证由我们的身份提供商 的单点登录系统执行,并启用多因素身份认证。使用 ZASentinel,我们还可以根据最低权限原 则,在资源级别(而不是网络级别)对用户访问权限进行精细控制,并根据用户、设备和请求访问的上下文的身份验证应用不同的安全策略。

内部企业应用程序尽可能使用 SSO 和 MFA 进行身份验证,并强制实施最低密码复杂性要求。

我们还实现了生产环境部署流程的自动化,这意味着用户无权手动或直接对生产环境进行更改。开发人员不能直接访问包含客户数据的数据库。开发人员通常没有或不需要通过 SSH 访问生产环境服务器。

访问监控

我们使用 ZASentinel 和其他日志系统来监控对各种系统的访问和 ZASentinel 基础设施的各个方面。

CDN网络

CDN网络可以有效抵抗DDOS攻击,有效优化网络访问线路。

CDN网络支持Websocket协议,无缝与ZASentinel网络进行结合。

数据加密

使用行业标准加密协议对传输中和静态的客户数据进行加密。

在传输过程中,客户端应用程序通信通过TLS/SSL (HTTPS)连接进行保护。

静态情况下,客户数据存储在平台管理的数据库中,该数据库使用 AES-256 或更好的标准加密,使用对称密钥。数据密钥本身使用存储在安全密钥库中的主密钥进行加密,并定期更改。

我们不使用任何定制或专有的加密框架或实现。请注意,ZASentinel 不存储任何客户密码。

软件开发方法论&测试

软件开发

所有编写的软件代码都要经过第二个人的代码审查。此外,ZASentinel 还执行内部和第三方安全测试,如下文所述。

开发人员通常无法访问生产系统或数据。客户数据不用于测试。

我们通常会通知客户可下载软件组件的重大更新。较小的更新,如用户界面的调整,会定期发布, 不会有明确的通知。当 ZASentinel 软件的最新稳定版本可用时,我们建议客户升级到该版本。

内部安全测试

ZASentinel 使用各种工具对代码进行静态分析并报告问题——既包括我们的专有代码,也包括第三方库中的漏洞。根据我们的漏洞管理政策,及时修补检测到的漏洞。

第三方安全测试

ZASentinel会与第三方机构合作,定期对其应用程序进行安全测试。测试活动从渗透测试扩展到应用安全保证和产品分析,包括:

  • 在“白盒”环境中逐个组件地分析 ZASentinel
  • 对每个组件进行逆向工程、运行时和静态分析,以确保工程设计符合最佳实践安全指南;
  • 执行自动化压力测试、手动漏洞发现以及运行时和源代码审查
  • 进行威胁建模。
渗透测试请求

我们允许客户在某些情况下对我们的系统进行渗透测试。客户必须事先获得我们的安全团队的批准,并提前通知我们渗透测试的时间和范围,并且可能需要签署一份涵盖此类测试活动的协议。

2.4. 基础设施和物理安全

设备安全性

所有最终用户的笔记本电脑和台式机都需要安装防病毒/防恶意软件软件,并启用全磁盘加密。

基础设施变更管理

对我们的生产环境提出的每一项变更(包括基础设施变更)都必须经过批准,并且每一项此类变更和 相应的批准都要记录在案。我们的 CI/CD 管道供应基础架构在获得批准后会自动进行更改。

机密管理

我们使用一个主要供应商提供的商用机密管理系统来存储机密,如身份验证令牌、密码、API 凭证 和证书。密钥定期轮换。

服务器加固

我们主要通过部署与 Kubernetes 协调的 Docker 容器来与服务器交互。

网络分段

我们的生产网络根据安全级别划分为不同的区域。每个环境都有自己的子网,只有基于预定义 的允许列表的网络策略才允许内部通信。

可用性&弹性

当我们的服务需要访问任务关键型网络资源时,服务可用性至关重要。我们通过以下方式确保 非常高的服务可用性:

  • 使用世界级的基础设施提供商来托管我们的核心组件。
  • 使用多个地理上分离的数据中心——ZASentinel 的基础设施托管在多个物理上分离的云平台数据中心,以实现冗余。这有助于负载平衡,并降低环境和其他特定位置自然灾害的风险。
  • 实施容错、冗余基础设施-我们的服务由多个数据中心提供,这些数据中心反映了彼此的能力。 如果一个数据中心出现可用性问题,其他数据中心将自动承担负载。
  • 提供抵御 DDOS 攻击的能力——我们实施了某些措施来降低 DDOS 攻击的风险。