前言

前一篇文章中,咱们简要剖析了关于严重安全缝隙,在云原生架构下该怎么快速进行应急和修正,以及云原生架构关于这种安全应急所带来的应战和优势。事情过后咱们需求痛定思痛,体系的来考虑下,面对云原生架构怎么进行有效的安全建造和安全运营,使得咱们在安全事情的处置上能够做到挥洒自如。

腾讯云容器服务TKE现在具有国内最大规划的Kubernetes集群,运转了包含游戏、付出、直播、金融等多个运用场景。而集群的安稳运转离不开安全才能的保驾护航,腾讯云容器安全服务TCSS把握了业内最前沿的云原生安全视角,为TKE的安全办理供给继续辅导并沉积了丰厚的考虑和最佳实践。

本文将结合咱们的安全建造和安全运营实践,体系的共享咱们关于云原生架构下安全建造和安全运营的考虑。

云原生架构下的安全建造与安全运营

安全运营是目标,安全才能是手法。安全才能的建造与安全运营有着紧密的关系,安全才能建造是安全运营的根底,巧妇难为无米之炊,更好的安全才能建造能够使安全运营愈加顺利,相同安全运营也能给安全才能建造供给更好的输入和反应,使安全检测和防护才能愈加精准。

云原生架构下的安全才能建造和运营,其实是一个很大的出题,限于篇幅本文不会彻底掩盖。本文首要环绕log4j2缝隙这个典型场景,从安全运营的视角,剖析安全才能建造的必选项。

传统的安全才能建造必不可少

首要需求阐明的是,不管是咱们现在讲的容器安全,还是云原生安全,都是一个相对狭义的概念,一般只包含了云原生架构下特有安全危险的检测与防护。从安全危险视点来看,咱们也一直着重,云原生架构下的安全危险是一个增量,因而在全体的安全建造上,必定是个纵深防护的体系,不是某个产品单打独斗所能完结的。

例如南北向流量出入口的WAF、防火墙、抗D等,假如咱们的云原生是建立在IaaS根底之上的,那么VPC、乃至是underlay层面的网络分级分域的阻隔和侵略检测,这些都是云原生安全建造的根底。

在这次log4j2缝隙的应急处置中,咱们也发现,即使是容器环境,经过晋级WAF规矩、更新防火墙出站战略等方法,也能在第一时间完成必定程度的缝隙缓解和阻断。

腾讯云在2021年11月发布的《腾讯云容器安全白皮书》中,也提出了层次化的容器安全体系结构,其间很重要的一部分便是根底安全,这儿的根底安全便是包含了原有的数据中心安全以及云安全建造所掩盖的内容。

安全运营驱动安全才能建造

关于体系化的安全建造和安全运营,一些技术安排以及规范化安排,也提出过相关的规范结构,这些结构关于咱们在安全建造上,都有着重要的辅导和参阅含义,这儿咱们以NIST提出的网络安全结构 为例来作为咱们云原生安全建造的参阅。

从重大漏洞应急看云原生架构下的安全建设与安全运营(下)

参阅NIST网络安全结构,咱们相同将云原生安全建造区分为五个并行并且接连的进程,分别是辨认、防护、检测、呼应和恢复。

安全辨认

(1)集群财物辨认

安全辨认最首要是体现在财物辨认上。这儿的财物既包含cluster、node、namespace、pod、service、container等Kubernetes资源层面的财物,相同还包含镜像库房、容器镜像等维度的运用财物信息。

云原生架构下,除了根本的财物辨认盘点之外,还需求能够发现这些财物之间潜在的资源和事务之间的逻辑关系。这样一旦检测到某个镜像包含新的缝隙,或许检测到相应的侵略行为,需求能够快速进行一切财物和人员的自动化相关定位,发现影响范围,以及定位安全责任人,从而快速进行处置。

(2)自建容器辨认

除了关于规范集群层面的财物具有上述辨认才能外,关于研制体系等相对杂乱的环境相同需求有必定的适配才能。例如,在研制环境中,除了规范集群层面的财物外,还会出现自建的财物,例如用户用Docker run等指令直接拉起运转的容器。

(3)事务危险辨认

从安全运营视点看,安全辨认还体现在事务危险辨认上。咱们需求对集群、运用进行明晰的安全危险等级区分,关于高危险运用,需求选用更高等级的安全战略。例如,关于核心事务体系,要有严厉的网络阻隔以及访问操控机制,关于直接暴露出去的服务,在容器维度要有愈加严厉的权限操控等。

安全防护

具有财物以及事务危险信息后,接下来就需求依赖根本的安全防护才能,完成对已知要挟的安全防护。这儿的安全防护首要包含两个方面:

(1)体系加固

• 装备检测与修正

体系加固可谓是个老生常谈的话题了,尤其是装备查看与安全装备加固,但是在云原生架构下,这一点是尤为重要的。由于从容器的规划理念来看,其与操作体系共享内核,给了容器用户更大的可操作空间,因而,装备的安全与否将在很大程度上影响着整个体系的安全性。

