【云原生】云原生在网络安全领域的应用

本文涉及的产品
Web应用防火墙 3.0,每月20元额度 3个月
数据安全中心,免费版
云原生 API 网关,700元额度,多规格可选
简介: 微服务器框架

 

博主昵称:跳楼梯企鹅

博主方向:网络安全渗透测试、人工智能、数据库、云原生

创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。
博主座右铭:发现光,追随光,成为光,散发光;
博主研究方向:渗透测试、机器学习 ;
博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力 ;

微信图片_20220810004845.jpg

一、概述

企鹅今天想分享云原生应用安全防护系列,本文笔者主要针对微服务架构下的应用安全、Serverless安全提出一些防护见解及思考。文章篇幅较长,内容上与之前笔者发表的若干文章有相互交叉对应的部分,希望能为各位读者带来帮助

二、微服务架构模式

图片.png

image.gif

1.数字时代的微服务安全

微服务架构已经成为构建现代应用程序的默认方式。要从微服务中获得最大的收益,需要清楚地了解微服务安全及其架构设计。微服务安全的设计应是预设安全,需要站在微服务架构角度进行安全治理,结合数字化时代及业务特性,保证业务价值实现。

这里CSA发布《微服务架构模式》,给出了 CSA 的最佳实践与总结,通过 CSA 微服务安全参考架构以及安全控制措施叠加的新思路,保证了微服务在架构层面的安全性

成功地开发基于微服务架构的应用软件,需要掌握一系列全新的架构思想和实践。 [2]  在这本独特的书籍中,微服务架构的先驱、Java 开发者社区的意见领袖 Chris Richardson 收集、分类并解释了 44 个架构设计模式,这些模式用来解决诸如服务拆分、事务管理、查询和跨服务通信等难题。

(1)数字化时代的网格管理

数字化转型是全球的热门话题,是组织应用新兴技术从根本上提高组织的业绩及创新的新兴方法。在云计算、大数据、物联网(IoT)、人工智能、5G(6G),和移动应用等新兴技术的应用,加速了整个社会及组织形态的变化。这些新兴技术已经改变了传统的工作流程,并使组织成为数字化时代网格模式与网格管理

数字化时代网格模式在数字化转型中无处不在,在每个行业都在发生。网格模式影响组织的所有活动、功能和流程,也影响着组织每个部门,因为它可以影响业务模型本身。数字化时代的网格管理是指在数字转型背景下,业务、功能、流程、安全等都是相互关联的,网格管理模式是数字化的核心表现。

网格管理模式下组织的生存离不开效率,效率是敏捷性最重要的指标。组织级敏捷转型的终级目标是把敏捷应用到整个组织中,给业务带来创新与收益。组织采用敏捷建模可以提升响应能力,微服务架构是敏捷建模(AM)的应用体现。

(2)微服务安全是数字化成功的重要基石

数字化转型成功的重要基石之一是业务与IT的关系,需要缩小两者之间的差距,专注于相同的目标。这也是微服务可以在数字转型过程中发挥作用的地方。

微服务可谓当下一大热门词汇,与之并驾齐驱的包括物联网、容器化与区块链等新兴技术。微服务提供敏捷性、可靠性、可维护性、可扩展性和可部署性,帮助组织完成数字化转型过程。微服务架构越来越多地用于设计和实现基于云部署的基础设施、大型应用程序和服务中的应用程序系统。

在应用微服务架构时需要解决许多安全挑战,这也刺激着组织思考微服务安全性在数字化转型中的价值实现,即业务放到云基础设施上并不等于走入数字化时代,业务放到云基础设施必须保证架构的安全性,微服务安全是数字化转型必守之城。

2.如何设计微服务成为可信安全系统

(1)CSA 微服务安全参考架构

DevSecOps模式成为DevOps最新的演进路线,帮助组织在数字化转型过程中实现云原生的安全性。通过将架构的使用、架构模式和安全控制措施叠加成为一个整体,在技术上实现了网格模式,确保了组织应用的机密性、完整性和可用性(CIA)。

