社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker容器挖矿应急实例

合天网安实验室 • 1 年前 • 369 次点击  
01、概述

很多开源组件封装成容器镜像进行容器化部署在提高应用部署效率和管理便捷性的同时,也带来了一些安全挑战。一旦开源系统出现安全漏洞,基于资产测绘就很容易关联到开源组件,可能导致被批量利用。

在本文中,我们将分享一个真实的Docker容器应急实例,涉及到基于开源组件漏洞披露的前后时间段内,容器遭遇挖矿程序植入的情况。我们将深入分析排查过程,还原入侵的步骤和手段,帮助读者了解应对挖矿程序入侵的实际应急操作。

02、分析排查

(1)使用top命令查看,发现kdevtmpfsi进程异常,CPU占用率199%。

(2)通过进程PID和USER查看进程信息,通过进程链定位到进程所在容器的进程PID。

(3)通过进程PID查找对应容器名称,容器名:metabase。

(4)使用docker top 查看容器中的进程信息,找到到容器内异常进程。如下图:异常进程kdevtmpfsi(PID:5613)对应的父进程为JAVA进程(PID:2301)。据此,可初步判断,java应用被入侵,导致容器被植入挖矿木马。

03、溯源分析

(1)使用docker logs查看容器日志,并通过异常信息定义到漏洞触发的位置。如下图:通过POST提交请求,使用wget和curl命令下载挖矿脚本并执行。

docker logs metabase

(2)查看运行的容器对应的镜像版本,对应的镜像为:metabase:v0.46.4

(3)通过日志信息和镜像版本,可进一步关联近段时间的威胁情报:开源BI分析工具 Metabase 中存在远程代码执行漏洞。

(4)漏洞复现,通过exp成功执行命令,确认当前使用镜像存在远程命令执行漏洞。

综上,攻击者通过利用metabase 远程命令执行漏洞对暴露在外网上的服务进行攻击并下载并执行挖矿程序。

04、解决问题

(1)保留入侵痕迹,使用docker commit保存为镜像,可作为demo,用于检测容器安全产品的能力或其他用途。

docker commit -m "CoinMiner"  -a "bypass"  b4536a12a341  bypass007/miner:1.0

(2)使用docker diff命令查看容器内文件状态变化,通过容器内文件的变化,可以简单地窥探攻击者入侵容器的蛛丝马迹,做了什么操作,改了哪些系统文件。

docker diff metabase
(3)通过对shell脚本文件和挖矿样本进行分析,可以了解到更详细的行为。部分截图如下:

(4)在容器环境里,容器被入侵的清理比较简单,不用着急去清理容器内的挖矿或是后门,直接删除容器即可。比较重要的是,根据定位的漏洞问题进行修复,重构容器镜像。在这里,我们可以将metabase镜像升级到官方提供的最新修复版本,就可以完成本次容器应用漏洞应急的处置。

原创稿件征集

征集原创技术文章中,欢迎投递

投稿邮箱:edu@antvsion.com

文章类型:黑客极客技术、信息安全热点安全研究分析安全相关

通过审核并发布能收获200-800元不等的稿酬。


更多详情,点我查看!

靶场实操,戳“阅读原文”

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/160224
 
369 次点击