从前文的容器环境首要侵略路径能够看出,经过主机进犯容器是其间重要的一种路径,例如经过Docker Remote API。因而安全才能需求包含全面的装备查看。

装备加固尽管说起来是个老问题,但是在云原生环境中,真实完成完整的安全才能还是比较杂乱,这既包含Kubernetes、Docker、Istio等根底平台与组件的加固,还包含镜像内运用软件的装备加固,这个做起来就更杂乱一些。咱们在这儿就不再展开。

从安全运营视点看,咱们需求能够依据装备查看得到的信息,将根本的装备进行安全性加固。一起一个重要的点便是,安全装备与事务安稳运转之间的平衡,一方面需求保证充沛完成了安全性,另一方面便是不会对事务的可用性和安稳性造成影响。这就需求在装备加固的一起,结合事务特性与安全装备要求,灵敏对装备战略进行调整,这将会是一个继续的修正和完善的进程。

• 缝隙检测与修正

已知缝隙修正相同是个陈旧的话题,包含主机层面的缝隙和镜像的缝隙,关于检测出来的缝隙,需求依据缝隙的要挟等级以及运用难易程度等信息,确定是否需求修正以及修正的优先级。

• 镜像安全评价与修正

容器镜像作为云原生运用的源头,除了缝隙之外,还需求进行更多维度的安全性评价。例如至少需求包含以下几个方面:镜像内敏感信息的检测,保证不会发生敏感信息泄露;镜像中病毒木马等恶意文件检测,这首要针对不确定来源的公开镜像;镜像构建的合规性检测,比方COPY和ADD的运用差异等。

除了针对上述镜像危险的检测和修正之外,在安全运营上还需求考虑对僵尸镜像整理,这既包含对镜像库房的整理,也包含对集群node节点的整理,这关于减小进犯面有着重要的效果。

一起,针对不同镜像需求支持自定义的检测规矩,不同的安排用户或许不同类型事务的镜像,对安全的要求是不一样的,因而在镜像的安全评价上,除了根据一套通用的检测评价规矩之外,还需求支持用户的自定义规矩,这样能够结合前文的事务危险辨认,针对不同的镜像,灵敏选用不同的安全规矩。

• 危险办理

在运营办理上,针对上述提及的装备、缝隙等危险信息,需求有一套完善的闭环危险办理流程,保证彻底完成了危险的辨认、修正以及承认。

(2)安全防护

除了体系加固外,在安全防护阶段,还应该在不同层面,针对已知可能发生的侵略危险,经过相关的防护才能和防护战略进行进犯的防备。

• 准入操控

准入操控望文生义便是在云原生运用的全生命周期流程中,依据安全的要求,在不同的阶段进行操控和阻断,从而完成安全性的目标,这也是DevSecOps的一项根本要求。云原生架构凭借其灵敏的资源办理与自动化的运用编列,给安全性的操控供给了充沛的便利。准入操控的价值,一方面体现在安全危险的防备上,另一方面,一旦log4j等严重0day迸发后,能够经过准入操控,快速操控影响面,防止危险新增。

从生命周期流程看,准入操控需求分别从研制(dev)和运转时(ops)两个阶段来施行。研制阶段的准入首要指在CI、入库等阶段,进行缝隙、敏感信息之类的安全危险的检测,只要契合安全要求后,才答应进入流水线的下一个阶段。这儿的准入条件一般需求涵盖前文讲的各种加固内容。

运转时的准入操控,则首要体现在运用被布置运转的阶段,只要契合安全要求的容器/pod,才答应被拉起运转,这儿的准入条件一般包含对资源约束的检测、对syscall/capability等权限约束的检测等。

相同,从运营的视点看,准入操控规矩除了规范默认的之外,还需求能够依据运用进行灵敏则调整和完善。

• 运转时阻拦

云原生架构下的容器内,承载的是微服务运用,因而理论上是不应该具有高权限指令的执行,这一点咱们在准入操控尽管做了必定程度的防备。这儿咱们根据运转时安全才能,还需求完成对容器内高危操作的阻拦,例如高危指令、高危体系调用等,在不同维度完成安全的纵深防护。

• 网络阻隔

横向扩展是进犯者在完成第一步进犯之后的操作,也能够称为后渗透阶段。在云原生网络的规划中,一般默认是不具有任何网络阻隔才能的,因而,需求设置并完成一套完善的网络阻隔机制,完成不同事务之间的网络阻隔。

云原生架构下的网络安排形态,差异于传统的根据主机或许虚拟机的网络,在Kubernetes中,网络的最小单位是Pod,而Pod中承载的是事务容器。因而,在完成网络阻隔的时分,传统的根据IP、端口的网络战略将不再适用,咱们需求根据label、service等资源,完成不同粒度的网络阻隔。

• 防护战略办理

