云上在野容器攻防战:“杀”不掉的挖矿木马

news2024/11/25 0:44:09

编者按

数字化浪潮蓬勃兴起,企业面临的安全挑战亦日益严峻。

腾讯安全近期将复盘2022年典型的攻击事件,帮助企业深入了解攻击手法和应对措施,完善自身安全防御体系。

本篇是第二期,讲述了国内某高端制造厂商遭遇云上在野容器攻击,和腾讯安全并肩作战,击退挖矿黑产组织的故事。

 

9月14日,午后。

阳光透过棕黄色的椴树叶,一缕缕撒在湖面上,泛出了碎金子的光。湖面倒映着一座木质结构的小房子,清清淡淡,融洽地安放在童话般的湖光山色中。

木屋里,X团伙的暗黑计划正在展开。

X团伙是近两年极其高调的挖矿家族,坐标D国,他们控制着规模庞大的僵尸网络,有着先进且快速更新的攻击工具库,是目前针对Linux服务器进行挖矿的主要攻击组织之一。此时,X团伙的十几位成员正围坐在一张长桌前,眉飞色舞地探讨着新研发的挖矿木马变种,他们想在圣诞节前快速“收割”一批门罗币,舒服地度过即将到来的漫长且寒冷的冬季。

下午6点,X团伙完成了攻击链路的推演,整个过程近乎完美。随即,一位成员在电脑上按下了enter键,扫描器便像洪水般涌入互联网,迅速蔓延至世界各个角落。

一场针对云数据中心的猎杀行动,拉开了序幕。

嫌疑人X的现身

X团伙2019年就出现在大众视野,这个组织的专业水平颇高,攻击策略和工具千变万化,攻击威力很大。特别是近几年云原生技术蓬勃兴起,容器技术和集群编排工具被广泛应用,网络安全边界进一步模糊,X团伙的攻击活动就更加猖狂了。

此次的挖矿木马变种便是通过扫描Docker Remote API未授权访问漏洞进行传播,并且入侵动作更加隐蔽。Docker Remote API是一个用于远程调用Docker的API,可以让容器的调用更加灵活、简单。若管理员对其配置不当则会导致未授权访问漏洞,攻击者不仅可以植入病毒,甚至可进一步利用Docker自身特性,借助容器逃逸,最终控制整个集群。

第二天清晨7点,X团伙的成员TOM醒来,他吸了吸鼻子,空气中凉意浓浓,冬天即将到来,行动需要加快。他迅速起身,开始为自己做一杯手磨咖啡。这时,他瞥了眼电脑屏幕,不出所料,他们放出的扫描器扫出了大量的漏洞。

7点30分,TOM端着磨好的咖啡坐到电脑前,开始浏览这些待宰的羔羊。一个距离他8000多公里的IP吸引了他的注意,他快速敲了几行代码,获取了这个IP所在公司的信息——一家知名的中国高端制造厂商S公司。

TOM嘴角微微上扬,他发现S公司的一个Docker Remote API并没有配置鉴权,也就是说谁都可以调用,并且这个集群是开放公网的。就像羊圈在不起眼之处开了个口子,他可以随意出入。

通过这个Remote API漏洞,TOM迅速远程启动了传播病毒的容器镜像alpineos/docker api,这个镜像非常小,很难被发觉。接着,这个恶意镜像快速下载了一个挖矿脚本,开始与矿池通讯,并利用容器的算力进行挖矿。

从入侵到挖矿,整个过程非常丝滑,TOM看了眼手表,不到三分钟。

S公司有上万台云主机,对挖矿组织来说是不可多得的肥羊。如果能逃逸到主机拿下最高权限,就可以利用更大的算力进行挖矿。不仅如此,他还可以以主机为跳板,在内网进行横向扩散,猎取S公司的核心机密数据。

想到这里,TOM拿起杯子喝了一大口咖啡,打起精神开始下一步的进攻。

杀不掉的挖矿木马

“我×,我们被挖矿了!”

“什么?我看看!"

S公司的安全运维工程师Eric看着电脑屏幕上的CPU监测窗口,陡增的折线赫然在眼前。其他几个工程师闻声而来,难以相信眼前这一幕,因为他们之前并没有发现恶意外连和疑似挖矿的进程。

