容器安全在野攻击调查_第1页
容器安全在野攻击调查_第2页
容器安全在野攻击调查_第3页
容器安全在野攻击调查_第4页
容器安全在野攻击调查_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Wencenl#8i#fQiR%)%iCEAResearch of Rttacks In The Wild On Container Infrastructure目录Contents前言1.1 前言06主要结论06黑产云原生攻击动机07攻击模式分析07攻击模式示意图08容器镜像安全容器镜像供应链安全11蠕虫传播中使用的镜像13攻击趋势分析攻击手段多样性分析17 HYPERLINK l _TOC_250021 攻击者使用的镜像属性17 HYPERLINK l _TOC_250020 每日在野攻击镜像种类数量18攻击强度趋势分析18 HYPERLINK l _TOC_250019 每日单个镜像发动

2、的攻击次数18 HYPERLINK l _TOC_250018 攻防对抗激烈程度19 HYPERLINK l _TOC_250017 攻击持久化分析20云原生攻击矩阵初始化访问22 HYPERLINK l _TOC_250016 投毒镜像22 HYPERLINK l _TOC_250015 对外应用漏洞244.2 执行25 HYPERLINK l _TOC_250014 脚本执行25 HYPERLINK l _TOC_250013 容器执行27持久化28 HYPERLINK l _TOC_250012 定时任务28 HYPERLINK l _TOC_250011 创建账号28权限提升29 HY

3、PERLINK l _TOC_250010 容器逃逸29 HYPERLINK l _TOC_250009 挂载 HOSTPATH 逃逸30防御规避30 HYPERLINK l _TOC_250008 卸载杀软30 HYPERLINK l _TOC_250007 名称伪装31 HYPERLINK l _TOC_250006 使用 Tor 网络匿名32 HYPERLINK l _TOC_250005 进程隐藏33 HYPERLINK l _TOC_250004 通过 /proc/PID 隐藏进程33 HYPERLINK l _TOC_250003 使用 rootkit 隐藏进程33 HYPERLI

4、NK l _TOC_250002 痕迹清理35凭据窃取36命令和控制37 HYPERLINK l _TOC_250001 释放木马37 HYPERLINK l _TOC_250000 木马下载链接37总结5.1 总结39前言进入后云计算时代,云原生正在成为企业数字化转型的潮流和加速器。云原生安全相关的公司雨后春笋般建立起来,各个大云厂商也积极建立自己云原生的安全能力,保护云上客户的资产。与之相对的,黑产组织为了牟利,也在不断寻找新的战术、技术和流程(TTP)。在利益的驱动下,黑产组织通过不断的 寻找和利用云原生安全缺陷,从而形成稳定的盈利模式。知己知彼,百战不殆。了解自己的对手才能更容易的赢得

5、战争。腾讯安全云鼎实验室通过对在野的攻击进行一段时间的统计和分析,对攻击者的战术、技术、流程、活动周期、攻击复杂度等维度进行介绍,希望可以对云原生安全的生态建设有更多帮助。本文的分析数据基于腾讯安全云鼎实验室的哨兵蜜罐捕获的 2021 年 9 月至 2022 年 1 月总共 5 个月的攻击数据,总计125,364 次攻击。通过腾讯安全云鼎实验室的容器沙箱运行分析的 Dockerhub 中 1093980 个镜像数据。1.2主要结论供应链安全,不仅仅是安全左移,针对供应链的攻击也越来越频繁。黑产在容器安全攻击过程中使用了越来越多的高级技术,包括:无文件攻击、二进制打包、rootkit。攻击强度,

6、攻击数量,攻击方法多样性有显著增长,这与容器应用规模增长有关系。容器安全面临的安全挑战越来越大,需要选择靠谱的安全产品进行防护。在云原生架构中,容器生命周期短、业务复杂。传统的木马已不太适合云原生架构,攻击者无法获取批量的容器进行DDoS。云原生攻击中绝大部分是利用容器集群挖矿,已经形成了稳定的黑产收益链条,是黑产的主要攻击动机。黑客在利用容器资源挖矿牟利的过程中,还窃取服务器凭证,安装后门等操作。1.4攻击模式分析供应链攻击黑客通过制作恶意的黑产镜像,通过伪造镜像名称,诱导用户主动下载黑产镜像,然后就进行挖矿。蠕虫传播攻击黑客通过制作蠕虫病毒,通过漏洞自动化传播,入侵成功后,会下载恶意镜像,

