freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

2022云原生安全发展24个洞见
2022-05-31 11:04:51
所属地 北京

今天,云原生技术为企业带来快速交付的优势之外,也带来了新的安全要求与挑战。一方面,新技术(容器、编排、DevOps、微服务)的引入带来了新安全问题,如镜像的供应链问题、容器的逃逸问题、集群的横向移动问题、微服务的边界问题等,需要引入新的安全防护手段;另一方面,云原生持续开发/集成的开发模式的转变,传统安全无法适配新的开发节奏和安全要求。

在长期跟踪容器安全的研究之后,本文基于各类材料,重点对容器发展、容器镜像安全、K8S发展的技术趋势进行整理分析,与各位业内安全同仁分享,为守护云原生安全的发展贡献一份力量。

一、容器生态发展8大洞见

与传统部署相比,安全专家和管理员在容器化环境中需要保护的组件更多、更复杂,涉及容器和底层基础设施,需要将安全集成到开发管道中,才能确保所有组件从最初的开发阶段到其生命周期结束都受到保护。

洞见1:超过一半的组织运行容器数量大于250个,有6%的人管理超过5000个容器(如图1所示)。这表明越来越多的工作负载正在转向容器并远离传统架构。

1653964825_629580191015cecb24cf4.jpg!small?1653964823899图1 运行容器的数量

洞见2:每台主机上容器数量中位数都有所增加,2020年同比增长了33%,2021年同比增长12%,达到了46个(如图2所示),许多组织正受益于硬件资源利用率的提高。

1653964837_62958025a3d79c72d3f7c.jpg!small?1653964836450图2 每个主机上容器数量中值

洞见3:大约44%容器存活时间不到五分钟(如图3所示),许多容器只需要足够长的时间来执行一个函数,几秒钟可能看起来很短,但对于某些流程来说已足够。这表明容器的短暂性仍然是该技术的独特优势之一,但也带来了新的挑战,包括监控、安全性和合规性等新问题。

1653964852_62958034e48c69f5c078d.jpg!small?1653964851768图3 容器的生命周期

洞见4:在容器运行时使用上,Docker采用占46%,首次跌破50%,但Docker仍然是组织中使用最多的容器运行时(如图4所示)。1653964864_62958040ed88312137c3b.jpg!small?1653964863756图4 容器运行时

洞见5:在容器仓库的使用上,Quay首次超过Docker,占客户采用率的26%(如图5所示)。

1653964877_6295804d027c565feec07.jpg!small?1653964875849图5 容器镜像仓库

洞见6:在资源使用限制上,60%的容器没有定义CPU限制,51%没有定义内存限制。即使在有CPU限制的集群中,平均有34%的CPU内核未被使用(如图6所示)。

1653964889_62958059078e91effc194.jpg!small?1653964887877图6 容器容量规划

洞见7:在开源软件使用上,基于容器的应用开发中,使用前12种开源技术(如图7所示),排名前三是NGINX、GO和JMX。

1653964901_62958065939de72f13317.jpg!small?1653964900458图7 容器开源软件

洞见8:容器化服务正在不断改进(如图8所示),使用寿命保持相对稳定,其中31%服务周期超过2周。

1653964915_62958073be3ec6ac3d5c9.jpg!small?1653964914606图8 容器化服务周期

二、容器镜像安全态势8大洞见

随着组织将更多的容器工作负载转移到生产中,我们看到需要将安全性和合规性集成到DevOps工作流程中。容器镜像在容器安全中起着至关重要的作用。从镜像创建的任何容器都会继承其所有特征,包括安全漏洞、错误配置,甚至恶意软件。

洞见1:76%的镜像最终以root身份运行(如图9所示)。

1653965061_629581056cbbbb30fd266.jpg!small?1653965060204

图9 以 root 身份运行的容器

洞见2:公共镜像仓库越来越受到信任,从2020年的47%增加到2021年的61%(如图10所示)。

1653965176_629581783214edaf6bced.jpg!small?1653965175039图10 镜像仓库拉取(公有仓库vs私有仓库)

洞见3:RHEL是迄今为止最受欢迎的基础镜像,占使用基础镜像的36%,只有25%的人使用Alpine(如图11所示)。通过使用像Alpine这样的精简基础镜像,可以减少容器的攻击面。

1653965195_6295818bae38eb6f984dd.jpg!small?1653965218613图11 基本镜像操作系统

洞见4:镜像生命周期数据反映了代码发布之间的时间变化(如图12所示),大约一半的容器镜像在一周或更短的时间内被替换。1653965212_6295819c24dbdaa87a0ea.jpg!small?1653965218612图12 容器镜像生命周期

洞见5:在容器工作负载中,在62%容器中检测到shell,38%检测到使用敏感挂载点启动的容器(如图13所示),这意味着该容器能够更改主机系统上的重要文件。

