温馨提示×

怎样从dmesg日志中发现恶意软件

小樊
45
2025-12-21 19:55:02
栏目: 编程语言

从 dmesg 日志发现恶意软件的实用方法

一、快速定位思路

  • 明确目标:dmesg 记录的是内核环缓冲区消息,擅长发现内核级异常(可疑模块、权限/策略拦截、设备异常、资源枯竭、文件系统异常等),不能直接覆盖用户态进程的全部行为。将 dmesg 与 /var/log/auth.log、/var/log/syslog 以及 journalctl 持久化日志联动分析,效果最佳。为防重启丢失,建议持久化:例如运行 dmesg > /var/log/dmesg-$(date +%F).log 或使用 journalctl -k -b all 导出内核日志。实时监控可用 dmesg -w;按严重级别筛选可用 dmesg -l err,crit,alert,emerg。注意普通用户可能权限不足,需 root 或加入 adm 组/配置 /dev/kmsg 权限。

二、重点排查信号与示例命令

可疑信号 典型日志关键词/示例 排查要点
未授权内核模块加载或签名校验失败 module xxx: signature verification failed”;“insmod: ERROR: could not insert ‘xxx’: Invalid module format 立即核对 /proc/moduleslsmod 输出,定位模块文件(如 /lib/modules/**/*.ko),用 modinfo 查看签名与来源,必要时隔离并卸载。
LSM/SELinux/AppArmor 拒绝 SELinux: avc: denied { read/write } … comm=“xxx” path=…”;“AppArmor: DENIED { write } …” 结合进程名与路径判断是否异常访问;若为合法进程策略过严,调整策略;若为可疑进程,视为潜在提权/持久化迹象。
异常设备接入或驱动异常 usb 1-1: new high-speed USB device … error -110”;“device descriptor read/64, error -110 排查未知 USB/存储设备;结合 lsusb -v、udev 规则与物理端口检查,防止 BadUSB/嗅探器。
文件系统与磁盘异常 EXT4-fs (sda1): error …”;“I/O error …” 检查 `dmesg -T
内存错误与 OOM Killer EDAC MC#: CE memory read error …”(可纠正错误频发需警惕);“Out of memory: Killed process 1234 (xxx) 内存错误频发可能指向硬件问题或被利用的内存破坏;OOM 结合 pmap -x <pid>smem 与业务基线判断是否异常占用。
异常重启/崩溃线索 Kernel panic …”;“BUG: unable to handle page fault …” 保存完整 dmesgjournalctl -k -b -1 回溯;结合 kdump/vmcore 分析,排查内核漏洞利用或不稳定内核模块。
以上信号与示例命令可快速筛出高风险线索,并指导后续取证与处置。

三、高效排查命令清单

  • 实时监控:dmesg -w -T(按时间显示并持续输出)。
  • 只看高危级别:dmesg -l err,crit,alert,emerg -T | less
  • 关键字聚焦:dmesg -T | egrep -i "module|signature|selinux|apparmor|usb|i/o|error|fail|panic|oom|edac|ext4-fs" | less
  • 持久化与回溯:journalctl -k -b all > kernel_all_$(date +%F).log;查看上次启动 journalctl -k -b -1 -e
  • 关联用户态登录与认证:grep -i "invalid user\|failed password" /var/log/auth.log;与 dmesg 时间线对齐分析暴力尝试与内核日志的因果关系。

四、误报甄别与进一步取证

  • 区分环境噪声与真实威胁:硬件老化可致 EDAC/磁盘 I/O 报错;驱动兼容问题会触发模块加载失败;合法设备接入会产生 USB 新设备日志。以基线对比、硬件自检与驱动版本核验降低误报。
  • 由日志到现场:发现可疑模块后,用 lsmodmodinfo <module>find /lib/modules -name <module>.ko 定位文件;结合进程树 pstree -aps <pid>、网络连接 ss -tulpen | grep <pid> 与文件完整性校验(如 sha256sum)取证;必要时在离线环境做静态分析。
  • 加固与恢复:临时隔离网络,卸载可疑模块(modprobe -r <module>),回滚最近内核/驱动更新;修复策略(SELinux/AppArmor)、更新签名与补丁;完善持久化与审计(开启并审计 auditd,集中收集 journalctl -k 与系统日志到 SIEM/IDS 做关联告警)。

0