Difference between pages "Barnyard2" and "Memory Imaging"

From ForensicsWiki
(Difference between pages)
Jump to: navigation, search
 
(External Links)
 
Line 1: Line 1:
==About ==
+
{{expand}}
Barnyard2 is an open source interpreter for Snort unified2 binary output files.
+
Its primary use is allowing Snort to write to disk in an efficient manner and
+
leaving the task of parsing binary data into various formats to a separate
+
process that will not cause Snort to miss network traffic.
+
  
Barnyard2 has 3 modes of operation:
+
Memory imaging is the process of making a bit-by-bit copy of memory. In principle it is similar to [[Disk Imaging]].
  1. batch (or one-shot),
+
  2. continual, and
+
  3. continual w/ bookmark.
+
  
In batch (or one-shot) mode, barnyard2 will process the explicitly specified
+
For physical memory it is common to have sections that are not accessible, e.g. because of memory-mapped I/O
file(s) and exit.
+
  
In continual mode, barnyard2 will start with a location to look and a specified
+
The resulting copy is stored in a [[:Category:Forensics_File_Formats|Forensics image format]].
file pattern and continue to process new data (and new spool files) as they
+
Some of these formats have means to differentiate between an image of memory and e.g. that of a disk.
appear.
+
  
Continual mode w/ bookmarking will also use a checkpoint file (or waldo file in
+
== Methods ==
the snort world) to track where it is. In the event the barnyard2 process ends
+
while a waldo file is in use, barnyard2 will resume processing at the last
+
entry as listed in the waldo file.
+
  
The "-f", "-w", and "-o" options are used to determine which mode barnyard2
+
=== Reading from the Physical Memory Object ===
will run in. It is legal for both the "-f" and "-w" options to be used on the
+
In [[Windows]] the Physical Memory Object, \\Device\PhysicalMemory, can be used the access physical memory. Since Windows 2003 SP1 user-mode access to this device-object is no longer permitted [http://technet.microsoft.com/en-en/library/cc787565(v=ws.10).aspx]. A kernel-mode process is still allowed to read from this device-object.
command line at the same time, however any data that exists in the waldo file
+
will override the command line data from the "-f" and "-d" options. See the
+
command directives section below for more detail.
+
  
Barnyard2 processing is controlled by two main types of directives: input
+
=== MmMapIoSpace ===
processors and output plugins. The input processors read information in from a
+
specific format ( currently the spo_unified2 output module of Snort ) and
+
output them in one of several ways.
+
  
==History ==
+
The MmMapIoSpace function (or routine) is kernel-mode function to map a physical address range to non-paged system space [http://msdn.microsoft.com/en-us/library/windows/hardware/ff554618(v=vs.85).aspx].
Barnyard is a critical tool for the parsing of Snort's unified binary files, processing and on-forwarding to a variety of output plugins. Unfortunately it has not seen an updated in over 4 years and is not going to be maintained by the original developers. With the new version of the unified format (ie. unified2) arriving we need something to bridge this gap.
+
To quote directly from the Snort FAQ:
+
* "Barnyard is an output system for Snort. Snort creates a special binary output format called unified. Barnyard reads this file, and then resends the data to a database backend. Unlike the database output plug-in, Barnyard is aware of a failure to send the alert to the database, and it stops sending alerts. It is also aware when the database can accept connections again and will start sending the alerts again."
+
  
The SXL team love barnyard. So much so that we want it to stay and have been tinkering around with the code to give it a breath of new life. Here is what we have achieved to far for this reinvigorated code base:
+
== Also see ==
Parsing of the new unified2 log files.
+
* [[Memory analysis]]
*Maintaining majority of the command syntax of barnyard.
+
* [[:Tools:Memory_Imaging|Memory Imaging Tools]]
*Addressed all associated bug reports and feature requests arising since barnyard-0.2.0.
+
*Completely rewritten code based on the GPLv2 Snort making it entirely GPLv2.
+
  
== References ==
+
== External Links ==
All information on this page is referenced to [http://www.securixlive.com/barnyard2/about.php securixlive.com] where further information about Barnyard can be found.
+
* [http://en.wikipedia.org/wiki/Memory-mapped_I/O Wikipedia article on Memory-mapped I/O]
 +
* [http://www.dfrws.org/2013/proceedings/DFRWS2013-13.pdf Anti-forensic resilient memory acquisition], by [[Johannes Stuettgen]], [[Michael Cohen]], August 2013
 +
* [http://takahiroharuyama.github.io/blog/2014/01/07/64bit-big-size-ram-acquisition-problem/ 64bit Big Sized RAM Image Acquisition Problem], by [[Takahiro haruyama]], January 7, 2014
 +
* [http://brimorlabs.blogspot.com/2014/01/all-memory-dumping-tools-are-not-same.html All memory dumping tools are not the same], by [[Brian Moran]], January 14, 2014
 +
* [http://www.rekall-forensic.com/docs/References/Papers/DFRWS2014EU.html Robust Linux memory acquisition with minimal target impact], [[Johannes Stüttgen]] [[Michael Cohen]], May 2014
 +
 
 +
[[Category:Memory Analysis]]

Revision as of 00:57, 27 June 2014

Information icon.png

Please help to improve this article by expanding it.
Further information might be found on the discussion page.

Memory imaging is the process of making a bit-by-bit copy of memory. In principle it is similar to Disk Imaging.

For physical memory it is common to have sections that are not accessible, e.g. because of memory-mapped I/O

The resulting copy is stored in a Forensics image format. Some of these formats have means to differentiate between an image of memory and e.g. that of a disk.

Methods

Reading from the Physical Memory Object

In Windows the Physical Memory Object, \\Device\PhysicalMemory, can be used the access physical memory. Since Windows 2003 SP1 user-mode access to this device-object is no longer permitted [1]. A kernel-mode process is still allowed to read from this device-object.

MmMapIoSpace

The MmMapIoSpace function (or routine) is kernel-mode function to map a physical address range to non-paged system space [2].

Also see

External Links