如何从Docker镜像中提取恶意文件

当发生容器安全事件时,需要从容器或镜像中提取恶意文件进行分析和处理。

本文主要介绍3种常见的方法:

(1) 从运行的容器中复制文件

首先,需要从镜像运行启动一个容器,然后,使用docker cp命令从容器中提取文件到宿主机。

docker run -d --name test test:v1.0 //运行容器
docker cp test:/tmp/evil.sh  /tmp/eill.sh
docker rm test //删除容器

如何从Docker镜像中提取恶意文件_第1张图片

(2)从tar镜像压缩包提取文件

将镜像保存为tar文件,解压tar镜像文件到宿主机,从分层目录找到目标文件。

docker save -o test.tar test:v1.0
tar -xvf test.tar 
tar -xvf cdbef1ee1b9602e5bd6c1897f0eb4f32c64380e97e0d456e85f7c0920b4d9e7b/layer.tar
eill.sh

如何从Docker镜像中提取恶意文件_第2张图片

(3)查找Docker容器内文件系统在宿主机上的具体位置

docker文件系统是分层的,镜像在宿主机上有自己的文件系统,可以通过docker inspect 快速定位容器文件系统在宿主机上对应的目录,直接从宿主机上获取目标文件。事实上,这也是最简单最安全的提取恶意文件的方式。

docker inspect  --format={{.GraphDriver}} test:v1.0
cd /var/lib/docker/overlay2/f4mfds01uprpk0moaiz2vjg6m/diff

如何从Docker镜像中提取恶意文件_第3张图片

你可能感兴趣的:(docker,容器,运维)