7、进行容器逃逸等动作,被入侵容器会继续扫描感染其他主机。挖矿作为典型的云原生攻击场景,可以代表绝大部分攻击的场景。这里以挖矿的场景进行分析: 从攻击模式上分类,可以分为 2 类:9容器镜像安全Container ImageSecurityDockerhub 是全球最大的 docker 镜像市场,云鼎实验室通过大规模的研究 Dockerhub 中的镜像,分析了 109w 的Dockerhub 镜像,来研究镜像供应链的安全情况。我们发现万分之七左右的镜像为恶意镜像。我们发现,通过容器镜像进行供应链攻击越来越普遍,模仿的 docker 环境覆盖了机器学习、编程语言和基础应用环境。随着容器化的爆发,应用

8、环境复杂化的爆发,供应链安全会是容器安全重要的一环。现阶段,通过病毒下载的容器镜像占比较大,下载量也非常巨大,蠕虫的传播速度是非常快的,我们发现最大的黑产团伙, 恶意容器下载量达到了 1.5 亿。2.1容器镜像供应链安全上图是统计近一年内发现的供应链恶意镜像,横坐标为镜像上线时间,纵坐标为下载数量。可以看出来,python、logstash、rails 类的基础软件镜像下载数量最大。通常 4-5 个月就可以达到 10w 左右的下载量,可见通过假冒常用基础软件镜像是攻击云原生供应链的重要环节之一。恶意镜像假冒的基础镜像种类大致分三种:1、编程语言开发环境;2、基础应用环境(wordpress、m

9、ondb 等);3、机器学习相关套件。其中,编程语言类镜像数量比例最大,占比 47%,人工智能相关比例最小,只有 13%。从下图我们可以看出,黑产团伙会冒充常见的编程语言,其中 python、java 比例最大,两者加起来占比 36%。对于伪装成正常应用的镜像,一般下载量成线性增加,此类的恶意镜像较难发现,隐蔽性较好。未来随着容器化的进行, 会出现越来越多的应用容器,供应链安全也显得越来越紧迫。srinath1882/jupyter下面以 Srinath1882/jupyter 这个镜像为例,展示了 45 天的一个下载量情况。如下图所示:Srinath1882/jupyter3000 2500

10、 2000 1500 1000 500 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 452.2蠕虫传播中使用的镜像这类镜像通过蠕虫传播,下载量巨大。主要以多个黑产团伙为主,头部 4 个黑产团伙的下载量占比 90% 以上。云鼎实验室长期监控各个黑产团伙的黑产镜像,发表多篇文章,如DockerHub 再现百万下载量黑产镜像,小心你的容器被挖矿(/developer/article/1869715)。其中最大的黑产团伙镜像下载量超过 1.8 亿,感染范围广泛。此类攻击是主流的攻击方式,后文中会讲解我们通过云鼎哨兵系统捕

11、获的在野攻击的详细分析。下载量超 1.8 亿的黑产团伙这个超过 1.8 亿下载量的黑产团伙主要是进行挖矿,使用自己的矿池,使用暗网通信或者使用 UAM 挖矿,从而逃避检测。下表中统计了这个黑产团伙下载量超过 40w 的镜像。具体技术会在下文 攻击矩阵部分进行详细介绍。相关镜像如下表所示:Docker hub 账户页面如下:我们可以看出全部镜像名称均没有进行伪装,镜像名称为越南语。团伙收入从单个上看,至少赚了 700 个 xmr,价值 100w 人民币,这依然是很小的一部分收入,因为很多矿池的记录无法查询。可以发现,黑产团伙可以通过挖矿获得巨大的利益。黑产团伙使用的一个挖矿钱包:16攻击趋势分析

