云原生容器安全|容器运行时高级威胁的分析与检测实战

释放双眼,带上耳机,听听看~!
一、前言

 

在攻防对抗的世界中,攻击技术与防御技术之间总是相辅相成、此消彼长。云原生的发展让攻击者对容器侧的攻击更加集中与强烈,因此云原生安全也越来越受到用户的关注。对检测云原生环境的已知威胁和0day漏洞利用或新型的云原生攻击造成的未知威胁,安全狗容器云原生安全产品·云甲践行了两种不同的、经证实行之有效的检测方法。

云甲·容器全生命周期安全解决方案
云甲是安全狗打造的守护容器云原生安全产品。

 

云甲可提供容器全生命周期安全防护。通过透明化分析镜像容器资产信息、在镜像仓库和运行容器中,引入病毒检测、异常检测和合规扫描,截断恶意代码代入到运行环境,检测防护容器自身、部署环境及运行时安全。此外,通过监控POD、容器流量访问,控制恶意流量入侵、配置网络策略,云甲能全方位保障容器云安全。

 

 

本文将结合实际案例对这两种检测方法做介绍,希望能为读者对抗容器侧攻击提供新思路。

 

二、容器运行时的安全问题

 

对容器运行时的安全问题进行概览的话,可以发现云原生容器环境中,传统威胁和新型现代攻击是并存的。

 

原因主要有两点:

1)容器实际是“权限和资源受限的进程”,它也“继承”了许多主机环境下的安全威胁。

2)容器环境的渗透和主机环境的渗透有着交集。

 

在以下的攻击场景示意图中,攻击者可以在获取容器命令执行的权限之后进行容器逃逸(并在宿主机进行后门安装、系统摧毁等恶意行为),或者容器集群的内网渗透,如下图所示。

图1在容器运行环境下传统威胁和新型现代攻击并存

 

可以看到容器运行环境面临着系列传统攻击手段,比如OWASP Top10、Webshell、RCE漏洞;我同时也面临着新型现代攻击,比如内存Webshell、容器逃逸等等。

 

三、容器运行时威胁检测模型

 

因为安全是环环相扣的,所以应用安全可影响到容器安全,容器逃逸可影响到虚拟主机及容器集群的安全,虚拟主机逃逸会影响到虚拟化基础设施的安全。

 

在此基础上,我们需要“层层设防,层层监控”。

 

攻击者可通过容器中的应用获取容器的Shell权限,进而通过容器的Shell权限进行容器逃逸。对此,我们可以针对容器中的应用做WEB进程监控和内存马查杀,针对容器做基于规则的已知威胁检测(对异常文件、异常命令、高危系统调用做威胁检测),针对容器做基于行为模型的未知威胁检测;同时针对容器做恶意文件查杀,如图2所示。

 图2容器云运行时威胁检测模型

 

四、云甲的两大类威胁检测方法

 

01基于规则的已知威胁检测
 

基于规则的异常检测方法一直是最经典的方案,容器环境下也依然适用。与传统威胁检测不同的是,容器环境下出现了许多新的威胁场景,如容器逃逸、容器编排环境的漏洞利用,相关的规则和检测引擎也必须发生新的变化。

 

02基于行为的未知威胁检测
 

