2018年黑客入侵了特斯拉亚马逊的Kubernetes容器集群。 由于该集群控制台没有设置密码保护,黑客通过Kubernetes pod获取访问证书,并基于此访问网络存储桶S3,在S3中获取遥测技术等敏感数据,从而实现特斯拉的kubernets 该事件只是Kubernetes漏洞利用的典型案例。
近年来,以Kubernetes为代表的安全创作工具帮助企业自动部署APP应用程序,为企业带来了巨大的业务收益。 但是,与传统环境一样,这些部署容易受到黑客和内部人员的攻击和利用,Kubernetes的安全性也是容器使用中的重点保护对象。
在讨论Kubernetes的安全性之前,我们先看一下Kubernetes的工作流程。
一. Kubernetes工作流
Kubernetes是自动化容器部署、更新和监视的容器组织工具。 所有主要的容器管理和云平台,包括Red Hat OpenShift、docker EE、Rancher、IBM Cloud、AWS EKS、Azure、SUSE CaaS和Google Cloud 以下是一些关于Kubernetes的重要知识。
主节点。 主节点服务器管理Kubernetes工作节点群集并在工作节点上部署Pod。
从节点。 也称为工作节点,通常用于执行其他Kubernetes组件,如APP应用程序容器和代理。
掌上电脑。 Kubernetes部署和可寻址单元。 每个pod都有自己的IP地址,可以包含一个或多个容器(通常为一个)。
服务。 服务作为底层Pod的代理,可以对各种Pod进行负载均衡。
系统组件。 管理Kubernetes群集的重要组件包括API服务器、Kubelet和etcd。 这些组件都是潜在的攻击目标。 上面提到的特斯拉事件是为了安装加密开采软件而攻击了无密码保护的Kubernetes控制台。
在Kubernetes网络连接中,每个Pod都有自己的可路由IP地址。 Kubernetes网络插件负责将主机之间的所有请求从内部路由到相应的Pod。 对Kubernetes pod的外部访问请求可以通过服务、负载均衡或门户控制器提供,Kubernetes将其路由到相应的pod。
Pod通过这些复盖网络,即“分组内的分组”相互通信,进行负载均衡和DNAT,与对应的Pod连接。 可以使用适当的标头封装数据包,将其发送到适当的目标,然后在目标中解除封装。
由于Kubernetes动态处理所有这些复盖网络,因此监控网络流量非常困难,而保证网络安全则更为困难。
对在Pod上执行的容器的攻击可以通过网络从外部进行,也可以在内部进行。 例如,黑客可以通过网络钓鱼攻击将受害者的系统作为内部攻击的立足点。 针对Kubernetes的漏洞和攻击向量如下。
1 .容器丢失。 如果APP应用配置错误或漏洞,攻击者可以访问容器以检测网络、进程控制或文件系统漏洞。
2. Pod之间的非法连接。 陷阱容器可能会连接到同一主机或其他主机上运行的其他Pod,并发起检测或攻击。 第3层网络控制可以将Pod IP地址列入白名单并提供一些保护,但只有第7层网络过滤能检测到对可信IP地址的攻击。
3. Pod的数据渗透。 数据窃取通常使用多种技术的组合来完成,例如使用pod进行反弹壳连接、连接到CC服务器和网络隧道,以及隐藏敏感数据。
二.实时加强Kubernetes运行时安全
容器投入生产后,保护Kubernetes安全的最重要的三个安全向量分别是主机安全、容器检查和网络过滤。
主机安全
当运行容器的主机(如Kubernetes工作节点)入侵时,会发生以下情况:
通过挖掘权限,实现root用户权限
窃取用于访问安全APP应用程序和基础架构的私钥
更改集群管理员权限
主机资源损坏或劫持(如采掘软件)
影响关键组织工具(如API Server和Docker守护程序)的基础架构
像容器一样,需要监视主机系统的可疑活动。 由于容器可以像主机一样执行操作系统和APP,因此必须像监视容器进程和文件系统活动一样监视主机。 总之,综合进行网络检查、容器检查、主机安全,形成了从多个向量检测Kubernetes攻击的最佳方法。
容器检查
攻击常常利用权力下放和恶意程序实施或传播攻击。 Linux内核、软件包、库或APP应用程序本身(如Dirty Cow )中的漏洞可能会导致容器受到攻击。
检查容器进程和文件系统活动并检测可疑行为是确保容器安全的重要因素。 应发现所有可疑进程,包括端口扫描、反向连接和权限。 结合内置检查和基线行为的学习过程,能够根据以前的活动识别异常流程。
如果容器化APP应用程序基于微服务原则设计,且容器中每个APP应用程序的功能有限,并且是使用所需的软件包和库构建的,则更容易准确地检测可疑进程和文件系统活动
网络过滤
容器防火墙是一种新型的网络安全产品,可以将传统的网络安全技术应用到新的云原生Kubernetes环境中。 有几种方法可以确保集装箱网络的安全。
基于IP地址和端口的3/4层过滤。 该方法需要为Kubernetes制定网络策略,动态更新规则,并在容器部署发生变化和扩展时进行保护。 简单的网络隔离规则无法提供部署关键业务容器所需的强大监视、日志记录和威胁检测功能,而只是为非法连接提供保护。
Web APP应用程序防火墙( WAF )攻击检测可以使用常见的检测攻击方法来保护面向web的容器(通常是基于HTTP的APP应用程序)。 但是,这种保护仅限于基于HTTP的外部攻击,也缺乏内部流量通常需要的多协议过滤。
第七层集装箱防火墙。 具有第7层过滤和pod间流量深度包检查功能的容器防火墙可以通过网络APP应用协议保护容器。 这是对APP应用协议白名单和基于网络的常见APP应用攻击(如DDoS、DNS和SQL注入)的内置检测。 容器防火墙还有一个独特的功能,可以将容器进程监控和主机安全嵌入到监控威胁向量中。
集装箱防火墙内的深度网络安全,深度包检测( DPI )技术至关重要。 要利用漏洞,通常使用可预测的攻击向量。 在XML对象中包含恶意HTTP请求或可执行的shell命令。 基于检测到层DPI,可以识别这些方法。 使用这些技术的容器防火墙确定是否允许每个Pod连接通过,或者是否是应该侦听的潜在攻击。
考虑到容器和Kubernetes网络模型的动态性,传统的网络可见性、取证分析工具可能不再适用。 调试APP应用和调查安全事件等简单的任务也不是那么简单。 执行网络安全、检查和取证任务需要新的Kubernetes和容器感知工具。
确保Kubernetes的系统和资源的安全
如果不保护Kubernetes的安全,Kubernetes和基于Kubernetes的管理平台可能容易受到攻击。 这些漏洞暴露了集装箱部署的新攻击面,很可能被黑客利用。 保护Kubernetes和管理平台本身免受攻击所需的基本步骤之一是正确配置RBAC,以确保用户获得适当的系统资源。 此外,还需要审查和设置以下区域的访问控制权限:
保护API服务器。 配置API服务器的RBAC或手动创建防火墙规则以防止未经授权的访问。
限制Kubelet权限。 为Kubelet设置RBAC并管理证书轮换以保护Kubelet。
所有外部端口都需要认证。 验证可以从外部访问的所有端口,并删除不需要的端口。 需要外部端口的认证。 对于未经认证的服务,仅访问白名单。
或限制控制台访问。 除非配置正确,否则用户可以使用强密码或双因素身份验证登录,因此不允许访问控制台/代理。
如上所述,通过结合强大的主机安全性锁定工作节点,可以保护Kubernetes部署的基本体系结构免受攻击。 但是,建议您使用监控工具跟踪对基础架构服务的访问,以检测非法连接和潜在的攻击。
以特斯拉Kubernetes控制台漏洞的利用为例。 黑客攻占工作节点后,建立外部连接,控制加密货币开采软件。 基于策略的实时监控容器、主机、网络和系统资源,检测可疑进程和非法外部连接。
三.最后写作
近年来,越来越多的企业开始加速向业务云迁移,采用容器化方法将APP应用程序迁移到云。 Kubernetes可以在一组机器上运行和协调集装箱化服务,因此在企业的集装箱化过程中起着重要的作用。 Kubernetes本身提供了RBAC策略和基础结构安全功能,但它本身不是安全工具。 通过Kubernetes开展重要业务时,安全性是需要考虑的一个优先功能。 本文从网络、容器和主机三个方面介绍了Kubernetes的重要安全措施,以避免发生类似特斯拉的安全事件。
()
!
奖励
二维码
共享
共享
奖励
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn