Friday, October 5, 2012

MoVP 4.4 Cache Rules Everything Around Me(mory)


Month of Volatility Plugins

After an exciting month of new Volatility plugins and anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r amazing OMFW, we are in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 final home stretch. It's only fitting that we take a moment to fill in some gaps and dispel some myths and misconceptions. In particular, this blog post will focus on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Windows Cache Manager and discuss cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dumpfiles plugin that will be released in Volatility 2.3.

Caching

An important concept that every computer scientist, especially those who have spent time doing operating system research, is intimately familiar with is that of caching. For those who weren't lucky enough to spend cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir college years stuck in a lab rewriting Xinu internals (Shoutz to Professor Comer!), a cache generally involves a smaller relatively faster storage component that is used to temporarily store a subset of data which is generally stored in a larger but slower storage component. By leveraging locality of reference, caching techniques attempt to store frequently accessed data or recently accessed data within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 faster storage to reduce expensive operations.

Caching is an important performance principle often used throughout system design (networking, file system, operating system). As a result, it is also an important concept that every forensics analyst should be intimately familiar with, especially those who work in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 area of memory analysis. The medium of analysis (RAM), in and of itself, acts as a cache for secondary storage. Researchers have also shown cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 importance of being able to analyze cached artifacts in memory (SELinux access vector cache, registry keys cached by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 configuration manager) and how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can be manipulated to hide attack artifacts.  As an added advantage, caching also provides investigators triage hints as to what pieces of data or objects are temporally or spatially relevant at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 suspected incident. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of this post, we will focus on finding artifacts associated with file data that are cached in memory. As I'm sure we all agree, most memory analysis techniques are just talk until cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are implemented in Volatility!

File Artifacts

File artifacts often play an important role during investigations. When performing memory analysis, we generally focus on two major categories of files: executables and data files.  We may want to determine which files were being accessed, which processes were accessing a particular file, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 provenance of a chunk of data found in memory, what data was in a particular file, and if that data had been surreptitiously modified. Not to mention, we may also want to extract that file so it can be analyzed by anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r third party tool. Historically, most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Volatility plugins that can help address cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se questions have focused on enumerating file information (ie. handles, filescan, dlllist, modscan, modules, vadinfo) or extracting executables from a particular processes virtual memory (dlldump, moddump, procexedump, procmemdump, vaddump).

Occasionally, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are also people who still attempt to reconstruct a file from a memory sample using traditional carving. In most instances, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y will run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir linear carving tool against a memory sample. These tools will linearly scan cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data looking for specific signatures associated with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file format. Unfortunately, most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se tools assume cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file data will be contiguous, whereas cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data stored in physical memory is inherently fragmented and only parts of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file may actually be loaded into memory. As a result, except for files that are smaller than a page of memory, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 analyst is probably not going to extract cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y expect.

Those investigators with a stronger understanding of virtual memory management have also attempted to circumvent cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fragmentation problem by scanning cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtual address space of a particular process. Thus, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y would use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memdump plugin to dump cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtual address space, associated with a particular process, and scan it with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir linear carving tool. While this clearly demonstrates a better understanding of virtual memory management and will work a lot better than scanning cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 physical address space, it can still suffer from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that only a subset of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data may actually be mapped into virtual memory at a particular time. It also requires that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 investigators clearly understand what data is generated by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memdump plugin. The memdump plugin extracts all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory resident pages (including both user and kernel) within a particular processes address space and dumps cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to an individual file. I guess that concept can be confusing to some people. One group of researchers went so far as to try to compare cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output of memdump with a tool that was extracting a memory resident executable. Then cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y couldn't understand why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 size of a dump of addressable virtual memory was dramatically bigger than that process's executable.  They also don't seem to understand cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value of having a deeper understanding of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 differences in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 so-called "global" kernel address space.  I guess cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code isn't enough for some people.

Alternatively, instead of following cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 traditional forensics trend of trying to pretend that structured data is unstructured, we can leverage cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 context provided by Volatility to do something more intelligent. In particular, we can use Volatility to analyze cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file mapping data structures associated with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Windows Memory Manager and Cache Manager to reconstruct cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files.

Windows Cache Manager

Within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Windows operating system, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cache manager is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 subsystem that provides data caching support for file system drivers. The cache manager is responsible for helping make sure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 frequently accessed data is found in physical memory to improve I/O. This is accomplished by leveraging cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory manager's support for memory-mapped files. The cache manager accesses data by mapping views of files, within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtual address space, using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory manager's support for memory mapped files. Thus, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory manager controls which parts of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file data are actually memory resident. On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hand, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cache manager caches data within virtual address control blocks, VACB. Each VACB corresponds to a 256-KB view of data that is mapped in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system cache address space.  In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 remainder of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 post, we will describe how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 internal data structures associated with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory manager and cache manager can be used to reconstruct file artifacts.