无论组织领导者倾向于购买现成解决方案还是 “内部构建”,微服务和API消费的集成都会是一种常见的系统集成预期。随着组织继续对流程数字化,安全团队必须应对增加的攻击矢量和更复杂的管理,同时还要与越来越复杂的攻击者保持同步。面对这一巨大的挑战,安全团队必须评估和更新他们的遗留安全过程、工具和技能集,以适应新的、可适应的组织安全方法。

为了便于指导安全控制措施叠加对微服务的施用,通用微服务架构模式通过两个分支形成了两个不同的视角。第一个视角着眼于组织层面。组织层面包含了可协助实现微服务架构治理的信息技术资产。组织期望减少控制措施状态的变数。自定义编码、生产状态变通方案和一次性修改都会增加开发成本。第二个视角着眼于软件层面。分布式微服务应用的分解图,这种状况存在于软件层面,是最接近软件代码的表现方式。

(2)安全控制措施叠加

安全叠加概念:是指运用裁剪标准及指南的方法裁剪控制基线后得出的一个全套特定控制措施、控制措施强化和补充指南集,帮助组织实现安全管控。

安全控制措施叠加可通过执行相关业务和安全策略把风险降至一个可接受水平。控制挑选是在业务需要、投放市场时间和风险容忍度之间平衡的结果。安全叠加包装了一种软件模式,尽管它可能会带来更大的安全控制覆盖范围,但是,适合于一种模式的,只会有一个安全叠加。在微服务架构内的不同位置和层级发挥作用的控制措施,会产生形成软件深度防御的累加效应。

三、微服务应用安全

认证服务

由于攻击者在进行未授权访问前首先需要通过系统的认证,因而确保认证服务的有效性非常重要,尤其在微服务应用架构下,服务的不断增多将会导致其认证过程变得更为复杂。

授权服务

授权服务是针对未授权访问风险最直接的防护手段,微服务应用架构下,由于服务的权限映射相对复杂,因而会导致授权服务变得更难。

数据安全防护

与《云原生应用安全风险思考》一文中分析数据安全防护的必要性一样,但微服务应用架构下,服务间通信不仅使用HTTP协议,还会使用gRPC协议等,这是我们需要注意的地方。

其它防护

除了上述防护方法之外,微服务治理框架与API网关/WAF可以结合以进行深度防护,例如可以在一定程度上缓解微服务环境中被拒绝服务攻击的风险。

1.认证服务

微服务架构下,服务可以采用JWT或基于Istio的认证方式

(1) 基于JWT(JSON Web Token)的认证

