深圳幻海软件技术有限公司 欢迎您!

通过应用零信任原则提高微服务安全性

2022-12-18

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。了解如何在微服务环境中应用零信任原则,以及应在后端实施哪些安全控制。根据Gartner 2020 年的一份报告,预计到 2023 年,75% 的网络安全事件将由身份管理不善和权限过大造成。这在很

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

了解如何在微服务环境中应用零信任原则,以及应在后端实施哪些安全控制。
根据Gartner 2020 年的一份报告,预计到 2023 年,75% 的网络安全事件将由身份管理不善和权限过大造成。这在很大程度上归因于现代云基础设施使用的身份数量增加。应用程序在完全虚拟化的环境中作为微服务运行,该环境由云中多个容器的动态编排集群组成。

与在本地运行的单一应用程序相比,此类环境中的安全要求有很大不同。首先,云中不存在边界的概念。其次,组织现在正在处理数以千计的动态创建的工作负载和身份。应用传统的 IAM 工具来管理这些身份的动态特性是不够的。使用静态、长期且通常过度的访问权限使攻击者能够执行横向移动。

为了解决这些问题,需要一种安全模型来更好地满足当今的应用程序安全和身份要求。零信任安全是一种主动安全模型,它使用持续验证和自适应安全控制来保护端点和对应用程序的访问以及它们之间流动的数据。零信任取代了过时的假设,即组织网络内运行的一切都可以隐式信任。这种安全模型已被证明可以最大限度地减少攻击面,提供针对内部和外部攻击者的威胁保护,减少攻击者的横向移动,提高运营效率,并有助于支持持续遵守 PCI-DSS 和白宫 2021 网络安全执行官等法规订单。

自成立以来,零信任不断发展壮大,几乎触及企业的每一个角落。本文将概述如何在微服务环境中应用零信任原则,以及应在后端实施哪些安全控制。

" Type="normal"SectionTitle="零信任原则" Type="normal"-->

假设违规
始终假设网络攻击会发生,安全控制已被破坏,网络已被渗透。这需要使用冗余和分层的安全控制、持续监控和遥测收集来检测异常并实时响应。 " Type="normal"SectionTitle="显式验证" Type="normal"-->
最小权限原则
始终授予最少的特权。仅在需要时授予访问权限,并在不再需要时删除访问权限。最小权限访问对于减少攻击面、限制“爆炸半径”以及最大限度地减少攻击者在遭到破坏时在环境中横向移动的机会至关重要。 " Type="normal"SectionTitle="微服务环境中的零信任安全" Type="normal"-->
身份和访问管理
身份和访问管理是零信任的支柱,它需要对最终用户身份、服务、功能、工作负载和设备进行强大的身份验证和授权。要启用身份验证和授权,我们必须首先确保为每个工作负载自动分配一个加密安全身份,该身份在每次请求时都经过验证。重要的是,确保有一个自动化的机制来可靠地分发、在受到损害时撤销,并经常轮换服务的证书和秘密。为工作负载使用云中立的身份,例如SPIFFE用于身份验证,OPA用于跨堆栈的统一授权。 " Type="normal"SectionTitle="安全的服务到服务通信" Type="normal"@@在零信任中,将网络视为对抗性的是根本。因此,服务、API 和存储层之间的所有通信都必须加密。保护传输中数据的标准方法是在所有地方使用 HTTPS 和严格的 mTLS。同样,应该在所有微服务中实施强大的身份验证机制。必须理解的是,并非每个可以验证的服务都应该被授权。授权必须基于身份验证上下文和访问控制策略来完成,并且应该在每个微服务的边缘执行——而不是在网络边缘。

为此,请使用服务网格,如Istio或Linkerd,用于:

  1. 自动证书管理
  2. 交通拦截
  3. 无需更改应用程序代码即可实现安全的服务到服务通信
  4. 微分段(通过授权策略)

这减少了攻击的爆炸半径,并防止攻击者从一个受感染的服务转向基础设施的其他部分。在 Kubernetes 等容器编排环境中,在粒度级别定义出口和入口隔离的网络策略。遵循需要知道的原则,通过指定网络策略和服务到服务级别的 RBAC 策略来限制每个集群和每个源的访问,对所有流量(东西向和南北向)实施零信任。

