记5个基于ATT&CK的云原生攻击示例
在过去的几年里,关于云原生环境的攻击报告越来越多。结合在众多大型客户云原生安全项目上的支持经验和各类报告研究分析,我们对攻击者的战术、TTPs、活动周期、攻击复杂程度都有了一定了解。为此,总结出本文内容,希望对云原生安全的生态建设有更多帮助。
目前,云原生场景下,攻击者的主要动机是劫持资源进行挖矿和DoS攻击。
以挖矿场景为例,在这类攻击中,攻击者主要使用二进制文件xmrig,这些镜像明确地声明了其设计目的就是为了挖矿。另一方面,如果某人拉取并运行的镜像中隐藏了加密挖矿进程时,该组件很可能会成为有害的应用程序(PUA)。由于这种攻击行为会导致性能下降,MITRE ATT&CK框架将其定义为资源劫持。
以DoS攻击场景为例,Slowloris攻击是一种使用专用软件(如slowhttptest)、针对HTTP服务器发起的拒绝服务(DoS)攻击。在攻击过程中,攻击机器发送不完整的HTTP请求,导致受害主机在等待接收剩余请求信息的同时打开多个链接。结果,主机服务器达到最大并发打开链接极限,无法打开新链接为合法的HTTP请求提供服务。
图1:拒绝服务攻击方案
自2020年初以来,基于容器的攻击次数急剧增加,攻击者开始采用愈发先进的绕过技术,可以绕过常规的安全策略,如静态恶意软件扫描。此外,攻击者使用越来越多技术(例如,用于隐藏命令和控制基础设施Web服务的防御绕过技术),来隐藏他们的攻击行为,并实现持久化。
在这样的攻击背景下,青藤基于多年云原生安全、容器安全行业研究和实践经验,发布《容器安全成熟度验证标准》,该报告依据3个层级、12大场景,总结了100+个容器安全成熟度Checklist,映射到具体的容器安全产品功能或能力当中,适用于具体项目、平台和组织的安全检查,帮助组织建立安全要求和安全标准,加强容器安全认知,确保容器安全性,感兴趣的读者可扫码领取电子版方案。
该报告将容器安全成熟度分为3个层级,相关要求逐渐提升:Level1(基础级安全)适用于所有容器项目;Level2(标准级安全)适用于那些有额外安全保护需求的容器项目,例如需要处理敏感数据或者业务逻辑;Level3(高级安全)适用于那些执行高价值交易、包含个人敏感数据的最关键容器项目,或任何需要最高信任级别的容器。覆盖的12大场景有:组织层面、基础设施、容器层面、编排管理、镜像分发、Secrets管理、网络安全、存储安全、日志和监控、安全集成、灾难恢复、测试。
为了更好地分析云原生场景下黑客攻击的演变路径,我们首先对云原生攻击进行分类,然后基于ATT&CK框架进行分析。
云原生攻击归纳分类
一个有经验的攻击者,其行为可能包含多个攻击动作,我们从两个维度对攻击行为进行分类:第一个是攻击的复杂程度,第二个是攻击的影响范围。
基于复杂程度划分
有的攻击者使用具有明确镜像名称的专用恶意镜像,其镜像名称都很简单,例如XMRIG或UDPFLOOD。在大多数情况下,这种攻击手法并不难,攻击者可以借此从Docker Hub拉取一个由第三方设计的镜像,并使用相关配置运行该镜像。
有的攻击者使用合法的镜像名称,但这类镜像名称往往具有欺骗性,例如Ubuntu1。此外,镜像的作者可能使用了各种技术来绕过检测,例如关闭安全工具或混淆文件。在大多数情况下,这种攻击手法复杂程度为中等。攻击者设计镜像并将其放置在Docker Hub中,然后命名一个具有误导性的名称,比如Nginx。
此外,攻击者还会利用受信的基础镜像。这种攻击手法复杂程度最高。攻击者使用最新版本的官方通用镜像(例如'alpine:latest'),毕竟使用官方的、看起来无害的镜像会增加镜像通过大多数安全工具扫描的可能性,因为用户普遍会认为这类镜像应该不会有任何漏洞或恶意组件。有些组织机构可能只允许白名单列表中的镜像。使用官方镜像提高了攻击按计划执行的可能性,因为大多数情况下,这些镜像是预先批准可以使用的。
表1:对云原生攻击的复杂度分析
基于影响范围划分
除了基于复杂度划分攻击类型之外,我们还整理了攻击者每一次攻击的目标影响范围。基于此分析,我们检测到两种主要类型:网络拒绝服务攻击和资源劫持(主要是针对挖矿)。
表2:对云原生攻击的影响范围分析
基于ATT&CK的云原生分析
基于上述对云原生攻击归纳总结,我们对云原生的攻击复杂度和影响范围都有一个基础的了解。现在,我们将相关攻击放入ATT&CK框架中进行分析,可以更加深入地了解云原生攻击的TTPs、攻击周期等特性。下图,我们基于ATT&CK框架对过去12个月的攻击进行了分析。由于攻击者实现“初始访问”这一战术的方法通常是利用互联网上公开的应用程序漏洞,因此,我们没有详细介绍这个战术。
表3:基于ATT&CK框架的云原生攻击图
最常用战术:防御绕过、命令和控制、发现
如下图所示,在我们发现的所有攻击中,攻击者最常用的战术分别是防御绕过、命令与控制、发现,这反映了攻击的持久性和复杂性。
图2:最常用的战术是防御绕过、命令与控制、发现
通常,攻击者最常见的目标是劫持资源,更具体地说是挖矿。为了更好地利用主机、绕过检测,攻击者会考虑主机的特性。因此,“发现”是一种最常用的战术也就不足为奇了。此外,一些攻击非常隐秘,每个镜像都使用几种“防御绕过”技术,如禁用安全工具、利用反调试技术等。
在一些攻击中,攻击者使用了无害镜像。但是一旦运行,容器就会被用于从外部远程下载恶意组件,包括与攻击者使用的C2服务器进行远程通信。因此,第三个最常用的类别是“命令和控制”战术。
图3:攻击者使用镜像攻击的目标分类
从上图可以看出,95%的镜像用于劫持资源(挖矿),5%的镜像用于发起网络拒绝服务攻击。这意味着,尽管有各种镜像会用于攻击云原生环境,但大多数攻击旨在执行挖矿。我们推测,拒绝服务攻击(DoS)不太常见,因为这种攻击手法通常是发生在在野攻击场景下,攻击者可以轻松地找到DoS服务,或者找到强有力的工具发起重大攻击。
基于ATT&CK的云原生攻击示例
对于云原生的攻击,我们使用MITRE ATT&CK框架作为基础进行分析。攻击者使用的大多数TTP都是ATT&CK框架中12个战术分类中的一个子分类。通过使用这些子类别,我们介绍了每个子类别的说明和一些示例。此外,MITRE ATT&CK还提供了一种检测威胁和降低风险的方法。
下文,我们分析一下攻击者针对云原生使用的具体战术和技术。
⬥ 执行——脚本执行
用于攻击的镜像alpine:latest,在运行时会下载一些脚本。使用这些技术,攻击者可以绕过一些不进行镜像动态分析的安全工具。在这个例子中,攻击者使用的脚本是其他人设计的,可能是在暗网上交易的。该脚本可以下载payload并向web服务发送ping命令,可以让攻击者查看目标主机的IP地址。
图4:通过恶意的pop shell脚本运行合法的'alpine:latest'镜像
⬥ 持久化——局部作业调度
在一些攻击中,攻击者使用局部作业调度运行命令或脚本。这些命令定期在后台运行,无需用户交互。这增加了攻击的持久化。
图5:使用cron作业来增加攻击的持久化
⬥ 防御绕过——禁用安全工具
用于攻击的镜像alpine:latest在运行时会下载一些脚本,其中一些函数可用于检测和禁用安全工具,如SELinux和AppArmor。
图6:攻击者正在禁用安全工具
⬥ 发现——网络服务扫描
攻击者可能试图获取远程主机上运行的服务列表,包括那些容易受到远程软件利用的服务。获取此信息的方法包括使用攻击者带到受害系统上的工具来扫描端口和漏洞。我们在运行时阶段曾发现过攻击者在使用masscan和zgrab。
图7:用网络扫描工具扫描外部和内部网络
⬥ 命令和控制——Web服务
攻击者使用了多种秘密通信技术与失陷主机通信,如下表所示:
表4:攻击者使用秘密通信技术与失陷主机通信
结论
面对复杂的云原生环境,了解云原生攻击类型,分析攻击路径,有助于找到更有效的入侵检测方法,提高安全防护能力。在云原生领域,青藤是云原生安全服务的领军者。青藤,拥有国内首个云原生安全实验室,从2018年开始研发容器安全技术,经过3年的精心打磨,230万行自研代码,已经形成了原生的、安全的、先进的、完整的产品解决方案。青藤蜂巢•云原生安全平台部署完全云原生化,提供覆盖构建、分发、运行全生命周期安全能力,助力企业完成DevSecOps安全实践落地。
目前,青藤蜂巢已经在超过100+头部客户中使用,产品卓越的技术和优秀的表现,得到了众多行业权威专家和机构的高度认可。
青藤是国内首个通过信通院“可信云容器安全解决方案”最高级别认证的安全企业,也是唯一入选“2021年度云原生技术创新产品”的安全企业,已经获得14项云原生安全相关的专利和软件著作权。
青藤,是云原生计算基金会CNCF、Linux基金会、云原生产业联盟、长三角云原生产业联盟等机构的重要成员单位,携手各方力量,积极推动云原生安全的快速发展。此外,青藤还积极参与由工信部、公安部等监管单位组织的云原生安全方向的工作,深度参与编写业界首份《云原生架构安全白皮书(2021年)》,参与编写制定公共安全行业标准《信息安全技术 容器安全监测产品安全技术要求》、《云原生成熟度模型(CNMM)标准体系》等内容。