Kubernetes应用中必须避免的七个基本错误

VSole2022-07-29 09:56:21

当企业创建或使用云上应用系统时,大多都需要使用Kubernetes。据云原生计算基金会(CNCF) 最近的一份报告显示,Kubernetes在全球已拥有近600万个企业用户,成为云上应用程序主要的部署模式。

随着Kubernetes平台上的敏感数据越来越多,其被攻击的风险就越大。要实现Kubernetes平台的完整安全措施需要一个系统化的建设过程,但研究人员发现,在Kubernetes应用产生的安全问题中,超过9成都是由于非常基础的原因所引发,本来是可以被避免的。本文梳理总结了Kubernetes应用中的七个最常见基础性安全错误。

1、默认配置未修改

研究人员发现,许多组织都在使用默认的集群配置,并且未引起重视,这是个非常严重的错误。尽管Kubernetes的默认设置为开发人员赋予了较大的灵活性和敏捷性,但是却没有考虑安全防护层面的需求。默认配置在面对非法攻击时会变得非常脆弱。为了保护Kubernetes上应用数据的安全,企业必须确保对集群配置的合理性和安全性,以获得更充分的安全防护能力。

2、管理员权限混乱

为了应用方便,很多组织的开发人员可以轻易的使用CLUSTER_ADMIN(集群管理员)之类特权账号对集群执行日常操作,这种方式显然是错误的。特权账号应该仅用于管理其他角色和用户,当多个开发者都可以拥有CLUSTER_ADMIN级别的访问权限时,也意味着黑客可以更加轻松的获得访问权限,他们可以通过这些高级账户非法进入Kubernetes上的系统,进而全面访问整个集群中的数据资源。

3、过度的访问授权

并非每个开发人员都需要全面访问所有资源才能完成其工作,但实际上,许多企业的管理员却没有对开发人员访问dev/stage/prod集群的权限类型予以适度的管理和限制。允许开发人员不受限制地访问资源是一种非常糟糕的做法。与设有多个管理员相似,这个错误很容易就会被黑客探测并利用,他们可以使用这种不受限制的访问权限在贵组织的系统中横向移动,并且大量的窃取或破坏资源。

4、未有效的实现应用隔离

隔离是Kubernetes平台的一种天然属性,可以通过命名空间来实现对象隔离。但是许多企业组织想当然地以为集群网络与云虚拟专用网(VPC)都会被有效的进行隔离,但事实并不是这样。企业在Kubernetes应用中,不能忽视保护集群网络中的应用系统,并对重要业务系统及数据实现隔离防护。

5、未检测导入YAML的安全隐患

Kubernetes可以支持YAML和JSON格式创建资源对象,JSON格式用于接口之间消息的传递,适用于开发;YAML格式用于配置和管理,适用于云平台管理。YAML是一种简洁的非标记性语言,导入公共YAML尽管可以避免重复性工作,节省时间,但也同样会将错误配置引入到企业环境中。因此企业在引入公共YAML时,需要充分检测并评估其带来的安全影响,并确保可以解决配置过程中可能存在的安全性问题。

6、将机密数据存储在ConfigMap中

机密数据主要包括密码、令牌或密钥之类的敏感数据。由于疏忽或者使用的方便,开发人员经常会将一些机密信息存储在ConfigMap中,从而增加了这些敏感数据的暴露风险。ConfigMap是一种API对象,通常只用来保存非机密性数据,它可以让用户将针对特定环境的配置与容器镜像分离,以便应用程序易于移植。但是由于缺乏保护,黑客同样有机会访问ConfigMap,因此也能够访问保存在其中相关资源。

7、没有定期开展安全扫描

在软件开发生命周期(SDLC)和持续集成/持续交付(CI/CD)管道的早期阶段执行定期扫描,以查找错误配置和漏洞,这有助于杜绝这些问题进入到生产环境的可能性。但现实中,许多组织都没有这样的安全计划或缺少行动。从攻击成本角度看,黑客通常会寻找最省事的攻击目标。因此,企业首先要确保自己不是保护最乏力的组织,这样就可以减少成为被攻击目标的可能性。开展日常性的安全漏洞检查并且有效落实,正是一种快速提升安全能力的有效途径。

kubernetes
本作品采用《CC 协议》,转载必须注明作者和本文链接
Kubernetes通常被称为“K8s”,是一种非常流行的开源容器编排系统,可以自动部署、扩展和管理容器化工作负载。
本文将引入一个思路:“在 Kubernetes 集群发生网络异常时如何排查”。文章将引入 Kubernetes 集群中网络排查的思路,包含网络异常模型,常用工具,并且提出一些案例以供学习。其可能原因为Pod 的 DNS 配置不正确DNS 服务异常pod 与 DNS 服务通讯异常大数据包丢包:主要现象为基础网络和端口均可以连通,小数据包收发无异常,大数据包丢包。
尽管Kubernetes的默认设置为开发人员赋予了较大的灵活性和敏捷性,但是却没有考虑安全防护层面的需求。为了保护Kubernetes上应用数据的安全,企业必须确保对集群配置的合理性和安全性,以获得更充分的安全防护能力。企业在Kubernetes应用中,不能忽视保护集群网络中的应用系统,并对重要业务系统及数据实现隔离防护。
保留的这部分资源主要提供给系统进程使用。cpuManager 当前的限制:最大 numa node 数不能大于 8,防止状态爆炸。策略只支持静态分配 cpuset,未来会支持在容器生命周期内动态调整 cpuset。下文有介绍相应的提案。支持这种场景需要对 CPU 进行分组分配。
跨节点Pod通信则是三层虚拟网络设备Tun,也就是flannel0。同理目的主机就会有UDP解包及转发至Pod服务。还有VXLAN模式支持DirectRouting配置,DirectRouting=true是支持在相同子网情况下数据包直接通过路由转发,与HOST-GW模式相同。但是HOST-GW模式只支持宿主机之间二层连接,要求集群中所以节点必须处于同一个网络中
序从 2021 年 10 月开始,NGINX 的 Kubernetes Ingress Controller开始受到安全研究人员的关注。曾披露了CVE-2021-25742漏洞:攻击者可以通过定制化的Snippets特性创建或修改集群中的Ingress实例,从而获取集群中所有的Secret实例信息。
Kubernetes 是一个开源容器编排系统,用于自动化软件部署、扩展和管理。Shadowserver 基金会开始扫描可访问的 Kubernetes API 实例,这些实例以 200 OK HTTP 响应对探测器进行响应。
满足安全与合规要求已成为部署和管理Kubernetes的头号挑战。缺乏对Kubernetes最佳实践的了解以及由此产生的错误配置会给云原生应用安全带来巨大的威胁。
Kubernetes部署应用
2022-05-11 13:36:57
STATEMENT声明由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
Kubernetes基础环境搭建
2022-05-09 14:47:39
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
VSole
网络安全专家