SuperAPI AI 工具集

analyzing-docker-container-forensics

安全与审计

查看项目

更新于 10-15 08:33

技能介绍

用途

本技能用于对受入侵的 Docker 容器开展数字取证调查,涵盖镜像、层、卷、日志和运行时痕迹的分析,以识别恶意活动并固定证据。典型使用时机包括:调查被入侵的 Docker 容器或容器宿主机;分析从镜像仓库拉取的恶意 Docker 镜像;在涉及容器化应用入侵的事件响应过程中;检查容器逃逸尝试或权限提升;审计容器配置并发现错误配置。

前提条件

  • 取证工作站上具备 Docker CLI 访问权限
  • 可访问 Docker 宿主机文件系统(取证镜像或实时环境)
  • 理解 Docker 分层文件系统(overlay2、aufs)
  • 用于镜像分析的工具:dive、docker-explorer 或 container-diff
  • 了解 Docker 守护进程配置与 socket 安全
  • 用于容器镜像漏洞扫描的 Trivy 或 Grype

工作流程

步骤 1:保全容器状态与证据

列出所有容器(含已停止)、检查受入侵容器、将容器文件系统导出为 tarball、从容器当前状态创建镜像、捕获容器日志、捕获运行进程(若容器仍在运行)、捕获网络连接、从容器复制特定文件,并对所有导出证据计算哈希。

步骤 2:分析容器镜像层

安装 dive 进行镜像层分析,可交互式或非交互式分析镜像层;提取并检查各个层,查看镜像清单与层顺序,逐层检查变更;使用 container-diff 将提交的镜像与原始基础镜像进行对比(可按文件、apt、history 类型对比)。

步骤 3:检查 Docker 宿主机痕迹

检查 Python 构建的镜像层与容器合并文件系统,分析容器配置文件,检查 Docker 守护进程配置,查看 Docker 事件日志,检查卷挂载(可能访问宿主机文件系统)。同时执行容器安全分析脚本,输出卷挂载(标注读写敏感路径)、是否特权模式、附加能力(标注危险能力如 SYS_ADMIN、SYS_PTRACE、NET_ADMIN、SYS_MODULE)、PID 命名空间、网络模式、运行用户及环境变量中的敏感信息。

步骤 4:分析容器文件系统变更

对比容器文件系统与原始镜像,标记新增(A)、变更(C)、删除(D)的文件;识别可疑新增文件(如位于 /tmp/、/dev/shm/、/root/ 下的脚本、反向 shell、后门)和可疑变更文件(如 /etc/passwd、/etc/shadow、/etc/crontab、/etc/ssh、.bashrc);提取并检查容器导出内容,扫描 webshell 与恶意文件。

步骤 5:扫描漏洞并生成报告

对镜像和导出文件系统执行漏洞扫描,并检查镜像中的密钥泄露。

关键概念

  • 镜像层:叠加构成容器镜像的只读文件系统层
  • overlay2:使用联合文件系统的默认 Docker 存储驱动
  • 容器差异:运行时文件系统变更与原始镜像的对比
  • 特权模式:拥有完整宿主机能力的容器(绕过大部分隔离)
  • Docker socket:控制 Docker 守护进程的 Unix socket(/var/run/docker.sock)
  • 容器逃逸:突破容器隔离进入宿主机的技术
  • 卷挂载:在容器内可访问的宿主机文件系统路径
  • 镜像历史:构建各层所用 Dockerfile 指令的记录

工具与系统

  • docker inspect:详细的容器配置与状态信息
  • docker diff:显示运行/停止容器中的文件系统变更
  • dive:交互式 Docker 镜像层分析工具
  • container-diff:用于对比容器镜像内容的工具
  • Trivy:针对容器镜像与文件系统的漏洞扫描器
  • docker-explorer:用于离线 Docker 痕迹分析的取证工具
  • Sysdig:容器运行时安全监控与取证
  • Falco:容器与 Kubernetes 的运行时威胁检测

常见场景

  1. Web 应用容器被入侵:导出容器文件系统,识别 Web 根目录中的 webshell,分析访问日志中的利用尝试,检查新增文件与配置修改,检查网络连接中的 C2 通信,审查容器能力寻找提权路径。
  2. 通过恶意镜像发起的供应链攻击:使用 dive 分析镜像层以确认哪一层添加了恶意内容,用 container-diff 与官方基础镜像对比,检查镜像历史中的可疑 RUN 命令,扫描内嵌后门与加密货币挖矿程序,从仓库日志追溯镜像拉取记录。
  3. 容器逃逸调查:检查容器是否以特权或危险能力运行,检查宿主机文件系统挂载点是否有未授权访问,审查启用 Docker-in-Docker 滥用的 Docker socket 挂载,分析宿主机系统日志中的容器逃逸迹象,检查内核漏洞利用痕迹。
  4. 容器环境中的挖矿劫持:识别高 CPU 容器,导出并分析容器镜像中的挖矿二进制文件,检查仓库中的未授权镜像,审查容器创建事件中的异常部署,检查与矿池通信的网络连接。

输出格式

输出为 Docker 容器取证摘要,包含:容器与镜像信息、状态与宿主机;安全配置(特权、能力、卷挂载、网络模式、运行用户);文件系统变更统计(新增/变更/删除文件数及可疑数);可疑发现(如反向 shell 脚本、PHP webshell、修改的 crontab、未授权的 SSH 密钥);漏洞扫描结果(严重/高/中数量);以及证据存放路径。

限制

具体工具版本、收费情况、平台支持、实际效果等信息暂未提供。