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>
相关推荐
段一凡-华北理工大学10 分钟前
AI Agent 从入门到封神:24 讲打造你的超级智能体~系列文章23:从Demo到上线:Agent应用的架构设计、性能优化与成本控制实战
运维·网络·人工智能·性能优化·高炉炼铁·工业智能体
L16247620 分钟前
Zabbix 7.0 LTS 完整部署与运维手册(AlmaLinux 9 + MySQL 8.0 + Nginx)
运维·mysql·zabbix
happymade21 分钟前
MSRM3 区域层级嵌套功能深度解析与实操教程
运维·网络拓扑·网络管理·网络运维·msrm3
前端Baymax24 分钟前
kube-proxy iptables模式下NodePort间歇性超时
docker·容器·kubernetes
一只积极向上的小咸鱼43 分钟前
多机Docker + InfiniBand 分布式运行实操手册
分布式·docker·容器
java_logo1 小时前
Docker 部署 WPS 在线办公套件,浏览器即可编辑 Word、Excel、PPT
docker·word·wps·wps部署教程·wps免费版·轩辕镜像·docker部署教程
网络小白不怕黑1 小时前
14.VSFTP服务相关配置
linux·运维·服务器
爱喝水的鱼丶1 小时前
SAP-ABAP:ALV字段布局定制全攻略——快速适配业务端个性化展示需求
运维·性能优化·sap·abap·经验交流·alv报表
AI服务老曹1 小时前
Docker部署AI视频分析平台项目实战记录
人工智能·docker·音视频
qetfw1 小时前
CentOS 7 配置 firewalld 防火墙
linux·运维·centos