" Type="normal"SectionTitle="安全访问资源" Type="normal"@@外部实体不得直接访问微服务环境。相反,使用 API 网关作为微服务部署的单一入口点。要传递用户上下文或调用者的身份,请实施一种模式,例如幻影令牌模式(API 安全实战,第 11.6.1 部分)或护照模式。在边缘验证外部访问令牌和用户上下文,并生成一个新的短期令牌,该令牌代表外部实体身份并由受信任的颁发者进行加密签名并传播到后端微服务。确保新令牌的访问范围与外部实体的身份范围一样有限。

最重要的是,假设访问令牌可以被盗,并在逐个资源的基础上创建具有较短生命周期的访问令牌。使用服务网格在微服务边缘验证访问令牌的有效性。在所有情况下,都应该使用具有最少权限的基于角色的细粒度访问控制来授予对资源的访问权限。


图 1:传输中的数据、静态数据和使用中的数据加密

" Type="normal"SectionTitle="数据安全" Type="normal"-->

基础设施安全
采用不可变的基础架构已成为标准。使用基础架构即代码预先配置组件,并且在部署后永远不会更改它们。不要信任存储介质(永久的或临时的)并且不要以未加密的形式存储任何敏感数据或秘密。所有机密、证书和 API 密钥都应安全地存储在访问受控的集中式密钥库中。

零信任始终假设网络受到威胁。为了遏制可能的危害并防止通过网络的其余部分横向传播,实施网络微分段,在每个分段中创建软件定义的边界,并根据其功能、业务领域和数据分类在每个分段中放置微服务。段之间的通信应该通过 API 网关明确定义和控制。考虑采用基于单元的架构进行段间通信。

" Type="normal"SectionTitle="容器和集群安全" Type="normal"-->

运行时安全
考虑在具有加密内存的基于硬件的可信执行环境中的机密虚拟机上运行对安全敏感的微服务。为了降低集群中恶意节点或受损节点的风险,请通过在启用了安全启动和虚拟可信平台模块的实例上运行节点、虚拟机和容器来验证它们的完整性。

此外,通过以只读模式运行容器,可以实现文件系统的完整性,并防止攻击者进行修改。最后,我们可以通过采用RASP 解决方案来降低我们对运行时的信任,该解决方案检查运行时执行的所有代码并动态停止恶意代码的执行。


图 2:通过机密计算和 RASP 实现零信任运行时

图片改编自“应用程序飞地支持 AKS 上基于英特尔 SGX 的机密计算节点”, Microsoft Azure 文档

" Type="normal"SectionTitle="结论" Type="normal"@@实施零信任架构是一项关键的纵深防御策略,已成为现代 IT 基础架构中的强制性安全模型。了解实施零信任架构并不意味着零安全事件很重要。目标是不断分层安全控制以增加攻击成本。随着我们在网络攻击杀伤链中引入更多摩擦,攻击者的价值主张将降低,潜在的攻击将被破坏。

成功实施零信任架构的关键是遵循白皮书的指导,例如 NIST 的“零信任架构规划”和美国管理和预算办公室的“推动美国政府走向零信任网络安全原则”。

在本文中,我们概述了如何在微服务环境中应用零信任模型的核心原则,并研究了关键领域和微服务需要实现的零信任安全目标。微服务部署的高度分布式和异构特性及其复杂的通信模式增加了不同组件的数量和暴露在网络上的数据量。与单体应用程序的传统部署相比,这提供了更广泛的攻击面。

由于系统的安全性与其最薄弱的环节一样好,应用零信任核心原则主动保护微服务部署的所有层和组件是现代、可靠和成熟的网络安全策略的基础。通过适当的微服务零信任策略,在大多数情况下可以消除集群受损、横向移动和数据泄露的风险。

零信任是安全的必然演变;然而,它的实施不应该是一个目的地。这是一个持续不断的旅程,也是整个组织的承诺。自成立以来,零信任已成为广泛部署的安全模型和关键业务网络安全优先事项。Microsoft 的2021 年零信任采用报告证实了第 11 页上的这一点,表明 76% 的组织已经开始采用零信任策略。该行业正在整个基础设施中迅速采用零信任,而不仅仅是最终用户访问。

" Type="normal"@@-->