Data Structures

Luckily, all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 structures we would need to extract cached and memory mapped file artifacts are provided within Microsoft's supporting debugging information and, as a result, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can be readily found within Volatility VTypes. The main structure we are going to start with is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 _FILE_OBJECT. These executive objects can be found with a number of Volatility plugins including filescan, handles, and vadinfo. The _FILE_OBJECT is a Windows kernel object used to track each instance of an open file. Once we find instances of _FILE_OBJECTs, we can use its SectionObjectPointer member to find cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 associated _SECTION_OBJECT_POINTERS. The memory manager and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cache manger use this structure to store file mapping and cache information for a particular file stream. Based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 members of  cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 _SECTION_OBJECT_POINTERS, we can determine if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file was mapped as data (DataSectionObject) and/or as an executable image object (ImageSectionObject), and if caching is being provided for this file.

Both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ImageSectionObject and DataSectionObject members of _SECTION_OBJECT_POINTERS are opaque pointers to control areas, _CONTROL_AREA. Once we have found cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 associated _CONTROL_AREA, we can find cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 subsection structures, _SUBSECTION, that are used by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory manager to track regions of file streams that are mapped. The initial subsection structure is stored immediately after cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 _CONTROL_AREA in memory and subsequent subsections are found by traversing a singly linked list pointed to by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NextSubsection member. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file was mapped as data, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re will most likely only be one subsection.  On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hand, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file was mapped as an executable image, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re will be one subsection for each section of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 portable executable (PE).   By leveraging cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SubsectionBase member of _SUBSECTION, we can find a pointer to an array of _MMPTE's.  By traversing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 array of _MMPTE's we can determine which pages are memory resident and where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are stored in physical memory. It is important to note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 size of _MMPTEs changes not only between hardware architectures but also when a PAE enabled kernel is being used. Using this information, we can reconstruct those files that may be memory mapped as eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r data or image section objects.


In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 instances where caching is being provided, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SharedCacheMap member of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 _SECTION_OBJECT_POINTERS structure is an opaque pointer to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SHARED_CACHE_MAP structure. The SHARED_CACHE_MAP structure is used by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Cache Manager to track cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 state of cached regions, including cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previously described 256-KB VACBs.  The cache manger uses a VACB index arrays to store pointers to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VACBs. As a performance optimizations, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 _SHARED_CACHE_MAP contains a VACB index array, InitialVacbs, of 4 pointers, that is used for files 1 MB or less in size. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file is larger than 1 MB, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Vacbs member of _SHARED_CACHE_MAP is used to store a pointer to a dynamically allocated VACB index array.  If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file is larger than 32 MB, a sparse multilevel index array is created where each index array can hold up to 128 entries. Since we are trying to find all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cached regions that may be memory resident, we recursively walk cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sparse multilevel array looking for file data.  The _VACB contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 virtual address of where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data is stored in system cache, BaseAddress,  and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 offset where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data is found within cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file, FileOffset.  Using this information, we can reconstruct cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cached regions found in memory.


Prior Research

While some recent research made cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 assertion that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Windows Cache Manager had been largely ignored in memory forensics, this statement was a bit disingenuous.  In fact, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re have been a number of research papers and projects that have demonstrated cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 importance of extracting files (memory mapped/cached) from physical memory.  The first to explore this issue was R.B. van Baar in 2008, when he published a paper, "Forensic memory analysis: Files mapped in memory", in which he showed that 25% of data in memory dumps was attributed to memory mapped files.  He also discussed a number of techniques for extracting file artifacts using both allocated file mappings and unallocated pages. While cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 paper did not detail cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 algorithms used in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 analysis, we remembered, that Ruud had submitted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code for inclusion in Volatility back in 2008. Looking though cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code, we noticed that he focused on a subset of PTEs found when traversing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DataSectionObject.

Later that year, a team lead by Seyed Mahmood Hejazi also wrote a paper titled, "Automated Windows Memory File Extraction for Cyber Forensics Investigations", which also discussed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 benefits of extracting memory mapped and cached files. Unfortunately, some discrepancies in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir pseudo code and images made it difficult to replicate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir research.  Their analysis of cached files also seemed to be limited to files that were small enough to be found in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 InitialVacbs (1 MB).  

In 2010, Carl Pulley created a Volatility plugin, exportfile, for extracting both memory mapped and cached file artifacts that he used to solve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Honeynet Project Challenge 3. In particular, he demonstrated how PDFs and Firefox artifacts could be extracted from physical memory. This was a major step forward as he was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first to actually release code that ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs could use and evaluate. Thus, we wanted to see if we could augment Carl's work to support PAE kernels and x64 (Shoutz to Carl!).