1653965465_62958299cf971f2c10624.jpg!small?1653965464655图13 容器运行时安全警报

洞见6:52%的镜像是在运行时扫描的,42%是在CI/CD管道中进行最初扫描的(如图14所示)。青藤建议在镜像生产、分发、运行阶段都需要不断重新扫描所有容器,以发现任何新披露的漏洞。

1653965487_629582af35497407280e0.jpg!small?1653965486007图14 扫描镜像的位置

洞见7:在生产环境中,运行的85%的镜像至少包含一个可修补漏洞。此外,75%的镜像包含“高”或“严重”的可修补漏洞(如图15所示)。

1653965498_629582ba022aa85809dae.jpg!small?1653965496810图15 运行时可修补漏洞

洞见8:在关注告警中,Kubernetes.node.ready仍然是最常用的,其次是CPU使用率和正常运行时间指标(如图16所示)。

1653965507_629582c3d269dfc354338.jpg!small?1653965506700图16 Top10警报

三、K8S安全发展8大洞见

Kubernetes在组织中的使用越来越成熟,它是一个复杂的平台,需要大量的配置和管理。为了保证Kubernetes工作负载的安全,需要通过实施安全措施来解决关键的架构漏洞和平台依赖。

Pod是Kubernetes中最小的部署单元,由一个或多个容器组成。Pod通常是网络攻击者在进行容器漏洞利用时的初始执行环境。鉴于此,我们应该加固Pod安全,让网络攻击者难以进行漏洞利用,并限制入侵所造成的影响范围。

洞见1:在编排工具的使用上,Kubernetes成为了绝对主流,K8S的使用率高达96%(如图17所示)。

1653965550_629582ee3636e25fdb616.jpg!small?1653965549019图17 编排工具

洞见2:在过去两年中,每个组织的平均Pod数量翻了一番(如图18所示),Kubernetes主机的平均数量也出现了类似的相对增长。

1653965572_6295830406ec20578fcde.jpg!small?1653965570777

图18 每个组织的 Pod 数量

洞见3:整体上来看,大部分用户的集群数量比较少,49%只有1个集群,此外每个集群的节点数量相对较少,大部分都只有1-5个Nodes,这表明许多企业仍处于早期使用Kubernetes的阶段(如图19所示)。未来企业会向更多集群和每个集群更多节点的方向转变。

1653965597_6295831d03d9b9b6f488e.jpg!small?1653965595846图19 集群数量和每个集群的节点数

洞见4:每个集群的Pod数量显著增加,54%的组织在每个集群中运行100多个Pod(如图20所示)。每个节点的平均Pod数量有所下降,这表明团队正在部署更多更小的节点来处理他们的工作负载。

1653965624_629583388d5d095ca5f32.jpg!small?1653965623429图20 集群Pod数和节点Pod数

洞见5:Kubernetes组织每台主机运行16个Pod,而使用ECS的组织每台主机运行5个任务。2020-2021年,这两种环境的数字保持一致,这表明组织正在寻找合适数量的Pod和任务来支持他们的应用程序。我们还发现Kubernetes Pod和ECS任务平均运行1.5个容器(如图21所示)。

1653965645_6295834d0e94fcd2bbfcd.jpg!small?1653965643940

图21 每个环境的主机密度

洞见6:Kubernetes可以根据指标自动水平或垂直扩展Pod,以构建高可用性和高性能的容器应用程序。横向扩展Pod的总数可确保应用程序能够支持需求波动,而垂直扩展单个Pod的CPU和内存有助于管理应用程序的整体性能和成本。大约40%的Kubernetes组织使用HPA(横向扩展),而使用VPA(垂直扩展)的组织不到1%(如图22所示)。1653965660_6295835cd748a9f8e6690.jpg!small?1653965659724

图22 Kubernetes自动扩展使用量的时间变化

洞见7:组织平均使用13个StatefulSet和28个PVC(Persistent Volume Claim)(如图23所示),这表明越来越依赖Kubernetes来支持包括有状态应用程序在内的各种工作负载。

1653965692_6295837ce671eccc01b1e.jpg!small?1653965691740

图23 Kubernetes Stateful Sets 和PVC的使用情况

洞见8:Prometheus广泛用于Kubernetes、OpenShift和Istio等项目的度量标准。在JMX、StatsD和Prometheus这三个主流解决方案中,Prometheus连续第三年获得收益。与去年同期相比,Prometheus指标的使用率从去年的62%增加到83%。随着新编程框架的使用范围扩大,JMX指标(用于Java应用程序)和StatsD等替代方案继续下降,今年JMX急剧下降至仅4%,而去年为19%(如图24所示)。

1653965715_629583936ee0d987eb5b1.png!small?1653965714282图24 指标类型的平均使用情况

# 网络安全 # 容器安全 # 容器安全分析 # 镜像安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录