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


有漏洞的应用程序
在集群中运行有公开漏洞的应用程序可引起集群的访问权限 。 可能会触发远程代码执行突破(RCE)攻击容器 。 如果服务帐户安装在容器中(K8S的默认行为) , 则攻击者可以窃取服务帐户并对API服务器发送请求 。
暴露的仪表板
Kubernetes仪表板是基于Web的用户界面 , 可用于监视和管理K8S集群 。 默认情况仪表板只能通过内网访问 。 如果图省事将仪表板暴露在外部 , 则可以允许进行身份验证和部署远程管理 。
02执行攻击
执行攻击策略包括攻击者用来在最大化中运行其代码的技术 。
■基于ATT&CK框架的Kubernetes攻击威胁矩阵
本文插图

容器执行
拥有权限的攻击者可以使用exec命令('' kubectl exec'')在群集中的容器中运行恶意命令 。 通过这种方法 , 攻击者可以使用合法镜像(例如Ubuntu OS镜像)作为后门容器 , 并使用'' kubectl exec''远程运行其恶意代码 。
新建容器
攻击者可能尝试通过新建容器在集群中运行其代码 。 有权在群集中部署Pod或控制器的攻击者(例如DaemonSetReplicaSetDeployment)则可以创建用于代码执行的新容器 。
应用程序利用
部署在群集中并且易受到远程代码执行漏洞或最终允许执行代码的漏洞的应用程序使攻击者能够在群集中运行代码 。 如果将服务帐户安装到容器(K8S中的默认行为) , 则攻击者将能够使用此服务帐户凭据对API服务器发送请求 。
在容器内运行的SSH
攻击者可能会使用在容器内运行的SSH服务 。 如果攻击者通过暴力破解或其他方法(例如网络钓鱼)获得了到容器的有效凭据 , 则可以通过SSH远程访问该容器 。
03持久化
■基于ATT&CK框架的Kubernetes攻击威胁矩阵
本文插图

持久化策略由攻击者用来在失去最初访问点的情况下保持对群集的访问的技术 。
后门容器
攻击者在集群的容器中运行恶意代码 。 通过使用诸如DaemonSet或Deployments之类的K8S控制器 , 攻击者可以确保在集群中的一个或者多个节点中运行容器 。
可写的hostPath挂载
hostPath卷将目录或文件从主机装载到容器 。 有权在群集中创建新容器的攻击者可以创建一个具有可写hostPath卷的容器 , 并在基础主机上获得持久性 。 例如 , 可以通过在主机上创建cron作业来实现 。
K8S CronJob
Kubernetes Job可以用于运行为批处理作业执行有限任务的容器 。 Kubernetes Job是一个控制器 , 它创建一个或多个Pod , 并确保指定数量的Pod终端 。 Kubernetes CronJob用于计划作业 。 攻击者可能使用Kubernetes CronJob来调度集群容器执行恶意代码 。
04权限提升
■基于ATT&CK框架的Kubernetes攻击威胁矩阵
本文插图

权限提升策略由攻击者用来在环境中获取比其当前拥有的更高特权的技术组成 。 在容器化环境中 , 权限提升技术包括从容器访问节点 , 在集群中获得更高的特权 , 甚至获得对云资源的访问 。
特权容器
特权容器是具有主机功能的容器 , 它可以消除常规容器的所有限制 。 特权容器可以执行几乎可以直接在主机上执行的所有操作 。 获得对特权容器的访问权或有权创建新的特权容器的攻击者(例如 , 通过使用窃取的pod服务帐户) , 攻击者可以访问主机的资源 。
Cluster-admin 绑定
基于角色的访问控制(RBAC)是Kubernetes中的关键安全功能 。 RBAC可以限制集群中各种身份的允许操作 。 Cluster-admin是Kubernetes中的内置高特权角色 , 有权在群集中创建绑定和群集绑定的攻击者可以创建到群集管理员ClusterRole或其他高特权角色的绑定 。


推荐阅读