12、Attack Trend Analysis这部分我们通过腾讯安全云鼎实验室的哨兵蜜罐,采集了 2021 年 9 月至 2022 年 1 月总共 5 个月的攻击数据,总计攻击次数为 125,364 次。总体来说,攻击手段越来越丰富,攻击强度逐渐增强。下文中我们会对攻击数据进行分析,从而反映出现有的容器安全环境。3.1攻击手段多样性分析我们这里会从攻击中使用的镜像入手进行分析,包括:镜像的属性,镜像的实际种类。攻击者使用的镜像属性攻击者使用的镜像属性可以分为 3 类:正常镜像、仿白恶意镜像(比如:假冒白镜像的名称,起名为 ubuntu2 )、恶意镜像。攻击者会利用正常的镜像进行攻击(53%),从而

13、可以有效的绕过安全系统的检测。如果使用恶意镜像,也会把镜像名称 进行伪造,从而迷惑安全检测。正常镜像仿白恶意镜像(合法镜像名)恶意镜像正常镜像52仿白恶意镜像(合法镜像名)41镜像种类比例恶意镜像7每日在野攻击镜像种类数量每日攻击中,攻击者使用的镜像种类数量越多,也就代表了攻击方法的多样性越丰富,也一定程度上表明了现有的容器安全环境越差,暴露了很多安全缺陷。下图中是 2021 年 9 月至 2022 年 1 月每个月平均每天,黑客在攻击中使用到的镜像种类数量,从九月份开始,攻击的种类数量呈一个上升的趋势,从每天 4.6 个镜像增长到 6.8 个镜像。攻击手段和方法都有增加。3.2攻击强度趋势分

14、析每日单个镜像发动的攻击次数通过每日攻击者使用镜像发动的攻击次数。我们可以得到攻击强度的趋势。下图是 2021 年 9 月至 2022 年 1 月每日平均每个镜像攻击次数的统计曲线,我们可以看出来,随着时间的推移,针对容器攻击的次数有显著的增加。尤其是在 11 月和 12 月,攻击总量增加了大约一倍。可以看出来,攻击强度增长较快。攻防对抗激烈程度容器面临的攻击是新技术替代了旧技术? 还是旧的攻击技术依然活跃,同时涌现出了新的攻击方式?攻击中使用了多少种镜像可以很好的表示出黑客攻击的多样性,我们统计了 5 个月,攻击中使用的镜像数量。攻击中使用的镜像数量是呈上升趋势的,每月平均新增攻击镜像 3.

15、6 个,可见攻击方法和手段越来越多。新增攻击镜像的增速也是呈上升趋势的,平均每月增长 3.6 个新的攻击镜像,与之对比,攻击镜像的消亡速度也是呈现上升趋势,平均每个月减少 2.4 个攻击镜像。我们可以看出,攻击方法越来越多,攻击者尝试使用多种不同的攻击手段进行攻击,于此同时,防护方也在积极防御,使得很多攻击镜像失效。云原生上的攻防越来越激烈,对于使用云原生产品的客户来说,选择一个靠谱的安全产品是一个比较明智的选择。攻击持久化分析通常来说,发动攻击的 ip 设备同时也是被黑客攻击控制的,如果存活时间很短,表示攻击后并没有有效的持久化,由于容器的销毁或者安全系统的查杀,黑客会在短时间内失去对目标的

16、控制权。如果存活时间较长,可以简单的认为,黑客的持久化攻击是行之有效的。我们在蜜罐捕获的样本分析的过程中发现,大部分的攻击都会进行容器逃逸和持久化。我们统计了 130 天内,9687 个攻击 ip 持续的时间。可以看出来,49% 的攻击最多持续 4 天,能持续一周以上的占 38%,能持续超过一个月的占 17%。大约 40% 的容器使用单位对于容器的攻击没有任何防御能力,无法及时有效的发现和处置入侵至容器集群中的风险。容器安全在野攻击调查攻击趋势分析Research of Attacks In The Wild On Container InfrastructureAttack Trend An

