首页/安全/取证与溯源速查/core dump 崩溃痕迹与配置
Linux 取证135 条

core dump 崩溃痕迹与配置

核心转储把进程崩溃瞬间的内存写入文件,可能包含密钥与业务数据;core_pattern 决定落盘位置,coredumpctl 可列出与提取记录。

取证与溯源速查安全更新于 2026-10-13

core dump 的双重身份

核心转储把进程崩溃瞬间的内存内容写入文件,其中可能包含密钥、口令与业务数据,既是排查崩溃原因的材料,也是敏感数据的重要来源。内核参数 core_pattern 决定转储写到什么位置,systemd 环境下也可以由 systemd-coredump 接管并用 coredumpctl 列出与提取。判断一台主机能否产生转储要看三处:core_pattern 的取值、进程资源限制 ulimit -c,以及 systemd 单元中的 LimitCORE。

基本信息

查看方式cat /proc/sys/kernel/core_pattern、coredumpctl list
限制来源ulimit -c 与 unit 中的 LimitCORE
systemd 环境/var/lib/systemd/coredump 下的转储记录
数据性质可能含凭据、密钥与业务数据,属敏感材料

典型使用场景

  • 确认主机上是否落有崩溃进程的内存转储
  • 把崩溃时刻作为主机异常时间线上的锚点
  • 检查转储配置是否被改成丢弃,导致证据缺失
  • 评估内存转储中可能暴露的凭据范围
  • 为内存侧分析提供已有材料的入口

查看配置与转储

查看配置与转储
cat /proc/sys/kernel/core_pattern            # 转储目标:路径模板、管道或丢弃
coredumpctl list 2>/dev/null | tail -10      # 列出 systemd 托管的转储
ulimit -c                                    # 当前会话的核心文件大小限制
systemctl show nginx -p LimitCORE            # 单元级别的限制
ls -lt --time-style=long-iso /var/lib/systemd/coredump/ 2>/dev/null | head
cat /etc/systemd/coredump.conf 2>/dev/null | grep -vE '^\s*#|^\s*$'   # 保留策略

core_pattern 读法

取值形式含义判读要点
普通路径模板按模板文件名写到指定目录含 %e、%p、%t 等占位符
以管道符开头把转储管道给指定程序处理常见为 systemd-coredump
指向 /dev/null直接丢弃转储内容配置成丢弃即不会留下文件
空值或未设置使用内核默认行为需结合发行版默认值判断
被配置为丢弃时不会产生文件,查不到转储不等于没有崩溃;此时应转向内核与系统日志中记录的崩溃与重启信息。
崩溃时间与后续重启时间通常很接近,可用于确认主机发生过非正常重启,是解释日志时间线断点的常用依据。
core 文件包含进程内存内容,属敏感数据;导出后应按证据规范封存并限制访问范围,报告中也不要直接引用其中的凭据内容。

易错点

  • 未检查 core_pattern 是否指向丢弃,直接得出没有崩溃的结论
  • 忽略 ulimit 与 LimitCORE 两层限制,误判为何没有生成文件
  • 把含凭据的转储文件随意复制到办公机分析
  • 转储文件体积大且占用系统盘,采集前未确认目标分区空间

数据来源与参考

  • man 5 core(core dump 与 core_pattern)
  • systemd 文档(coredumpctl)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