什么是内存取证?
内存取证是指在计算机或其他数字设备运行时,通过对其随时存储的内存数据进行采集、分析和提取,以获取有关设备状态、操作过程和可能存在的安全事件的信息。内存取证是数字取证的一个重要分支,用于从计算机的RAM(随机存取存储器)或其他设备的内存中提取关键信息,以便了解设备在特定时间点的状态和活动。
内存取证的主要目的?
内存取证的主要目的是获取在计算机或设备内存中暂时存储的数据,这些数据在设备重启或关机后通常会丢失。通过内存取证,可以获取运行中的进程、正在打开的文件、网络连接、注册表项、加密密钥和密码等敏感信息,这些信息对于数字取证、安全威胁分析和恶意活动检测都非常重要。
内存取证通常在计算机遭受安全事件、系统崩溃、恶意软件感染、取证调查等情况下使用。取证人员使用专业的取证工具和技术,对目标计算机或设备的内存进行快照或镜像,并在另一个设备上进行分析。由于内存数据的易失性,取证人员必须在尽可能短的时间内采集和分析数据,以确保数据的完整性和准确性。
内存取证的步骤
- 采集内存镜像:首先,需要采集目标计算机或设备的内存镜像。内存镜像是对内存中所有数据的完整快照,通常通过专用的取证工具来完成。常用的内存采集工具包括Volatility、FTK Imager、DumpIt等。
- 确保取证完整性:在采集内存镜像之前,确保目标计算机或设备处于关闭或冻结状态,以避免数据被覆盖或修改。内存镜像的采集过程应该尽量快速,以减少数据的丢失。
- 分析内存镜像:将采集的内存镜像导入到内存取证工具中进行分析。在分析过程中,可以查看进程列表、网络连接、打开的文件、注册表项、内存映像和其他运行时数据。
- 查找恶意代码和漏洞:在内存镜像中查找潜在的恶意代码、恶意进程或漏洞,以便确认是否存在安全威胁。
- 寻找证据:根据需求,在内存镜像中查找可能的证据,例如密码、加密密钥、聊天记录、浏览器历史记录等。这些证据可能对调查和取证提供重要支持。
- 进行关联分析:将内存镜像中的数据与其他取证数据进行关联分析,例如硬盘镜像、网络日志等,以获取更全面的信息。
- 提取数据:根据需要,从内存镜像中提取重要的数据和证据。提取的数据应该保存为可读格式,并做好记录和标记。
- 生成取证报告:根据分析结果,撰写详细的内存取证报告,包括取证过程、发现的证据、结论和建议等。报告应该清晰明了,以便其他人理解和参考。
- 保护数据完整性:在进行内存取证的过程中,务必确保数据的完整性和准确性。采用适当的安全措施,避免对内存数据造成修改或破坏。
内存取证和数字取证之间的关系
内存取证是数字取证的一个重要分支,它们之间有着密切的关系。下面简要介绍内存取证和数字取证之间的关系。
- 数据来源:
数字取证通常涉及对计算机硬盘、存储设备、网络数据等静态数据的分析。这些数据通常在计算机或设备关闭后保留,并且可以在之后进行取证分析。
内存取证则专注于获取计算机或设备在运行时的实时数据。内存中的数据在设备重启或关机后通常会丢失,因此内存取证需要在设备运行期间进行。
- 相互补充:
内存取证和数字取证相互补充,提供了更全面的取证和分析能力。通过数字取证可以获取硬盘、存储设备等静态数据,而内存取证提供了计算机运行时的实时数据,两者结合可以提供更全面、深入的取证信息。
- 应用场景:
数字取证广泛应用于网络安全、计算机取证、企业内部调查和法律证据收集等领域。
内存取证通常在计算机遭受安全事件、系统崩溃、恶意软件感染、取证调查等情况下使用。
内存取证的实例
- 获取内存镜像:首先需要获取目标计算机的内存镜像,可以通过物理获取(例如使用内存采集工具将内存保存到文件中)或虚拟获取(例如从虚拟机中导出内存快照)来获得内存镜像。
- 分析内存镜像:
导入内存镜像:使用Volatility工具,将采集到的内存镜像导入到分析环境中,准备进行取证分析。
选择插件:根据需要选择合适的插件来进行分析,例如”pslist”插件用于列出进程信息,”connections”插件用于查看网络连接信息等。
- 进程和线程分析:
使用”pslist”插件查看内存中运行的所有进程,并列出每个进程的ID、父进程ID、执行路径等信息。
使用”pstree”插件可以以树状图形式查看进程之间的层次结构关系。
使用”psxview”插件可以查看隐藏进程和模块信息。
- 文件系统和注册表分析:
使用”filescan”插件扫描内存中的文件对象,然后使用”dumpfiles”插件将文件导出到本地磁盘进行分析。
使用”hivelist”插件查找内存中加载的注册表文件,并使用”hivedump”插件将注册表导出到本地进行分析。
- 使用工具对可疑文件进行检查和扫描(如Virustotal),这里不仅可以使用可疑的可执行文件,也可以使用文件的SHA1进行查询。
6. 可以使用逆向分析工具(如IDA)对包进行逆向分析。
从IDA中将汇编转换为伪代码,我们可以发现它具有DLLEntryPoint。这似乎是DLL进入系统的时间。然后它调用CreateProcessNotify。注意RegCreateKeyA。“Software//Microsoft//Windows//CurrentVersion/run”是正常的寄存器,它可以控制计算机自动运行和加载攻击者想要计算机使用的程序。
在对寄存器执行某些操作之后,该进程开始扫描文件夹路径并遍历文档。
最重要的一点是,这个过程试图清理缓存:”ericpotic.com”和”mashevserv.com”。这两个网站似乎与僵尸网络有关。攻击者控制僵尸网络,利用僵尸网络对客户端进行入侵。
如果您对内存取证感兴趣的话,可以咨询虹科SecurityScorecard产品的内存取证服务;如果您对终端安全保护产品感兴趣的话,可以了解虹科Morphisec产品以及我们的终端安全保护解决方案。
加入“网络安全技术沟通群”或关注“虹科网络安全”微信公众号,及时了解网络安全基础知识、行业动态、应用案例、解决方案等信息。