17、alysis21云原生攻击矩阵MITRE ATT&CKFramework for containers初始化访问执行持久化权限提升防御规避凭据访问命令和控制横向发现对外应用漏洞容器服务挂载 Host容器逃逸Host 上创建镜像容器 API应用层协议: IRC容器资源远程服务恶意镜像冒充正常镜像名host 命名空间滥用名称伪装云实例元数据 API网络扫描投毒镜像创建容器计划任务内核漏洞路径伪装文件凭证 账户泄露脚本 创建账号 Cgroups 滥用卸载杀软密码暴力破解rootkitTor 匿名化我们这里通过攻击矩阵的方式来介绍,我们分析的 dockerhub 中的恶意镜像和捕获的在野云原生攻击中使

18、用的攻击技术。下面表格中红色的部分是恶意镜像常用的手法。下文中,我们会先介绍恶意镜像使用的方法。runc docker socket 利用host 挂载计划任务有效账户部署特权容器4.1初始化访问投毒镜像很多容器开发者会使用公开的镜像源(dockerhub)下载镜像并在业务环境中使用,攻击者会构造恶意镜像部署到dockerhub,通过诱导安装或者链路劫持,展开供应链攻击。例子:镜像伪装为 tensorflow,但携带了 xmr 挖矿程序。恶意镜像隐蔽性高,需要专业的镜像安全查杀工具进行检测。隐蔽性分析类似于上面的例子,很多复杂环境的镜像,在海量的正常命令中,插入几行的挖矿命令,在正常功能的掩盖

19、下, 异常行为很难发现。例子:镜像名:srinath1882/jupyter ,在正常的 20894 行配置中,只有 4 行跟xmr 挖矿有关,其余均为正常指令,隐蔽性非常高。对外应用漏洞Docker Remote API是一个取代远程命令行界面(rcli)的 REST API,默认绑定 2375 端口。Docker Remote API 如配置不当可导致未授权访问,攻击者利用 docker client 或者 http 直接请求就可以访问这个 API,可能导致敏感信息泄露,黑客也可以删除 Docker 上的数据。攻击者可进一步利用 Docker 自身特性,直接访问宿主机上的敏感信息,或对敏感

20、文件进行修改,最终完全控制服务器。对于云原生容器环境,可以说 docker api 未授权访问是黑产攻击中最常使用的漏洞。从哨兵系统捕获的流量数据发现有大量的针对 docker api 未授权访问漏洞攻击的数据包。最常见的端口有:2375、 2376、2377、4244、4243。哨兵系统捕捉的数据包:这里以 TEAMTNT 组织的 2021.09.13 发布的容器攻击样本为例,说明 DOCKER API 利用的常见过程。同一般的漏洞利用过程一样,分为两步:1、漏洞扫描 ;2、漏洞利用。A、扫描获取 docker API 版本调用 masscan 和 zgrab 等扫描器,扫描目标 IP,通过

21、请求旧版本的命令,可以获取到最新的 docker API 版本。相关代码如下:B、利用Remote API 漏洞:直接通过 Remote API 漏洞,远程启动传播病毒的容器镜像 alpineos/dockerapi。相关代码如下:4.2执行脚本执行通过漏洞远程执行命令下载脚本本地执行,是最常见的执行方式。杀软对于脚本类的检测相对较弱,脚本类型的样本通过变形加密的方法也很多,脚本病毒生存能力很强,是黑产常用的手段。下图为通过 docker api 远程下载脚本执行的攻击流量包:为了获得更好的生存能力,脚本执行也会有变形,通过二进制包装的脚本执行。脚本执行的命令不变,在二进制中通过 system

22、 执行,这样可以绕过杀软的检测(一般来说,脚本引擎和二进制查杀引擎是分开的)。容器执行黑产攻击者会通过容器执行恶意指令,进行挖矿和病毒传播。A、首先通过命令启动特权镜像这里以 alpineos/dockerapi 为例:B、如果镜像是个恶意镜像,可以通过镜像启动时执行脚本下面的例子就是通过 pause 脚本用于病毒的传播。C、或者直接attach 到容器上,执行命令4.3持久化定时任务攻击者得到 host 权限后,通常会把自己写入定时任务中去。创建账号通过增加新的账户,添加自己的 RSA 密钥,随时可以通过密钥登录 host。4.4权限提升容器逃逸容器逃逸的方法有很多,这里介绍一种较为常见的方

