<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="/rss.xslt"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" >
  <channel>
    <title>Inside Out Blog</title>
    <link>https://schatzforensic.com/insideout/</link>
    <description>Technical blog of Dr Bradley Schatz</description>
	<copyright>Copyright 2009-2019 Schatz Forensic</copyright>
    <generator url="https://gohugo.io" version="0.54.0">Hugo</generator>
	<author>bradley@schatzforensic.com ( Bradley Schatz )</author>
    <language>en-US</language>
    <managingEditor>bradley@schatzforensic.com (Bradley Schatz)</managingEditor>
    <webMaster>bradley@schatzforensic.com (Bradley Schatz)</webMaster>
    <lastBuildDate>Thu, 05 Jul 2018 11:00:58 +0000</lastBuildDate>
    
        <atom:link href="https://schatzforensic.com/insideout/feed.xml" rel="self" type="application/atom+xml" />
    
    
    <item>
      <title>Which forensic imager is the fastest?</title>
      <link>https://schatzforensic.com/insideout/2018/07/which-forensic-imager-is-the-fastest/</link>
      <pubDate>Thu, 05 Jul 2018 11:00:58 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2018/07/which-forensic-imager-is-the-fastest/</guid>
      <description><![CDATA[  <img src="https://evimetry.com/assets/img/NVMe%20MBs.png" align="right">  <p>We all face the problem of growing amounts of evidence on a regular basis. Improving raw acquisition speed is one way to limit the impact of this, and Evimetry has been consistently delivering the fastest acquisition speeds bar none since we launched two years ago.</p>

<p>Yet we aren’t the only solution claiming to be the “fastest” or have “unparalleled” speeds.</p>

<p>Led by a practitioner and forensic scientist, it is in Evimetry’s DNA to value substantiation. Our results are backed up by <a href="http://dfrws.org/sites/default/files/session-files/paper-wirespeed_extending_the_aff4_container_format_for_scalable_acquisition_and_live_analysis.pdf">scientifically peer-reviewed publication</a>s and documented in our <a href="http://www.schatzforensic.com.au/insideout/">blog posts</a> and <a href="https://evimetry.com/assets/docs/Advanced%20A&amp;A%20AFF4-PUBLIC.pdf">workshops</a>.</p>

<p>The following graph shows the acquisition rate of a 1TB Samsung 960 Pro NVMe drive. We used Evimetry to undertake linear acquisitions to 4x Samsung 512 GB 860 Pro SSD’s as striped images, using a 6-core Xeon-D CPU. The variable is drive allocation: we started with an empty (TRIM’ed) drive, then filled it with a Windows 10 OS install and a corpus of common corporate documents and video. These figures don’t account for verification time.</p>

<p>We can acquire an empty 1TB NVMe drive in 4 minutes 52s. That’s a rate of 200 GB/m, or 12 TB/h. No other product comes close to these speeds.</p>

<p><img src="https://evimetry.com/assets/img/NVMe%20MBs.png" alt="" /></p>

<p>In the real world, suspect drives contain data rather than empty runs of 0x00, and Evimetry’s acquisition speeds depend on how much actual data is stored on the suspect drive. For a drive that is 40% utilized it takes us 7m48s (still faster than anyone else’s claim) and at 95% utilized it takes us 12m57s.</p>

<p>In absence of substantiation from other quarters we remain confident that we offer the fastest acquisition solution available today. We encourage you to do your own validation of both our results, and the claims of other tools.</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>We all face the problem of growing amounts of evidence on a regular basis. Improving raw acquisition speed is one way to limit the impact of this, and Evimetry has been consistently delivering the fastest acquisition speeds bar none since we launched two years ago.</p>

<p>Yet we aren’t the only solution claiming to be the “fastest” or have “unparalleled” speeds.</p>

<p>Led by a practitioner and forensic scientist, it is in Evimetry’s DNA to value substantiation. Our results are backed up by <a href="http://dfrws.org/sites/default/files/session-files/paper-wirespeed_extending_the_aff4_container_format_for_scalable_acquisition_and_live_analysis.pdf">scientifically peer-reviewed publication</a>s and documented in our <a href="http://www.schatzforensic.com.au/insideout/">blog posts</a> and <a href="https://evimetry.com/assets/docs/Advanced%20A&amp;A%20AFF4-PUBLIC.pdf">workshops</a>.</p>

<p>The following graph shows the acquisition rate of a 1TB Samsung 960 Pro NVMe drive. We used Evimetry to undertake linear acquisitions to 4x Samsung 512 GB 860 Pro SSD’s as striped images, using a 6-core Xeon-D CPU. The variable is drive allocation: we started with an empty (TRIM’ed) drive, then filled it with a Windows 10 OS install and a corpus of common corporate documents and video. These figures don’t account for verification time.</p>

<p>We can acquire an empty 1TB NVMe drive in 4 minutes 52s. That’s a rate of 200 GB/m, or 12 TB/h. No other product comes close to these speeds.</p>

<p><img src="https://evimetry.com/assets/img/NVMe%20MBs.png" alt="" /></p>

<p>In the real world, suspect drives contain data rather than empty runs of 0x00, and Evimetry’s acquisition speeds depend on how much actual data is stored on the suspect drive. For a drive that is 40% utilized it takes us 7m48s (still faster than anyone else’s claim) and at 95% utilized it takes us 12m57s.</p>

<p>In absence of substantiation from other quarters we remain confident that we offer the fastest acquisition solution available today. We encourage you to do your own validation of both our results, and the claims of other tools.</p>

		  ]]>
	  </content:encoded>
	  
	  
	  <media:thumbnail url="https://evimetry.com/assets/img/NVMe%20MBs.png" isDefault="true" />
      
    </item>
    
    <item>
      <title>How to analyse AFF4 linux memory images</title>
      <link>https://schatzforensic.com/insideout/2018/06/how-to-analyse-aff4-linux-memory-images/</link>
      <pubDate>Mon, 11 Jun 2018 21:13:54 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2018/06/how-to-analyse-aff4-linux-memory-images/</guid>
      <description><![CDATA[  <p><a href="/insideout/2018/06/how-to-acquire-linux-memory-images-using-without-a-driver/">In my last post I described Evimetry's support remote memory acquisition.</a> In this post I'll give a quick walkthough on setting up Volatility for analysis of those images.</p>

<p>I prefer to make a python virtualenv specifically for working with volatility. In this example, I'm using MacOS with brew for my python (the python shipped with MacOS is broken in regard to pip's TLS authentication). Hence the -p argument.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">mkdir volmem
<span class="nb">cd</span> volmem
virtualenv -p /usr/local/bin/python volmem
<span class="nb">source</span> volmem/bin/activate</code></pre></div>
<p>Install all the dependencies with the following (the last two aren't strictly necessary, but prevent a load of complaints from Volatility).</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">pip install future
pip install rdflib
pip install pyblake2
pip install intervaltree
pip install expiringdict
pip install aff4-snappy
pip install pyyaml
pip install pycrypto
pip install distorm3</code></pre></div>
<p>Pull in Volatility, the community plugins repository (where the AFF4 plugin resides), and the python AFF4 reader library. We set the python path so that the plugin can find the latter.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">git clone https://github.com/volatilityfoundation/volatility
git clone https://github.com/volatilityfoundation/community
git clone https://github.com/aff4/pyaff4
<span class="nb">export</span> <span class="nv">PYTHONPATH</span><span class="o">=</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>/pyaff4:%PYTHONPATH%</code></pre></div>
<p>Download the Linux profile you want to use with the memory image, and place it in Volatility's profile folder.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">wget https://github.com/volatilityfoundation/profiles/raw/master/Linux/Ubuntu/x64/Ubuntu16041.zip
mv Ubuntu16041.zip volatility/volatility/plugins/overlays/linux/

<span class="nb">cd</span> volatility</code></pre></div>
<p>Begin analysis. Note the usage of the --plugins line is crucial for picking up the AFF4 read plugin, as is the pythonpath environment variable we set earlier.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash"><span class="o">(</span>volmem<span class="o">)</span> neon:volatility bradley$ python vol.py --info
Volatility Foundation Volatility Framework <span class="m">2</span>.6

Profiles
--------
LinuxUbuntu16041x64 - A Profile <span class="k">for</span> Linux Ubuntu16041 x64

&lt;snip&gt;

<span class="o">(</span>volmem<span class="o">)</span> neon:volatility bradley$ python vol.py --plugins<span class="o">=</span>../community/AFF4 -f ~/Desktop/ImageDest/Ubuntu16041.RAM.aff4 --profile<span class="o">=</span>LinuxUbuntu16041x64 linux_pslist
Volatility Foundation Volatility Framework <span class="m">2</span>.6
Offset Name Pid PPid Uid Gid DTB Start Time
------------------ -------------------- --------------- --------------- --------------- ------ ------------------ ----------
0xffff88003bd60000 systemd <span class="m">1</span> <span class="m">0</span> <span class="m">0</span> <span class="m">0</span> 0x000000003b61a000 <span class="m">2018</span>-05-30 <span class="m">05</span>:25:41 UTC+0000
0xffff88003bd60dc0 kthreadd <span class="m">2</span> <span class="m">0</span> <span class="m">0</span> <span class="m">0</span> ------------------ <span class="m">2018</span>-05-30 <span class="m">05</span>:25:41 UTC+0000
0xffff88003bd61b80 ksoftirqd/0 <span class="m">3</span> <span class="m">2</span> <span class="m">0</span> <span class="m">0</span> ------------------ <span class="m">2018</span>-05-30 <span class="m">05</span>:25:41 UTC+0000
0xffff88003bd63700 kworker/0:0H <span class="m">5</span> <span class="m">2</span> <span class="m">0</span> <span class="m">0</span> ------------------ <span class="m">2018</span>-05-30 <span class="m">05</span>:25:41 UTC+0000

&lt;snip&gt;</code></pre></div>
<p>This works equally well for newer kernels with kernel address space layout randomisation (KASLR). To test this, I created a new volatility profile for kernel 4.10 on Ubuntu 16.04.4 per the instructions at <a href="https://github.com/volatilityfoundation/volatility/wiki/Linux">https://github.com/volatilityfoundation/volatility/wiki/Linux</a> . You can see below the output of the linux_bash plugin run against a VM that I first used to generate the profile and then use as the target of acqusition using the Evimetry live agent.</p>

<p>If you can't find a profile, and haven't done it before, I'd encourage you to give it a go.  It is extremely easy to create a new one (especially using VMWare, as it breezes through the install of the the target Linux OS). All up it took me about 5 minutes to install Ubuntu 16.04.4 and create a profile for it. Don't forget to go the extra step contributing back to the community with the new profile (<a href="https://github.com/volatilityfoundation/profiles/pull/57">as I did here</a>).</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">neon:volatility bradley$ python vol.py --plugins<span class="o">=</span>../community/AFF4 -f ~/Desktop/ImageDest/Ubuntu16044_PhysicalMemory.aff4 --profile<span class="o">=</span>LinuxUbuntu16044x64 linux_bash
Volatility Foundation Volatility Framework <span class="m">2</span>.6
Pid Name Command Time Command
-------- -------------------- ------------------------------ -------
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 uname -a
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-get update
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-cache search linux-kernel
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-get install openssh-server
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 <span class="nb">exit</span>
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-cache search linux-image
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-cache search kernel
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 sudo bash
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 uname
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 cat /proc/version
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 ifconfig
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-get install linux-image-4.10.0-14-generic
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 sudo bash
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 <span class="nb">exit</span>
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 <span class="nb">exit</span>
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 reboot
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-get install openssh-server
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 uname -a
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get update
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-cache search linux-kernel
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install linux-headers-4.10.0-14-generic
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 zip Ubuntu16044.zip module.dwarf /boot/System.map-4.10.0-14-generic
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install openssh-server
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 <span class="nb">exit</span>
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-cache search linux-image
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install dwarfdump
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-cache search kernel
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 sudo bash
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 make -C /lib/modules/4.10.0-14-generic/build <span class="nv">CONFIG_DEBUG_INFO</span><span class="o">=</span>y <span class="nv">M</span><span class="o">=</span><span class="nv">$PWD</span> modules
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install build-essential
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 ls
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 uname
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 cat /proc/version
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 ifconfig
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 zip Ubuntu16044.zip module.dwarf /boot/System.map-4.10.0-14-generic
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 <span class="nb">exit</span>
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 cat /proc/version
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 ls
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install linux-image-4.10.0-14-generic
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 sudo bash
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 <span class="nb">exit</span>
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 sudo bash
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 <span class="nb">exit</span>
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 <span class="nb">exit</span>
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 dwarfdump -di ./module.o &gt; module.dwarf
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 reboot
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install zip
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install openssh-server
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:49 UTC+0000 sudo bash
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 <span class="nb">exit</span>
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install openssh-server
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 sudo bash
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-cache search linux-image
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 <span class="nb">exit</span>
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 zip Ubuntu16044.zip module.dwarf /boot/System.map-4.10.0-14-generic
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 dwarfdump -di ./module.o &gt; module.dwarf
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install zip
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 ifconfig
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 reboot
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install linux-headers-4.10.0-14-generic
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-cache search kernel
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 cat /proc/version
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install dwarfdump
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 zip Ubuntu16044.zip module.dwarf /boot/System.map-4.10.0-14-generic
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 make -C /lib/modules/4.10.0-14-generic/build <span class="nv">CONFIG_DEBUG_INFO</span><span class="o">=</span>y <span class="nv">M</span><span class="o">=</span><span class="nv">$PWD</span> modules
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 sudo bash
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install openssh-server
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 ls
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 <span class="nb">exit</span>
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 ls
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install linux-image-4.10.0-14-generic
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 uname
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get update
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 uname -a
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-cache search linux-kernel
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install build-essential
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 <span class="nb">exit</span>
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 sudo bash
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 <span class="nb">exit</span>
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 cat /proc/version
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:51 UTC+0000 ls
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:22:04 UTC+0000 ./evimetry.agent <span class="m">192</span>.168.189.1</code></pre></div>]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p><a href="/insideout/2018/06/how-to-acquire-linux-memory-images-using-without-a-driver/">In my last post I described Evimetry's support remote memory acquisition.</a> In this post I'll give a quick walkthough on setting up Volatility for analysis of those images.</p>

<p>I prefer to make a python virtualenv specifically for working with volatility. In this example, I'm using MacOS with brew for my python (the python shipped with MacOS is broken in regard to pip's TLS authentication). Hence the -p argument.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">mkdir volmem
<span class="nb">cd</span> volmem
virtualenv -p /usr/local/bin/python volmem
<span class="nb">source</span> volmem/bin/activate</code></pre></div>
<p>Install all the dependencies with the following (the last two aren't strictly necessary, but prevent a load of complaints from Volatility).</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">pip install future
pip install rdflib
pip install pyblake2
pip install intervaltree
pip install expiringdict
pip install aff4-snappy
pip install pyyaml
pip install pycrypto
pip install distorm3</code></pre></div>
<p>Pull in Volatility, the community plugins repository (where the AFF4 plugin resides), and the python AFF4 reader library. We set the python path so that the plugin can find the latter.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">git clone https://github.com/volatilityfoundation/volatility
git clone https://github.com/volatilityfoundation/community
git clone https://github.com/aff4/pyaff4
<span class="nb">export</span> <span class="nv">PYTHONPATH</span><span class="o">=</span><span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>/pyaff4:%PYTHONPATH%</code></pre></div>
<p>Download the Linux profile you want to use with the memory image, and place it in Volatility's profile folder.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">wget https://github.com/volatilityfoundation/profiles/raw/master/Linux/Ubuntu/x64/Ubuntu16041.zip
mv Ubuntu16041.zip volatility/volatility/plugins/overlays/linux/

<span class="nb">cd</span> volatility</code></pre></div>
<p>Begin analysis. Note the usage of the --plugins line is crucial for picking up the AFF4 read plugin, as is the pythonpath environment variable we set earlier.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash"><span class="o">(</span>volmem<span class="o">)</span> neon:volatility bradley$ python vol.py --info
Volatility Foundation Volatility Framework <span class="m">2</span>.6

Profiles
--------
LinuxUbuntu16041x64 - A Profile <span class="k">for</span> Linux Ubuntu16041 x64

&lt;snip&gt;

<span class="o">(</span>volmem<span class="o">)</span> neon:volatility bradley$ python vol.py --plugins<span class="o">=</span>../community/AFF4 -f ~/Desktop/ImageDest/Ubuntu16041.RAM.aff4 --profile<span class="o">=</span>LinuxUbuntu16041x64 linux_pslist
Volatility Foundation Volatility Framework <span class="m">2</span>.6
Offset Name Pid PPid Uid Gid DTB Start Time
------------------ -------------------- --------------- --------------- --------------- ------ ------------------ ----------
0xffff88003bd60000 systemd <span class="m">1</span> <span class="m">0</span> <span class="m">0</span> <span class="m">0</span> 0x000000003b61a000 <span class="m">2018</span>-05-30 <span class="m">05</span>:25:41 UTC+0000
0xffff88003bd60dc0 kthreadd <span class="m">2</span> <span class="m">0</span> <span class="m">0</span> <span class="m">0</span> ------------------ <span class="m">2018</span>-05-30 <span class="m">05</span>:25:41 UTC+0000
0xffff88003bd61b80 ksoftirqd/0 <span class="m">3</span> <span class="m">2</span> <span class="m">0</span> <span class="m">0</span> ------------------ <span class="m">2018</span>-05-30 <span class="m">05</span>:25:41 UTC+0000
0xffff88003bd63700 kworker/0:0H <span class="m">5</span> <span class="m">2</span> <span class="m">0</span> <span class="m">0</span> ------------------ <span class="m">2018</span>-05-30 <span class="m">05</span>:25:41 UTC+0000

&lt;snip&gt;</code></pre></div>
<p>This works equally well for newer kernels with kernel address space layout randomisation (KASLR). To test this, I created a new volatility profile for kernel 4.10 on Ubuntu 16.04.4 per the instructions at <a href="https://github.com/volatilityfoundation/volatility/wiki/Linux">https://github.com/volatilityfoundation/volatility/wiki/Linux</a> . You can see below the output of the linux_bash plugin run against a VM that I first used to generate the profile and then use as the target of acqusition using the Evimetry live agent.</p>

<p>If you can't find a profile, and haven't done it before, I'd encourage you to give it a go.  It is extremely easy to create a new one (especially using VMWare, as it breezes through the install of the the target Linux OS). All up it took me about 5 minutes to install Ubuntu 16.04.4 and create a profile for it. Don't forget to go the extra step contributing back to the community with the new profile (<a href="https://github.com/volatilityfoundation/profiles/pull/57">as I did here</a>).</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">neon:volatility bradley$ python vol.py --plugins<span class="o">=</span>../community/AFF4 -f ~/Desktop/ImageDest/Ubuntu16044_PhysicalMemory.aff4 --profile<span class="o">=</span>LinuxUbuntu16044x64 linux_bash
Volatility Foundation Volatility Framework <span class="m">2</span>.6
Pid Name Command Time Command
-------- -------------------- ------------------------------ -------
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 uname -a
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-get update
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-cache search linux-kernel
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-get install openssh-server
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 <span class="nb">exit</span>
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-cache search linux-image
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-cache search kernel
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 sudo bash
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 uname
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 cat /proc/version
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 ifconfig
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-get install linux-image-4.10.0-14-generic
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 sudo bash
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 <span class="nb">exit</span>
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 <span class="nb">exit</span>
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 reboot
<span class="m">841</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:08:23 UTC+0000 apt-get install openssh-server
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 uname -a
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get update
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-cache search linux-kernel
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install linux-headers-4.10.0-14-generic
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 zip Ubuntu16044.zip module.dwarf /boot/System.map-4.10.0-14-generic
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install openssh-server
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 <span class="nb">exit</span>
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-cache search linux-image
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install dwarfdump
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-cache search kernel
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 sudo bash
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 make -C /lib/modules/4.10.0-14-generic/build <span class="nv">CONFIG_DEBUG_INFO</span><span class="o">=</span>y <span class="nv">M</span><span class="o">=</span><span class="nv">$PWD</span> modules
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install build-essential
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 ls
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 uname
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 cat /proc/version
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 ifconfig
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 zip Ubuntu16044.zip module.dwarf /boot/System.map-4.10.0-14-generic
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 <span class="nb">exit</span>
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 cat /proc/version
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 ls
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install linux-image-4.10.0-14-generic
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 sudo bash
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 <span class="nb">exit</span>
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 sudo bash
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 <span class="nb">exit</span>
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 <span class="nb">exit</span>
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 dwarfdump -di ./module.o &gt; module.dwarf
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 reboot
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install zip
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:46 UTC+0000 apt-get install openssh-server
<span class="m">7459</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:49 UTC+0000 sudo bash
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 <span class="nb">exit</span>
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install openssh-server
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 sudo bash
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-cache search linux-image
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 <span class="nb">exit</span>
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 zip Ubuntu16044.zip module.dwarf /boot/System.map-4.10.0-14-generic
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 dwarfdump -di ./module.o &gt; module.dwarf
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install zip
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 ifconfig
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 reboot
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install linux-headers-4.10.0-14-generic
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-cache search kernel
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 cat /proc/version
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install dwarfdump
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 zip Ubuntu16044.zip module.dwarf /boot/System.map-4.10.0-14-generic
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 make -C /lib/modules/4.10.0-14-generic/build <span class="nv">CONFIG_DEBUG_INFO</span><span class="o">=</span>y <span class="nv">M</span><span class="o">=</span><span class="nv">$PWD</span> modules
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 sudo bash
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install openssh-server
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 ls
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 <span class="nb">exit</span>
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 ls
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install linux-image-4.10.0-14-generic
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 uname
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get update
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 uname -a
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-cache search linux-kernel
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 apt-get install build-essential
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 <span class="nb">exit</span>
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 sudo bash
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 <span class="nb">exit</span>
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:50 UTC+0000 cat /proc/version
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:21:51 UTC+0000 ls
<span class="m">7472</span> bash <span class="m">2018</span>-05-31 <span class="m">16</span>:22:04 UTC+0000 ./evimetry.agent <span class="m">192</span>.168.189.1</code></pre></div>
		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>How to acquire Linux memory images using without a driver</title>
      <link>https://schatzforensic.com/insideout/2018/06/how-to-acquire-linux-memory-images-using-without-a-driver/</link>
      <pubDate>Sat, 09 Jun 2018 19:52:38 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2018/06/how-to-acquire-linux-memory-images-using-without-a-driver/</guid>
      <description><![CDATA[  

<p>For a long time now, operating systems such as Windows and MacOS have prevented user space applications from accessing the raw physical memory of the machine. Physical acquisition and virtualisation approaches aside, this has led the field to require the use of kernel drivers to export physical ram for acquisition. In the linux realm, Joe Sylve's LiME is the go-to for many.</p>

<p>It appears not widely known that on Linux x64, acquisition of physical memory is possible without using a driver such as LiME. The prerequisite here is that /proc/kcore is enabled, which fortunately is widely the case: Ubuntu ships with it enabled by default, as does Redhat. On x64 the full physical address space is mapped into the kernel address space, and /proc/kcore exports this as a part of its virtual ELF file view.</p>

<p>Fun fact: /proc/kcore is <em>big:</em> 128 TB.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">bradley@ubuntu:~$ ls -lh /proc/kcore
-r-------- <span class="m">1</span> root root 128T Jun <span class="m">8</span> <span class="m">18</span>:44 /proc/kcore</code></pre></div>
<p>You don't want to acquire /proc/kcore - just the relevant part.</p>

<p>Acquisition via this technique is something that Rekall pioneered, as far as I know (please correct me if you know better). Evimetry supports the technique in our live agent for remote acquisition. The following serves as a short howto on acquisition using currently available tools.</p>

<h3 id="how-to-acquire-evimetry">How to acquire: Evimetry</h3>

<p>Copy the Evimetry linux liveagent (x64) onto the suspect Linux host, along with its security certificates. Run the agent with the IP address of a Controller or a Dead Boot or Cloud agent as the destination:</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">root@ubuntu:~# ./evimetry.agent <span class="m">192</span>.168.189.1
Evimetry Lightweight Agent v3.0.8, a lightweight forensic acquisition agent.
Application IP Address: <span class="m">192</span>.168.189.207
Application IP Address: fe80::20c:29ff:fed7:3540
Application MAC Address: <span class="m">00</span>:0c:29:d7:35:40
Memory Size: <span class="m">971</span>.6MiB
Memory Allocation Alignment Size: <span class="m">4096</span>
Runnable IO threads: <span class="m">1</span>
Starting device enumeration
Exported devices:
/dev/sda <span class="o">[</span><span class="m">20</span>.0GiB<span class="o">]</span> : VMware_Virtual_S
/dev/sda1 <span class="o">(</span>ext4<span class="o">)</span> <span class="o">[</span><span class="m">19</span>.0GiB<span class="o">]</span> /
/dev/sda2 <span class="o">(</span>unknown<span class="o">)</span> <span class="o">[</span><span class="m">975</span>.0MiB<span class="o">]</span>
/dev/sda5 <span class="o">(</span>swap<span class="o">)</span> <span class="o">[</span><span class="m">975</span>.0MiB<span class="o">]</span>
/dev/sr0 <span class="o">[</span><span class="m">1024</span>.0MiB<span class="o">]</span> : VMware_Virtual_SATA_CDRW_Drive
No medium found
/dev/sr1 <span class="o">[</span><span class="m">1024</span>.0MiB<span class="o">]</span> : VMware_Virtual_SATA_CDRW_Drive
No medium found
/dev/fd0 <span class="o">[</span><span class="m">4</span>.0KiB<span class="o">]</span> : Unknown Model
No such device or address
Insufficient privileges to access device!
Checking Memory Map setup.
Memory Description: <span class="o">[</span><span class="m">971</span>.6MiB / <span class="m">4</span>.0GiB<span class="o">]</span>
Checking Certificate setup.
Secure Communications Enabled
Starting Fabric Manager
Attempting Fabric Connection</code></pre></div>
<p>Using the attached Evimetry Controler, acquisition is a simple GUI operation.</p>

<p><a href="https://evimetry.com/getting-started/linear-ram-live/"><img src="https://evimetry.com/assets/img/live-memory-acquire-linux.png" alt="Acquisition using Evimetry Controller &amp; Live Agent" /></a></p>

<p>This works fine for both old pre-KASLR kernels as well as newer KASLR kernels (the above was for a Ubuntu 14.04.4 x64 VM. <a href="https://evimetry.com/getting-started/linear-ram-live/">More information is available from the following walkthrough</a>.</p>

<h3 id="how-to-acquire-linpmem">How to acquire: linpmem</h3>

<p>Using the most recent released version of linpmem (2.1post4) <a href="https://github.com/google/rekall/releases">from the releases page</a>,  I was able to acquire an image of a Ubuntu 14.04.1 VM with the following command.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">root@ubuntu:~# ./linpmem-2.1.post4 --format map -c snappy -o image.aff4
Setting compression snappy
Imaging memory
Creating output AFF4 ZipFile.
Reading 0x8000 0MiB / 1023MiB 0MiB/s
Reading 0x3940000 57MiB / 1023MiB 227MiB/s
Reading 0x6068000 96MiB / 1023MiB 156MiB/s

&lt;snip&gt;

Reading 0x351d0000 849MiB / 1023MiB 247MiB/s
Reading 0x393f0000 915MiB / 1023MiB 264MiB/s
Reading 0x3df38000 991MiB / 1023MiB 300MiB/s
Adding /boot/System.map-4.4.0-31-generic as file:///boot/System.map-4.4.0-31-generic
Adding /boot/abi-4.4.0-31-generic as file:///boot/abi-4.4.0-31-generic
Adding /boot/config-4.4.0-31-generic as file:///boot/config-4.4.0-31-generic
Adding /boot/grub/ as file:///boot/grub/
E0608 <span class="m">12</span>:17:35.730147 <span class="m">4117</span> aff4_directory.cc:105<span class="o">]</span> Unable to find storage <span class="k">for</span> AFF4Directory file:///boot/grub/
E0608 <span class="m">12</span>:17:35.730480 <span class="m">4117</span> aff4_imager_utils.cc:259<span class="o">]</span> Unable to find file:///boot/grub/
Adding /boot/initrd.img-4.4.0-31-generic as file:///boot/initrd.img-4.4.0-31-generic
Reading 0x8000 0MiB / 30MiB 0MiB/s
Adding /boot/vmlinuz-4.4.0-31-generic as file:///boot/vmlinuz-4.4.0-31-generic</code></pre></div>
<p>CAVEAT: The most recent release of linpmem (linpmem-2.1.post4) failed for the Ubuntu 14.04.4 VM I tested. <a href="https://github.com/google/rekall/issues/419">See github issue.</a></p>

<h3 id="how-to-analyse">How to analyse</h3>

<p>My next post will describe how to analyse the images created above.</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	

<p>For a long time now, operating systems such as Windows and MacOS have prevented user space applications from accessing the raw physical memory of the machine. Physical acquisition and virtualisation approaches aside, this has led the field to require the use of kernel drivers to export physical ram for acquisition. In the linux realm, Joe Sylve's LiME is the go-to for many.</p>

<p>It appears not widely known that on Linux x64, acquisition of physical memory is possible without using a driver such as LiME. The prerequisite here is that /proc/kcore is enabled, which fortunately is widely the case: Ubuntu ships with it enabled by default, as does Redhat. On x64 the full physical address space is mapped into the kernel address space, and /proc/kcore exports this as a part of its virtual ELF file view.</p>

<p>Fun fact: /proc/kcore is <em>big:</em> 128 TB.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">bradley@ubuntu:~$ ls -lh /proc/kcore
-r-------- <span class="m">1</span> root root 128T Jun <span class="m">8</span> <span class="m">18</span>:44 /proc/kcore</code></pre></div>
<p>You don't want to acquire /proc/kcore - just the relevant part.</p>

<p>Acquisition via this technique is something that Rekall pioneered, as far as I know (please correct me if you know better). Evimetry supports the technique in our live agent for remote acquisition. The following serves as a short howto on acquisition using currently available tools.</p>

<h3 id="how-to-acquire-evimetry">How to acquire: Evimetry</h3>

<p>Copy the Evimetry linux liveagent (x64) onto the suspect Linux host, along with its security certificates. Run the agent with the IP address of a Controller or a Dead Boot or Cloud agent as the destination:</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">root@ubuntu:~# ./evimetry.agent <span class="m">192</span>.168.189.1
Evimetry Lightweight Agent v3.0.8, a lightweight forensic acquisition agent.
Application IP Address: <span class="m">192</span>.168.189.207
Application IP Address: fe80::20c:29ff:fed7:3540
Application MAC Address: <span class="m">00</span>:0c:29:d7:35:40
Memory Size: <span class="m">971</span>.6MiB
Memory Allocation Alignment Size: <span class="m">4096</span>
Runnable IO threads: <span class="m">1</span>
Starting device enumeration
Exported devices:
/dev/sda <span class="o">[</span><span class="m">20</span>.0GiB<span class="o">]</span> : VMware_Virtual_S
/dev/sda1 <span class="o">(</span>ext4<span class="o">)</span> <span class="o">[</span><span class="m">19</span>.0GiB<span class="o">]</span> /
/dev/sda2 <span class="o">(</span>unknown<span class="o">)</span> <span class="o">[</span><span class="m">975</span>.0MiB<span class="o">]</span>
/dev/sda5 <span class="o">(</span>swap<span class="o">)</span> <span class="o">[</span><span class="m">975</span>.0MiB<span class="o">]</span>
/dev/sr0 <span class="o">[</span><span class="m">1024</span>.0MiB<span class="o">]</span> : VMware_Virtual_SATA_CDRW_Drive
No medium found
/dev/sr1 <span class="o">[</span><span class="m">1024</span>.0MiB<span class="o">]</span> : VMware_Virtual_SATA_CDRW_Drive
No medium found
/dev/fd0 <span class="o">[</span><span class="m">4</span>.0KiB<span class="o">]</span> : Unknown Model
No such device or address
Insufficient privileges to access device!
Checking Memory Map setup.
Memory Description: <span class="o">[</span><span class="m">971</span>.6MiB / <span class="m">4</span>.0GiB<span class="o">]</span>
Checking Certificate setup.
Secure Communications Enabled
Starting Fabric Manager
Attempting Fabric Connection</code></pre></div>
<p>Using the attached Evimetry Controler, acquisition is a simple GUI operation.</p>

<p><a href="https://evimetry.com/getting-started/linear-ram-live/"><img src="https://evimetry.com/assets/img/live-memory-acquire-linux.png" alt="Acquisition using Evimetry Controller &amp; Live Agent" /></a></p>

<p>This works fine for both old pre-KASLR kernels as well as newer KASLR kernels (the above was for a Ubuntu 14.04.4 x64 VM. <a href="https://evimetry.com/getting-started/linear-ram-live/">More information is available from the following walkthrough</a>.</p>

<h3 id="how-to-acquire-linpmem">How to acquire: linpmem</h3>

<p>Using the most recent released version of linpmem (2.1post4) <a href="https://github.com/google/rekall/releases">from the releases page</a>,  I was able to acquire an image of a Ubuntu 14.04.1 VM with the following command.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">root@ubuntu:~# ./linpmem-2.1.post4 --format map -c snappy -o image.aff4
Setting compression snappy
Imaging memory
Creating output AFF4 ZipFile.
Reading 0x8000 0MiB / 1023MiB 0MiB/s
Reading 0x3940000 57MiB / 1023MiB 227MiB/s
Reading 0x6068000 96MiB / 1023MiB 156MiB/s

&lt;snip&gt;

Reading 0x351d0000 849MiB / 1023MiB 247MiB/s
Reading 0x393f0000 915MiB / 1023MiB 264MiB/s
Reading 0x3df38000 991MiB / 1023MiB 300MiB/s
Adding /boot/System.map-4.4.0-31-generic as file:///boot/System.map-4.4.0-31-generic
Adding /boot/abi-4.4.0-31-generic as file:///boot/abi-4.4.0-31-generic
Adding /boot/config-4.4.0-31-generic as file:///boot/config-4.4.0-31-generic
Adding /boot/grub/ as file:///boot/grub/
E0608 <span class="m">12</span>:17:35.730147 <span class="m">4117</span> aff4_directory.cc:105<span class="o">]</span> Unable to find storage <span class="k">for</span> AFF4Directory file:///boot/grub/
E0608 <span class="m">12</span>:17:35.730480 <span class="m">4117</span> aff4_imager_utils.cc:259<span class="o">]</span> Unable to find file:///boot/grub/
Adding /boot/initrd.img-4.4.0-31-generic as file:///boot/initrd.img-4.4.0-31-generic
Reading 0x8000 0MiB / 30MiB 0MiB/s
Adding /boot/vmlinuz-4.4.0-31-generic as file:///boot/vmlinuz-4.4.0-31-generic</code></pre></div>
<p>CAVEAT: The most recent release of linpmem (linpmem-2.1.post4) failed for the Ubuntu 14.04.4 VM I tested. <a href="https://github.com/google/rekall/issues/419">See github issue.</a></p>

<h3 id="how-to-analyse">How to analyse</h3>

<p>My next post will describe how to analyse the images created above.</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Announcing Evimetry Lab: changing  the game for in-lab forensics</title>
      <link>https://schatzforensic.com/insideout/2018/06/announcing-evimetry-lab-changing-the-game-for-in-lab-forensics/</link>
      <pubDate>Mon, 04 Jun 2018 15:01:16 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2018/06/announcing-evimetry-lab-changing-the-game-for-in-lab-forensics/</guid>
      <description><![CDATA[  <p>When it comes to preserving evidence, DF labs generally fall into two camps. Those that  acquire in the field, and those that collect evidence in the field,  only later doing acquisition in-lab. Over the last two years, Evimetry's product offerings have been primarily aimed at the former. Practitioners have benefited from the fastest in-field acquisitions, while at the same time enabling meaningful analysis work to occur while waiting for acquisition complete.</p>

<p>Evimetry Lab, announced last week at the EnFuse conference, changes the game for the latter group. This groundbreaking approach enables analysis and time-consuming processing tasks (such as indexing) to begin immediately after acquisition begins. The traditional delay between waiting for acquisition to complete prior to beginning processing is removed, leading to processing tasks completing hours earlier, and answers sooner.</p>

<p><a href="https://evimetry.com/evimetry-lab/"><img src="https://evimetry.com/assets/img/Lab1-SGT1T.svg" alt="Evimetry Lab Delivers answers hours sooner." />
</a></p>

<p>How much sooner? The comparison above shows a time-consuming indexing run using NUIX completing hours earlier when using Evimetry Lab as opposed to traditional forensic imaging workflows. There is also some live analysis using EnCase thrown in good measure.</p>

<p>Want more info? <a href="https://evimetry.com/evimetry-lab/">Check out the Evimetry Lab in more detail</a>, or send us an email.</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>When it comes to preserving evidence, DF labs generally fall into two camps. Those that  acquire in the field, and those that collect evidence in the field,  only later doing acquisition in-lab. Over the last two years, Evimetry's product offerings have been primarily aimed at the former. Practitioners have benefited from the fastest in-field acquisitions, while at the same time enabling meaningful analysis work to occur while waiting for acquisition complete.</p>

<p>Evimetry Lab, announced last week at the EnFuse conference, changes the game for the latter group. This groundbreaking approach enables analysis and time-consuming processing tasks (such as indexing) to begin immediately after acquisition begins. The traditional delay between waiting for acquisition to complete prior to beginning processing is removed, leading to processing tasks completing hours earlier, and answers sooner.</p>

<p><a href="https://evimetry.com/evimetry-lab/"><img src="https://evimetry.com/assets/img/Lab1-SGT1T.svg" alt="Evimetry Lab Delivers answers hours sooner." />
</a></p>

<p>How much sooner? The comparison above shows a time-consuming indexing run using NUIX completing hours earlier when using Evimetry Lab as opposed to traditional forensic imaging workflows. There is also some live analysis using EnCase thrown in good measure.</p>

<p>Want more info? <a href="https://evimetry.com/evimetry-lab/">Check out the Evimetry Lab in more detail</a>, or send us an email.</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Simple Deadboot provisioning and acquisition with Evimetry</title>
      <link>https://schatzforensic.com/insideout/2018/02/simple-deadboot-provisioning-and-acquisition-with-evimetry/</link>
      <pubDate>Wed, 14 Feb 2018 03:03:50 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2018/02/simple-deadboot-provisioning-and-acquisition-with-evimetry/</guid>
      <description><![CDATA[  

<p>We have just shipped two releases of Evimetry: v3.0.7 (in our stable stream) &amp; v3.1.5 (in our pre-release stream). Recent releases bring <strong>native Deadboot media creation</strong>, and introduce an <strong>improved Deadboot Imager UI</strong>.</p>

<h2 id="native-deadboot-media-creation">Native Deadboot Media Creation.</h2>

<p>We can now create Evimetry Deadboot USB's directly from the Controller, and for larger drives, use the additional space for evidence storage. With a single hard drive serving both as an Evimetry Deadboot and Evidence Repository, scarce USB ports are freed up on target devices, workflow is simplified, and the number of devices to manage limited.</p>

<p><a href="https://evimetry.com/evimetry-imager/"><img src="https://evimetry.com/assets/img/collector/create-deadboot.png" alt="Creation of a Deadboot USB flash drive in the Controller." />
</a></p>

<p>Small USB flash drives are setup solely as a Deadboot, just like our former workflow.</p>

<p><a href="https://evimetry.com/getting-started/installing/#PrepareAgent1">Read more about this feature here.</a></p>

<h2 id="improved-deadboot-imager-ui">Improved Deadboot Imager UI.</h2>

<p>For a while now the Deadboot agent has included a simple <a href="https://evimetry.com/evimetry-imager/">ASCII console-based Imager application</a>. This is useful for acquiring single computers, when it is either inconvenient or unfeasable to use the Controller and a network.</p>

<p>While we love the retro feel and simplicity of an ASCII/curses interface, the world is no longer friendly to text-mode UI's, with high-DPI monitors and text-mode free UEFI implementations meaning that text-mode no longer works everywhere. A graphical window based UI is now necessary.</p>

<p><a href="https://evimetry.com/evimetry-imager/"><img src="/uploads/2018/02/imager2-completed.png" alt="Acquisition almost completed using Evimetry Imager" />
</a></p>

<p>In the v3.1.3 pre-release we launched a <em>graphical</em> Imager application, and in today's prerelease (v3.1.5) the layout of the Imager UI has been refined.</p>

<h2 id="pulling-it-all-together">Pulling it all together.</h2>

<p>The following video demonstrates the workflow of preparing a Deadboot USB and then subsequent acquisition of a 500G NVMe drive in under 6 minutes.</p>

<div class="flex-video widescreen"><iframe src="https://www.youtube.com/embed/1NDvUgvJ9is" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>

<h2 id="more-information">More information.</h2>

<p>Full release notes are available via the <a href="https://evimetry.com/releases/">releases page</a>. The software may be downloaded from the <a href="https://my.evimetry.com/portal/software/">portal</a>.</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	

<p>We have just shipped two releases of Evimetry: v3.0.7 (in our stable stream) &amp; v3.1.5 (in our pre-release stream). Recent releases bring <strong>native Deadboot media creation</strong>, and introduce an <strong>improved Deadboot Imager UI</strong>.</p>

<h2 id="native-deadboot-media-creation">Native Deadboot Media Creation.</h2>

<p>We can now create Evimetry Deadboot USB's directly from the Controller, and for larger drives, use the additional space for evidence storage. With a single hard drive serving both as an Evimetry Deadboot and Evidence Repository, scarce USB ports are freed up on target devices, workflow is simplified, and the number of devices to manage limited.</p>

<p><a href="https://evimetry.com/evimetry-imager/"><img src="https://evimetry.com/assets/img/collector/create-deadboot.png" alt="Creation of a Deadboot USB flash drive in the Controller." />
</a></p>

<p>Small USB flash drives are setup solely as a Deadboot, just like our former workflow.</p>

<p><a href="https://evimetry.com/getting-started/installing/#PrepareAgent1">Read more about this feature here.</a></p>

<h2 id="improved-deadboot-imager-ui">Improved Deadboot Imager UI.</h2>

<p>For a while now the Deadboot agent has included a simple <a href="https://evimetry.com/evimetry-imager/">ASCII console-based Imager application</a>. This is useful for acquiring single computers, when it is either inconvenient or unfeasable to use the Controller and a network.</p>

<p>While we love the retro feel and simplicity of an ASCII/curses interface, the world is no longer friendly to text-mode UI's, with high-DPI monitors and text-mode free UEFI implementations meaning that text-mode no longer works everywhere. A graphical window based UI is now necessary.</p>

<p><a href="https://evimetry.com/evimetry-imager/"><img src="/uploads/2018/02/imager2-completed.png" alt="Acquisition almost completed using Evimetry Imager" />
</a></p>

<p>In the v3.1.3 pre-release we launched a <em>graphical</em> Imager application, and in today's prerelease (v3.1.5) the layout of the Imager UI has been refined.</p>

<h2 id="pulling-it-all-together">Pulling it all together.</h2>

<p>The following video demonstrates the workflow of preparing a Deadboot USB and then subsequent acquisition of a 500G NVMe drive in under 6 minutes.</p>

<div class="flex-video widescreen"><iframe src="https://www.youtube.com/embed/1NDvUgvJ9is" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>

<h2 id="more-information">More information.</h2>

<p>Full release notes are available via the <a href="https://evimetry.com/releases/">releases page</a>. The software may be downloaded from the <a href="https://my.evimetry.com/portal/software/">portal</a>.</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Native AFF4 read support for X-Ways &amp; Forensic Explorer</title>
      <link>https://schatzforensic.com/insideout/2017/12/native-aff4-read-support-for-x-ways-forensic-explorer/</link>
      <pubDate>Sat, 09 Dec 2017 03:15:07 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2017/12/native-aff4-read-support-for-x-ways-forensic-explorer/</guid>
      <description><![CDATA[  

<p>In the last two weeks, two of our favourite disk forensic tools integrated native read support for the AFF4 forensic format. Forensic Explorer released v4 of their product, with native AFF4 read support, and X-Ways Forensics released v19.5, which has a plugin API supporting our AFF4 read plugin.</p>

<p>This represents a big step forward towards general adoption of the next-generation image format.</p>

<h3 id="background">Background</h3>

<p>Evimetry's filesystem bridge provides a straightforward and efficient way of consuming AFF4 images from any commercial forensic tool, and results in faster analysis &amp; processing than E01's. Despite this, it is convenient to be able to open AFF4 images directly from tools without having this dependency.</p>

<p>For the last year and a half, Evimetry have been investing significant effort in growing the AFF4 ecosystem, by standardising the format, providing open-source implementations, integrations with leading open source forensic software, and working with commercial vendors to integrate read support.</p>

<p>In October we worked closely with X-Ways to define a plug-in API to support new forensic image formats, which X-Ways integrated in the 19.5 beta releases. We followed this up by producing an X-Ways plugin to read AFF4 images via our C++ based Evimetry libAFF4 Reader DLL. Around the same time, we provided the reader DLL's to the folks behind Forensic Explorer (FEX). In no time, the v4 beta builds of FEX supported reading AFF4 images too.</p>

<h3 id="usage-x-ways-19-5">Usage: X-Ways &gt;= 19.5</h3>

<p>Download the current Evimetry <a href="https://evimetry.com/assets/sw/libaff4-xways-2.0.3.zip">X-Ways AFF4 reader plugin</a>, and copy the contents into the X-Ways installation folder. Make sure you have the Visual C++ 2015 Runtime installed.</p>

<p><del>CAVEAT: Only x64 is supported for now.</del></p>

<p>UPDATE: We now support x86 (32 bit) as well.</p>

<h3 id="usage-forensic-explorer-4-0">Usage: Forensic Explorer &gt;= 4.0</h3>

<p>The current FEX 4.0 build already integrates the Evimetry libAFF4 reader DLLs. This DLL contains a bug that has since been fixed in a later version of the DLL. We anticipate that this will make it into the next release of FEX. In the meantime replace the libaff4 DLL in Forensic Explorer with the one contained in the <a href="https://evimetry.com/assets/sw/libaff4-2.0.2.zip">Evimetry libAFF4 reader DLL</a> package.</p>

<h3 id="caveat-beta-code-quality">Caveat: BETA code quality</h3>

<p>Please note that the Evimetry libAFF4 reader DLLs are currently at BETA quality, while we undertake further testing and importantly, tuning. If you strike any issues, please submit a bug report to support@evimetry.com .</p>

<h2 id="update-18-june-2019">Update 18 June 2019</h2>

<p>The plugin has been updated and can now be found at the <a href="https://evimetry.com/evimetry-xways-plugin/">Evimetry X-Ways Plugin page</a>.</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	

<p>In the last two weeks, two of our favourite disk forensic tools integrated native read support for the AFF4 forensic format. Forensic Explorer released v4 of their product, with native AFF4 read support, and X-Ways Forensics released v19.5, which has a plugin API supporting our AFF4 read plugin.</p>

<p>This represents a big step forward towards general adoption of the next-generation image format.</p>

<h3 id="background">Background</h3>

<p>Evimetry's filesystem bridge provides a straightforward and efficient way of consuming AFF4 images from any commercial forensic tool, and results in faster analysis &amp; processing than E01's. Despite this, it is convenient to be able to open AFF4 images directly from tools without having this dependency.</p>

<p>For the last year and a half, Evimetry have been investing significant effort in growing the AFF4 ecosystem, by standardising the format, providing open-source implementations, integrations with leading open source forensic software, and working with commercial vendors to integrate read support.</p>

<p>In October we worked closely with X-Ways to define a plug-in API to support new forensic image formats, which X-Ways integrated in the 19.5 beta releases. We followed this up by producing an X-Ways plugin to read AFF4 images via our C++ based Evimetry libAFF4 Reader DLL. Around the same time, we provided the reader DLL's to the folks behind Forensic Explorer (FEX). In no time, the v4 beta builds of FEX supported reading AFF4 images too.</p>

<h3 id="usage-x-ways-19-5">Usage: X-Ways &gt;= 19.5</h3>

<p>Download the current Evimetry <a href="https://evimetry.com/assets/sw/libaff4-xways-2.0.3.zip">X-Ways AFF4 reader plugin</a>, and copy the contents into the X-Ways installation folder. Make sure you have the Visual C++ 2015 Runtime installed.</p>

<p><del>CAVEAT: Only x64 is supported for now.</del></p>

<p>UPDATE: We now support x86 (32 bit) as well.</p>

<h3 id="usage-forensic-explorer-4-0">Usage: Forensic Explorer &gt;= 4.0</h3>

<p>The current FEX 4.0 build already integrates the Evimetry libAFF4 reader DLLs. This DLL contains a bug that has since been fixed in a later version of the DLL. We anticipate that this will make it into the next release of FEX. In the meantime replace the libaff4 DLL in Forensic Explorer with the one contained in the <a href="https://evimetry.com/assets/sw/libaff4-2.0.2.zip">Evimetry libAFF4 reader DLL</a> package.</p>

<h3 id="caveat-beta-code-quality">Caveat: BETA code quality</h3>

<p>Please note that the Evimetry libAFF4 reader DLLs are currently at BETA quality, while we undertake further testing and importantly, tuning. If you strike any issues, please submit a bug report to support@evimetry.com .</p>

<h2 id="update-18-june-2019">Update 18 June 2019</h2>

<p>The plugin has been updated and can now be found at the <a href="https://evimetry.com/evimetry-xways-plugin/">Evimetry X-Ways Plugin page</a>.</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>AWS EC2 Cloud Storage Acquisition with Evimetry</title>
      <link>https://schatzforensic.com/insideout/2017/09/aws-ec2-cloud-storage-acquisition-with-evimetry/</link>
      <pubDate>Sat, 16 Sep 2017 08:14:32 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2017/09/aws-ec2-cloud-storage-acquisition-with-evimetry/</guid>
      <description><![CDATA[  

<p>You have been tasked with forensic acquisition of 6 servers in the AWS cloud, with a total of 2TB of storage. How do you do it?</p>

<p>This post will describe the method I applied in a recent case, where we collect the storage, acquired it into forensic images, and pulled down the images into our custody overnight. While I will be describing how I did it using Evimetry, the method is easily translatable to other tools.</p>

<h3 id="storage-forensics-in-aws">Storage forensics in AWS</h3>

<p>Unlike many cloud IAAS platforms, AWS provides us with the ability to take a Snapshot of the storage of a Virtual Computer (an Instance, in EC2 parlance). This gives you a point in time copy of the storage device. This isn’t a forensic image, as there isn’t a hash protecting the copy.</p>

<p>This enables us to quickly Collect a copy of the storage, without affecting the availability of the Target device. To truly collect the copy though, we need to take it under our control.  To do this, we rely on the ability of AWS to share Snapshots between accounts.</p>

<p>Once we have access to the Snapshot in our own Security Domain (account), we can then shift to forensic acquisition of the copy. This is best achieved by generating a Volume from the Snapshot, attaching the Volume to a purpose-built acquisition server, and acquiring using regular forensic processes. Once a forensic image is acquired, we then Transfer it out of the cloud to store on a storage device that we Possess.</p>

<p><a href="/uploads/2017/09/1-EC2-CloudStorage.png"><img src="/uploads/2017/09/1-EC2-CloudStorage.png" alt="1-EC2-CloudStorage" />
</a></p>

<p>The following sections step through the process of undertaking the method.</p>

<h3 id="evidence-isolation-location">Evidence Isolation &amp; Location</h3>

<p>First up, create your own Security Domain for Collecting the Snapshots into, and undertaking acquisition. In AWS, this is easily achieved by maintaining your own account, separate to the TARGET account. The below screenshot displays an account I have established under my own name, logged into the AWS Console.</p>

<p>I recommend running the two separate AWS security domains (the TARGET and EVIDENCE) using two separate web browser windows, one of them using private mode browsing so that you can use the TARGET’s credentials in one, and your security domain’s credentials in another.</p>

<p><a href="/uploads/2017/09/2-AccountSettings.png"><img src="/uploads/2017/09/2-AccountSettings.png" alt="2-AccountSettings" />
</a></p>

<p>Note the Account ID (993480464498) – this will be required to identify this security domain when we come to share a Snapshot from the TARGET to our security domain.</p>

<h3 id="identification">Identification</h3>

<p>In the TARGET AWS console, use the left menu, “Instances” to show the instances, and find the instance that you want to collect.</p>

<p>In the screen capture below, one can see the TARGET instance, the instance ID (in this case i-065e4cd1fbf56c92e), the block device volume (vol-08c5f1566ec4ea6c5), and the Availability Zone “ap-southeast-2c”. These identifiers should be documented to establish the provenance of the evidence.</p>

<p><a href="/uploads/2017/09/3-Target-Details.png"><img src="/uploads/2017/09/3-Target-Details.png" alt="3-Target-Details" />
</a></p>

<p>In the left menu, “Elastic Block Store”, select “Snapshots”, and then “Create Snapshot”.</p>

<p><a href="/uploads/2017/09/4-CreateSnapshot.png"><img src="/uploads/2017/09/4-CreateSnapshot.png" alt="4-CreateSnapshot" />
</a></p>

<p>Select the volume of our TARGET server (ol-08c5f1566ec4ea6c5), and describe the evidence.</p>

<p><a href="/uploads/2017/09/5-CreateSnapshot.png"><img src="/uploads/2017/09/5-CreateSnapshot.png" alt="5-CreateSnapshot" />
</a></p>

<p>We now have a snapshot of the block storage of the instance. We record the Snapshot ID (snap-0925cec0faee0659a) to maintain provenance of the evidence.</p>

<p><a href="/uploads/2017/09/6-ModifyPermissions.png"><img src="/uploads/2017/09/6-ModifyPermissions.png" alt="6-ModifyPermissions" />
</a></p>

<p>Now that we have an image (not a forensic image, as we don’t have a hash), we want to Collect it. This means taking possession of it, so that it can’t be modified. To do this, we share the image with the EVIDENCE security domain we created earlier.</p>

<p>Recalling that the Account ID of our acquisition security domain is (993480464498), we privately share the image with that account.</p>

<p><a href="/uploads/2017/09/7-ModifyPermissions.png"><img src="/uploads/2017/09/7-ModifyPermissions.png" alt="7-ModifyPermissions" />
</a></p>

<p>Note that the snapshot isn’t instantaneous and may take some minutes to complete.</p>

<h3 id="prepare-evidence-storage-server-server-provisioning">Prepare Evidence Storage Server – Server provisioning</h3>

<p>While the snapshot is going, switch browser windows (and security domains), and begin setting up your Evidence Server in the same datacentre as the target server. This will be running the Evimetry Cloud Agent, and will be co-located with the TARGET server for efficiency and speed. In the below AWS control panel, we set the location to “Sydney” which matches the TARGET server in this instance.</p>

<p>In the left menu we select “Instances” and then “Launch Instance”</p>

<p><a href="/uploads/2017/09/8-LaunchInstance.png"><img src="/uploads/2017/09/8-LaunchInstance.png" alt="8-LaunchInstance" />
</a></p>

<p>To deploy the Evimetry Cloud Agent, we need an Ubuntu 14.04 instance.  Select that.</p>

<p><a href="/uploads/2017/09/9-ChooseAMI.png"><img src="/uploads/2017/09/9-ChooseAMI.png" alt="9-ChooseAMI" />
</a></p>

<p>The speed at which your acquisition will occur will depend on a number of factors, including the virtual disk size, the performance of the virtual storage, and the number of CPU’s you have in the server. In a future blog post, I will go into this in more detail, but for now, select a 4 CPU machine with moderate performance.</p>

<p><a href="/uploads/2017/09/10-ChooseInstanceType.png"><img src="/uploads/2017/09/10-ChooseInstanceType.png" alt="10-ChooseInstanceType" />
</a></p>

<p>Next up, we want to make sure that the evidence storage server is as close as possible to the target. From before, we have identified that that the target is in “ap-southeast-2c”, so we make sure that the subnet matches. We also ensure that we enable the auto assignment of a public IP, so we can connect to the server. This is sufficient to then “Review &amp; Launch”.</p>

<p><a href="/uploads/2017/09/11-ConfigureInstanceDetails.png"><img src="/uploads/2017/09/11-ConfigureInstanceDetails.png" alt="11-ConfigureInstanceDetails" />
</a></p>

<p>Finally, we launch the new Evidence Storage instance.</p>

<p><a href="/uploads/2017/09/12-ReviewAndLaunch.png"><img src="/uploads/2017/09/12-ReviewAndLaunch.png" alt="12-ReviewAndLaunch" />
</a></p>

<p>The final task in bringing up the evidence storage server is to establish a key pair for working with the server. We create a new key pair called “SF-Acquisition” below.</p>

<p><a href="/uploads/2017/09/13-CreateKeyPair.png"><img src="/uploads/2017/09/13-CreateKeyPair.png" alt="13-CreateKeyPair" />
</a></p>

<p>Download the key pair, and save it somewhere safely. Example shell commands follow.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">cp ~/Downloads/SF-Acquisition.pem ~/Documents/keys/

chmod og-rwx ~/Documents/keys/SF-Acquisition.pem</code></pre></div>
<p>After launching, traverse the launch status window to the new instance.</p>

<p><a href="/uploads/2017/09/14-LaunchStatus.png"><img src="/uploads/2017/09/14-LaunchStatus.png" alt="14-LaunchStatus" />
</a></p>

<p>On following the instance link, we see the Instance details. Note the following important details. The public IP is 54.206.15.84, and the Security Group is “launch-wizard-3”.</p>

<p><a href="/uploads/2017/09/15a-InstanceProperties.png"><img src="/uploads/2017/09/15a-InstanceProperties.png" alt="15a-InstanceProperties" />
</a></p>

<h3 id="prepare-evidence-server-deploy-evimetry-cloud-agent">Prepare Evidence Server – Deploy Evimetry Cloud Agent</h3>

<p>We now deploy the Evimetry Cloud Agent on the Evidence Server.</p>

<p>First up, we SSH into the Evidence Server, using the private key from before, and the public IP address of the machine.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">&gt; 
&gt; neon:tmp bradley$ ssh -i ~/Documents/keys/SF-Acquisition.pem ubuntu@54.206.15.84
&gt; 
&gt; 

&gt; 
&gt; Welcome to Ubuntu <span class="m">14</span>.04.5 LTS <span class="o">(</span>GNU/Linux <span class="m">3</span>.13.0-125-generic x86_64<span class="o">)</span>
&gt; 
&gt; 

&gt; 
&gt;  * Documentation:  https://help.ubuntu.com/
&gt; 
&gt; 

&gt; 
&gt;   System information as of Fri Sep <span class="m">15</span> <span class="m">07</span>:01:38 UTC <span class="m">2017</span>
&gt; 
&gt; 

&gt; 
&gt;   System load:  <span class="m">0</span>.0               Processes:           <span class="m">140</span>
&gt; 
&gt; 

&gt; 
&gt;   Usage of /:   <span class="m">11</span>.8% of <span class="m">7</span>.74GB   Users logged in:     <span class="m">0</span>
&gt; 
&gt; 

&gt; 
&gt;   Memory usage: <span class="m">0</span>%                IP address <span class="k">for</span> eth0: <span class="m">172</span>.31.19.255
&gt; 
&gt; 

&gt; 
&gt;   Swap usage:   <span class="m">0</span>%
&gt; 
&gt; 

&gt; 
&gt;   Graph this data and manage this system at:
&gt; 
&gt; 

&gt; 
&gt;     https://landscape.canonical.com/
&gt; 
&gt; 

&gt; 
&gt;   Get cloud support with Ubuntu Advantage Cloud Guest:
&gt; 
&gt; 

&gt; 
&gt;     http://www.ubuntu.com/business/services/cloud
&gt; 
&gt; 

&gt; 
&gt; <span class="m">19</span> packages can be updated.
&gt; 
&gt; 

&gt; 
&gt; <span class="m">8</span> updates are security updates.
&gt; 
&gt; 

&gt; 
&gt; New release <span class="s1">&#39;16.04.3 LTS&#39;</span> available.
&gt; 
&gt; 

&gt; 
&gt; Run <span class="s1">&#39;do-release-upgrade&#39;</span> to upgrade to it.
&gt; 
&gt; 

&gt; 
&gt; The programs included with the Ubuntu system are free software<span class="p">;</span>
&gt; 
&gt; 

&gt; 
&gt; the exact distribution terms <span class="k">for</span> each program are described in the
&gt; 
&gt; 

&gt; 
&gt; individual files in /usr/share/doc/*/copyright.
&gt; 
&gt; 

&gt; 
&gt; Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
&gt; 
&gt; 

&gt; 
&gt; applicable law.
&gt; 
&gt; 

&gt; 
&gt; ubuntu@ip-172-31-19-255:~$ 
&gt; 
&gt; </code></pre></div>
<p>We need to do admin level install operations, so make sure you are in a root shell session by executing <em><strong>“sudo bash”</strong></em></p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">ubuntu@ip-172-31-19-255:~$ sudo bash

root@ip-172-31-19-255:~#</code></pre></div>
<p>Next, we install the Evimetry Cloud Agent, using a simple 2-line UNIX command. First log into the Evimetry Portal using your credentials. Then select the “Deploy Cloud Agent” option from the menu.</p>

<p><a href="/uploads/2017/09/16-EvimetryPortal.png"><img src="/uploads/2017/09/16-EvimetryPortal.png" alt="16-EvimetryPortal" />
</a></p>

<p>We deploy the cloud agent using a simple 2 line shell script. Copy and paste it into your SSH session.</p>

<p><a href="/uploads/2017/09/17-DeployCloudAgent.png"><img src="/uploads/2017/09/17-DeployCloudAgent.png" alt="17-DeployCloudAgent" />
</a></p>

<p>In the SSH session, the VM will be patched, and the Evimetry Cloud Agent installed. Answer “Yes” to all by default. It takes around 30 seconds.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash"> root@ip-172-31-19-255:~# wget -O install_script_ubuntu.sh https://my.evimetry.com/portal/install_script_ubuntu.sh?6a063dfa450349cef1a1dbc0eacd2b75af6e84ce

--2017-09-15 <span class="m">07</span>:04:20--  https://my.evimetry.com/portal/install_script_ubuntu.sh?6a063dfa450349cef1a1dbc0eacd2b75af6e84ce

Resolving my.evimetry.com <span class="o">(</span>my.evimetry.com<span class="o">)</span>... <span class="m">104</span>.237.142.195

Connecting to my.evimetry.com <span class="o">(</span>my.evimetry.com<span class="o">)</span><span class="p">|</span><span class="m">104</span>.237.142.195<span class="p">|</span>:443... connected.

HTTP request sent, awaiting response... <span class="m">200</span> OK

Length: <span class="m">9865</span> <span class="o">(</span><span class="m">9</span>.6K<span class="o">)</span> <span class="o">[</span>text/plain<span class="o">]</span>

Saving to: ‘install_script_ubuntu.sh’

<span class="m">100</span>%<span class="o">[==================================================================================</span>&gt;<span class="o">]</span> <span class="m">9</span>,865       --.-K/s   in 0s

<span class="m">2017</span>-09-15 <span class="m">07</span>:04:21 <span class="o">(</span><span class="m">216</span> MB/s<span class="o">)</span> - ‘install_script_ubuntu.sh’ saved <span class="o">[</span><span class="m">9865</span>/9865<span class="o">]</span>

root@ip-172-31-19-255:~# bash install_script_ubuntu.sh

<span class="c1">##########################################################################################</span>

Updating APT and Installing dependencies

<span class="c1">##########################################################################################</span>

Run sudo apt-get --yes update <span class="o">[</span>Y/n/a<span class="o">]</span>?<span class="sb">```</span>


<span class="o">&lt;&lt;&lt;</span>SNIP&gt;&gt;&gt;


<span class="sb">```</span>bash##########################################################################################

Configuring agent config <span class="k">for</span> cloud deployment.

<span class="c1">##########################################################################################</span>

Artifact:    evimetry.agent

Description: Agent Application <span class="k">for</span> Evimetry Application Suite

Version:     <span class="m">3</span>.0.1

Build:       <span class="m">1117</span>

Build Date:  <span class="m">2017</span>-07-17T08:39:06.891+1000

evimetry.agent start/running, process <span class="m">4917</span>

<span class="c1">############################################################################################</span>

Evimetry installed and started. Point your controller at <span class="m">172</span>.31.3.157.

Control service by stop/start/restart evimetry.agent

Logs are in /var/log/upstart/evimetry.agent.log

Configuration is in /etc/init/evimetry.agent.conf

<span class="c1">############################################################################################</span></code></pre></div>
<p>The final thing to setup is a port forward so that we can connect through to the Evidence Server. Unlike some cloud services, EC2 Instances sit on a private IP address, behind a firewall.</p>

<p>In the <em>“Network &amp; Security”</em> section of the console, go to “Security Groups”. Recalling from the Instance that is was started in the Security Group “Launch Wizard 3”, edit the inbound rules of that security group.</p>

<p><a href="/uploads/2017/09/18-EditSecurity.png"><img src="/uploads/2017/09/18-EditSecurity.png" alt="18-EditSecurity" />
</a></p>

<p>Create a rule forwarding the Evimetry Cloud Agent’s port (TCP 9982) to the Evidence Server.</p>

<p><a href="/uploads/2017/09/19-AddPortForward.png"><img src="/uploads/2017/09/19-AddPortForward.png" alt="19-AddPortForward" />
</a></p>

<h3 id="verify-access-to-evimetry-cloud-agent">Verify Access to Evimetry Cloud Agent</h3>

<p>At this point, the Evimetry cloud agent is ready to be used. Using the public IP of the VM (54.206.15.84), connect in using the Evimetry Controller.</p>

<p><a href="/uploads/2017/09/20-ConnectController.png"><img src="/uploads/2017/09/20-ConnectController.png" alt="20-ConnectController" />
</a></p>

<p>The agent will appear in the controller’s fabric nodes view (note that the IP of the Evidence Server is showing a 172.X.X.X private IP address). Visible underneath it is its storage, and an Evimetry Repository, which is located on its internal storage. We will acquire our images into this Repository.</p>

<p><a href="/uploads/2017/09/21-ViewCloudAgent.png"><img src="/uploads/2017/09/21-ViewCloudAgent.png" alt="21-ViewCloudAgent" />
</a></p>

<h3 id="acquiring-the-image">Acquiring the image</h3>

<p>We now go back to the EVIDENCE Security Domain, and access the &quot;Elastic Block Store&quot; | &quot;Snapshots&quot; section. Be sure to filter the view to “Private Snapshot” as it won’t be visible in the default setting.</p>

<p>The snapshot from the SUSPECT security domain will now be visible (check the Snapshot ID matches). We now transform the image into a Volume, which can then be added to a running instance in much the same way we plug removable storage into a computer. First, right click on the Snapshot and select “Create Volume”.</p>

<p><a href="/uploads/2017/09/22-CreateVolume.png"><img src="/uploads/2017/09/22-CreateVolume.png" alt="22-CreateVolume" />
</a></p>

<p>In the volume creation form, where we create the evidence storage instance, we choose the Availability Zone of _“_<em>ap-southeast-2c”.</em> Make sure that you choose this zone as the instance where the Volume is created, and then click on “Create Volume” to create the volume.</p>

<p><a href="/uploads/2017/09/23-CreateVolumeDetails.png"><img src="/uploads/2017/09/23-CreateVolumeDetails.png" alt="23-CreateVolumeDetails" />
</a></p>

<p>Note the volume ID, of the new Volume, which is vol-097e59361bd515f78. Follow the link.</p>

<p><a href="/uploads/2017/09/24-VolumeCreated.png"><img src="/uploads/2017/09/24-VolumeCreated.png" alt="24-VolumeCreated" />
</a></p>

<p>Now we can attach the volume to our Evidence Server. Go to the &quot;Elastic Block Store&quot; | &quot;Volumes&quot; area and, noting the Volume ID, select Attach Volume.</p>

<p><a href="/uploads/2017/09/25-AttachVolume.png"><img src="/uploads/2017/09/25-AttachVolume.png" alt="25-AttachVolume" />
</a></p>

<p>Recalling that the instance ID of our Evidence Server is i-0af9148e32f37b8ac, attach the Volume as a virtual disk.</p>

<p><a href="/uploads/2017/09/26-AttachVolumeDetails.png"><img src="/uploads/2017/09/26-AttachVolumeDetails.png" alt="26-AttachVolumeDetails" />
</a></p>

<p>Refreshing the Cloud Agent instance listed in the Evimetry Controller  now shows the disk attached to the agent as /dev/xvdf . Note that the newly attached disk is locked against mounting and writing. Right click on the disk and select Acquire.</p>

<p><a href="/uploads/2017/09/27-AcquireVolume.png"><img src="/uploads/2017/09/27-AcquireVolume.png" alt="27-AcquireVolume" />
</a></p>

<p>The acquisition settings dialog will appear. Select a full linear acquisition of the attached drive, and add the Repository on the Storage Server as the container location. Give the Image a name using your standard image naming scheme, and document the original Volume ID and Instance ID associated with this image. Then click OK.</p>

<p><a href="/uploads/2017/09/28-AcquireVolumeDetails.png"><img src="/uploads/2017/09/28-AcquireVolumeDetails.png" alt="28-AcquireVolumeDetails" />
</a></p>

<p>Acquisition is now underway. The screenshot below shows an acquisition using the “Provisioned IOPS SSD” as Volume storage, which proceeds at around 90MB/s, constrained by the storage of the infrastructure. Our testing shows that using “General Purpose SSD’s” as storage gives a trickling rate of around 10MB/s (that’s 4x slower than USB2!). A future post will focus on scaling this speed.</p>

<p><a href="/uploads/2017/09/29-Acquiring.png"><img src="/uploads/2017/09/29-Acquiring.png" alt="29-Acquiring" />
</a></p>

<p>When the acquisition (including verification) completes, Evimetry will display a completion dialog.</p>

<p><a href="/uploads/2017/09/30-AcquisitionCompleted.png"><img src="/uploads/2017/09/30-AcquisitionCompleted.png" alt="30-AcquisitionCompleted" />
</a></p>

<p>We then transfer the image locally to the lab using Evimetry, by flipping to the “Images” tab of the Controller, and right clicking on the newly created image.</p>

<p><a href="/uploads/2017/09/31-TransferImage.png"><img src="/uploads/2017/09/31-TransferImage.png" alt="31-TransferImage" />
</a></p>

<p>After choosing the destination, the image downloads locally.</p>

<p><a href="/uploads/2017/09/32-TransferImageDetails.png"><img src="/uploads/2017/09/32-TransferImageDetails.png" alt="32-TransferImageDetails" />
</a></p>

<h3 id="conclusion">Conclusion</h3>

<p>This post has described a methodology for acquiring storage in the EC2 cloud. Using EC2 Snapshots in conjunction with Snapshot Sharing enables one to quickly Collect copies of Target storage. Acquisition can then be undertaken in the Cloud, so that the evidence is protected by a hash at the earliest opportunity, while minimising the amount of data that needs to be copied.</p>

<p>In future posts, I will follow up on how virtual disk selection affects the speed of acquisition; how to acquire volatile memory in AWS; and how to undertake analysis in the cloud.</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	

<p>You have been tasked with forensic acquisition of 6 servers in the AWS cloud, with a total of 2TB of storage. How do you do it?</p>

<p>This post will describe the method I applied in a recent case, where we collect the storage, acquired it into forensic images, and pulled down the images into our custody overnight. While I will be describing how I did it using Evimetry, the method is easily translatable to other tools.</p>

<h3 id="storage-forensics-in-aws">Storage forensics in AWS</h3>

<p>Unlike many cloud IAAS platforms, AWS provides us with the ability to take a Snapshot of the storage of a Virtual Computer (an Instance, in EC2 parlance). This gives you a point in time copy of the storage device. This isn’t a forensic image, as there isn’t a hash protecting the copy.</p>

<p>This enables us to quickly Collect a copy of the storage, without affecting the availability of the Target device. To truly collect the copy though, we need to take it under our control.  To do this, we rely on the ability of AWS to share Snapshots between accounts.</p>

<p>Once we have access to the Snapshot in our own Security Domain (account), we can then shift to forensic acquisition of the copy. This is best achieved by generating a Volume from the Snapshot, attaching the Volume to a purpose-built acquisition server, and acquiring using regular forensic processes. Once a forensic image is acquired, we then Transfer it out of the cloud to store on a storage device that we Possess.</p>

<p><a href="/uploads/2017/09/1-EC2-CloudStorage.png"><img src="/uploads/2017/09/1-EC2-CloudStorage.png" alt="1-EC2-CloudStorage" />
</a></p>

<p>The following sections step through the process of undertaking the method.</p>

<h3 id="evidence-isolation-location">Evidence Isolation &amp; Location</h3>

<p>First up, create your own Security Domain for Collecting the Snapshots into, and undertaking acquisition. In AWS, this is easily achieved by maintaining your own account, separate to the TARGET account. The below screenshot displays an account I have established under my own name, logged into the AWS Console.</p>

<p>I recommend running the two separate AWS security domains (the TARGET and EVIDENCE) using two separate web browser windows, one of them using private mode browsing so that you can use the TARGET’s credentials in one, and your security domain’s credentials in another.</p>

<p><a href="/uploads/2017/09/2-AccountSettings.png"><img src="/uploads/2017/09/2-AccountSettings.png" alt="2-AccountSettings" />
</a></p>

<p>Note the Account ID (993480464498) – this will be required to identify this security domain when we come to share a Snapshot from the TARGET to our security domain.</p>

<h3 id="identification">Identification</h3>

<p>In the TARGET AWS console, use the left menu, “Instances” to show the instances, and find the instance that you want to collect.</p>

<p>In the screen capture below, one can see the TARGET instance, the instance ID (in this case i-065e4cd1fbf56c92e), the block device volume (vol-08c5f1566ec4ea6c5), and the Availability Zone “ap-southeast-2c”. These identifiers should be documented to establish the provenance of the evidence.</p>

<p><a href="/uploads/2017/09/3-Target-Details.png"><img src="/uploads/2017/09/3-Target-Details.png" alt="3-Target-Details" />
</a></p>

<p>In the left menu, “Elastic Block Store”, select “Snapshots”, and then “Create Snapshot”.</p>

<p><a href="/uploads/2017/09/4-CreateSnapshot.png"><img src="/uploads/2017/09/4-CreateSnapshot.png" alt="4-CreateSnapshot" />
</a></p>

<p>Select the volume of our TARGET server (ol-08c5f1566ec4ea6c5), and describe the evidence.</p>

<p><a href="/uploads/2017/09/5-CreateSnapshot.png"><img src="/uploads/2017/09/5-CreateSnapshot.png" alt="5-CreateSnapshot" />
</a></p>

<p>We now have a snapshot of the block storage of the instance. We record the Snapshot ID (snap-0925cec0faee0659a) to maintain provenance of the evidence.</p>

<p><a href="/uploads/2017/09/6-ModifyPermissions.png"><img src="/uploads/2017/09/6-ModifyPermissions.png" alt="6-ModifyPermissions" />
</a></p>

<p>Now that we have an image (not a forensic image, as we don’t have a hash), we want to Collect it. This means taking possession of it, so that it can’t be modified. To do this, we share the image with the EVIDENCE security domain we created earlier.</p>

<p>Recalling that the Account ID of our acquisition security domain is (993480464498), we privately share the image with that account.</p>

<p><a href="/uploads/2017/09/7-ModifyPermissions.png"><img src="/uploads/2017/09/7-ModifyPermissions.png" alt="7-ModifyPermissions" />
</a></p>

<p>Note that the snapshot isn’t instantaneous and may take some minutes to complete.</p>

<h3 id="prepare-evidence-storage-server-server-provisioning">Prepare Evidence Storage Server – Server provisioning</h3>

<p>While the snapshot is going, switch browser windows (and security domains), and begin setting up your Evidence Server in the same datacentre as the target server. This will be running the Evimetry Cloud Agent, and will be co-located with the TARGET server for efficiency and speed. In the below AWS control panel, we set the location to “Sydney” which matches the TARGET server in this instance.</p>

<p>In the left menu we select “Instances” and then “Launch Instance”</p>

<p><a href="/uploads/2017/09/8-LaunchInstance.png"><img src="/uploads/2017/09/8-LaunchInstance.png" alt="8-LaunchInstance" />
</a></p>

<p>To deploy the Evimetry Cloud Agent, we need an Ubuntu 14.04 instance.  Select that.</p>

<p><a href="/uploads/2017/09/9-ChooseAMI.png"><img src="/uploads/2017/09/9-ChooseAMI.png" alt="9-ChooseAMI" />
</a></p>

<p>The speed at which your acquisition will occur will depend on a number of factors, including the virtual disk size, the performance of the virtual storage, and the number of CPU’s you have in the server. In a future blog post, I will go into this in more detail, but for now, select a 4 CPU machine with moderate performance.</p>

<p><a href="/uploads/2017/09/10-ChooseInstanceType.png"><img src="/uploads/2017/09/10-ChooseInstanceType.png" alt="10-ChooseInstanceType" />
</a></p>

<p>Next up, we want to make sure that the evidence storage server is as close as possible to the target. From before, we have identified that that the target is in “ap-southeast-2c”, so we make sure that the subnet matches. We also ensure that we enable the auto assignment of a public IP, so we can connect to the server. This is sufficient to then “Review &amp; Launch”.</p>

<p><a href="/uploads/2017/09/11-ConfigureInstanceDetails.png"><img src="/uploads/2017/09/11-ConfigureInstanceDetails.png" alt="11-ConfigureInstanceDetails" />
</a></p>

<p>Finally, we launch the new Evidence Storage instance.</p>

<p><a href="/uploads/2017/09/12-ReviewAndLaunch.png"><img src="/uploads/2017/09/12-ReviewAndLaunch.png" alt="12-ReviewAndLaunch" />
</a></p>

<p>The final task in bringing up the evidence storage server is to establish a key pair for working with the server. We create a new key pair called “SF-Acquisition” below.</p>

<p><a href="/uploads/2017/09/13-CreateKeyPair.png"><img src="/uploads/2017/09/13-CreateKeyPair.png" alt="13-CreateKeyPair" />
</a></p>

<p>Download the key pair, and save it somewhere safely. Example shell commands follow.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">cp ~/Downloads/SF-Acquisition.pem ~/Documents/keys/

chmod og-rwx ~/Documents/keys/SF-Acquisition.pem</code></pre></div>
<p>After launching, traverse the launch status window to the new instance.</p>

<p><a href="/uploads/2017/09/14-LaunchStatus.png"><img src="/uploads/2017/09/14-LaunchStatus.png" alt="14-LaunchStatus" />
</a></p>

<p>On following the instance link, we see the Instance details. Note the following important details. The public IP is 54.206.15.84, and the Security Group is “launch-wizard-3”.</p>

<p><a href="/uploads/2017/09/15a-InstanceProperties.png"><img src="/uploads/2017/09/15a-InstanceProperties.png" alt="15a-InstanceProperties" />
</a></p>

<h3 id="prepare-evidence-server-deploy-evimetry-cloud-agent">Prepare Evidence Server – Deploy Evimetry Cloud Agent</h3>

<p>We now deploy the Evimetry Cloud Agent on the Evidence Server.</p>

<p>First up, we SSH into the Evidence Server, using the private key from before, and the public IP address of the machine.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">&gt; 
&gt; neon:tmp bradley$ ssh -i ~/Documents/keys/SF-Acquisition.pem ubuntu@54.206.15.84
&gt; 
&gt; 

&gt; 
&gt; Welcome to Ubuntu <span class="m">14</span>.04.5 LTS <span class="o">(</span>GNU/Linux <span class="m">3</span>.13.0-125-generic x86_64<span class="o">)</span>
&gt; 
&gt; 

&gt; 
&gt;  * Documentation:  https://help.ubuntu.com/
&gt; 
&gt; 

&gt; 
&gt;   System information as of Fri Sep <span class="m">15</span> <span class="m">07</span>:01:38 UTC <span class="m">2017</span>
&gt; 
&gt; 

&gt; 
&gt;   System load:  <span class="m">0</span>.0               Processes:           <span class="m">140</span>
&gt; 
&gt; 

&gt; 
&gt;   Usage of /:   <span class="m">11</span>.8% of <span class="m">7</span>.74GB   Users logged in:     <span class="m">0</span>
&gt; 
&gt; 

&gt; 
&gt;   Memory usage: <span class="m">0</span>%                IP address <span class="k">for</span> eth0: <span class="m">172</span>.31.19.255
&gt; 
&gt; 

&gt; 
&gt;   Swap usage:   <span class="m">0</span>%
&gt; 
&gt; 

&gt; 
&gt;   Graph this data and manage this system at:
&gt; 
&gt; 

&gt; 
&gt;     https://landscape.canonical.com/
&gt; 
&gt; 

&gt; 
&gt;   Get cloud support with Ubuntu Advantage Cloud Guest:
&gt; 
&gt; 

&gt; 
&gt;     http://www.ubuntu.com/business/services/cloud
&gt; 
&gt; 

&gt; 
&gt; <span class="m">19</span> packages can be updated.
&gt; 
&gt; 

&gt; 
&gt; <span class="m">8</span> updates are security updates.
&gt; 
&gt; 

&gt; 
&gt; New release <span class="s1">&#39;16.04.3 LTS&#39;</span> available.
&gt; 
&gt; 

&gt; 
&gt; Run <span class="s1">&#39;do-release-upgrade&#39;</span> to upgrade to it.
&gt; 
&gt; 

&gt; 
&gt; The programs included with the Ubuntu system are free software<span class="p">;</span>
&gt; 
&gt; 

&gt; 
&gt; the exact distribution terms <span class="k">for</span> each program are described in the
&gt; 
&gt; 

&gt; 
&gt; individual files in /usr/share/doc/*/copyright.
&gt; 
&gt; 

&gt; 
&gt; Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
&gt; 
&gt; 

&gt; 
&gt; applicable law.
&gt; 
&gt; 

&gt; 
&gt; ubuntu@ip-172-31-19-255:~$ 
&gt; 
&gt; </code></pre></div>
<p>We need to do admin level install operations, so make sure you are in a root shell session by executing <em><strong>“sudo bash”</strong></em></p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">ubuntu@ip-172-31-19-255:~$ sudo bash

root@ip-172-31-19-255:~#</code></pre></div>
<p>Next, we install the Evimetry Cloud Agent, using a simple 2-line UNIX command. First log into the Evimetry Portal using your credentials. Then select the “Deploy Cloud Agent” option from the menu.</p>

<p><a href="/uploads/2017/09/16-EvimetryPortal.png"><img src="/uploads/2017/09/16-EvimetryPortal.png" alt="16-EvimetryPortal" />
</a></p>

<p>We deploy the cloud agent using a simple 2 line shell script. Copy and paste it into your SSH session.</p>

<p><a href="/uploads/2017/09/17-DeployCloudAgent.png"><img src="/uploads/2017/09/17-DeployCloudAgent.png" alt="17-DeployCloudAgent" />
</a></p>

<p>In the SSH session, the VM will be patched, and the Evimetry Cloud Agent installed. Answer “Yes” to all by default. It takes around 30 seconds.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash"> root@ip-172-31-19-255:~# wget -O install_script_ubuntu.sh https://my.evimetry.com/portal/install_script_ubuntu.sh?6a063dfa450349cef1a1dbc0eacd2b75af6e84ce

--2017-09-15 <span class="m">07</span>:04:20--  https://my.evimetry.com/portal/install_script_ubuntu.sh?6a063dfa450349cef1a1dbc0eacd2b75af6e84ce

Resolving my.evimetry.com <span class="o">(</span>my.evimetry.com<span class="o">)</span>... <span class="m">104</span>.237.142.195

Connecting to my.evimetry.com <span class="o">(</span>my.evimetry.com<span class="o">)</span><span class="p">|</span><span class="m">104</span>.237.142.195<span class="p">|</span>:443... connected.

HTTP request sent, awaiting response... <span class="m">200</span> OK

Length: <span class="m">9865</span> <span class="o">(</span><span class="m">9</span>.6K<span class="o">)</span> <span class="o">[</span>text/plain<span class="o">]</span>

Saving to: ‘install_script_ubuntu.sh’

<span class="m">100</span>%<span class="o">[==================================================================================</span>&gt;<span class="o">]</span> <span class="m">9</span>,865       --.-K/s   in 0s

<span class="m">2017</span>-09-15 <span class="m">07</span>:04:21 <span class="o">(</span><span class="m">216</span> MB/s<span class="o">)</span> - ‘install_script_ubuntu.sh’ saved <span class="o">[</span><span class="m">9865</span>/9865<span class="o">]</span>

root@ip-172-31-19-255:~# bash install_script_ubuntu.sh

<span class="c1">##########################################################################################</span>

Updating APT and Installing dependencies

<span class="c1">##########################################################################################</span>

Run sudo apt-get --yes update <span class="o">[</span>Y/n/a<span class="o">]</span>?<span class="sb">```</span>


<span class="o">&lt;&lt;&lt;</span>SNIP&gt;&gt;&gt;


<span class="sb">```</span>bash##########################################################################################

Configuring agent config <span class="k">for</span> cloud deployment.

<span class="c1">##########################################################################################</span>

Artifact:    evimetry.agent

Description: Agent Application <span class="k">for</span> Evimetry Application Suite

Version:     <span class="m">3</span>.0.1

Build:       <span class="m">1117</span>

Build Date:  <span class="m">2017</span>-07-17T08:39:06.891+1000

evimetry.agent start/running, process <span class="m">4917</span>

<span class="c1">############################################################################################</span>

Evimetry installed and started. Point your controller at <span class="m">172</span>.31.3.157.

Control service by stop/start/restart evimetry.agent

Logs are in /var/log/upstart/evimetry.agent.log

Configuration is in /etc/init/evimetry.agent.conf

<span class="c1">############################################################################################</span></code></pre></div>
<p>The final thing to setup is a port forward so that we can connect through to the Evidence Server. Unlike some cloud services, EC2 Instances sit on a private IP address, behind a firewall.</p>

<p>In the <em>“Network &amp; Security”</em> section of the console, go to “Security Groups”. Recalling from the Instance that is was started in the Security Group “Launch Wizard 3”, edit the inbound rules of that security group.</p>

<p><a href="/uploads/2017/09/18-EditSecurity.png"><img src="/uploads/2017/09/18-EditSecurity.png" alt="18-EditSecurity" />
</a></p>

<p>Create a rule forwarding the Evimetry Cloud Agent’s port (TCP 9982) to the Evidence Server.</p>

<p><a href="/uploads/2017/09/19-AddPortForward.png"><img src="/uploads/2017/09/19-AddPortForward.png" alt="19-AddPortForward" />
</a></p>

<h3 id="verify-access-to-evimetry-cloud-agent">Verify Access to Evimetry Cloud Agent</h3>

<p>At this point, the Evimetry cloud agent is ready to be used. Using the public IP of the VM (54.206.15.84), connect in using the Evimetry Controller.</p>

<p><a href="/uploads/2017/09/20-ConnectController.png"><img src="/uploads/2017/09/20-ConnectController.png" alt="20-ConnectController" />
</a></p>

<p>The agent will appear in the controller’s fabric nodes view (note that the IP of the Evidence Server is showing a 172.X.X.X private IP address). Visible underneath it is its storage, and an Evimetry Repository, which is located on its internal storage. We will acquire our images into this Repository.</p>

<p><a href="/uploads/2017/09/21-ViewCloudAgent.png"><img src="/uploads/2017/09/21-ViewCloudAgent.png" alt="21-ViewCloudAgent" />
</a></p>

<h3 id="acquiring-the-image">Acquiring the image</h3>

<p>We now go back to the EVIDENCE Security Domain, and access the &quot;Elastic Block Store&quot; | &quot;Snapshots&quot; section. Be sure to filter the view to “Private Snapshot” as it won’t be visible in the default setting.</p>

<p>The snapshot from the SUSPECT security domain will now be visible (check the Snapshot ID matches). We now transform the image into a Volume, which can then be added to a running instance in much the same way we plug removable storage into a computer. First, right click on the Snapshot and select “Create Volume”.</p>

<p><a href="/uploads/2017/09/22-CreateVolume.png"><img src="/uploads/2017/09/22-CreateVolume.png" alt="22-CreateVolume" />
</a></p>

<p>In the volume creation form, where we create the evidence storage instance, we choose the Availability Zone of _“_<em>ap-southeast-2c”.</em> Make sure that you choose this zone as the instance where the Volume is created, and then click on “Create Volume” to create the volume.</p>

<p><a href="/uploads/2017/09/23-CreateVolumeDetails.png"><img src="/uploads/2017/09/23-CreateVolumeDetails.png" alt="23-CreateVolumeDetails" />
</a></p>

<p>Note the volume ID, of the new Volume, which is vol-097e59361bd515f78. Follow the link.</p>

<p><a href="/uploads/2017/09/24-VolumeCreated.png"><img src="/uploads/2017/09/24-VolumeCreated.png" alt="24-VolumeCreated" />
</a></p>

<p>Now we can attach the volume to our Evidence Server. Go to the &quot;Elastic Block Store&quot; | &quot;Volumes&quot; area and, noting the Volume ID, select Attach Volume.</p>

<p><a href="/uploads/2017/09/25-AttachVolume.png"><img src="/uploads/2017/09/25-AttachVolume.png" alt="25-AttachVolume" />
</a></p>

<p>Recalling that the instance ID of our Evidence Server is i-0af9148e32f37b8ac, attach the Volume as a virtual disk.</p>

<p><a href="/uploads/2017/09/26-AttachVolumeDetails.png"><img src="/uploads/2017/09/26-AttachVolumeDetails.png" alt="26-AttachVolumeDetails" />
</a></p>

<p>Refreshing the Cloud Agent instance listed in the Evimetry Controller  now shows the disk attached to the agent as /dev/xvdf . Note that the newly attached disk is locked against mounting and writing. Right click on the disk and select Acquire.</p>

<p><a href="/uploads/2017/09/27-AcquireVolume.png"><img src="/uploads/2017/09/27-AcquireVolume.png" alt="27-AcquireVolume" />
</a></p>

<p>The acquisition settings dialog will appear. Select a full linear acquisition of the attached drive, and add the Repository on the Storage Server as the container location. Give the Image a name using your standard image naming scheme, and document the original Volume ID and Instance ID associated with this image. Then click OK.</p>

<p><a href="/uploads/2017/09/28-AcquireVolumeDetails.png"><img src="/uploads/2017/09/28-AcquireVolumeDetails.png" alt="28-AcquireVolumeDetails" />
</a></p>

<p>Acquisition is now underway. The screenshot below shows an acquisition using the “Provisioned IOPS SSD” as Volume storage, which proceeds at around 90MB/s, constrained by the storage of the infrastructure. Our testing shows that using “General Purpose SSD’s” as storage gives a trickling rate of around 10MB/s (that’s 4x slower than USB2!). A future post will focus on scaling this speed.</p>

<p><a href="/uploads/2017/09/29-Acquiring.png"><img src="/uploads/2017/09/29-Acquiring.png" alt="29-Acquiring" />
</a></p>

<p>When the acquisition (including verification) completes, Evimetry will display a completion dialog.</p>

<p><a href="/uploads/2017/09/30-AcquisitionCompleted.png"><img src="/uploads/2017/09/30-AcquisitionCompleted.png" alt="30-AcquisitionCompleted" />
</a></p>

<p>We then transfer the image locally to the lab using Evimetry, by flipping to the “Images” tab of the Controller, and right clicking on the newly created image.</p>

<p><a href="/uploads/2017/09/31-TransferImage.png"><img src="/uploads/2017/09/31-TransferImage.png" alt="31-TransferImage" />
</a></p>

<p>After choosing the destination, the image downloads locally.</p>

<p><a href="/uploads/2017/09/32-TransferImageDetails.png"><img src="/uploads/2017/09/32-TransferImageDetails.png" alt="32-TransferImageDetails" />
</a></p>

<h3 id="conclusion">Conclusion</h3>

<p>This post has described a methodology for acquiring storage in the EC2 cloud. Using EC2 Snapshots in conjunction with Snapshot Sharing enables one to quickly Collect copies of Target storage. Acquisition can then be undertaken in the Cloud, so that the evidence is protected by a hash at the earliest opportunity, while minimising the amount of data that needs to be copied.</p>

<p>In future posts, I will follow up on how virtual disk selection affects the speed of acquisition; how to acquire volatile memory in AWS; and how to undertake analysis in the cloud.</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Updated slides: Accelerating your forensic &amp; incident response workflow</title>
      <link>https://schatzforensic.com/insideout/2017/08/updated-slides-accelerating-your-forensic-incident-response-workflow/</link>
      <pubDate>Thu, 17 Aug 2017 00:48:03 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2017/08/updated-slides-accelerating-your-forensic-incident-response-workflow/</guid>
      <description><![CDATA[  <p><a href="/presentations/Schatz-F3-2016.pdf"><img src="/uploads/2017/08/Screen-Shot-2017-08-17-at-10.32.58-am1.png" alt="Screen Shot 2017-08-17 at 10.32.58 am" />
</a></p>

<p>Late last year I had the pleasure of attending the F3 conference in Gloucestershire, UK. It is quite unlike any other digital forensics conference I have ever been to; a community run, practitioner focused, 2 day conference situated in a stately manor in the English countryside. I can thoroughly recommend it.</p>

<p>I had the opportunity to present an updated version of my presentation: <a href="/presentations/Schatz-F3-2016.pdf">&quot;Accelerating your forensic &amp; incident response workflow: the case for a new standard in forensic imaging&quot;. The slide deck is available for download here. </a></p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p><a href="/presentations/Schatz-F3-2016.pdf"><img src="/uploads/2017/08/Screen-Shot-2017-08-17-at-10.32.58-am1.png" alt="Screen Shot 2017-08-17 at 10.32.58 am" />
</a></p>

<p>Late last year I had the pleasure of attending the F3 conference in Gloucestershire, UK. It is quite unlike any other digital forensics conference I have ever been to; a community run, practitioner focused, 2 day conference situated in a stately manor in the English countryside. I can thoroughly recommend it.</p>

<p>I had the opportunity to present an updated version of my presentation: <a href="/presentations/Schatz-F3-2016.pdf">&quot;Accelerating your forensic &amp; incident response workflow: the case for a new standard in forensic imaging&quot;. The slide deck is available for download here. </a></p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Call for participation - AFF4 Working Group meeting at DFRWS 2017 USA </title>
      <link>https://schatzforensic.com/insideout/2017/07/call-for-participation-aff4-working-group-meeting-at-dfrws-2017-usa/</link>
      <pubDate>Sat, 22 Jul 2017 11:42:59 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2017/07/call-for-participation-aff4-working-group-meeting-at-dfrws-2017-usa/</guid>
      <description><![CDATA[  <p>The Advanced Forensic Format 4 Working Group (AFF4 WG) is calling for interested parties to join the second working group meeting, to be co-located at the DFRWS Conference 2017, in Austin, TX.</p>

<p>Originally proposed in 2009 by Michael Cohen, Simson Garfinkel, and Bradley Schatz, the AFF4 forensic container enables new approaches to forensics, unparalleled forensic acquisition speeds and more accurate representation of evidence. The AFF4 WG has recently released v1.0 of the AFF4 Standard, including canonical images, specification, and open source libraries for implementers. Current AFF4 implementations include Rekall, Evimetry, Sleuth Kit, Volatility and GRR.</p>

<p>For more information, please see the working group mailing list, or contact Bradley Schatz or Michael Cohen.</p>

<p>Co-Chair: Dr Bradley L Schatz, Schatz Forensic/Evimetry, [ bradley <at> schatzforensic <dot> com ]
Co-Chair: Dr Michael Cohen, Google, [ scudette <at> google <dot> com ]</p>

<p>AFF4 working group mailing list: <a href="https://groups.google.com/forum/#!forum/aff4-wg">https://groups.google.com/forum/#!forum/aff4-wg</a></p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>The Advanced Forensic Format 4 Working Group (AFF4 WG) is calling for interested parties to join the second working group meeting, to be co-located at the DFRWS Conference 2017, in Austin, TX.</p>

<p>Originally proposed in 2009 by Michael Cohen, Simson Garfinkel, and Bradley Schatz, the AFF4 forensic container enables new approaches to forensics, unparalleled forensic acquisition speeds and more accurate representation of evidence. The AFF4 WG has recently released v1.0 of the AFF4 Standard, including canonical images, specification, and open source libraries for implementers. Current AFF4 implementations include Rekall, Evimetry, Sleuth Kit, Volatility and GRR.</p>

<p>For more information, please see the working group mailing list, or contact Bradley Schatz or Michael Cohen.</p>

<p>Co-Chair: Dr Bradley L Schatz, Schatz Forensic/Evimetry, [ bradley <at> schatzforensic <dot> com ]
Co-Chair: Dr Michael Cohen, Google, [ scudette <at> google <dot> com ]</p>

<p>AFF4 working group mailing list: <a href="https://groups.google.com/forum/#!forum/aff4-wg">https://groups.google.com/forum/#!forum/aff4-wg</a></p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Compiling Sleuth Kit with AFF4 support on MacOS</title>
      <link>https://schatzforensic.com/insideout/2017/06/compiling-sleuth-kit-with-aff4-support-on-macos/</link>
      <pubDate>Fri, 09 Jun 2017 06:16:06 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2017/06/compiling-sleuth-kit-with-aff4-support-on-macos/</guid>
      <description><![CDATA[  <p>We recently contributed patches to the Sleuth Kit to read AFF4 images. While we are waiting for those to be pulled into the main distribution, the following recipe should suffice for compiling a stand alone copy on MacOS.</p>

<p><strong>Dependencies</strong>
The following dependencies are needed to compile libAFF4 on OSX. I use MacPorts, and the corresponding packages i needed to install are:</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">ossp-uuid
zlib
snappy
raptor2
google-glog
pcrexx
* tclap <span class="o">(</span>missing *.pc file - place in /opt/local/lib/pkgconfig/<span class="o">)</span></code></pre></div>
<p><strong>Clone and compile LibAFF4 (C/C++)</strong></p>

<p>Use the following to clone the current release of libaff4, configure it, and install.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">git clone https://github.com/google/aff4.git
<span class="nb">cd</span> aff4
git submodule update --init third_party/gtest
<span class="nb">cd</span> third_party/gtest
git reset --hard
<span class="nb">cd</span> ../..
./autogen.sh
./configure <span class="nv">CC</span><span class="o">=</span>clang <span class="nv">CXX</span><span class="o">=</span>clang++ <span class="nv">CXXFLAGS</span><span class="o">=</span><span class="s2">&#34;-std=c++11 -stdlib=libc++ -O2 -g0 -I/opt/local/include&#34;</span> <span class="nv">LDFLAGS</span><span class="o">=</span><span class="s2">&#34;-stdlib=libc++ -L/opt/local/lib&#34;</span>
make
sudo make install</code></pre></div>
<p><strong>Clone and compile the Sleuth Kit</strong></p>

<p>Use the following to compile the sleuthkit with libaff4 support.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">git clone https://github.com/blschatz/sleuthkit.git
<span class="nb">cd</span> sleuthkit/
git checkout release-4.4
autoreconf --force --install --verbose
./configure
make
sudo make install</code></pre></div>]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>We recently contributed patches to the Sleuth Kit to read AFF4 images. While we are waiting for those to be pulled into the main distribution, the following recipe should suffice for compiling a stand alone copy on MacOS.</p>

<p><strong>Dependencies</strong>
The following dependencies are needed to compile libAFF4 on OSX. I use MacPorts, and the corresponding packages i needed to install are:</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">ossp-uuid
zlib
snappy
raptor2
google-glog
pcrexx
* tclap <span class="o">(</span>missing *.pc file - place in /opt/local/lib/pkgconfig/<span class="o">)</span></code></pre></div>
<p><strong>Clone and compile LibAFF4 (C/C++)</strong></p>

<p>Use the following to clone the current release of libaff4, configure it, and install.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">git clone https://github.com/google/aff4.git
<span class="nb">cd</span> aff4
git submodule update --init third_party/gtest
<span class="nb">cd</span> third_party/gtest
git reset --hard
<span class="nb">cd</span> ../..
./autogen.sh
./configure <span class="nv">CC</span><span class="o">=</span>clang <span class="nv">CXX</span><span class="o">=</span>clang++ <span class="nv">CXXFLAGS</span><span class="o">=</span><span class="s2">&#34;-std=c++11 -stdlib=libc++ -O2 -g0 -I/opt/local/include&#34;</span> <span class="nv">LDFLAGS</span><span class="o">=</span><span class="s2">&#34;-stdlib=libc++ -L/opt/local/lib&#34;</span>
make
sudo make install</code></pre></div>
<p><strong>Clone and compile the Sleuth Kit</strong></p>

<p>Use the following to compile the sleuthkit with libaff4 support.</p>
<div class="highlight"><pre class="chroma"><code class="language-bash" data-lang="bash">git clone https://github.com/blschatz/sleuthkit.git
<span class="nb">cd</span> sleuthkit/
git checkout release-4.4
autoreconf --force --install --verbose
./configure
make
sudo make install</code></pre></div>
		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Evimetry v3 Released: Remote volatile memory support</title>
      <link>https://schatzforensic.com/insideout/2017/06/evimetry-3-released-remote-volatile-memory-support/</link>
      <pubDate>Fri, 09 Jun 2017 05:19:54 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2017/06/evimetry-3-released-remote-volatile-memory-support/</guid>
      <description><![CDATA[  <p>We recently released <a href="https://evimetry.com/">Evimetry 3</a>, the newest release of our revolutionary approach to forensic acquisition and analysis.</p>

<p><strong>Whats new?</strong></p>

<p>The big news is that we now support remote volatile memory acquisition. This means that in addition to being able to acquire remote disks, you can now acquire the volatile memory of live Windows, MacOS, and Linux hosts.  We primarily support Windows XP and above (x86 and x64) and OSX Mountain Lion and above (x64). The coverage for Linux memory acquisition is limited to 64 bit Intel machines where the kmem driver is enabled.</p>

<p><strong>Get straight to analysis.</strong></p>

<p>In addition to acquiring the physical memory, we also acquire and store the entry points needed to find the kernel page tables and base kernel data structures. The benefit of this is that time-consuming scanning for these entry points (which are fundamental to further analysis) can be bypassed getting you to analysing evidence sooner.</p>

<p>We have developed patches to the leading volatile memory analysis frameworks, Volatility and Rekall, to support reading these images, and the <a href="https://github.com/blschatz/volatility">patches for Volatility have been contributed</a> to the main Volatility project on GitHub.</p>

<p><a href="/uploads/2017/06/Picture1.png"><img src="/uploads/2017/06/Picture1.png" alt="Picture1" />
</a></p>

<p><strong>Acquire faster.</strong></p>

<p>We take full advantage of Evimetry's advanced compression to transport memory over the network at maximal rates. The effects of latency, a killer of network performance over long distance links, can be negated by pushing our networked evidence storage agents into the same network as the suspect computer.</p>

<p><strong>Ready for digital evidence at wire speed?</strong></p>

<p>If you would like to try these features, <a href="https://my.evimetry.com/enquiry/eval/">get in touch to organise an evaluation licence.</a></p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>We recently released <a href="https://evimetry.com/">Evimetry 3</a>, the newest release of our revolutionary approach to forensic acquisition and analysis.</p>

<p><strong>Whats new?</strong></p>

<p>The big news is that we now support remote volatile memory acquisition. This means that in addition to being able to acquire remote disks, you can now acquire the volatile memory of live Windows, MacOS, and Linux hosts.  We primarily support Windows XP and above (x86 and x64) and OSX Mountain Lion and above (x64). The coverage for Linux memory acquisition is limited to 64 bit Intel machines where the kmem driver is enabled.</p>

<p><strong>Get straight to analysis.</strong></p>

<p>In addition to acquiring the physical memory, we also acquire and store the entry points needed to find the kernel page tables and base kernel data structures. The benefit of this is that time-consuming scanning for these entry points (which are fundamental to further analysis) can be bypassed getting you to analysing evidence sooner.</p>

<p>We have developed patches to the leading volatile memory analysis frameworks, Volatility and Rekall, to support reading these images, and the <a href="https://github.com/blschatz/volatility">patches for Volatility have been contributed</a> to the main Volatility project on GitHub.</p>

<p><a href="/uploads/2017/06/Picture1.png"><img src="/uploads/2017/06/Picture1.png" alt="Picture1" />
</a></p>

<p><strong>Acquire faster.</strong></p>

<p>We take full advantage of Evimetry's advanced compression to transport memory over the network at maximal rates. The effects of latency, a killer of network performance over long distance links, can be negated by pushing our networked evidence storage agents into the same network as the suspect computer.</p>

<p><strong>Ready for digital evidence at wire speed?</strong></p>

<p>If you would like to try these features, <a href="https://my.evimetry.com/enquiry/eval/">get in touch to organise an evaluation licence.</a></p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Sleuth Kit support for the AFF4 Standard v1.0 Released</title>
      <link>https://schatzforensic.com/insideout/2017/04/sleuth-kit-support-for-the-aff4-standard-v1-0-released/</link>
      <pubDate>Fri, 07 Apr 2017 12:28:04 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2017/04/sleuth-kit-support-for-the-aff4-standard-v1-0-released/</guid>
      <description><![CDATA[  <p>I am pleased to announce the availability of both a set of patches to the <a href="https://www.sleuthkit.org/">Sleuth Kit</a> and an open source C/C++ implementation for <a href="https://github.com/aff4/ReferenceImages">reading AFF4 Standard v1.0 disk images</a>. Last week<a href="/insideout/2017/03/aff4-standard-v1-0-released/"> the AFF4 Standard v1.0 was released</a> by Bradley Schatz (Evimetry) and Michael Cohen (Google) .</p>

<p><a href="/uploads/2016/10/Screen-Shot-2016-10-24-at-3.48.55-pm.png"><img src="/uploads/2016/10/Screen-Shot-2016-10-24-at-3.48.55-pm.png" alt="Screen Shot 2016-10-24 at 3.48.55 pm" />
</a></p>

<p>Originally proposed in 2009 by Michael Cohen, Simson Garfinkel, and Bradley Schatz, the AFF4 forensic container enables new approaches to forensics, unparalleled forensic acquisition speeds and more accurate representation of evidence. These are enabled through next-generation forensic image features such as storage virtualisation, arbitrary metadata, and partial, non-linear and discontiguous images. The standard is the culmination of research spanning 6 years and 4 scientifically peer reviewed papers.</p>

<p>The release of these is a significant step forwards to the wider adoption of the format, enabling a large portion of the open source forensic toolchain to access AFF4 forensic images, and commercial implementers the ability to support reading the format by integration of a single unencumbered library.</p>

<p>The <a href="https://github.com/blschatz/sleuthkit/tree/release-4.4">patches to the SleuthKi</a>t were contributed by Schatz Forensic (<a href="https://evimetry.com/">Evimetry</a>), while the <a href="https://github.com/google/aff4">C/C++ library</a> was originally developed by Michael Cohen (Google), with AFF4 Standard v1.0 support added by Schatz Forensic.</p>

<p>This release follows the release last week of the <a href="https://github.com/aff4/Standard/blob/master/AFF4StandardSpecification-v1.0.pdf">AFF4 Standard v.1.0</a> and a <a href="https://github.com/google/aff4/tree/master/pyaff4">Python reference implementation</a> (reader), and the<a href="/insideout/2017/04/introducing-evimetry-community-edition/"> release of Evimetry Community Edition</a>, a freely licensed subset of the AFF4-based forensic tool.</p>

<p>For more information on the AFF4,<a href="https://www.sans.org/webcasts/104652"> attend the webcast “AFF4: The New Standard in Forensic Image Format, and Why You Should Care”</a>, given by Bradley Schatz, in association with SANS, on 17 April 2017.</p>

<p>Implementers and interested parties are invited to join the AFF4 working group at aff4@googlegroups.com .</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>I am pleased to announce the availability of both a set of patches to the <a href="https://www.sleuthkit.org/">Sleuth Kit</a> and an open source C/C++ implementation for <a href="https://github.com/aff4/ReferenceImages">reading AFF4 Standard v1.0 disk images</a>. Last week<a href="/insideout/2017/03/aff4-standard-v1-0-released/"> the AFF4 Standard v1.0 was released</a> by Bradley Schatz (Evimetry) and Michael Cohen (Google) .</p>

<p><a href="/uploads/2016/10/Screen-Shot-2016-10-24-at-3.48.55-pm.png"><img src="/uploads/2016/10/Screen-Shot-2016-10-24-at-3.48.55-pm.png" alt="Screen Shot 2016-10-24 at 3.48.55 pm" />
</a></p>

<p>Originally proposed in 2009 by Michael Cohen, Simson Garfinkel, and Bradley Schatz, the AFF4 forensic container enables new approaches to forensics, unparalleled forensic acquisition speeds and more accurate representation of evidence. These are enabled through next-generation forensic image features such as storage virtualisation, arbitrary metadata, and partial, non-linear and discontiguous images. The standard is the culmination of research spanning 6 years and 4 scientifically peer reviewed papers.</p>

<p>The release of these is a significant step forwards to the wider adoption of the format, enabling a large portion of the open source forensic toolchain to access AFF4 forensic images, and commercial implementers the ability to support reading the format by integration of a single unencumbered library.</p>

<p>The <a href="https://github.com/blschatz/sleuthkit/tree/release-4.4">patches to the SleuthKi</a>t were contributed by Schatz Forensic (<a href="https://evimetry.com/">Evimetry</a>), while the <a href="https://github.com/google/aff4">C/C++ library</a> was originally developed by Michael Cohen (Google), with AFF4 Standard v1.0 support added by Schatz Forensic.</p>

<p>This release follows the release last week of the <a href="https://github.com/aff4/Standard/blob/master/AFF4StandardSpecification-v1.0.pdf">AFF4 Standard v.1.0</a> and a <a href="https://github.com/google/aff4/tree/master/pyaff4">Python reference implementation</a> (reader), and the<a href="/insideout/2017/04/introducing-evimetry-community-edition/"> release of Evimetry Community Edition</a>, a freely licensed subset of the AFF4-based forensic tool.</p>

<p>For more information on the AFF4,<a href="https://www.sans.org/webcasts/104652"> attend the webcast “AFF4: The New Standard in Forensic Image Format, and Why You Should Care”</a>, given by Bradley Schatz, in association with SANS, on 17 April 2017.</p>

<p>Implementers and interested parties are invited to join the AFF4 working group at aff4@googlegroups.com .</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Introducing Evimetry Community Edition</title>
      <link>https://schatzforensic.com/insideout/2017/04/introducing-evimetry-community-edition/</link>
      <pubDate>Fri, 07 Apr 2017 12:11:45 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2017/04/introducing-evimetry-community-edition/</guid>
      <description><![CDATA[  <p><a href="https://evimetry.com/">Evimetry </a>Community Edition provides a subset of the Evimetry system for free. The purpose of this is to grow the AFF4 ecosystem, firstly by providing a pain free path for Evimetry licensees to provide AFF4 images to non-licensees. Secondly, we wanted to provide practitioners, researchers and educators a freely available implementation of the <a href="https://github.com/aff4/Standard/blob/master/AFF4StandardSpecification-v1.0.pdf">AFF4 standard v1.0</a> which can be used to gain familiarity with the format. Schatz Forensic, the creators of Evimetry, drove the standardisation effort behind the AFF4 Standard v1.0.</p>

<p>With the Community Licenced Evimetry Controller, you can create Linear AFF4 Images on your Windows based analysis system, verify the integrity of AFF4 images, and convert between AFF4, E01/EWF and Raw images. You can also mount AFF4 images as virtual disks and analyse with your preferred forensic tools.</p>

<p>Using the Community Licenced Evimetry Filesystem Bridge, you can access entire repositories of AFF4 images as virtual raw files, enabling straightforward consumption with your existing forensic toolkit.</p>

<p>The release of Evimetry Community Edition coincides with the release by Schatz Forensic of open source implementations of the AFF4 format, patches to the Sleuth Kit supporting AFF4 images, and the <a href="http://www.schatzforensic.com.au/insideout/2017/03/aff4-standard-v1-0-released/">release of the AFF4 Standard v1.0</a>.</p>

<p>To gain access to the initial release of Evimetry Community Edition, email us at info@evimetry.com .</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p><a href="https://evimetry.com/">Evimetry </a>Community Edition provides a subset of the Evimetry system for free. The purpose of this is to grow the AFF4 ecosystem, firstly by providing a pain free path for Evimetry licensees to provide AFF4 images to non-licensees. Secondly, we wanted to provide practitioners, researchers and educators a freely available implementation of the <a href="https://github.com/aff4/Standard/blob/master/AFF4StandardSpecification-v1.0.pdf">AFF4 standard v1.0</a> which can be used to gain familiarity with the format. Schatz Forensic, the creators of Evimetry, drove the standardisation effort behind the AFF4 Standard v1.0.</p>

<p>With the Community Licenced Evimetry Controller, you can create Linear AFF4 Images on your Windows based analysis system, verify the integrity of AFF4 images, and convert between AFF4, E01/EWF and Raw images. You can also mount AFF4 images as virtual disks and analyse with your preferred forensic tools.</p>

<p>Using the Community Licenced Evimetry Filesystem Bridge, you can access entire repositories of AFF4 images as virtual raw files, enabling straightforward consumption with your existing forensic toolkit.</p>

<p>The release of Evimetry Community Edition coincides with the release by Schatz Forensic of open source implementations of the AFF4 format, patches to the Sleuth Kit supporting AFF4 images, and the <a href="http://www.schatzforensic.com.au/insideout/2017/03/aff4-standard-v1-0-released/">release of the AFF4 Standard v1.0</a>.</p>

<p>To gain access to the initial release of Evimetry Community Edition, email us at info@evimetry.com .</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>AFF4 Standard v1.0 Released</title>
      <link>https://schatzforensic.com/insideout/2017/03/aff4-standard-v1-0-released/</link>
      <pubDate>Thu, 30 Mar 2017 07:07:10 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2017/03/aff4-standard-v1-0-released/</guid>
      <description><![CDATA[  <p>Today marks the release of the Advanced Forensic Format 4 (AFF4) Standard v1.0.</p>

<p>Originally proposed in 2009 by Michael Cohen, Simson Garfinkel, and Bradley Schatz, the AFF4 forensic container enables new approaches to forensics, unparalleled forensic acquisition speeds and more accurate representation of evidence. These are enabled through next-generation forensic image features such as storage virtualisation, arbitrary metadata, and partial, non-linear and discontiguous images. The standard is the culmination of research spanning 8 years and 4 scientifically peer reviewed papers.</p>

<p>Bradley Schatz (Evimetry) and Michael Cohen (Google) have collaborated to make freely available:
• <a href="https://github.com/aff4/ReferenceImages">a set of canonical reference images which serve as ground truth for the format</a>; and
• an <a href="https://github.com/aff4/Standard">explanatory specification document</a> describing the format in detail; and
• a Python <a href="https://github.com/google/aff4/tree/master/pyaff4">AFF4  reference implementation</a> capable of reading the format.</p>

<p>This release of a standard specification for the file format is a milestone towards the wider adoption of the format, providing implementers an unambiguous and straightforward path to implementation. The release of the AFF4 Standard coincides with the limited release of <a href="https://evimetry.com/">Evimetry </a>Community Edition, a freely licensed subset of the AFF4 based forensic tool, and in the coming days, a C++ implementation and patches to the <a href="https://www.sleuthkit.org/">Sleuth Kit</a>, and support for <a href="http://www.volatilityfoundation.org/">Volatility </a>and <a href="http://www.rekall-forensic.com/">Rekall</a>.</p>

<p>The standard specification and reference images are available at [1], the python implementation at [2], and aff4.org [3] becoming the central point of publication.</p>

<p>Implementers and interested parties are invited to join the <a href="https://groups.google.com/d/forum/aff4-wg">AFF4 Working Group mailing list</a> [4], and/or contact Bradley Schatz or Michael Cohen.</p>

<p>Contact:
Bradley Schatz ( bradley@evimetry.com )
Michael Cohen (scudette@google.com )</p>

<ul>
<li>[1] <a href="https://github.com/aff4">https://github.com/aff4</a></li>
<li>[2] <a href="https://github.com/google/aff4">https://github.com/google/aff4</a></li>
<li>[3] <a href="http://www.aff4.org/">http://www.aff4.org/</a></li>
<li>[4] <a href="https://groups.google.com/d/forum/aff4-wg">https://groups.google.com/d/forum/aff4-wg</a></li>
</ul>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>Today marks the release of the Advanced Forensic Format 4 (AFF4) Standard v1.0.</p>

<p>Originally proposed in 2009 by Michael Cohen, Simson Garfinkel, and Bradley Schatz, the AFF4 forensic container enables new approaches to forensics, unparalleled forensic acquisition speeds and more accurate representation of evidence. These are enabled through next-generation forensic image features such as storage virtualisation, arbitrary metadata, and partial, non-linear and discontiguous images. The standard is the culmination of research spanning 8 years and 4 scientifically peer reviewed papers.</p>

<p>Bradley Schatz (Evimetry) and Michael Cohen (Google) have collaborated to make freely available:
• <a href="https://github.com/aff4/ReferenceImages">a set of canonical reference images which serve as ground truth for the format</a>; and
• an <a href="https://github.com/aff4/Standard">explanatory specification document</a> describing the format in detail; and
• a Python <a href="https://github.com/google/aff4/tree/master/pyaff4">AFF4  reference implementation</a> capable of reading the format.</p>

<p>This release of a standard specification for the file format is a milestone towards the wider adoption of the format, providing implementers an unambiguous and straightforward path to implementation. The release of the AFF4 Standard coincides with the limited release of <a href="https://evimetry.com/">Evimetry </a>Community Edition, a freely licensed subset of the AFF4 based forensic tool, and in the coming days, a C++ implementation and patches to the <a href="https://www.sleuthkit.org/">Sleuth Kit</a>, and support for <a href="http://www.volatilityfoundation.org/">Volatility </a>and <a href="http://www.rekall-forensic.com/">Rekall</a>.</p>

<p>The standard specification and reference images are available at [1], the python implementation at [2], and aff4.org [3] becoming the central point of publication.</p>

<p>Implementers and interested parties are invited to join the <a href="https://groups.google.com/d/forum/aff4-wg">AFF4 Working Group mailing list</a> [4], and/or contact Bradley Schatz or Michael Cohen.</p>

<p>Contact:
Bradley Schatz ( bradley@evimetry.com )
Michael Cohen (scudette@google.com )</p>

<ul>
<li>[1] <a href="https://github.com/aff4">https://github.com/aff4</a></li>
<li>[2] <a href="https://github.com/google/aff4">https://github.com/google/aff4</a></li>
<li>[3] <a href="http://www.aff4.org/">http://www.aff4.org/</a></li>
<li>[4] <a href="https://groups.google.com/d/forum/aff4-wg">https://groups.google.com/d/forum/aff4-wg</a></li>
</ul>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>AFF4: The new standard in forensic imaging and why you should care</title>
      <link>https://schatzforensic.com/insideout/2016/10/aff4-the-new-standard-in-forensic-imaging-and-why-you-should-care/</link>
      <pubDate>Fri, 28 Oct 2016 01:16:32 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2016/10/aff4-the-new-standard-in-forensic-imaging-and-why-you-should-care/</guid>
      <description><![CDATA[  <p>At this year's <a href="http://www.osdfcon.org/2016-event/2016-abstracts/#AFF4">Open Source Digital Forensics Conference (OSDFCon 2016)</a> I presented an update on the AFF4 standardisation effort. For the conference we unveiled a significant milestone: support for consuming <a href="https://evimetry.com/">Evimetry</a> produced AFF4 forensic images with the Sleuth Kit.</p>

<p>While users of Evimetry are able to exploit the benefits afforded by AFF4 seamlessly with their regular forensic tools, we believe that native support for the format across both opensource and commercial tools will accelerate forensic workflow even further.</p>

<p>The screenshot below demonstrates a non-linear partial physical image (containing only the allocated blocks from the target disk) being interpreted by the SleuthKit.</p>

<p><a href="/uploads/2016/10/Screen-Shot-2016-10-24-at-3.48.55-pm.png"><img src="/uploads/2016/10/Screen-Shot-2016-10-24-at-3.48.55-pm.png" alt="Screen Shot 2016-10-24 at 3.48.55 pm" />
</a></p>

<p>We will be releasing patches for libaff4 (C++) and Sleuth Kit shortly.</p>

<p>My slides for the seminar are below.</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>At this year's <a href="http://www.osdfcon.org/2016-event/2016-abstracts/#AFF4">Open Source Digital Forensics Conference (OSDFCon 2016)</a> I presented an update on the AFF4 standardisation effort. For the conference we unveiled a significant milestone: support for consuming <a href="https://evimetry.com/">Evimetry</a> produced AFF4 forensic images with the Sleuth Kit.</p>

<p>While users of Evimetry are able to exploit the benefits afforded by AFF4 seamlessly with their regular forensic tools, we believe that native support for the format across both opensource and commercial tools will accelerate forensic workflow even further.</p>

<p>The screenshot below demonstrates a non-linear partial physical image (containing only the allocated blocks from the target disk) being interpreted by the SleuthKit.</p>

<p><a href="/uploads/2016/10/Screen-Shot-2016-10-24-at-3.48.55-pm.png"><img src="/uploads/2016/10/Screen-Shot-2016-10-24-at-3.48.55-pm.png" alt="Screen Shot 2016-10-24 at 3.48.55 pm" />
</a></p>

<p>We will be releasing patches for libaff4 (C++) and Sleuth Kit shortly.</p>

<p>My slides for the seminar are below.</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Accelerating forensic and incident response workflow: AusCERT 2016 Slides</title>
      <link>https://schatzforensic.com/insideout/2016/05/accelerating-forensic-and-incident-response-workflow-auscert-2016-slides/</link>
      <pubDate>Tue, 31 May 2016 11:21:19 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2016/05/accelerating-forensic-and-incident-response-workflow-auscert-2016-slides/</guid>
      <description><![CDATA[  <p>Existing forensic image formats are a bottleneck in the multi-core era: The slides from my recent presentation on accelerating forensic &amp; incident response workflow at the AusCERT 2016 Conference. This summarises the research behind <a href="https://evimetry.com/">Evimetry Wirespeed</a>.</p>

<p><p><iframe style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/z2nFSWWO4wqnG5" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Accelerating forensic and incident response workflow: the case for a new standard in forensic imaging - AusCERT2016" href="//www.slideshare.net/blschatz/accelerating-forensic-and-incident-response-workflow-the-case-for-a-new-standard-in-forensic-imaging" target="_blank">Accelerating forensic and incident response workflow: the case for a new standard in forensic imagingxn--AusCERT2016</a> </strong> from <strong><a href="//www.slideshare.net/blschatz" target="_blank">Bradley Schatz</a></strong></p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>Existing forensic image formats are a bottleneck in the multi-core era: The slides from my recent presentation on accelerating forensic &amp; incident response workflow at the AusCERT 2016 Conference. This summarises the research behind <a href="https://evimetry.com/">Evimetry Wirespeed</a>.</p>

<p><p><iframe style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/z2nFSWWO4wqnG5" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Accelerating forensic and incident response workflow: the case for a new standard in forensic imaging - AusCERT2016" href="//www.slideshare.net/blschatz/accelerating-forensic-and-incident-response-workflow-the-case-for-a-new-standard-in-forensic-imaging" target="_blank">Accelerating forensic and incident response workflow: the case for a new standard in forensic imagingxn--AusCERT2016</a> </strong> from <strong><a href="//www.slideshare.net/blschatz" target="_blank">Bradley Schatz</a></strong></p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>CFP: Digital Investigation Special Issue on Volatile Memory Analysis</title>
      <link>https://schatzforensic.com/insideout/2016/05/cfp-digital-investigation-special-issue-on-volatile-memory-analysis/</link>
      <pubDate>Sun, 22 May 2016 11:57:41 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2016/05/cfp-digital-investigation-special-issue-on-volatile-memory-analysis/</guid>
      <description><![CDATA[  <p>The Journal of Digital Investigation is currently calling for papers for a <a href="http://www.journals.elsevier.com/digital-investigation/call-for-papers/special-issue-on-volatile-memory-analysis">Special Issue on Volatile Memory Analysis</a>. The Guest Editors of this issue are Michael Cohen (Google) and Bradley Schatz (Schatz Forensic).</p>

<p>We would welcome any novel research into aspects of Volatile Memory Analysis. Submissions are due 31 August 2016.</p>

<blockquote>
<p>Memory analysis is a hot research topic with wide applications on many fronts - from malware detection and analysis, to recovery of encryption keys, to user activity reconstruction. As advanced contemporary malware increasingly reduces its on-disk footprint, and adopts increasingly sophisticated host detection subversion mechanisms, memory analysis is currently mainstreaming as a valuable technique for detection and response.</p>

<p>While memory analysis presents many new opportunities, it also presents new complications and challenges, ranging from reliance on undocumented program internals, to atomicity of acquisition methodologies. As memory analysis becomes the status quo methodology the use of directed anti-forensics is also becoming prevalent.</p>

<p>This special issue of the Journal of Digital Investigation invites original research papers that report on state-of-the-art and recent advancements in this rapidly expanding area of enquiry, with a particular emphasis on novel techniques and practical applications for the forensic and incident response community.</p>

<p>Topics of interest include but are not limited to:</p>

<pre><code>* Malware detection in memory
* Live memory analysis
* Live system introspection
* Memory acquisition
* Memory analysis of large systems
* Userspace and application specific memory analysis
* Cryptographic analysis, key recovery
* Execution history analysis
* Data fusion between memory/disk/network
</code></pre>
</blockquote>

<p>Deadline for submissions is 31 August 2016.</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>The Journal of Digital Investigation is currently calling for papers for a <a href="http://www.journals.elsevier.com/digital-investigation/call-for-papers/special-issue-on-volatile-memory-analysis">Special Issue on Volatile Memory Analysis</a>. The Guest Editors of this issue are Michael Cohen (Google) and Bradley Schatz (Schatz Forensic).</p>

<p>We would welcome any novel research into aspects of Volatile Memory Analysis. Submissions are due 31 August 2016.</p>

<blockquote>
<p>Memory analysis is a hot research topic with wide applications on many fronts - from malware detection and analysis, to recovery of encryption keys, to user activity reconstruction. As advanced contemporary malware increasingly reduces its on-disk footprint, and adopts increasingly sophisticated host detection subversion mechanisms, memory analysis is currently mainstreaming as a valuable technique for detection and response.</p>

<p>While memory analysis presents many new opportunities, it also presents new complications and challenges, ranging from reliance on undocumented program internals, to atomicity of acquisition methodologies. As memory analysis becomes the status quo methodology the use of directed anti-forensics is also becoming prevalent.</p>

<p>This special issue of the Journal of Digital Investigation invites original research papers that report on state-of-the-art and recent advancements in this rapidly expanding area of enquiry, with a particular emphasis on novel techniques and practical applications for the forensic and incident response community.</p>

<p>Topics of interest include but are not limited to:</p>

<pre><code>* Malware detection in memory
* Live memory analysis
* Live system introspection
* Memory acquisition
* Memory analysis of large systems
* Userspace and application specific memory analysis
* Cryptographic analysis, key recovery
* Execution history analysis
* Data fusion between memory/disk/network
</code></pre>
</blockquote>

<p>Deadline for submissions is 31 August 2016.</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Live Partial Acquisition with Evimetry Wirespeed and EnCase</title>
      <link>https://schatzforensic.com/insideout/2016/05/live-partial-acquisition-with-evimetry-wirespeed-and-encase/</link>
      <pubDate>Thu, 19 May 2016 05:40:04 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2016/05/live-partial-acquisition-with-evimetry-wirespeed-and-encase/</guid>
      <description><![CDATA[  

<p>The Evimetry Wirespeed system enables remote live analysis using your existing forensic toolkit. In doing so, a partial physical image is created. Analysis activity drives the partial acquisition process, which in-turn results in an increasingly complete physical disk image. Acquisition may be incrementally widened to categories of evidence, such as Windows Registries, Log Files, Office documents, Allocated, and all of disk.</p>

<p>An important aspect in balancing live analysis with bulk acquisition is interactive latency (liveness). Unlike any other forensic system, live analysis activities are prioritised over bulk activities, enabling effective live analysis with minimal perceptual delay.</p>

<p>A <a href="https://evimetry.com/evimetry-advanced-imager/#videos-panel">video demonstrating liveness in partial live acquisition using Evimetry Wirespeed &amp; EnCase</a>  is available on the Evimetry Website. This blog post summarises the salient parts of the video:</p>

<h2 id="1-08-partial-acquisition-of-triage-artifacts">@1:08 Partial acquisition of triage artifacts</h2>

<p>A partial acquisition of a 240GB SSD1, collecting Page Files, Swap files, Windows Registry Files, Log Files, and Windows Access Traces, is started.</p>

<p>This causes acquisition of volume metadata, followed by filesystem metadata, and then the content data blocks corresponding to these categories. This acquisition completes in 17s and has stored 2.3GiB in the forensic image2.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h20m11s675.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h20m11s675.png" alt="vlcsnap-2016-05-17-16h20m11s675" />
</a></p>

<h2 id="2-01-virtual-disk-sharing">@2:01 Virtual disk sharing</h2>

<p>The active partial image is shared as a virtual disk, and mounted in windows as the F: drive. Windows explorer is then used to browse the F: drive, into the F:\Videos\Videos1\ folder. All access of the blocks of the virtual disk come from the forensic image, as the filesystem metadata has already been acquired.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h21m38s145.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h21m38s145.png" alt="vlcsnap-2016-05-17-16h21m38s145" />
</a></p>

<p>On traversing to the F:\Videos\Videos1\Videos\ folder, thumbnails are generated by explorer and shown. As the content for these has not yet been acquired, the underlying blocks are loaded from the suspect drive, stored in the partial image, and then passed on to windows via the iSCSI virtual disk emulator. From there windows explorer renders the thumbnails.</p>

<h2 id="2-37-third-party-application-access">@2:37 Third party application access</h2>

<p>The file Mario1_500_HQ_512kb.mp4 is accessed, which contains a mario runthrough video from archive.org. This causes the video to be played using VLC.</p>

<p>The purpose of this is to create an interactive acquisition load on the target drive (recalling that the content of this file have not yet been acquired).</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h22m15s984.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h22m15s984.png" alt="vlcsnap-2016-05-17-16h22m15s984" />
</a></p>

<h2 id="3-03-virtual-disk-access-using-encase">@3:03 Virtual disk access using EnCase.</h2>

<p>The virtual disk is loaded into EnCase3, which scans the volume metadata, and filesystem metadata (in this case parsing the MFT).</p>

<p>The volume metadata and MFT are loaded from the partial image. Interactive performance of the video is unaffected, with no glitches or pauses.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h22m42s893.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h22m42s893.png" alt="vlcsnap-2016-05-17-16h22m42s893" />
</a></p>

<h2 id="4-40-interactive-analysis-with-encase">@4:40 Interactive analysis with EnCase</h2>

<p>Within EnCase, the files are filtered down to JPEG files, and the view shifted to Gallery. All of the pictures displayed on the gallery are loaded from the suspect hard drive, and stored in the partial image on their way to EnCase. At this stage only VLC and Encase are competing for access to the target device, and interactive performance of the video is unaffected. There are no glitches or pauses, and load and display of the pictures in EnCase is snappy.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h23m09s312.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h23m09s312.png" alt="vlcsnap-2016-05-17-16h23m09s312" />
</a></p>

<h2 id="5-08-acquisition-scope-widened-to-all-of-allocated">@5:08 Acquisition scope widened to all of Allocated</h2>

<p>A successive partial acquisition operation is started, widening scope to all allocated files. This will only read blocks of files on the target device that aren’t already in the image (a significant portion of the video, and the pictures that were viewed in the gallery are already present in the image, in addition to the volume and filesystem metadata, system logs, registries, etc).</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h23m29s895.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h23m29s895.png" alt="vlcsnap-2016-05-17-16h23m29s895" />
</a></p>

<h2 id="5-48-gallery-browsing-under-high-acquisition-load">@5:48 Gallery browsing under high acquisition load</h2>

<p>The gallery is scrubbed to a random point, causing acquisition and display of a number of as yet un-accessed images. While this interactive process is competing with the video and the batch acquisition (and proceeding at 238 MB/s), interactive latency has increased but still acceptable.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h24m12s765.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h24m12s765.png" alt="vlcsnap-2016-05-17-16h24m12s765" />
</a></p>

<h2 id="6-00-single-file-browsing-under-high-acquisition-load">@6:00 Single file browsing under high acquisition load</h2>

<p>Encase is switched to the Table browser, and random pictures browsed. Interactive latency for single file access is snappy.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h24m40s584.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h24m40s584.png" alt="vlcsnap-2016-05-17-16h24m40s584" />
</a></p>

<h2 id="8-08-video-runthrough-completes">@8:08 Video runthrough completes</h2>

<p>Acquisition of 61GiB has completed when the video completes playing.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h32m32s507.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h32m32s507.png" alt="vlcsnap-2016-05-17-16h32m32s507" />
</a></p>

<h2 id="finish">@ finish</h2>

<p>At the point where this screencast ends, acquisition of allocated space is still underway. The analyst needn’t wait for its completion, as a partial forensic image may be completed at any time, with the resulting image still accessible using regular forensic tools. With the volume &amp; filesystem metadata, and the file content that has been acquired to that point, forensic tools will still be able to interpret the disk. Blocks that were not acquired simply show up as unknown data.</p>

<h2 id="conclusion">Conclusion</h2>

<p>This blog post summarised the most important parts of the video, the purpose of which was to demonstrate:
- The incremental nature of partial acquisition using Evimetry Wirespeed;
- The ease of human-in-the-loop live analysis in driving forward partial acquisition;
- The performance of the Evimetry Wirespeed system.</p>

<ul>
<li>[1] around 50% full, content including a Windows OS folder heirarchy (no user profiles), random data, and multiple copies of the GovDocs corpus, and videos downloaded from archive.org.</li>
<li>[2] We note that this dataset actually doesn’t have any page files or swap files in it.</li>
<li>[3] EnCase is a trademark of Guidance Software and has no affiliation with Schatz Forensic.</li>
</ul>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	

<p>The Evimetry Wirespeed system enables remote live analysis using your existing forensic toolkit. In doing so, a partial physical image is created. Analysis activity drives the partial acquisition process, which in-turn results in an increasingly complete physical disk image. Acquisition may be incrementally widened to categories of evidence, such as Windows Registries, Log Files, Office documents, Allocated, and all of disk.</p>

<p>An important aspect in balancing live analysis with bulk acquisition is interactive latency (liveness). Unlike any other forensic system, live analysis activities are prioritised over bulk activities, enabling effective live analysis with minimal perceptual delay.</p>

<p>A <a href="https://evimetry.com/evimetry-advanced-imager/#videos-panel">video demonstrating liveness in partial live acquisition using Evimetry Wirespeed &amp; EnCase</a>  is available on the Evimetry Website. This blog post summarises the salient parts of the video:</p>

<h2 id="1-08-partial-acquisition-of-triage-artifacts">@1:08 Partial acquisition of triage artifacts</h2>

<p>A partial acquisition of a 240GB SSD1, collecting Page Files, Swap files, Windows Registry Files, Log Files, and Windows Access Traces, is started.</p>

<p>This causes acquisition of volume metadata, followed by filesystem metadata, and then the content data blocks corresponding to these categories. This acquisition completes in 17s and has stored 2.3GiB in the forensic image2.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h20m11s675.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h20m11s675.png" alt="vlcsnap-2016-05-17-16h20m11s675" />
</a></p>

<h2 id="2-01-virtual-disk-sharing">@2:01 Virtual disk sharing</h2>

<p>The active partial image is shared as a virtual disk, and mounted in windows as the F: drive. Windows explorer is then used to browse the F: drive, into the F:\Videos\Videos1\ folder. All access of the blocks of the virtual disk come from the forensic image, as the filesystem metadata has already been acquired.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h21m38s145.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h21m38s145.png" alt="vlcsnap-2016-05-17-16h21m38s145" />
</a></p>

<p>On traversing to the F:\Videos\Videos1\Videos\ folder, thumbnails are generated by explorer and shown. As the content for these has not yet been acquired, the underlying blocks are loaded from the suspect drive, stored in the partial image, and then passed on to windows via the iSCSI virtual disk emulator. From there windows explorer renders the thumbnails.</p>

<h2 id="2-37-third-party-application-access">@2:37 Third party application access</h2>

<p>The file Mario1_500_HQ_512kb.mp4 is accessed, which contains a mario runthrough video from archive.org. This causes the video to be played using VLC.</p>

<p>The purpose of this is to create an interactive acquisition load on the target drive (recalling that the content of this file have not yet been acquired).</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h22m15s984.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h22m15s984.png" alt="vlcsnap-2016-05-17-16h22m15s984" />
</a></p>

<h2 id="3-03-virtual-disk-access-using-encase">@3:03 Virtual disk access using EnCase.</h2>

<p>The virtual disk is loaded into EnCase3, which scans the volume metadata, and filesystem metadata (in this case parsing the MFT).</p>

<p>The volume metadata and MFT are loaded from the partial image. Interactive performance of the video is unaffected, with no glitches or pauses.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h22m42s893.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h22m42s893.png" alt="vlcsnap-2016-05-17-16h22m42s893" />
</a></p>

<h2 id="4-40-interactive-analysis-with-encase">@4:40 Interactive analysis with EnCase</h2>

<p>Within EnCase, the files are filtered down to JPEG files, and the view shifted to Gallery. All of the pictures displayed on the gallery are loaded from the suspect hard drive, and stored in the partial image on their way to EnCase. At this stage only VLC and Encase are competing for access to the target device, and interactive performance of the video is unaffected. There are no glitches or pauses, and load and display of the pictures in EnCase is snappy.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h23m09s312.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h23m09s312.png" alt="vlcsnap-2016-05-17-16h23m09s312" />
</a></p>

<h2 id="5-08-acquisition-scope-widened-to-all-of-allocated">@5:08 Acquisition scope widened to all of Allocated</h2>

<p>A successive partial acquisition operation is started, widening scope to all allocated files. This will only read blocks of files on the target device that aren’t already in the image (a significant portion of the video, and the pictures that were viewed in the gallery are already present in the image, in addition to the volume and filesystem metadata, system logs, registries, etc).</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h23m29s895.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h23m29s895.png" alt="vlcsnap-2016-05-17-16h23m29s895" />
</a></p>

<h2 id="5-48-gallery-browsing-under-high-acquisition-load">@5:48 Gallery browsing under high acquisition load</h2>

<p>The gallery is scrubbed to a random point, causing acquisition and display of a number of as yet un-accessed images. While this interactive process is competing with the video and the batch acquisition (and proceeding at 238 MB/s), interactive latency has increased but still acceptable.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h24m12s765.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h24m12s765.png" alt="vlcsnap-2016-05-17-16h24m12s765" />
</a></p>

<h2 id="6-00-single-file-browsing-under-high-acquisition-load">@6:00 Single file browsing under high acquisition load</h2>

<p>Encase is switched to the Table browser, and random pictures browsed. Interactive latency for single file access is snappy.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h24m40s584.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h24m40s584.png" alt="vlcsnap-2016-05-17-16h24m40s584" />
</a></p>

<h2 id="8-08-video-runthrough-completes">@8:08 Video runthrough completes</h2>

<p>Acquisition of 61GiB has completed when the video completes playing.</p>

<p><a href="/uploads/2016/05/vlcsnap-2016-05-17-16h32m32s507.png"><img src="/uploads/2016/05/vlcsnap-2016-05-17-16h32m32s507.png" alt="vlcsnap-2016-05-17-16h32m32s507" />
</a></p>

<h2 id="finish">@ finish</h2>

<p>At the point where this screencast ends, acquisition of allocated space is still underway. The analyst needn’t wait for its completion, as a partial forensic image may be completed at any time, with the resulting image still accessible using regular forensic tools. With the volume &amp; filesystem metadata, and the file content that has been acquired to that point, forensic tools will still be able to interpret the disk. Blocks that were not acquired simply show up as unknown data.</p>

<h2 id="conclusion">Conclusion</h2>

<p>This blog post summarised the most important parts of the video, the purpose of which was to demonstrate:
- The incremental nature of partial acquisition using Evimetry Wirespeed;
- The ease of human-in-the-loop live analysis in driving forward partial acquisition;
- The performance of the Evimetry Wirespeed system.</p>

<ul>
<li>[1] around 50% full, content including a Windows OS folder heirarchy (no user profiles), random data, and multiple copies of the GovDocs corpus, and videos downloaded from archive.org.</li>
<li>[2] We note that this dataset actually doesn’t have any page files or swap files in it.</li>
<li>[3] EnCase is a trademark of Guidance Software and has no affiliation with Schatz Forensic.</li>
</ul>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Introducing Evimetry: digital forensics at wire speed</title>
      <link>https://schatzforensic.com/insideout/2016/04/introducing-evimetry-digital-forensics-at-wire-speed/</link>
      <pubDate>Mon, 11 Apr 2016 12:24:52 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2016/04/introducing-evimetry-digital-forensics-at-wire-speed/</guid>
      <description><![CDATA[  <p>Digital forensics is full of waiting. Waiting for acquisitions to complete. Waiting for images to process. Waiting for flights and waiting in data centres.</p>

<p>We set out to remove this wait.</p>

<p>In November 2014, Schatz Forensic quietly opened a beta program for a new forensic tool aimed at speeding forensic workflow. The innovative system accelerates acquisition and processing of evidence and closes the gap between acquisition and analysis.</p>

<p>A long beta program has allowed us to listen to our testers, and target the pain points in their forensic process. Practitioners love the faster acquisitions and processing, and cutting hours of wait time from cases. Incident responders are excited by travel-free remote live analysis, and rapid partial imaging of high value artefacts.</p>

<p>Today marks the general availability release of Evimetry Wirespeed. If you are ready for a more efficient workflow and less waiting, visit <a href="http://evimetry.com/">http://evimetry.com</a> or contact us.</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	<p>Digital forensics is full of waiting. Waiting for acquisitions to complete. Waiting for images to process. Waiting for flights and waiting in data centres.</p>

<p>We set out to remove this wait.</p>

<p>In November 2014, Schatz Forensic quietly opened a beta program for a new forensic tool aimed at speeding forensic workflow. The innovative system accelerates acquisition and processing of evidence and closes the gap between acquisition and analysis.</p>

<p>A long beta program has allowed us to listen to our testers, and target the pain points in their forensic process. Practitioners love the faster acquisitions and processing, and cutting hours of wait time from cases. Incident responders are excited by travel-free remote live analysis, and rapid partial imaging of high value artefacts.</p>

<p>Today marks the general availability release of Evimetry Wirespeed. If you are ready for a more efficient workflow and less waiting, visit <a href="http://evimetry.com/">http://evimetry.com</a> or contact us.</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
    <item>
      <title>Was the firewall blocking traffic? Identifying active firewall rules using registry analysis.</title>
      <link>https://schatzforensic.com/insideout/2014/12/was-the-firewall-blocking-traffic-identifying-active-firewall-rules-using-registry-analysis/</link>
      <pubDate>Sat, 06 Dec 2014 02:59:13 +0000</pubDate>
      <author>bradley@schatzforensic.com (Bradley Schatz)</author>
      <guid>https://schatzforensic.com/insideout/2014/12/was-the-firewall-blocking-traffic-identifying-active-firewall-rules-using-registry-analysis/</guid>
      <description><![CDATA[  

<p>I came across this question recently in relation to claims that access to a Windows 8 host via Windows Remote Desktop Protocol was blocked by the firewall configuration. This post describes my research into the registry artefacts related to answering the question, and provides a patch to RegRipper to assist in analysis.</p>

<h3 id="theory-of-operation">Theory of operation</h3>

<p>Windows 8 uses the same firewall configuration entries used by Windows 7. Windows ships with a number of firewall rules enabled, and these may be added to or modified by the user, for example using the windows firewall control panel applet.</p>

<p><a href="/uploads/2014/12/image7.png"><img src="/uploads/2014/12/image_thumb7.png" alt="image" />
</a></p>

<p>Rules are scoped by Profile, which is either Public, Private, or Domain. Note that I am going to refer to these are a “Network Category” herein, for reasons that will become apparent. These Network Categories (profiles) are associated with particular networks: for example, in the window capture below you can see that my home wireless connection is a “Private network”. For a “Private Network”, firewall rules with a value of “Private” will be applied.</p>

<p><a href="/uploads/2014/12/image8.png"><img src="/uploads/2014/12/image_thumb8.png" alt="image" />
</a></p>

<p>The firewall rules are stored in the registry at HKLM\System\CurrentlControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules.</p>

<p><a href="/uploads/2014/12/image9.png"><img src="/uploads/2014/12/image_thumb9.png" alt="image" />
</a></p>

<p>The value of the rule above for “RemoteDesktop-UserMode-In-TCP” is</p>

<pre><code>v2.20|Action=Allow|Active=FALSE|Dir=In|Protocol=6|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=@FirewallAPI.dll,-28775|Desc=@FirewallAPI.dll,-28756|EmbedCtxt=@FirewallAPI.dll,-28752|
</code></pre>

<p>Comparing this the applet above, we can see that this corresponds to the disabled RemoteDesktop-UserMode-In-TCP rule. Looking for the second TCP related RDP, I found the following rule with the key name “{6AFE835E-629E-48DA-A87E-AB6C367D2BB7}&quot;, which corresponds to the similar rule that is enabled for both Private and Domain.</p>

<pre><code>v2.20|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|LPort=3389|App=%SystemRoot%\\system32\\svchost.exe|Svc=termservice|Name=@FirewallAPI.dll,-28775|Desc=@FirewallAPI.dll,-28756|EmbedCtxt=@FirewallAPI.dll,-28752|
</code></pre>

<h3 id="observation-identifying-the-category">Observation: Identifying the Category</h3>

<p>Existing theory around mapping active networks from the registry is generally accepted: network profiles are stored in HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles. The RegRipper networklist plugin interprets the contents of this registry sub tree.</p>

<p>What my review of the current literature didn’t reveal is how to identify whether a Network Profile is configured as “Private”, “Public”, or “Domain”. Hence, I started looking for automated ways configuring a network in such a manner, from which I hoped to identify the relevant registry keys.</p>

<p>The  documentation for the PowerShell “<a href="http://technet.microsoft.com/en-us/library/jj899565.aspx">Set-NetConnectionProfile</a>” command lists the following parameters for the “-NetworkCategory” arguments:</p>

<pre><code>Specifies an array of category types of a network. You cannot set the DomainAuthenticated type by using this cmdlet. The server automatically sets the value of DomainAuthenticated when the network is authenticated to a domain controller. The acceptable values for this parameter are:
-- Public
-- Private
</code></pre>

<p>I opened up powershell and issued the following command.</p>
<div class="highlight"><pre class="chroma"><code class="language-powershell" data-lang="powershell"><span class="n">PS</span> <span class="n">C</span><span class="err">:</span><span class="p">\</span><span class="n">Users</span><span class="p">\</span><span class="n">bradley</span><span class="p">.</span><span class="n">SCHATZFORENSIC</span><span class="p">&gt;</span> <span class="nb">Set-NetConnectionProfile</span> <span class="n">-interfacealias</span> <span class="s2">&#34;WiFi 3&#34;</span> <span class="n">-NetworkCategory</span> <span class="n">Public</span></code></pre></div>
<p>On running this, we see the Network and Sharing Centre applet immediately updated to indicate that the network was now a Public Network.</p>

<p><a href="/uploads/2014/12/image10.png"><img src="/uploads/2014/12/image_thumb10.png" alt="image" />
</a></p>

<p>Examination of the associated profile shows a registry key called Category. Based on the naming of the powershell argument “NetworkCategory”, I hypothesised that the Category key might contain the value of relevance. In this instance it was set to a value of 0.</p>

<p><a href="/uploads/2014/12/image31.png"><img src="/uploads/2014/12/image3_thumb.png" alt="image" />
</a></p>

<p>I opened then issued the following command.</p>
<div class="highlight"><pre class="chroma"><code class="language-powershell" data-lang="powershell"><span class="n">PS</span> <span class="n">C</span><span class="err">:</span><span class="p">\</span><span class="n">Users</span><span class="p">\</span><span class="n">bradley</span><span class="p">.</span><span class="n">SCHATZFORENSIC</span><span class="p">&gt;</span> <span class="nb">Set-NetConnectionProfile</span> <span class="n">-interfacealias</span> <span class="s2">&#34;WiFi 3&#34;</span> <span class="err">–</span><span class="n">NetworkCategory</span> <span class="n">Private</span></code></pre></div>
<p>On running this, I saw the Network and Sharing Centre applet immediately update to indicate that the network was now a Private Network.</p>

<p><a href="/uploads/2014/12/image61.png"><img src="/uploads/2014/12/image6_thumb.png" alt="image" />
</a></p>

<p>Refreshing the registry viewer, the value of the Category key was now 1.</p>

<p><a href="/uploads/2014/12/image91.png"><img src="/uploads/2014/12/image9_thumb.png" alt="image" />
</a></p>

<p>I undertook the above for three iterations and observed the same changes every time. I additionally attempted to undertake a Remote Desktop session while both settings were in place. The outcomes were consistent with the description of the above Firewall Rules. When the network was configured as private, I was unable to establish a connection, and when it was configured as public, I was able to establish a Remote Desktop session.</p>

<h3 id="hypothesis-formulation">Hypothesis formulation</h3>

<p>At this point my hypothesis was that the value of the Category key corresponded to the Network Category of a network profile. That is:</p>

<pre><code>0 == Public
1 == Private
</code></pre>

<p>Of course, this hypothesis could be wrong: what if what I was observing was just one of many configurations occurring as a result of the powershell command?</p>

<p>Accordingly, I undertook an experiment to confirm both these interpretations of the values, and their application of the corresponding firewall rules.</p>

<h3 id="testing">Testing</h3>

<p>I manually edited only the Category key of corresponding Network Profile and set it to 0. I restarted the Windows Firewall Service, at which point, I saw the Network and Sharing Centre applet immediately update to indicate that the network was now a Public Network. I attempted to establish a Remote Desktop session, which failed.</p>

<p>I then manually edited the Category key and set it to 1. I restarted the Windows Firewall Service, at which point, I saw the Network and Sharing Centre applet immediately update to indicate that the network was now a Private Network. I attempted to establish a Remote Desktop session, which succeeded.</p>

<p>I undertook the preceding experiment 3 times and received the same result each time.</p>

<h3 id="automation">Automation</h3>

<p>I modified the networklist.pl plugin of RegRipper to interpret the Category key per the above theory. A third value of the “Category” key was observed: the value of 2. Based on context in which it came up I have inferred that it refers to a Network Category of Domain. I have not tested this.</p>

<h3 id="conclusions">Conclusions</h3>

<p>I didn’t undertake an exhaustive literature review in regard to the above research, so it may well be that this registry artefact has already been treated elsewhere. Please do let me know if I have missed any prior work that you are aware of.</p>

<p>The updated networklist.pl script is currently in my <a href="https://github.com/blschatz/RegRipper2.8">GitHub branch of RegRipper</a>.</p>

<p>I encourage you to validate this new version of networklist.pl against your own registry and let me know if it is consistent with your running configuration, or not.</p>

<p><strong>UPDATE</strong>: Harlan Carvey has merged this patch into the main <a href="https://github.com/keydet89/RegRipper2.8">RegRipper development tree at GitHub</a>.</p>
]]>
	  </description>
	  <content:encoded>
		  <![CDATA[
		  	

<p>I came across this question recently in relation to claims that access to a Windows 8 host via Windows Remote Desktop Protocol was blocked by the firewall configuration. This post describes my research into the registry artefacts related to answering the question, and provides a patch to RegRipper to assist in analysis.</p>

<h3 id="theory-of-operation">Theory of operation</h3>

<p>Windows 8 uses the same firewall configuration entries used by Windows 7. Windows ships with a number of firewall rules enabled, and these may be added to or modified by the user, for example using the windows firewall control panel applet.</p>

<p><a href="/uploads/2014/12/image7.png"><img src="/uploads/2014/12/image_thumb7.png" alt="image" />
</a></p>

<p>Rules are scoped by Profile, which is either Public, Private, or Domain. Note that I am going to refer to these are a “Network Category” herein, for reasons that will become apparent. These Network Categories (profiles) are associated with particular networks: for example, in the window capture below you can see that my home wireless connection is a “Private network”. For a “Private Network”, firewall rules with a value of “Private” will be applied.</p>

<p><a href="/uploads/2014/12/image8.png"><img src="/uploads/2014/12/image_thumb8.png" alt="image" />
</a></p>

<p>The firewall rules are stored in the registry at HKLM\System\CurrentlControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules.</p>

<p><a href="/uploads/2014/12/image9.png"><img src="/uploads/2014/12/image_thumb9.png" alt="image" />
</a></p>

<p>The value of the rule above for “RemoteDesktop-UserMode-In-TCP” is</p>

<pre><code>v2.20|Action=Allow|Active=FALSE|Dir=In|Protocol=6|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=@FirewallAPI.dll,-28775|Desc=@FirewallAPI.dll,-28756|EmbedCtxt=@FirewallAPI.dll,-28752|
</code></pre>

<p>Comparing this the applet above, we can see that this corresponds to the disabled RemoteDesktop-UserMode-In-TCP rule. Looking for the second TCP related RDP, I found the following rule with the key name “{6AFE835E-629E-48DA-A87E-AB6C367D2BB7}&quot;, which corresponds to the similar rule that is enabled for both Private and Domain.</p>

<pre><code>v2.20|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|LPort=3389|App=%SystemRoot%\\system32\\svchost.exe|Svc=termservice|Name=@FirewallAPI.dll,-28775|Desc=@FirewallAPI.dll,-28756|EmbedCtxt=@FirewallAPI.dll,-28752|
</code></pre>

<h3 id="observation-identifying-the-category">Observation: Identifying the Category</h3>

<p>Existing theory around mapping active networks from the registry is generally accepted: network profiles are stored in HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles. The RegRipper networklist plugin interprets the contents of this registry sub tree.</p>

<p>What my review of the current literature didn’t reveal is how to identify whether a Network Profile is configured as “Private”, “Public”, or “Domain”. Hence, I started looking for automated ways configuring a network in such a manner, from which I hoped to identify the relevant registry keys.</p>

<p>The  documentation for the PowerShell “<a href="http://technet.microsoft.com/en-us/library/jj899565.aspx">Set-NetConnectionProfile</a>” command lists the following parameters for the “-NetworkCategory” arguments:</p>

<pre><code>Specifies an array of category types of a network. You cannot set the DomainAuthenticated type by using this cmdlet. The server automatically sets the value of DomainAuthenticated when the network is authenticated to a domain controller. The acceptable values for this parameter are:
-- Public
-- Private
</code></pre>

<p>I opened up powershell and issued the following command.</p>
<div class="highlight"><pre class="chroma"><code class="language-powershell" data-lang="powershell"><span class="n">PS</span> <span class="n">C</span><span class="err">:</span><span class="p">\</span><span class="n">Users</span><span class="p">\</span><span class="n">bradley</span><span class="p">.</span><span class="n">SCHATZFORENSIC</span><span class="p">&gt;</span> <span class="nb">Set-NetConnectionProfile</span> <span class="n">-interfacealias</span> <span class="s2">&#34;WiFi 3&#34;</span> <span class="n">-NetworkCategory</span> <span class="n">Public</span></code></pre></div>
<p>On running this, we see the Network and Sharing Centre applet immediately updated to indicate that the network was now a Public Network.</p>

<p><a href="/uploads/2014/12/image10.png"><img src="/uploads/2014/12/image_thumb10.png" alt="image" />
</a></p>

<p>Examination of the associated profile shows a registry key called Category. Based on the naming of the powershell argument “NetworkCategory”, I hypothesised that the Category key might contain the value of relevance. In this instance it was set to a value of 0.</p>

<p><a href="/uploads/2014/12/image31.png"><img src="/uploads/2014/12/image3_thumb.png" alt="image" />
</a></p>

<p>I opened then issued the following command.</p>
<div class="highlight"><pre class="chroma"><code class="language-powershell" data-lang="powershell"><span class="n">PS</span> <span class="n">C</span><span class="err">:</span><span class="p">\</span><span class="n">Users</span><span class="p">\</span><span class="n">bradley</span><span class="p">.</span><span class="n">SCHATZFORENSIC</span><span class="p">&gt;</span> <span class="nb">Set-NetConnectionProfile</span> <span class="n">-interfacealias</span> <span class="s2">&#34;WiFi 3&#34;</span> <span class="err">–</span><span class="n">NetworkCategory</span> <span class="n">Private</span></code></pre></div>
<p>On running this, I saw the Network and Sharing Centre applet immediately update to indicate that the network was now a Private Network.</p>

<p><a href="/uploads/2014/12/image61.png"><img src="/uploads/2014/12/image6_thumb.png" alt="image" />
</a></p>

<p>Refreshing the registry viewer, the value of the Category key was now 1.</p>

<p><a href="/uploads/2014/12/image91.png"><img src="/uploads/2014/12/image9_thumb.png" alt="image" />
</a></p>

<p>I undertook the above for three iterations and observed the same changes every time. I additionally attempted to undertake a Remote Desktop session while both settings were in place. The outcomes were consistent with the description of the above Firewall Rules. When the network was configured as private, I was unable to establish a connection, and when it was configured as public, I was able to establish a Remote Desktop session.</p>

<h3 id="hypothesis-formulation">Hypothesis formulation</h3>

<p>At this point my hypothesis was that the value of the Category key corresponded to the Network Category of a network profile. That is:</p>

<pre><code>0 == Public
1 == Private
</code></pre>

<p>Of course, this hypothesis could be wrong: what if what I was observing was just one of many configurations occurring as a result of the powershell command?</p>

<p>Accordingly, I undertook an experiment to confirm both these interpretations of the values, and their application of the corresponding firewall rules.</p>

<h3 id="testing">Testing</h3>

<p>I manually edited only the Category key of corresponding Network Profile and set it to 0. I restarted the Windows Firewall Service, at which point, I saw the Network and Sharing Centre applet immediately update to indicate that the network was now a Public Network. I attempted to establish a Remote Desktop session, which failed.</p>

<p>I then manually edited the Category key and set it to 1. I restarted the Windows Firewall Service, at which point, I saw the Network and Sharing Centre applet immediately update to indicate that the network was now a Private Network. I attempted to establish a Remote Desktop session, which succeeded.</p>

<p>I undertook the preceding experiment 3 times and received the same result each time.</p>

<h3 id="automation">Automation</h3>

<p>I modified the networklist.pl plugin of RegRipper to interpret the Category key per the above theory. A third value of the “Category” key was observed: the value of 2. Based on context in which it came up I have inferred that it refers to a Network Category of Domain. I have not tested this.</p>

<h3 id="conclusions">Conclusions</h3>

<p>I didn’t undertake an exhaustive literature review in regard to the above research, so it may well be that this registry artefact has already been treated elsewhere. Please do let me know if I have missed any prior work that you are aware of.</p>

<p>The updated networklist.pl script is currently in my <a href="https://github.com/blschatz/RegRipper2.8">GitHub branch of RegRipper</a>.</p>

<p>I encourage you to validate this new version of networklist.pl against your own registry and let me know if it is consistent with your running configuration, or not.</p>

<p><strong>UPDATE</strong>: Harlan Carvey has merged this patch into the main <a href="https://github.com/keydet89/RegRipper2.8">RegRipper development tree at GitHub</a>.</p>

		  ]]>
	  </content:encoded>
	  
	  
    </item>
    
  </channel>
</rss>