使用LiME和Volatility进行Linux内存取证分析 是做什么的?
使用场景
- 调查需要通过LiME和Volatility分析内存取证的安全事件时
- 为此领域构建检测规则或威胁狩猎查询时
- SOC分析师需要该分析类型的结构化流程时
- 验证相关攻击技术的安全监控覆盖范围时
前提条件
- 熟悉安全运营概念和工具
- 拥有测试或实验环境以安全执行操作
- 安装Python 3.8+及所需依赖
- 对任何测试活动拥有适当授权
操作说明
使用LiME内核模块获取Linux内存,然后通过Volatility 3从内存镜像中提取取证工件。
# LiME获取
insmod lime-$(uname -r).ko "path=/evidence/memory.lime format=lime"
# Volatility 3分析
vol3 -f /evidence/memory.lime linux.pslist
vol3 -f /evidence/memory.lime linux.bash
vol3 -f /evidence/memory.lime linux.sockstat
import volatility3
from volatility3.framework import contexts, automagic
from volatility3.plugins.linux import pslist, bash, sockstat
# 编程式Volatility 3用法
context = contexts.Context()
automagics = automagic.available(context)
关键分析步骤:
- 使用LiME获取内存(format=lime或format=raw)
- 使用linux.pslist列出进程,并与linux.psscan对比
- 使用linux.bash提取Bash命令历史
- 使用linux.sockstat列出网络连接
- 使用linux.lsmod检查已加载的内核模块以发现rootkit
示例
# 完整的取证工作流
vol3 -f memory.lime linux.pslist | grep -v "\[kthread\]"
vol3 -f memory.lime linux.bash
vol3 -f memory.lime linux.malfind
vol3 -f memory.lime linux.lsmod