首页/安全/取证与溯源速查/内核日志(dmesg)线索判读
日志溯源53 条

内核日志(dmesg)线索判读

内核环形缓冲记录硬件、驱动、OOM、挂载等事件。安全事件调查中它用来回答:是否有外部设备接入、是否发生异常挂载或卸载、进程崩溃前内核报了什么错。

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

内核日志里有什么

dmesg 读取的是内核环形缓冲区,记录硬件识别、驱动加载、磁盘与文件系统挂载、内存不足(OOM)与进程异常终止等内核级事件。安全事件调查中它主要回答三类问题:是否发生过外部设备接入、是否有异常挂载或卸载动作、进程在崩溃前后内核报了什么错。缓冲区容量有限,新日志会覆盖旧日志,因此现场采集时它属于“越早取越好”的数据。使用 journald 持久化日志的系统还可用 journalctl -k 检索更早的记录。

基本信息

适用平台各 Linux 发行版(内核日志)
查看命令dmesg -T(带人类可读时间)、journalctl -k(从 journal 按时间窗检索)
关键线索USB 设备接入、挂载与卸载、OOM 与段错误、驱动加载失败
时间注意dmesg -T 使用当前时区解释时间,且无年份信息
持久化是否保留历史取决于 rsyslog 是否记录 kern 日志与 journald 是否开启持久化存储

典型使用场景

  • 确认在事件窗口内是否有 U 盘或移动硬盘接入,为数据外带判断提供线索
  • 发现异常挂载:攻击者挂载镜像或隐藏分区藏放工具与数据
  • 分析进程异常终止原因:OOM 终止与被强制杀死在内核日志里有不同表现
  • 排查硬件与驱动问题,排除把环境故障误判为攻击
  • 确认网络接口状态变化,解释某段时间网络中断的原因

检索示例

检索示例
# 关键字筛查(设备、挂载、内存、错误)
dmesg -T | grep -Ei 'usb|mount|oom|error' | tail -50
# 只要错误与警告级别,减少噪声
dmesg -T --level=err,warn | tail -40
# 从 journal 回溯更早的内核日志(需开启持久化)
journalctl -k --since '7 days ago' | tail -50
# 设备接入与存储相关线索
dmesg -T | grep -Ei 'usb|scsi|sd[a-z]|udev' | tail -40
# 内存压力与 OOM 记录
dmesg -T | grep -i 'out of memory\|oom-kill' | tail -20

关键字对照

关键字含义判读要点
usb / scsi / sdX外部存储设备接入与识别接入时间可与文件访问痕迹对照
mount / umount文件系统挂载与卸载临时目录挂载或镜像挂载需重点核实
oom-kill / out of memory内存不足终止进程说明进程被系统杀掉,而非被攻击者主动结束
segfault / trap进程异常崩溃与崩溃报告、应用日志结合判断原因
link down / up网络接口状态变化解释日志中断与连通性异常的时段
环形缓冲会被新日志覆盖,缓冲大小与系统负载决定可回溯的时间长度;案件早期就要把它导出留档,不要等采集流程走完再取。
dmesg -T 输出的时间带时区解释且通常没有年份,跨机比对前统一时区;需要精确时间与年份时应使用 journalctl -k 或 rsyslog 里保存的内核日志。

易错点

  • 依赖 dmesg 时间做精确排序:时间戳无年份且按当前时区解释,跨年与跨时区场景容易出错,精确判断要用 journal 或 syslog 中的记录
  • 采集过晚:内核缓冲被新日志覆盖后内容无法恢复,现场取证的优先级要排在前面
  • 把 OOM 终止当作攻击行为:内存不足是常见的环境问题,需结合应用日志与配置判断根因
  • 忽略挂载记录:隐藏分区或镜像挂载常是攻击者藏匿与清洗数据的手段,关键词筛查不能省略
  • 只看 dmesg 不查持久化日志:未开启 journald 持久化时,重启后历史内核日志可能只剩 syslog 中的片段,需要两处都查

数据来源与参考

  • man 1 dmesg
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