在运营进程中,怎么设置准入操控、操作阻拦、网络阻隔等战略,这是一个令人头疼的问题,由于无论是安全办理员、运维办理员,乃至是开发人员,都很难彻底讲得清楚这些规矩该怎么装备,才能完成相对最安全的状况。

这是云原生架构下安全运营的一个应战,一起云原生架构本身也供给应对这种应战的优势。前文说到云原生架构的一个重要特性便是不可变的根底设施,这就意味着,咱们能够经过白名单、行为模型等方法,根据事务特性以及前史运转数据,自动化的学习生成一套安全基线,这个安全基线将成为各种防护战略装备的重要参阅。

安全检测

安全永远是一个攻防博弈的进程,而防守方往往处于相对劣势的位置,乃至能够说没有攻不破的体系。

在云原生架构下,事务变得越来越敞开和杂乱,进犯者的手法越来越多样化,前文所述的防护阻拦办法,总是难以应对一切的要挟,有些高档定向进犯或许是像针对log4j2这种0day缝隙的进犯,总是能够轻易的绕过各种防护手法,让安全要挟防不胜防。

因而,在完结了上述一切的防护阻拦办法之后,还需求继续的对云原生体系进行运转时监测以及安全检测。根据云原生架构的特性,这儿将安全检测分为两个维度来进行。

1)体系维度的要挟检测

首要针对容器内的行为来进行,比方容器内进程反常的检测、文件反常的检测、用户反常的检测等,经过这些细粒度的反常检测,发现比方提权、挖矿等进犯行为。

网络维度的要挟检测。首要面向的是后渗透阶段的横向移动,尽管咱们在防护阶段现已设置了严厉的访问操控战略,但是在网络可达范围内的横向移动进犯,仍然会带来重要的安全要挟。网络要挟检测首要分为两个方面:一方面是从网络行为的视点,根据Flow完成网络流量尤其是东西向流量的反常检测,这关于端口探测、APT进犯,乃至是新型的网络要挟或许高档的网络要挟等检测将会起到重要的帮助(NDR);另一方面便是从数据包的视点,剖析容器之间网络的数据包反常,完成容器网络的侵略检测(NIDS)。

2)运用维度的要挟检测

相同面向是后渗透阶段的横向移动,云原生年代运用的微服务架构使得容器间的网络通信会存在大量的API调用,保证一切这些API之间调用都是安全的,关于云原生运用的安全有着重要的含义。例如,在已攻陷的容器中,经过API的方法获取其他服务的数据、或许是经过构造恶意的参数完成对相关服务的进犯。因而,需求在运用的维度完成对API调用反常的检测,比方调用行为、调用路径、调用参数等。

安全呼应

安全呼应首要是针对前一个进程的安全检测告警所做出的处置办法。在云原生架构下的安全呼应,尤其是网络安全层面的安全呼应,咱们更倾向于运用旁路检测呼应处置这样的操作进程,而不是像传统网络安全中串联接入IPS、WAF这种直接阻断式的检测呼应,这样的规划首要是从事务性能的视点动身。

要挟的呼应首要也是包含两个方面:

(1)处置

经过网络阻隔、暂停容器、停止反常进程、毁掉容器等方法,完成对告警的呼应处置。这儿有一个前提,便是在安全才能的建造进程中,鉴于容器的短生命周期特性,需求完成完善的日志和追寻记录,以便完成处置后的溯源取证。

处置的进程中,关于某些确定性反常,能够经过一键阻断、一键阻隔等方法,完成处置操作的自动化,以下降运营成本。

(2)溯源

依据容器的告警、日志、追寻等数据以及数据间的相关剖析,完成对告警的溯源剖析,明确进犯链路,确定侵略原因。

安全修正

在安全修正阶段首要包含两个方面的内容:一方面便是针对侵略原因,对相关危险进行加固性修正;另一方面,便是从加固、防护、检测等进程,分别更新相关的安全战略,完成运营反应。

总结

Log4j2缝隙现已过去了一个多月,相信很多该打的补丁都现已修正结束,这次突发的应急事情,是否让咱们需求从头考虑云原生架构下的安全建造和安全运营。缝隙或许侵略很难预测,不知道下一次什么时分还会发生,痛定思痛,到那时咱们能否能够从容应对。

希望本文的考虑能给云原生安全建造带来一些思路和帮助,如有任何建议或疑问,欢迎文末留言。

关于咱们

立刻关注【腾讯云原生】大众号,回复“虎虎生威”,收取腾讯定制红包封面~

福利:

①大众号后台回复【手册】,可获得《腾讯云原生路线图手册》&《腾讯云原生最佳实践》~

②大众号后台回复【系列】,可获得《15个系列100+篇超有用云原生原创干货合集》,包含Kubernetes 降本增效、K8s 性能优化实践、最佳实践等系列。

③大众号后台回复【白皮书】,可获得《腾讯云容器安全白皮书》&《降本之源-云原生成本办理白皮书v1.0》

③大众号后台回复【光速入门】,可获得腾讯腾讯云专家5万字精华教程,光速入门Prometheus和Grafana。