DF011G08 Memory Forensic
DF011G08 Memory Forensic
Welcome to:
Memory Forensics
• Process, information about open files and registry handles, network information, passwords
and cryptographic keys, unencrypted content that is encrypted on disk, hidden data, and
worm and rootkits written to run solely in memory.
• Processes that have been terminated may still be residing in memory because the machine
has not been rebooted since they were terminated and the space they reside in has not yet
been reallocated.
• The files that a process has open, as well as any registry handles being accessed by a
process, are also stored in memory.
• Information about network connections, including listening ports, currently established
connections, and the local and remote information associated with such connections can be
recovered from memory.
• Passwords and cryptographic keys are as a general rule never stored on hard disks without
some type of protection.
• In addition to hiding files in memory, attackers can also run malicious code from memory
instead of storing it on the disk, making it difficult for reverse engineers to obtain copies of
programs and figure out how they are working and how to mitigate the threats they pose.
• In order to acquire volatile memory and analyze it, first an analyst must have a technique for
acquiring memory.
• There are two methods of acquiring volatile memory: hardware-based acquisition, and
software-based acquisition.
• Hardware-based acquisition of memory involves suspending the computer’s processor and
using direct memory access (DMA) to obtain a copy of memory.
• Software-based acquisition is most often done using a trusted toolkit that the analyst brings
to the site, but it is also possible to collect volatile memory using tools built in to the operating
system.
• Volatile memory is accessed via different mechanisms depending on the operating system
being used, and the hardware in the machine itself.
• Processes are stored in Windows in a Virtual Address Descriptor (VAD) tree.
• This tree describes memory ranges used by currently-running processes, and allows a
process’s virtual address space to be reconstructed.
• One concern with performing memory analysis is that the act of acquiring memory can cause
changes to the system being analyzed.
• A related problem is that when this happens and information related to capturing the memory
is put into RAM, the analyst is mixing the results of the analysis with the data that was
previously stored on the system.
• Another concern is whether you can trust the operating system to tell the truth about what is
actually in memory.
• Even more worrisome is that an advanced attacker might alter the way the operating system
itself works to hide data from the analyst.
• Forensic analysis on volatile memory is by no means perfect.
1. A
2. B
3. C