许多未知威胁无法在漏洞爆发期通过规则匹配直接检测出来,因而可通过借助“行为分析”发现未知威胁。一般来说,虽然不同应用的业务场景各有各的不同,但在生产运营时间内,其业务依赖的程序和模块的进程、文件和网络等方面的行为是能确定、可预测的(和传统主机环境相比,承载微服务应用的容器更具“职责单一化”的特点更加突出,因而该技术较适用于容器环境。

 

基于上述分析,云甲可收集内部业务正常运行期间的进程集合及进程行为、属性集合,通过采用自学习、无监督的方式,可自动构建出合理的镜像、容器进程行为基线。在自学习结束后,可以利用这些行为基线对容器内的未知威胁进行检测。

 

五、云甲运行时高级威胁检测案例

 

下面我们将结合攻击方和防守方的视角逐一分析云甲对WEB RCE、容器逃逸、植入恶意代码、植入内存马的检测案例。

 

01WEB RCE
 

当攻击者要从云原生环境入侵到宿主机环境时需要寻找一个“入口”,而部署在容器内的WEB应用成为攻击者的重点关注对象。如果容器部署了一个包含漏洞的WEB应用,那么攻击者就可能通过它,破坏云原生环境的防御。

 

攻击方视角

从攻击方视角来看,他们可利用“Log4J2 RCE”应用漏洞对WEB应用进行攻击,以此获取到容器的远程命令执行权限。下图代表攻击者在Getshell后进而执行whoami等命令。

 

 图3利用容器内的WEB应用反弹shell并执行命令

 

防守方视角

从防守方视角看,云甲有两种检测方法可以检测出基于WEB应用漏洞的Getshell。

 

 

进程行为监控

从防守方视角来看,对于容器应用漏洞利用的检测,由于应用安全与容器安全有着关联性,对外暴露的WEB应用安全对攻击者而言是高价值资产。而容器的本质是资源受到隔离和限制的进程,因此在攻击者通过应用漏洞获取容器Shell权限的阶段,可基于“容器WEB进程监控”进行威胁检测。从容器进程信息中获取数据源,并根据预设规则模板对实时数据进行分析与检测,则可实时地发现容器内Web中间件的异常进程行为。

 

在容器化、微服务化的架构下,有许多中间件,比如Redis、Hadoop等等也被容器化了。因此,云甲在出厂的时候,就为用户预置了高频中间件的进程监控规则。同时,客户也可以自行设置规则。其检测效果如下图所示。

 

图4容器WEB进程监控检测效果

 

 

行为模型

对于容器应用漏洞的检测,也可采用“基于行为模型”的方式。理论上来说,基于行为模型的检测方法,不仅适用于未知威胁的检测,还适用已知威胁的检测。对于容器内包含有WEB应用的漏洞,同样可以通过自学习生成容器模型,对容器内的进程、文件操作和网络进行画像、记录。

 

下面我们以某带有Log4J组件漏洞的Java Web应用镜像进行行为模型的自学习为例进行分析。该模型如下图所示。通过观察学习到的进程模型可以发现,在正常的业务下,该容器只有名为“java”的关键进程。

 

 

图5容器WEB进程监控检测效果

 

经过借由所获取的容器shell进行命令执行、内网渗透。云甲的“行为模型”功能可产生异常进程、异常文件以及异常网络等方面的告警。从下图异常进程的告警中我们可以看到,触发了log4j2 RCE漏洞后,在获取的shell执行“date”等命令后,“date”进程被作为异常进程记录下来。

 

 

图6触发漏洞容器WEB进程监控检测结果

 

 

02容器逃逸

 

在容器安全问题中,容器逃逸是重视的问题之一。原则上,容器环境与主机环境是隔离的。然而,因为容器的便捷性和容器与宿主机共用内核息息相关,容器技术自然存在内核隔离性不足的问题。因此,攻击者就有机会突破容器以访问底层主机,并且攻击者有机会从主机级别或主机本身访问其他容器化资源。

 

攻击方视角

从攻击方视角看,运行在容器内的SSH服务可能被利用。如果攻击者通过暴力破解或者其他方法获取到了容器的有效凭证,他们就可以通过SSH服务获得对容器的远程访问。以下是攻击者利用挂载/root/.ssh容器替换SSH有效凭证逃逸的攻击场景。下图为攻击者执行相关命令,在容器内生成SSH密钥对。

 

 图7攻击者替换宿主机ssh密钥对

 

通过在容器内获取的宿主机密钥,在攻击机上可以成功通过SSH登陆到宿主机。

 

防守方视角

从防守方视角看,对于容器逃逸,云甲可采用“基于规则”以及“基于行为模型”的方式进行检测。

 

 

基于规则

云甲可实现对攻击者“利用用户的‘不安全挂载’进行容器逃逸”的攻击利用方式作出检测,如下图所示。

 图8检出“容器挂载/root并修改SSH公钥认证”的容器逃逸场景

 

云甲可针对攻击者的渗透手法进行容器内的异常命令、文件异常操作、高危系统调用和Capabalities权限变化等方面的异常检测。

 

注:基于“行为模型”也可对逃逸做检测,其检测效果与“WEB RCE”案例较为相似,在此处不作赘述。

 

03植入恶意代码

随着容器应用发展加速,容器相关的安全事件也频繁爆出。黑产团伙通过容器服务器的漏洞传播的蠕虫病毒、通过下拉挖矿镜像进行获利等等,已然是现阶段容器相关黑产的主流手段。除了下载挖矿镜像以外,现有的模式可以轻松将挖矿镜像替换成其他恶意软件,以此造成更大的破坏。

 

攻击方视角

此处介绍另一个攻击场景,攻击者首先通过Webshell获取容器权限,并在容器中释放了挖矿病毒企图牟利,如下图所示。

 图9容器环境挖矿案例

 

防守方视角

面对这一攻击场景,云甲课支持基于“静态扫描”和“动态实时防护”对Webshell以及挖矿木马等恶意代码进行查杀,并对它们进行信任、隔离、下载、删除等操作,下面2张图分别展示了Webshell和挖矿木马的查杀效果。

 

图10容器内Webshell查杀

 

 图11容器内病毒查杀

 

04植入内存马

内存马是无文件攻击的一种常用手段,随着攻防演练热度越来越高,攻防双方的博弈、流量分析、EDR等专业安全设备也被蓝方广泛使用。传统的文件上传的webshell或以文件形式驻留的后门越来越容易被检测到,内存马的使用越来越多。

 

传统的Webshell都是基于文件类型的,黑客可以利用上传工具或网站漏洞植入木马,区别在于Webshell内存马是无文件马,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度

 

攻击方视角

从攻击方视角看,攻击者可利用内存马对目标实施攻击,如下图所示。

图12利用植入的内存webshell执行命令

 

防守方视角

从防守方视角看,对于这种攻击方式,云甲支持对容器JVM中的字节流进行攻击特征分析,并可高效地对Filter、Servlet、Listener、Agent等多类Java内存木马进行检测。下图代表云甲检出的内存马相关告警信息。

 

图13内存马检测结果

 

六、总结

 

容器运行时安全是容器全生命周期安全的重要一部分,做好该阶段的入侵检测可以提高容器环境的整体安全系数。

 

实践表明,云甲的“运行时威胁检测模型”,以及基于模型构建的“静态检测与动态检测相结合”以及“规则与行为模型相结合”的威胁检测能力体系在面对容器环境的WEB RCE、容器逃逸、恶意代码植入、内存马植入等新型高级威胁时可取得良好的效果。但攻防博弈间使用的技术手段也是不断进行升级的,我们将持续不断跟进研究新技术,探索新方法,持续不断地提高产品的检测防御能力,垒就巩固、保护云原生环境的城墙,为云原生环境安全保驾护航。

 

安全狗年中钜惠活动来袭
一次性解决云安全管理、云等保、
安全托管等众多问题
还能拿matebook、iPhone13 pro
macbook pro等超豪华大礼!
点此一起冲大礼

 

 

 

 

给TA买糖
共{{data.count}}人
人已赞赏
行业热点

安全快报 | 澳大利亚新南威尔士州的交通受到网络攻击

2022-6-14 10:27:52

行业热点

守卫云安全|安全狗多重能力亮相安全运营发展论坛

2022-6-16 23:52:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索