实际上,入侵者TOM在植入挖矿病毒后,通过新工具隐藏了挖矿进程,并且将痕迹清理干净了。S公司发现的时候,TOM已经通过特权模式+SSH的逃逸方法,逃逸到宿主机上,并且将挖矿病毒扩散到了容器节点上。

“赶紧断网,杀毒!”Eric迅速把主机断网,然后用杀毒软件将挖矿木马清除。但是,Eric不敢确定其他节点上是否也被植入了挖矿木马,他的神经紧绷着。

S公司是国内知名的高端制造企业,也是行业内最早进行数字化转型的企业之一,在前几年就开始探索云原生技术和业务容器化。虽然国内的容器起步较晚,但是在国际上,容器概念已经登上了尖端计算技术的最前沿。

通常情况下,运行一台云主机运行最少要1G内存,但是对于容器而言,只需要几M-几十M就能跑起来。所以,容器凭借其灵活易用、适配性强和资源利用率高等优势,受到越来越多公司的青睐。而S公司,也从去年开始逐步将生产网容器化。

不过,对于很多企业来说,容器是一把双刃剑。一台主机可以拉起成千上万个容器,也意味着边界和暴露面被无限放大。因此,容器在近几年也成为了攻击者的天堂。

第三天,TOM发现植入S公司的挖矿进程少了许多。挖矿木马被发现其实是TOM意料之中的事,毕竟S公司是头部的高端制造企业,安全建设应该是不错的。不过,S公司的杀毒行为治标不治本,只要Docker Remote API未授权访问漏洞没补上,他们就能够继续拉起挖矿脚本进行挖矿。

TOM伸了个懒腰,开始了更加猛烈的进攻。

很快,S公司的安全运维团队就发现CPU被快速占用。“他又来了!”Eric揉了揉眼睛,紧忙开启了主机安全的防御,并对相应的节点进行查杀,CPU占用逐渐下去了。

这时,Eric脑海里浮现了此前特斯拉的Kubernetes集群被入侵挖矿的事件,他们的共同点就是集群的Dashboard 处于未授权即可访问状态,且暴露在互联网上。

“我们可能跟特斯拉犯了一样的错误。”

一通电话,迅速驰援

9月16日,晚上7点,深南大道华灯初上。

正在食堂吃晚饭的腾讯容器安全专家ruchang接到了同事的紧急来电。

“S公司的节点失陷了,被挖矿了。他们公司连续查杀了好几次,挖矿木马怎么都杀不掉,需要我们的帮助!”

ruchang挂了电话后,迅速吃完盘中的饭菜。“难道是他们?”ruchang边进电梯边思索着。

回到工位上,ruchang迅速通过S公司给的运维权限进行问题排查。

首先,他用腾讯容器安全TCSS产品对失陷节点上运行的容器镜像进行了漏洞扫描。“木马源源不断,肯定是出了漏洞。”就像不断被偷的羊圈,杀掉偷羊的狼是不够的,得找出羊圈隐秘之处的窟窿。

几分钟后,腾讯容器安全TCSS产品扫描完毕,电脑屏幕显示某个节点上存在的Docker Remote API未授权访问漏洞。

“问题不大,是有一个Docker Remote API未授权访问漏洞,你们按照官方的认证措施更改一下配置就好了,改成需要鉴权且加密。”ruchang在企业微信群里跟S公司的运维人员说到。“还好发现得早,攻击者没有入侵到集群。”

找出漏洞之后,ruchang继续排查,他想找出背后的真凶。他迅速浏览着安全日志和告警信息,尝试回溯整个攻击链路,包括通过哪个服务端口拉进来的镜像,攻击者入侵后进行了哪些横移,以及这个挖矿木马背后的组织是哪个。

“果然是他们!”原来,在9月14日X团伙的新挖矿样本刚发出,腾讯云鼎实验室的哨兵系统就在第一时间捕获,并进行了详细的分析。这个攻击案件的各种细节和哨兵系统捕获的样本一一吻合。

S公司其实犯了80%的公司都会犯的问题——配置错误。由于容器技术在国内起步较晚,很多公司也都是摸着石头过河。S公司在测试容器业务时,也没有意识到要对相关的配置安全进行扫描以及合规整改。并且在没有部署容器安全的情况下,就开启了试运行。

