Docker 恶意挖矿镜像应急实例

01、概述

当网络流量监控发现某台运行多个docker容器的主机主动连接到一个疑似挖矿矿池的地址时,需要快速响应和排查,以阻止进一步的损害。

面对docker容器的场景下,如何快速分析和识别恶意挖矿容器?本文将分享一种应急响应思路,用于排查运行多个Docker容器的主机中可能存在的恶意挖矿容器。

02、定位容器

在宿主机上通过netstat -an 是看不到容器内的网络连接的,而一台台进入容器查看网络连接,排查效率很慢。

我们知道宿主机上的容器都是通过dokcer0进行通信的,因此,可以通过tcpdump找到异常网络连接的容器IP地址,然后进一步关联到容器。

(1)tcpdump抓包定位容器ip地址

css 复制代码
tcpdump -i docker0 dst host xx.xx.xx.xx -v

可以看到与恶意ip建立网络连接的容器IP是:172.17.0.2

(2)一个命令获取所有容器名称及其IP地址,匹配172.17.0.2 ,从而定位到容器。

nginx 复制代码
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq) |grep 172.17.0.2

(3)进入容器network namespace进行确认,找到异常的网络连接地址。

properties 复制代码
#获取容器PID
docker inspect -f '{{.State.Pid}}' <containerId>
#进入容器的network namespace
nsenter  -n -t pid 
# 验证是否进入容器的network namespace
netstat -an|grep xx.xx.xx.xx

03、分析排查

(1)进入容器,找到挖矿程序的进程,恶意脚本路径为xmrig.sh

(2)我们需要进一步确认的是挖矿程序时在容器运行过程中被植入了,还是镜像文件中已经存在挖矿程序。

使用docker diff命令查看容器内文件状态变化,未找到xmrig.sh

通过docker inspect 快速定位镜像文件系统在宿主机上对应的目录,从镜像中提取恶意文件进行对比,以确认入侵的源头为恶意镜像。

04、镜像分析

追溯镜像的来源,解析Dockerfile文件是关键步骤。

(1)使用docker history 命令查看指定镜像的创建历史,加上 --no-trunc,就可以看到全部信息。

(2)使用dfimage从镜像中提取 Dockerfile,在这里可以清晰地看到恶意镜像构建的过程,找到恶意挖矿程序的样本。

05、问题处理

(1)查找恶意镜像关联的容器

xml 复制代码
docker ps -a|grep <IMAGE_NAME>

(2) 删除相关容器或镜像

xml 复制代码
docker rm -f  <containerId>
docker rmi <IMAGE_NAME>
相关推荐
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220702 天前
如何搭建本地yum源(上)
运维
武子康3 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质5 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn866 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化