- ATT&CK框架实践指南
- 张福等
- 2140字
- 2022-05-05 20:26:29
2.1 针对容器的ATT&CK攻防矩阵
MITRE发布的ATT&CK V9版本新增了ATT&CK容器矩阵,该矩阵涵盖了编排层(例如Kubernetes)和容器层(例如Docker)的攻击行为,还包括了一系列与容器相关的恶意软件。图2-1为ATT&CK容器矩阵的相关页面,读者可登录MITRE ATT&CK网站,单击导航栏“矩阵(Matrices)”查看了解详细信息。该矩阵有助于人们了解与容器相关的风险,包括配置问题(通常是攻击的初始向量)以及在野攻击技术的具体实施。目前,越来越多的组织机构采用容器和容器编排技术(例如Kubernetes),ATT&CK容器矩阵介绍的检测容器威胁的方法有助于为其提供全面的容器安全防护。
图2-1 ATT&CK容器矩阵的相关页面
MITRE首席网络安全工程师Jen Burns表示:“有多个方面的证据表明,攻击者攻击容器更多地是出于传统目的,例如窃取数据和收集敏感数据。对此,ATT&CK团队决定将容器相关攻击技术纳入ATT&CK。”
在ATT&CK容器矩阵中,有一些技术是针对所有技术领域的通用技术,而有些技术则是特别针对容器的攻击技术。下面将介绍ATT&CK容器矩阵中针对容器的技术。
2.1.1 执行命令行或进程
攻击者会通过命令行或进程在容器或Kubernetes集群中运行恶意代码,通常是在本地或远程执行一些攻击者控制的代码。
1. 容器管理命令
攻击者可能通过容器管理命令在容器内执行命令,例如,攻击者利用已暴露的Docker API端口来命令Docker守护进程在部署容器后执行某些指定命令。在Kubernetes中,如果攻击者具有足够的权限,就可以通过API连接服务器、与kubelet交互或运行“kubectl exec”在容器集群中达到远程执行的目的。
2. 容器部署
很多场景下,为了方便执行进程或绕过防御措施,攻击者会选择容器化部署进程应用。有时,攻击者会部署一个新容器,简单地执行其关联进程。有时,攻击者会部署一个没有配置网络规则、用户限制的新容器,以绕过环境中现有的防御措施。攻击者会使用Docker API检索恶意镜像并在宿主机上运行该镜像,或者检索一个良性镜像,并在其运行时下载恶意负载。在Kubernetes中,攻击者可以从看板或通过另一个应用(例如Kubeflow)部署一个或多个容器。
3. 计划任务:容器编排作业
攻击者可能会利用容器编排工具提供的任务编排功能来编排容器、执行恶意代码。此恶意代码可能会提升攻击者的访问权限。攻击者在部署该类型的容器时,会将其配置为随着时间的推移数量保持不变,从而自动保持在集群内的持久访问权限。例如,在Kubernetes中,可以用CronJobs来编排Kubernetes Jobs,在集群中的一个或多个容器内执行恶意代码。
4. 用户执行:恶意镜像
攻击者可能依靠用户下载并运行恶意镜像来执行进程。例如,某用户可能从Docker Hub这样的公共镜像仓库中拉取镜像,再利用该镜像部署一个容器,却没有意识到该镜像是恶意的。这可能导致恶意代码的执行,例如在容器中执行恶意代码,以便进行加密货币挖矿。
2.1.2 植入恶意镜像实现持久化
攻击者在入侵容器或者Kubernetes之后,会试图维持在容器或者Kubernetes中的立足点,在系统重启、凭证变更或者发生影响其访问权限的变更后,依旧能够持续访问系统。通常,攻击者会通过植入恶意容器镜像来建立持久化的访问。
攻击者可能会在内部环境中植入恶意镜像,以建立持久性访问。例如,攻击者可能在本地Docker镜像仓库中植入一个恶意镜像,而不是将容器镜像上传到类似于Docker Hub的公共仓库中。
2.1.3 通过容器逃逸实现权限提升
权限提升指攻击者用来在环境中获得更高权限的技术。在容器化环境中,这可能包括获得容器节点访问权限、提升集群访问权限,甚至获得对云资源的访问权限。攻击者可能会冲破容器化环境,获得访问底层宿主机的权限。例如,攻击者会创建一个挂载宿主文件系统的容器,或者利用特权容器在底层宿主机上运行各种命令。获得宿主机的访问权限后,攻击者就有机会实现后续目标,例如,在宿主机上进行权限维持或连接命令与控制服务器。
2.1.4 绕过或禁用防御机制
在攻击过程中,攻击者通常会采用一系列技术来绕过或禁用防守方的防御机制,并隐藏其活动踪迹。攻击者采用的此类技术包括卸载/禁用安全软件、混淆/加密数据及脚本。
1. 在宿主机上构建镜像
攻击者可以直接在宿主机上构建容器镜像,绕过用来监控通过公共镜像仓库部署或检索镜像行为的防御机制。攻击者可以通过Docker守护进程API直接在可下载恶意脚本的宿主机上构建一个镜像,而不用在运行时拉取恶意镜像或拉取可以下载恶意代码的原始镜像。
2. 破坏防御:禁用或修改工具
攻击者可能会恶意修改受攻击环境中的组件,以阻止或禁用防御机制。这不仅包括破坏预防性防御机制(如防火墙和防病毒等),而且还包括破坏防守方用来检测入侵活动、识别恶意行为的检测功能,也可能包括破坏用户和管理员安装的本地防御以及补充功能。攻击者还可能针对事件聚合和分析机制,或者通过更改其他系统组件来破坏这些进程。
2.1.5 基于容器API获取权限访问
获取访问凭证对于攻击者而言就相当于得到了开启容器这扇门的钥匙。在容器化环境中,攻击者通常希望访问的凭证包括正在运行的应用程序的凭证、身份信息、集群中存储的密钥或云凭证等。
攻击者可能通过访问容器环境中的API来枚举和收集凭证,例如,攻击者会访问Docker API收集环境中包含凭证的日志。如果攻击者具有足够的权限(例如通过使用Pod服务账户),则可以使用Kubernetes API从服务器检索凭证。
2.1.6 容器资源发现
攻击者入侵了容器之后,会利用一系列的技术和手段来探索他们可以访问的环境,这有助于攻击者进行横向移动并获得更多资源。攻击者可能会寻找容器环境中的可用资源,例如部署在集群上的容器或组件。这些资源可以在环境看板中查看,也可以通过容器和容器编排工具的API查询。