对此,腾讯安全也为云上客户推出了容器安全TCSS产品,保障容器从镜像生成、存储到运行时的全生命周期安全。在构建和部署阶段,腾讯云容器安全可提供镜像、容器、集群的配置扫描和漏洞扫描能力,避免出现类似S公司因配置错误导致的漏洞事件。在容器运行时,腾讯云容器安全也能够自适应识别黑客攻击,实时监控和防护容器运行时安全。

晚上8点10分,S公司在企业微信群里反馈漏洞已修复,并且采购了全量的腾讯云容器安全产品。

TOM也很快发现漏洞被封堵住了,他冷笑了一下,"Kind of interesting(有点意思)." 随即TOM关掉了S公司的挖矿页面,转向了其他的攻击目标。

X团队的暗黑计划不会停止,我们与黑产的暗战也不会结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/101139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

将scss文件转换成css文件

大家平时做项目肯定都习惯了使用scss或者less去写样式,如果是使用工程化的项目我们可以借助插件很方便的将scss或者less转换成css。那如果我们没有使用工程化,比如简单的demo或者官网等项目又希望可以通过scss去编写文件应该怎么办呢,我们可以…

200 万年薪能拿多久?因 ChatGPT 爆红的「提示工程师」竟面临光速失业

【简介】ChatGPT大火后,“提示工程师”开始流行。然而,他们很可能被光速下岗? 最近爆发的ChatGPT真的让人上瘾。 但是,你只是在玩游戏,有些人已经在上面赚取了数百万的年薪! 这位名叫莱利古德塞德的小弟最…

Codeforces Round #839 (Div. 3)题解

A. AB? 直接读入字符串然后把下标0和2的数字提取出来就行 // Problem: A. AB? // Contest: Codeforces - Codeforces Round #839 (Div. 3) // URL: https://codeforces.com/contest/1772/problem/A // Memory Limit: 512 MB // Time Limit: 2000 ms // // Powered by CP E…

还在堆人力处理工单?找准耗时源头才是关键!

对于提供企业级服务的公司来说,服务质量与效率日益受到关注。服务质量的本质是整体团队的效能,重中之重则是站在客户视角的工单解决效率。 当下很多这个领域的企业都会设立客户成功中心,其中就有专门对接客户工单处理的职责;而随…

Lifelong Embedding Learning and Transfer for Growing Knowledge Graphs

摘要 现有的知识图谱(KG)嵌入模型主要关注静态KG,但真实世界的KG并不是静态的,而是随着KG应用程序的发展而发展和增长。因此,新的事实和以前看不到的实体和关系不断出现,需要一个嵌入模型,可以通过增长快速学习和转移新知识。基于此,本文研究了KG嵌入的一个扩展领域,即…

96.第十九章 MySQL数据库 -- 多表查询(六)

3.7.2 多表查询 多表查询,即查询结果来自于多张表 子查询:在SQL语句嵌套着查询语句,性能较差,基于某语句的查询结果再次进行的查询 联合查询:UNION,表和表的纵向合并 交叉连接:笛卡尔乘积 内连接: 等值连接:让表之间的字段以“等值”建立连接关系 不等值连接 自然连接…

python数据清洗的三个常用的处理方式!

关于python数据处理过程中三个主要的数据清洗说明,分别是缺失值/空格/重复值的数据清洗。 这里还是使用pandas来获取excel或者csv的数据源来进行数据处理。若是没有pandas的非标准库需要使用pip的方式安装一下。 pip install pandas准备一下需要处理的脏数据&…

【愚公系列】2022年12月 .NET CORE工具案例-PLG轻量级日志可视化服务

文章目录前言1.Serilog简介2.Grafana简介3.Loki是什么一、Serilog对接Grafana轻量级日志可视化服务1.Grafana部署2.Loki部署3.promtail部署4.测试.NET Core写入日志效果5.测试查询日志总结前言 日志功能是几乎所有程序或系统都必备的一个功能。该文章通过使用LokiGrafana来实现…

算法题:N个元素之和

做题思路: 1)首先对数组进行排序 2)创建一个for循环: 第一个元素指向for循环 3)然后创建一个while循环;第二个元素指向for循环的下一个元素,第三个元素指向最后一个元素 4)如果三个元…

