■基于ATT&CK框架的Kubernetes攻击威胁矩阵( 四 )

■基于ATT&CK框架的Kubernetes攻击威胁矩阵
本文插图

发现策略由攻击者用来探测可以访问的环境的技术组成 。 这些技术有助于攻击者进行横向移动并获得更多资源 。
访问Kubernetes API服务器
Kubernetes API服务器是群集的网关 。 通过向RESTful API发送各种请求来执行集群中的操作 。 API服务器可以检索群集的状态 , 其中包括部署在群集上的所有组件 。 攻击者可能会发送API请求来探测集群 , 并获取有关集群中的容器 , 机密和其他资源的信息 。
访问Kubelet API
Kubelet是安装在每个节点上的Kubernetes代理 。 Kubelet负责正确执行分配给该节点的Pod 。 Kubelet公开了不需要身份验证的只读API服务(TCP端口10255) 。 具有网络访问主机权限的攻击者(例如 , 通过攻陷容器上运行代码)可以请求访问Kubelet API 。
通过访问[NODE IP]:10255/pods /检索节点上正在运行的Pod 。
通过访问[NODE IP]:10255/spec/检索有关节点本身的信息 , 例如CPU和内存消耗 。
内网映射
攻击者可能尝试对群集网络探测以获取有关正在运行的应用程序的信息 , 包括扫描已知漏洞 。 默认情况下 , 在Kubernetes中对pod通讯没有任何限制 。 因此 , 获得单个容器访问权限的攻击者可能会使用它来探测网络 。
访问Kubernetes仪表板
Kubernetes仪表板是基于Web的UI , 用于监视和管理Kubernetes集群 。 仪表板允许用户使用其服务帐户(kubernetes-dashboard)在群集中执行操作 , 该权限由该服务帐户的绑定或群集绑定确定 。 获得对群集中容器的访问权限的攻击者可以使用其对仪表板容器的网络访问权限 。 因此 , 攻击者可能会使用仪表板的身份来检索有关群集中各种资源的信息 。
实例元数据API
云提供者提供了实例元数据服务 , 用于检索有关虚拟机的信息 , 例如网络配置 , 磁盘和SSH公钥 。 VPS通过不可路由的IP地址访问此服务 , 该IP地址只能从VPS内部访问 。 获得容器访问权限的攻击者可以查询元数据API服务 , 以获取有关基础节点的信息 。 例如 , 在AWS中 , 以下请求将检索实例的所有元数据信息:
【■基于ATT&CK框架的Kubernetes攻击威胁矩阵】IP/latest/meta-data/
08横向扩展
■基于ATT&CK框架的Kubernetes攻击威胁矩阵
本文插图
横向扩展移动策略包括攻击者用来目标环境中扩展的技术 。 在容器化环境中 , 这包括从对一个容器的给定访问中获得对群集中各种资源的访问权 , 从容器中对基础节点的访问权或对云环境的访问权 。
访问云资源
攻击者可能会从攻陷的容器扩展到云环境 。
容器服务账户
获得对群集中容器的访问权限的攻击者可以使用已安装的服务帐户令牌请求访问API服务器 , 并获得对群集中其他资源的访问权限 。
集群内部网络
Kubernetes的网络行为允许群集中Pod之间的流量作为默认行为 。 获得单个容器访问权限的攻击者可能会将其用于群集中另一个容器的网络可达性 。
配置文件中的应用程序凭据
开发人员将机密存储在Kubernetes配置文件中 , 例如 , 作为pod配置中的环境变量 。 使用这些凭据 , 攻击者可能会访问群集内部和外部的其他资源 。
可写卷安装到主机上
攻击者可能试图从受感染的容器中获取对基础主机的访问 。
访问Kubernetes仪表板
有权访问Kubernetes仪表板的攻击者可以管理仪表板资源 , 还可以使用仪表板的内置''exec''功能在集群中的各个容器上运行其代码 。
访问Tiller端点
Helm是由CNCF维护的K8S集群中受欢迎的软件包管理器 。 Tiller是Helm V2之前的的服务器端组件 。
Tiller公开群集中的内部gRPC端点 , 侦听端口44134 。 默认情况下该端点不需要身份验证 。 攻击者可以使用Tiller的服务帐户(通常具有较高的特权) , 在Tiller的服务可访问的任何容器上运行代码 , 并在群集中执行操作 。


推荐阅读