
Docker 容器取证 API 参考与实践指南基于 Anthropic-Cybersecurity-Skills 的容器入侵调查【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills导读本文是 analyzing-docker-container-forensics 技能包的 API 参考与实践指南系统梳理 Docker 容器取证中 9 类核心工具docker inspect、docker diff、docker export、docker commit/docker save、docker logs、dive、container-diff、Trivy、docker-explorer的命令语法、JSON 路径、输出语义与典型取证用法。本技能属于仓库 digital-forensics 子域映射 NIST CSF 的 RS.AN-03 / DE.AE-02 / RS.MA-01 与 MITRE ATTCK 的 T1610/T1611/T1612/T1613 系列容器攻击技术用于调查被攻陷的 Docker 容器读者读完后可掌握从证据保全、镜像分层分析、宿主机工件检查到文件系统 diff、漏洞扫描与报告生成的一整套取证工作流并可直接配合仓库内 scripts/agent.py 自动化执行。1.docker inspect— 容器详情取证1.1 基本语法docker inspect container_id docker inspect --format {{.HostConfig.Privileged}} container_id docker inspect --format {{json .Mounts}} container_id | jq docker inspect --format {{.GraphDriver.Data.MergedDir}} container_iddocker inspect返回容器的完整配置与运行时状态JSON 数组格式。其中不带--format时输出完整 JSON可重定向保存为证据文件--format支持 Go 模板{{json .Mounts}}以 JSON 形式输出挂载信息便于管道交给jq处理.GraphDriver.Data.MergedDir用于定位容器 overlay2 存储驱动下的 merged 目录是直接分析运行时文件系统的关键路径。1.2 关键 JSON 路径JSON 路径取证含义.HostConfig.Privileged是否以特权模式运行布尔值.HostConfig.CapAdd额外添加的 Linux capabilities.HostConfig.PidModePID 命名空间模式host表示共享宿主机 PID 命名空间.HostConfig.NetworkMode网络命名空间模式host表示共享宿主机网络.Mounts卷挂载配置含Source、Destination、RW字段.Config.User容器运行用户缺省为 root.Config.Env环境变量可能包含密钥等敏感信息.Config.Image镜像名称用于溯源.State.StartedAt容器启动时间时间线重建依据1.3 与仓库源码的对应仓库 scripts/agent.py 中的inspect_container()正是以docker inspect {container_id}获取 JSON 并json.loads解析analyze_security_config()agent.py则直接读取上述 JSON 路径进行安全基线审计特权模式记为CRITICAL危险 capabilitiesSYS_ADMIN、SYS_PTRACE、NET_ADMIN、SYS_MODULE、DAC_OVERRIDE、NET_RAW记为HIGH共享 host PID/网络命名空间记为HIGH敏感宿主机路径只读挂载记为CRITICALdocker.sock挂载可控制 Docker 守护进程记为CRITICALroot 用户记为MEDIUM敏感环境变量记为HIGH。这套规则可作为手工取证时的检查清单。2.docker diff— 文件系统变更取证2.1 语法docker diff container_iddocker diff对比容器运行层与创建它的镜像层输出发生变更的路径前缀码。2.2 输出前缀码代码含义A文件或目录被新增C文件或目录被修改D文件或目录被删除注意docker diff的删除对象通常表现为路径本身消失取证时需结合日志与时间线确认。2.3 恶意特征提取仓库脚本佐证agent.py 的get_filesystem_changes()将 diff 输出按A / C / D前缀分类detect_suspicious_files()内置了可疑模式表新增文件关注/tmp/、/dev/shm/、/root/、.sh、.py、.elf、reverse、shell、backdoor、miner、xmr、webshell、c2、beacon等修改文件关注/etc/passwd、/etc/shadow、/etc/crontab、/etc/ssh、.bashrc、/etc/sudoers、authorized_keys等关键系统文件。这组模式直接对应 SKILL.md 中AAdded、CChanged、DDeleted的取证分析要点。3.docker export— 容器文件系统导出3.1 语法docker export container_id container_fs.tar docker export container_id | gzip container_fs.tar.gzdocker export导出容器当前运行态的完整文件系统扁平化快照不含镜像分层元数据是容器取证证据保全的核心命令。导出后用tar -xf解开即可进行静态分析webshell、恶意二进制、持久化脚本等配合sha256sum计算证据哈希保证证据链完整性见 SKILL.md Step 1 中sha256sum /cases/case-2024-001/docker/*.tar。3.2 仓库自动化实现agent.py 的export_container()将docker export的 stdout 以二进制流写入目标文件并边写边以 64KB 分块计算 SHA-256返回(成功标志, 哈希值)——把导出 哈希固定两个取证步骤原子化。4.docker commit/docker save— 镜像级证据保全4.1 语法docker commit container_id forensic-evidence:case001 docker save forensic-evidence:case001 evidence_image.tardocker commit将容器当前状态含运行层变更冻结为一个新镜像标签docker save将镜像及其全部分层导出为单一 tar 归档。二者配合可完整保留容器当前文件系统 镜像构建历史比docker export多保留分层与镜像元数据离线环境可docker load evidence_image.tar恢复到任意取证工作站复现分析。4.2 与原始镜像对比commit 出的镜像可与基础镜像做差分见下文 container-diff定位哪一层引入了恶意文件也可用docker history检查构建指令RUN 是否执行了可疑命令。5.docker logs— 容器日志取证5.1 语法docker logs --timestamps container_id docker logs --since 2024-01-15 container_id docker logs --tail 1000 container_id docker logs -f container_id # Follow (live)日志参数说明--timestamps为每行日志附加 RFC3339 时间戳是时间线重建的必要选项--since按起始时间过滤也支持--until截止时间适用于定位入侵时间窗--tail N只取最近 N 行控制输出规模-f实时跟随输出仅在容器仍存活且需要监控新日志时使用。仓库 agent.py 的get_container_logs()即使用docker logs --timestamps --tail {tail}检索日志并将其 stdout/stderr 合并返回。6. dive — 镜像分层交互分析6.1 语法dive image_name # 交互模式 dive image_name --ci # CI 模式非交互 dive image_name --ci --json out.json # 输出 JSON 分析结果dive 从镜像仓库/daemon 拉取镜像按层展示文件系统差异。6.2 输出内容逐层文件系统变更每一层新增/修改/删除的文件清单镜像效率评分efficiency score衡量各层浪费空间被后续层覆盖或删除的文件的百分比指标浪费空间分析wasted space精确定位可瘦身的冗余数据。在 SKILL.md 的工作流 Step 2 中dive 被用于取证镜像forensic-evidence:case-2024-001的分层分析配合--ci --json输出结构化的逐层变化记录是供应链攻击取证判断恶意文件来自哪一层的关键工具。7. container-diff — 镜像内容比对7.1 语法container-diff diff daemon://nginx:latest daemon://suspect:latest \ --typefile --typeapt --typehistory --jsoncontainer-diffGoogle 开源支持daemon://本机守护进程与remote://远程仓库两类镜像源--type指定比对维度可叠加多个。7.2 比对类型类型说明file文件系统差异新增/删除/修改的文件aptAPT 软件包差异pipPython 包差异historyDocker 构建历史差异取证典型用法将受害者镜像如forensic-evidence:case-2024-001与官方基础镜像如daemon://nginx:latest做fileapthistory三维比对快速定位被植入的二进制、依赖包与可疑构建指令。8. Trivy — 镜像与文件系统漏洞扫描8.1 语法trivy image image_name trivy image --format json image_name trivy image --scanners vuln,secret image_name trivy fs /path/to/exported/container/8.2 严重等级CRITICAL|HIGH|MEDIUM|LOW|UNKNOWN参数说明--format json输出机器可读的 JSON便于后续关联分析仓库 agent.py 的scan_image_vulnerabilities()即使用trivy image --format json并解析--scanners vuln,secret同时启用漏洞与密钥扫描secret扫描器可在镜像/文件系统中检索硬编码凭据trivy fs对已导出的容器文件系统目录做离线扫描无需重新拉取镜像非常适合取证场景。SKILL.md 工作流 Step 5 展示了完整组合镜像漏洞 JSON 扫描、导出文件系统表格扫描、以及独立 secret 扫描三个动作。9. docker-explorer — 离线取证9.1 语法de.py -r /var/lib/docker list de.py -r /var/lib/docker mount container_id /mnt/forensic de.py -r /var/lib/docker history container_iddocker-explorer 是专为 Docker 取证设计的 Python 工具-r指向Docker 宿主机的数据根目录默认/var/lib/docker可在不启动 Docker 守护进程的情况下读取原始工件list枚举根目录下可见的容器与镜像mount container_id将容器文件系统挂载到指定目录进行只读检查history container_id重建镜像分层历史。该工具在镜像磁盘镜像取证离线挂载/mnt/evidence/var/lib/docker场景中尤为关键是 SKILL.md Step 3 中检查 overlay2 目录、config.v2.json等宿主机工件时的补充手段。10. 端到端取证工作流SKILL.md 五步法Step 1证据保全按 SKILL.md 的规范依次执行docker ps -a --no-trunc枚举、docker inspect导出配置、docker export导出文件系统、docker commitdocker save保存镜像、docker logs --timestamps抓取日志、docker top抓取进程、docker exec ... netstat -tlnp抓取网络连接、docker cp提取指定文件最后统一sha256sum固定哈希。Step 2镜像分层分析用 dive 交互/CI 分析取证镜像解开docker save的 tar 检查manifest.json与各层layer.tar用 container-diff 与基础镜像差分。Step 3宿主机工件检查检查/var/lib/docker/overlay2/分层目录、containers/id/config.v2.json、/etc/docker/daemon.json、容器 JSON 日志并用仓库内置的 Python 分析脚本扫描挂载、特权、capabilities、命名空间共享、root 用户与敏感环境变量。Step 4文件系统变更分析docker diff得到 A/C/D 三类变更按可疑特征/tmp/、.sh、webshell、/etc/crontab、authorized_keys等筛选并解开container_export.tar用find ... -exec file {} \;识别恶意文件类型、用-newer对比时间戳定位入侵时间窗。Step 5漏洞扫描与报告Trivy 完成镜像漏洞扫描 文件系统扫描 secret 扫描最后按 SKILL.md 的Output Format汇总输出容器信息、安全配置告警、文件系统变更统计、可疑发现、漏洞分级统计与证据路径。11. 常见取证场景Web 应用容器失陷导出文件系统定位 webshell分析访问日志中的利用痕迹检查新增文件与配置篡改审查网络连接中的 C2 通信评估 capabilities 与提权路径恶意镜像供应链攻击dive 定位恶意内容所在层container-diff 与官方镜像差分检查 image history 的可疑 RUN 指令扫描后门与挖矿程序回溯 registry 拉取日志容器逃逸调查检查特权模式与危险 capabilities、宿主机路径挂载尤其/、/etc、docker.sock、宿主系统日志中的逃逸痕迹与内核利用残留容器环境挖矿定位高 CPU 容器导出并扫描挖矿二进制排查未授权镜像审查容器创建事件与矿池通信连接。12. 结论Docker 容器取证的核心在于分层还原 变更对比 工件关联docker inspect/docker diff回答容器怎么配的、改了什么docker export/docker commitdocker save负责证据原样保留dive/container-diff 回答恶意内容来自哪一层Trivy/docker-explorer 分别覆盖已知漏洞、密钥泄漏与离线宿主机工件两个维度。本文所涉命令语法、JSON 路径与输出语义均可在仓库 references/api-reference.md 中查询完整实操步骤见 SKILL.md自动化实现见 scripts/agent.py可直接复制运行。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考