Finally in 2011, anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r research team re-implemented Carl's work for a Black Hat presentation titled, "Physical Memory Forensics for Files and Cache". The work presented lacked sufficient detail or code to evaluate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 effectiveness of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir approach. They also demonstrated a clear lack of understanding in a number of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir claims.

The DumpFiles Plugin

The DumpFiles Plugin works by collecting _FILE_OBJECTS from both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 handle table and virtual address descriptor tree. Once those objects have been collected, it will proceed to extract all memory mapped and cached regions to a specified output directory. Typical command line usage:

$ python vol.py dumpfiles -f  --dump-dir   -S  --profile= 

This will create a number of extracted file artifacts in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output directory.  These files are named with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following schema: (file.$PID.[SharedCacheMap.offset|ControlArea.offset].[img|dat|vacb]). The goal of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 naming schema is to help provide provenance as to where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data originated. Example output names can be seen below:
file.1300.0x8704e540.img 
file.2648.0x868b58e0.vacb
file.436.0x8a06ace8.dat

It will also create a detailed summary file describing which pages where actually present and which were paged out and subsequently padded with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output file.  During experiments, we have seen cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plugin extract anywhere from 308 MB on an unused Windows 7 system to 1.4 GB on a Win7x64 production system. Examples of files extracted from that sample include

file.1128.0xfa800dcd5450.img:  MS-DOS executable PE  for MS Windows (DLL) (GUI) Mono/.Net assembly
file.1248.0xfa800e3e6ab0.dat:  Microsoft Internet Explorer Cache File Version Ver 5.2
file.2312.0xfa800ce1b6a0.img:  MS-DOS executable PE  for MS Windows (DLL) (GUI) Intel 80386 32-bit
file.2580.0xfa800d00d4a0.dat:  Microsoft Office Document
file.2964.0xfa800d362e30.img:  MS-DOS executable PE  for MS Windows (DLL) (console) Mono/.Net assembly
file.2964.0xfa800dd25660.vacb: MSVC program database   
file.3004.0xfa800d0c9e10.vacb: MS-DOS executable PE  for MS Windows (DLL) (GUI) Mono/.Net assembly
file.3004.0xfa800d1cd3b0.dat:  HTML document text
file.3004.0xfa800ea33800.dat:  ASCII English text

Example Use/Cases:

One example use case that has been previously discussed involved using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 information from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cache manager to extract registry files from memory (prior to Windows 7). The researchers inaccurately claimed that this provided cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same information available through Volatility's registry support. Unfortunately, what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y failed to realize is that Volatility is actually extracting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 registry keys cached by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 configuration manager. As a result, Volatility is able to see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual keys and values being used by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 operating system (including Volatile data). Simply extracting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cached versions of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 on disk files would not allow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to detect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacks Moyix described in his paper.  That being said, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ability to augment cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data cached in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 configuration manager with a cached version of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual file provides cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 investigator a powerful analysis capability that we will demonstrate in an upcoming post. Yet anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r capability that is only possible within Volatility.

Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r interesting use/case involves using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory mapped and cached version of files to look for modifications that may have been made to executable images by malware. For example, if malware attempts to make a inline control flow change to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 text section of a memory resident PE, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y will often get a private version of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 page mapped into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir address space (copy-on-write). By comparing different view of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data from different address spaces, we can easily identify anomalies in memory resident executable images.  During cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 OMFW presentation, we demonstrated how this analysis technique could be combined with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output of apihooks to provide extra context.  

Conclusion

The ability to extract cached and memory-mapped files provides anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r powerful capability to Volatility users.

Shoutz

Shoutz to FuzzyNop for reminding us that just looking at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code doesn't mean that people actually understand it and inspiring us to finally get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dumpfiles plugin integrated into core. Shoutz to Carl for creating a Volatility plugin and thus making it real!

Related References

Russinovich, M., Solomon, D.A. & Ionescu, A., "Windows Internals: Part 2" 6th ed. Microsoft Press, 2012.
van Baar, R. B., Alink,W., & van Ballegooij,  A. R., "Forensic Memory Analysis: Files Mapped in Memory." Journal of Digital lnvestigation (2008)
Hejazi, S.M., Debbabi, M., & Talhi, C., "Automated Windows Memory File Extraction for Cyber Forensics Investigation." Journal of Digital Forensic Practice (2008)
https://github.com/carlpulley/volatility/blob/master/exportfile.py
http://www.osronline.com/article.cfm?article=280
https://www.honeynet.org/challenges/2010_3_banking_troubles
http://wampir.mroczna-zaloga.org/archives/834-challenge-3-of-cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365-forensic-challenge-2010-banking-troubles.html
http://wampir.mroczna-zaloga.org/archives/859-rozwiazanie-wyzwania-forensic-challenge-2010-banking-troubles.html

No comments:

Post a Comment