微服务架构下,每个服务是无状态的,传统的session认证方式由于服务端需要存储客户端的登录状态因此在微服务中不再适用。理想的实现方式应为无状态登录,流程通常如下所示:

    1. 客户端请求某服务,服务端对用户进行登录认证;
    2. 认证通过,服务端将用户登录信息进行加密并形成令牌,最后再返回至客户端作为登录凭证;
    3. 在2步骤之后,客户端每次请求都需携带认证的令牌;
    4. 服务端对令牌进行解密,判断是否有效,若有效则认证通过,否则返回失败信息;

    为了满足无状态登录,我们可通过JWT实现,JWT是JSON风格轻量级认证和授权规范,也就是上述流程中提到的令牌,主要用于分布式场景,

    图片.png

    JWT交互流程与上述提到的理想流程基本上是相似的,需要注意的是,JWT令牌中会包含用户敏感信息,为防止被绕过的可能,JWT令牌采用了签名机制。此外,传输时需要使用加密协议

    (2)基于Istio的认证

    Istio的安全架构

    image.gif图片.png

    Istio的认证和授权两部分,Istio的安全机制涉及诸多组件,控制平面由核心组件Istiod提供,其中包含密钥及证书颁发机构(CA)、认证授权策略、网络配置等;数据平面则由Envoy代理、边缘代理(Ingress和Egress)组件构成。借助控制平面Istiod内置的CA模块,Istio可实现为服务网格中的服务提供认证机制,该认证机制工作流程包含提供服务签名证书,并将证书分发至数据平面各个服务的Envoy代理中,当数据平面服务间建立通信时,服务旁的Envoy代理会拦截请求并采用签名证书和另一端服务的Envoy代理进行双向TLS认证从而建立安全传输通道,保障了数据安全

    2.授权服务

    微服务架构下,授权服务可以通过基于角色的授权以及基于Istio的授权实现

    (1)基于角色的授权服务

    基于角色的授权服务为RBAC(RoleBased Access Control),通过角色关联用户,角色关联权限的方式间接赋予用户权限。在微服务环境中作为访问控制被广泛使用,RBAC可以增加微服务的扩展性,例如微服务场景中,每个服务作为一个实体,若要分配服务相同的权限,使用RBAC时只需设定一种角色,并赋予相应权限,再将此角色与指定的服务实体进行绑定即可。若要分配服务不同的权限,只需为不同的服务实体分配不同的角色,而无需对服务具体的权限进行修改,通过这种方式不仅可以大幅提升权限调整的效率,还降低了漏调权限的概率

    (2)基于Istio的授权服务

    提到的Istio认证机制作为基础,Istio还提供授权机制,其主要用于对服务进行授权。在Istio 1.4版本之前,其授权机制依赖于Kubernetes的RBAC策略,相比Kubernetes的原生RBAC策略,Istio对其进行了进一步的封装,可让用户直接通过Istio的声明式API对具体的服务进行授权,不过Istio为了更好地用户体验,在其1.6版本中引入了AuthorizationPolicyCRD[16](Custom Resource Definition),相比1.4版本,AuthorizationPolicy CRD带来了更多的优势,一方面该CRD将RBAC的配置变得更为简化为从而大幅提升了用户体验,另一方面该CRD支持了更多的用例,例如对Ingress/Egress的支持,且同时不会增加复杂性。

    图片.png

    image.gif (3)Istio授权策略:

    apiVersion:security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
     name: httpbin
     namespace: foo
    spec:
     selector:
       matchLabels:
         app: httpbin
         version: v1
     rules:
     – from:
       – source:
           principals:[“cluster.local/ns/default/sa/sleep”]
       to:
       – operation:
           methods: [“GET”]
       when:
       – key: request.headers[version]
         values: [“v1”, “v2”]

    image.gif

    3.数据安全

    传统应用架构中,我们可以通过安全编码、使用密钥管理系统和使用安全协议的方式防止数据泄露,在微服务应用架构中,我们可以考虑使用Kubernetes原生的安全机制或微服务治理框架的安全机制去进行防护。

    针对Kubernetes原生的安全机制,例如Secret机制,我们可以使用其进行密钥存储,从而规避了敏感信息硬编码带来的数据泄露风险。

    针对微服务治理框架的安全机制,如Istio支持服务间的TLS双向加密、密钥管理及服务间的授权,因而可以有效规避由中间人攻击或未授权访问攻击带来的数据泄露风险。

    4.其他防护机制

    采用微服务治理框架的防护方式可在一定程度上有效规避云原生应用的新风险,但其防护点主要针对的是微服务架构下应用的东西向流量,针对南北向的流量防护稍显脆弱,由于微服务架构下的应用防护应当是全流量防护,因而针对南北向所存在的问题,我们可以考虑将微服务治理框架与API网关和WAF相结合,从而提升南北向的防护能力。

    (1)Istio和API网关协同的全面防护

    image.gif图片.png

    针对应用的南北流量而言,Istio采取的解决方案为使用边缘代理Ingress与Egress分别接管用户或外界服务到服务网格内部的入/出站流量,Ingress与Egress实则为Istio部署的两个Pod,Pod内部为一个Envoy代理,借助Envoy代理的安全Filter机制,在一定程度上可对恶意Web攻击进行相应防护,但现有的Envoy安全Filter种类相对较少,面对复杂变化场景下的Web攻击仍然无法应对,可行的解决方案为在服务网格之外部署一层云原生API网关.

    (2)Istio和WAF结合的深度防护

    WAF作为一款抵御常见Web攻击的主流安全产品,可以有效对Web流量进行深度防护,并且随着云原生化概念的普及,国内外安全厂商的容器化WAF产品也在迅速落地,未来容器化WAF与Istio的结合将会在很大程度上提升微服务安全。

    图片.png

    image.gif

    另一种解决方案是Radware提出的Kubernetes WAF方案,该方案基于Istio实现,其中WAF被拆分为Agent程序和后端服务两部分,Agent程序作为Sidecar容器置于Pod的Envoy容器和业务容器间,该Sidecar的主要作用为启动一个反向代理,以便将外部请求流量代理至Pod外部的WAF后端服务中。该套方案带来的好处是无需关心外部请求如何路由至Pod、与Istio结合的理念更接近云原生化、实现了以单个服务为粒度的防护。

    图片.png

    image.gif

    参考资料  

    四、总结

    云原生大概念下,安全问题必然是最重要的问题之一,需要我们每一位开发者和测试者的努力。

    image.gif

    相关文章
    |
    25天前
    |
    运维 Cloud Native 持续交付
    深入理解云原生架构及其在现代企业中的应用
    随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
    |
    26天前
    |
    运维 Cloud Native 安全
    云原生技术在现代企业中的应用与挑战####
    本文探讨了云原生技术在现代企业IT架构中的关键作用,分析了其带来的优势和面临的主要挑战。通过实际案例分析,揭示了如何有效应对这些挑战,以实现业务敏捷性和技术创新的平衡。 ####
    |
    23天前
    |
    Cloud Native 持续交付 开发者
    云原生技术在现代企业中的应用与实践####
    本文深入探讨了云原生技术的核心概念及其在现代企业IT架构转型中的关键作用,通过具体案例分析展示了云原生如何促进企业的敏捷开发、高效运维及成本优化。不同于传统摘要仅概述内容,本部分旨在激发读者对云原生领域的兴趣,强调其在加速数字化转型过程中的不可或缺性,为后续详细论述奠定基础。 ####
    |
    28天前
    |
    Kubernetes Cloud Native 物联网
    云原生技术在现代软件开发中的应用与挑战####
    本文探讨了云原生技术的兴起背景、核心理念及其在现代软件开发中的广泛应用。通过具体案例分析,揭示了云原生架构如何促进企业数字化转型,并指出了在实施过程中面临的主要挑战及应对策略。 ####
    |
    18天前
    |
    Kubernetes 安全 Devops
    有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
    有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
    41 10
    有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
    |
    18天前
    |
    人工智能 缓存 异构计算
    云原生AI加速生成式人工智能应用的部署构建
    本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
    云原生AI加速生成式人工智能应用的部署构建
    |
    2天前
    |
    容灾 网络协议 数据库
    云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
    本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
    |
    1月前
    |
    存储 监控 物联网
    计算机网络的应用
    计算机网络已深入现代生活的多个方面,包括通信与交流(电子邮件、即时通讯、社交媒体)、媒体与娱乐(在线媒体、在线游戏)、商务与经济(电子商务、远程办公)、教育与学习(在线教育平台)、物联网与智能家居、远程服务(远程医疗、智能交通系统)及数据存储与处理(云计算、数据共享与分析)。这些应用极大地方便了人们的生活,促进了社会的发展。
    56 2
    计算机网络的应用
    |
    23天前
    |
    Cloud Native JavaScript Docker
    云原生技术:构建现代应用的基石
    在数字化转型的浪潮中,云原生技术如同一艘承载梦想的航船,引领企业驶向创新与效率的新海域。本文将深入探索云原生技术的核心价值,揭示其如何重塑软件开发、部署和运维模式,同时通过一个简易代码示例,展现云原生应用的构建过程,让读者领略到云原生技术的魅力所在。
    |
    25天前
    |
    存储 安全 网络安全
    网络安全的盾与剑:漏洞防御与加密技术的实战应用
    在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。

    热门文章

    最新文章