23、式:特权模式 + SSH。特权模式在 6.0 版本的时候被引入 Docker,其核心作用是允许容器内的 root 拥有外部物理机的 root 权限,而此前在容器内的 root 用户只有外部物理机普通用户的权限。使用特权模式启动容器后(docker run -privileged),Docker 容器被允许可以访问主机上的所有设备、可以获取大量设备文件的访问权限。下面以 TEAMTNT 常见的容器逃逸方式举例:第一步、创建特权容器docker -H $D_TARGET run -d -privileged -net host -v /:/host alpine。容器本身为干净的 alpine 容

24、器。第二步:SSH 容器逃逸在 root 目录下拷贝 ssh 密钥到宿主机,通过访问 从而进行容器逃逸。上述代码解密后如下:挂载 HOSTPATH 逃逸在特权模式下,可以直接挂载宿主机的磁盘,chroot 之后就可以像访问本地文件一样,读取宿主机上的文件。以下面为例: 通过 chroot 改变 root 目录至 /mnt 进行容器逃逸,然后下载 dktest.sh 并运行。4.5防御规避卸载杀软攻击者直接卸载安全软件应该是最直接的防御规避策略了,云上的安全 Agent 通常较为轻量,同时为了用户体验,也提供了卸载的接口,所以相对容易被卸载。下面这个例子中,TEAMTNT 的样本运行后,会关闭安

25、全软件 watchdog,然后卸载aliyun 的安全 agent aegis。名称伪装通过伪装为正常应用的名称,可以大概率逃过安全系统的检测和安全运维人员的审查。下面例子中,黑客创建了一个特权容器,名字却命名为:8s_POD_kube-dns-b4f5c58c7-2wmfx_kube-system_4f31337e2-915a-483d-960f-6b7860398f4b_0 很容易让人理解为 k8s 的正常节点。使用 Tor 网络匿名前文中提到的 1.8 亿下载量的黑产组织,他们使用的恶意镜像中的挖矿木马通过使用 ProxyChains 和 Tor 的网络匿名化工具来逃避网络检测,或者使用

26、 UAM 挖矿。这个例子通过代理 tor 网络,进行隐秘挖矿:使用 UAM 挖矿:进程隐藏通过 /proc/PID 隐藏进程主要是利用 mount -bind 命令把被挂载目录的目录项(/proc/$HIDE_PID)屏蔽指定进程(语句不顺),使得受害者无法通过 ps 等命令发现正在运行的挖矿木马。使用 rootkit 隐藏进程黑客在植入挖矿病毒后,通常会通过 diamorphine.sh 来隐藏进程,之后清理痕迹。Diamorphine 是一个 LKM rootkit ,功能就是进程隐藏、模块隐藏,用户 root 权限获取,带有 Magic-prefix 开头的文件和目录隐藏。这里重点介绍一

27、下进程隐藏部分。Rootkit 初始化部分会 hook getdents、getdents64 和 kill 三个函数,其中被 hook 的 kill 函数用于接受命令,进行进程隐藏、root 等动作。Hacked_kill 定义了 3 个参数,31 用来隐藏进程,64 用来获取 root,63 用来隐藏自身模块。被 hook 的 kill 代码如下:通过 for_each_process 遍历进程列表找到目标进程,把进程标志设置为 PF_INVISIBLE 从而达到隐藏进程的目标。Find_task 代码如下:痕迹清理大致的方法如下:删除暂存临时文件通过删除 /bash_history 和 执行 history -c 命令,清除命令历史记录刷新屏幕清除终端连接4.6凭据窃取攻击者会收集受害者机器上的 github 相关信息,如果是 AWS 的云主机的化,会窃取 AWS 上的很多凭证信息。相关代码如下:AWS 凭据窃取:4.7命令和控制释

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论