首页/安全/取证与溯源速查/Linux 内存采集(LiME/AVML)
Linux 取证135 条

Linux 内存采集(LiME/AVML)

内存含进程、网络连接与未落盘数据,是易失性证据的核心;LiME 以内核模块方式采集,AVML 提供不加载模块的替代方案。

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

Linux 内存采集

内存镜像是易失证据中优先级最高的一类:进程、网络连接、已解密密钥与内核结构只存在于内存。Linux 上常用 LiME 内核模块或 AVML 静态二进制采集,前者需要编译与目标内核匹配的模块,后者以普通程序运行,对系统状态的改动更小。

基本信息

常用工具LiME(内核模块)、AVML(微软开源,静态二进制)
备选手段/proc/kcore(不完整,仅作最后手段)
LiME 输出格式lime、raw、padded
输出要求采集完成后立即计算 sha256 并存档
空间要求先确认输出分区剩余容量接近物理内存量
环境约束内核锁定(lockdown)与 Secure Boot 可能阻止加载模块

典型使用场景

  • 应急处置中优先固定易失证据
  • 排查无文件载荷与内存注入行为
  • 从内存中提取已被删除但仍被占用的文件内容
  • 还原网络连接与进程的对应关系
  • 为后续内存分析工具准备输入镜像

最小示例

最小示例
free -m                                                # 先看内存量,估算镜像大小
df -h /mnt/ev                                          # 确认输出分区空间充足
insmod ./lime.ko "path=/mnt/ev/mem.lime format=lime"    # 需要与内核匹配的模块
sha256sum /mnt/ev/mem.lime | tee /mnt/ev/mem.lime.sha256  # 采完立即固化哈希
ls -l /mnt/ev/mem.lime                                 # 记录镜像大小
lsmod | grep lime                                      # 确认模块加载状态
rmmod lime                                             # 采集完成后卸载模块

记录项与要求

记录项要求说明
镜像大小接近物理内存量明显偏小说明采集中断或截断
哈希值采集后立即计算与镜像一并归档作为完整凭据
模块状态采集后卸载残留模块会污染后续分析
起止时刻精确记录用于解释采集期间的系统变化
工具版本写入记录复核者需按同版本重放
AVML 以静态二进制方式运行,适合无法编译内核模块的环境;LiME 在较新内核或开启内核锁定的系统上通常需要额外处理,具体做法以所用版本文档为准。
加载内核模块属于改变系统状态的操作,可能与安全产品冲突或触发告警;操作前评估影响并记录动作时刻。
/proc/kcore 不是完整物理内存映像,且读取范围受内核限制,用它采集时必须在报告里注明数据来源与局限。

易错点

  • 采集前不预留空间:写满分区会影响业务,甚至导致镜像中途截断
  • 采完未立即哈希:中间任何环节都可能改变文件,哈希是后续可信度的唯一依据
  • 忽略内核锁定与 Secure Boot:模块加载失败却按成功处理,最终只得到空文件或残缺镜像
  • 采集后不卸载模块:残留模块会污染内存与模块清单,影响后续分析结论

数据来源与参考

  • LiME 官方文档(Linux Memory Extractor)
  • Microsoft AVML 项目文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