内存取证
内存取证就两个难题,一个是如何得到内存数据,一个是如何解析内存数据,看似简单的两个问题,可以出一本书
如何得到内存数据
内存数据的获取,要看具体是哪个平台。在 Windows 上相对较为容易,因为 Microsoft 官方提供了一系列的接口与权限说明,可以较为容易的扫描并获取到全部内存数据
由于启用 Hyper-v 特性之后,系统整体会被虚拟化特性整体隔离,所以获取完整内存数据将会遇到不可预期的问题
Windows 平台可以直接使用现成的一些工具一键获取内存镜像 ( 前提是拥有管理员权限 )
如何解析内存数据
对于比赛中所接触到的内存取证,选手大多拿到的都是已经提取好的内存镜像文件,也就是内存数据的原始完整拷贝,这已经从开局就大大简化了内存取证的难度。而选手接下来所要面对的,就是对内存数据进行解析。
对于内存数据,最为常用的工具便是 Volatility Framework
,其为 Volatility Foundation
所开发的一款对内存取证分析提供支持的框架,对多平台电子设备的内存数据均提供了支持,并且也支持加载第三方模块来增加功能。
虽说内存取证最为优雅的解法就是利用 Volatility Framework
,但是都戏称:内存取证的终点是 strings
+grep
。因为由于内存其本身就为操作系统和软件运行时的动态数据,所以绝大多数的数据都是直接以明文形式储存在内存之中的,往往直接 strings 进行提取明文字符串并加以筛选,就能获得一些意想不到的惊喜
当前,Volatility
已经开发到了 Volatility 3
,但是第三代仍然在开发阶段,其功能相较于第二代还不完善,但是第三代对 Windows 10
以上的 Windows
系统所导出的内存数据提供了更完善的支持,故建议进行内存取证工作的时候,两代 Volatility
都备着 ( 反正只是一个工具,相较于检材动辄大几 G 而言,完全不算大 ) 。