Java基础之《netty(15)—HTTP服务》

一、使用netty开发一个简单的http服务 1、netty服务器在6668端口监听,浏览器发出请求http://localhost:6668/ 在写netty的http server的例子过程中,发现浏览器使用端口号6668一直无法连接,报错ERR_UNSAFE_PORT。改成7000就可以了。 2、服务器…

2018年高职组——信息评估与管理赛题(解析)

这篇文章为2018年赛题第一阶段DCRS解析 都是自己的想法(仅供参考)不对请指正评论 先来张拓扑养养眼: 2018年拓扑 接下来是IP地址规划表: IP地址的配置就不用我再多赘述了吧,接下来是DCRS的题目 23、DCRS 为接入交换机,为终端产生防止 MAC 地址防洪攻击,请配置端口安全,…

【嵌入式Linux】开发环境搭建

一、概述 在进行某一个芯片平台开发前,一般都需要在电脑上安装一系列软件,然后在这些软件上阅读、编写、编译和调试在该平台上运行的代码,最后将编写好的代码通过某种方式烧录到该芯片的对应地址运行。在电脑上安装的这一系列软件的过程&…

知行之桥2022版本升级之页面变化以及监控邮件答疑

近期有些客户将知行EDI系统升级到了我们最新知行之桥2022版本,升级过程或者升级后对于新版本的使用会有些疑问,根据近期协助大家进行知行EDI系统升级遇到的问题,我们的运维团队整理了一些Q&A,将分为上下两篇分享给大家&#x…

深度学习入门(六十二)循环神经网络——双向循环神经网络

深度学习入门(六十二)循环神经网络——双向循环神经网络前言循环神经网络——双向循环神经网络课件未来很重要双向RNN推理总结教材1 隐马尔可夫模型中的动态规划2 双向模型2.1 定义2.2 模型的计算代价及其应用3 双向循环神经网络的错误应用4 小结前言 核…

排序算法之直接选择排序(图文详解)

文章目录一、选择排序思想二、排序过程详解2.1 排序的次数2.2 排序演示三、代码范例3.1 SelectSort函数3.2 整体代码实现3.3 结果展示四、选择排序分析4.1 稳定性4.2 复杂度4.3适用场景五、选泽排序优化总结一、选择排序思想 选择排序(Selection sort)是…

ABBYY15免费版直接编辑PDF格式文件

日常生活中,我们常常使用PDF格式的文件。其优点就是PDF的文本内容不会随着软件版本、电脑字体的变化而变化,保证了其完整性。但也正因为这一点,如果没有源文件,我们就很难对PDF文档的内容进行编辑了。今天,我就向大家展…

前端一面必会vue面试题(边面边更)

为什么要使用异步组件 节省打包出的结果,异步组件分开打包,采用jsonp的方式进行加载,有效解决文件过大的问题。核心就是包组件定义变成一个函数,依赖import() 语法,可以实现文件的分割加载。 components:{ AddCustom…

关于GitHub的.gitignore无法忽略 “default-2021.dwlt“ 文件的问题

问题描述 我在使用sourcetree往github提交工程时,UserSettings/Layouts/default-2021.dwlt文件无缘无故每次都被暂存。 尽管我在.gitignore文件中反复修改忽略路径,该文件始终无法被屏蔽。如下图 解决办法 在网上找了很多资料,最终找到了…

Qt扫盲-QListWidget理论总结

QListWidget理论总结1. 概念2. 添加列表项3. 列表其他属性4. 常用信号5. 槽函数6. QListWidgetItem 简述1. 概念 QListWidget 是一个继承自 QListView 的类,其实就是 QListView 的一个很经典的 列表 交互控件,在QListWidget 里面提供了非常方便的基于 每…

银树开花精美甘特图:VARCHART_XGantt_5.2_167_ActiveX

增强您的计划用户体验 使用交互式甘特图提供惊人的视觉调度体验 与时间和资源相关的计划数据(例如工作、任务、订单、活动和能力)最好显示在甘特图中。 在智能甘特图中,计划人员可以随手采取纠正措施。 加快您的开发并 创建引人入胜、易于使用…