<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>InfoSec Blog</title>
    <link>http://blog.tevora.com/</link>
    <description>by Tevora Business Solutions</description>
    <language>en-us</language>
    <copyright>Tevora Business Solutions Inc.</copyright>
    <lastBuildDate>Thu, 27 Aug 2009 22:39:51 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>blog@tevora.com</managingEditor>
    <webMaster>blog@tevora.com</webMaster>
    <media:copyright>Tevora Business Solutions Inc.</media:copyright><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/tevora/AOWY" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=4a0b98af-fcf5-4356-8af5-dda8b8d96996</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,4a0b98af-fcf5-4356-8af5-dda8b8d96996.aspx</pingback:target>
      <dc:creator>Adam Brand</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">There are many sources on Google for configuring
SSL with Ubuntu, Apache2, and Ruby on Rails, but there isn’t one that I feel is straightforward
and comprehensive. So here is the skinny on how to get SSL going in your Rails app
on Apache 2 / Ubuntu.<br /><br />
For this case, we are assuming you are getting a certificate from GoDaddy (not a self-signed
cert), but you can get your cert from any certificate authority and the steps should
be the same.<br /><br />
I’ll use www.yourdomain.com as the example domain we want to secure.<br /><br />
NOTE: The blog column width has wrapped some of the command lines, so be mindful of
that.<br /><h3>Set Up Your Cert Directory
</h3>
There are four crypto-related files for SSL that need a home: 1) the CSR (you send
to GoDaddy), 2) the private key (which you keep), 3) the actual cert sent to you by
GoDaddy, and 4) the intermediate certificate (GoDaddy will send you).<br />
If you have Ubuntu, you probably have an <font face="Courier New">/etc/apache2</font> folder.
So create a folder in there called <font face="Courier New">ssl</font>.<br /><h3>Create Your Private Key
</h3>
You need openssl for this, so first do:<br /><blockquote><font face="Courier New">sudo apt-get install openssl</font><br /></blockquote>Then you actually make your private key, like this:<br /><blockquote><font face="Courier New">sudo openssl genrsa -des3 -out www.yourdomain.com.key
1024</font><br /></blockquote>It will ask you for a password. You’ll remove this later but for now
just type something you will remember. This key you will keep locally (don’t send
it to GoDaddy).<br /><h3>Create Your CSR
</h3>
This is the file you’ll actually send to GoDaddy to get your certificate:<br /><blockquote><font face="Courier New">sudo openssl req -new -key www.yourdomain.com.key
-out www.yourdomain.com.csr</font><br /></blockquote><h3>Get Your Cert and Intermediate Cert
</h3>
Now you go through Godaddy’s (or your certificate authority’s) process for getting
your certificate and their intermediate certificate. You’ll send them your CSR to
get these. Drop them in your<font face="Courier New"> /etc/apache2/ssl </font>folder.<br /><h3>Remove the Password from Your Private Key
</h3>
This step is optional, but if you don’t do it Apache won’t start automatically on
reboot (it will prompt for a password).<br /><blockquote><font face="Courier New">sudo mv www.yourdomain.com.key www.yourdomain.com.passkey</font><br /><font face="Courier New">sudo openssl rsa -in www.yourdomain.com.passkey -out www.yourdomain.com.key</font><br /></blockquote><h3>Set Appropriate Permissions on Your Key Files
</h3>
You don’t want random people to snag your keys. At this point if you do an <font face="Courier New">ls
-l</font> in the <font face="Courier New">/etc/apache2/ssl </font>folder you should
see that the files are owned by root. Now we just need to change the permissions so
only root can read them:<br /><blockquote><font face="Courier New">sudo chmod 400 /etc/apache2/ssl/*</font><br /></blockquote><h3>Prep Apache by Installing Mods
</h3>
Your Apache install probably doesn’t have mod_ssl or mod_headers installed, so you
will need to do:<br /><blockquote><font face="Courier New">sudo a2enmod ssl</font><br /><font face="Courier New">sudo a2enmod headers</font><br /></blockquote><h3>Adjust Site Config File in Apache
</h3>
Assuming your site is already operational with http, you should have a config file
already under /etc/apache2/sites-available (like default). Edit that file so that
it looks like:<br /><blockquote><font face="Courier New">&lt;VirtualHost *:443&gt;</font><br /><font face="Courier New">  ServerName  www.yourdomain.com</font><br /><font face="Courier New">  ServerAlias www.yourdomain.com</font><br /><font face="Courier New">  DocumentRoot /var/apps/yourapp/public</font><br /><br /><font face="Courier New">  SSLEngine On</font><br /><font face="Courier New">  SSLCertificateFile    /etc/apache2/ssl/www.yourdomain.com.crt</font><br /><font face="Courier New">  SSLCertificateKeyFile /etc/apache2/ssl/www.yourdomain.com.key</font><br /><font face="Courier New">  SSLCertificateChainFile /etc/apache2/ssl/gd_bundle.crt</font><br /><br /><font face="Courier New">  #For RoR "Mongrel"</font><br /><font face="Courier New">  RequestHeader set X-Forwarded-Proto "https"</font><br /><br /><font face="Courier New">  #Hack for IE</font><br /><font face="Courier New">  SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown</font><br /><font face="Courier New">&lt;/VirtualHost&gt;</font><br /></blockquote>…you of course will need to put in your domain where applicable and also
put the name of your key files in there as well. 
<br /><h3>Restart Apache
</h3>
These changes don't take effect until you restart apache, so do:<br /><blockquote><font face="Courier New">sudo /etc/init.d/apache2 restart</font><br /></blockquote><h3>Adjust Your Rails App
</h3>
Now we need to adjust your rails app so that it supports SSL. Edit your <font face="Courier New">/app/controllers/application_controller.rb</font> and
add this at the bottom:<br /><blockquote><font face="Courier New">  def ssl_required?</font><br /><font face="Courier New">    true</font><br /><font face="Courier New">  end</font><br /></blockquote>If you wanted to get fancy,  you could add  in some code there
to return false if<font face="Courier New"> local_request</font> or<font face="Courier New"> RAILS_ENV
== ‘test’</font>.<br /><br />
That’s it! Hope this saves someone else some web research!<br />
 <br /><br /><p /><img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=4a0b98af-fcf5-4356-8af5-dda8b8d96996" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/DGbsM5-v9XM" height="1" width="1" /></body>
      <title>Adding SSL to Ubuntu / Apache2 / Ruby on Rails</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,4a0b98af-fcf5-4356-8af5-dda8b8d96996.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/DGbsM5-v9XM/AddingSSLToUbuntuApache2RubyOnRails.aspx</link>
      <pubDate>Thu, 27 Aug 2009 22:39:51 GMT</pubDate>
      <description>There are many sources on Google for configuring SSL with Ubuntu, Apache2, and Ruby on Rails, but there isn’t one that I feel is straightforward and comprehensive. So here is the skinny on how to get SSL going in your Rails app on Apache 2 / Ubuntu.&lt;br&gt;
&lt;br&gt;
For this case, we are assuming you are getting a certificate from GoDaddy (not a self-signed
cert), but you can get your cert from any certificate authority and the steps should
be the same.&lt;br&gt;
&lt;br&gt;
I’ll use www.yourdomain.com as the example domain we want to secure.&lt;br&gt;
&lt;br&gt;
NOTE: The blog column width has wrapped some of the command lines, so be mindful of
that.&lt;br&gt;
&lt;h3&gt;Set Up Your Cert Directory
&lt;/h3&gt;
There are four crypto-related files for SSL that need a home: 1) the CSR (you send
to GoDaddy), 2) the private key (which you keep), 3) the actual cert sent to you by
GoDaddy, and 4) the intermediate certificate (GoDaddy will send you).&lt;br&gt;
If you have Ubuntu, you probably have an &lt;font face="Courier New"&gt;/etc/apache2&lt;/font&gt; folder.
So create a folder in there called &lt;font face="Courier New"&gt;ssl&lt;/font&gt;.&lt;br&gt;
&lt;h3&gt;Create Your Private Key
&lt;/h3&gt;
You need openssl for this, so first do:&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo apt-get install openssl&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;Then you actually make your private key, like this:&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo openssl genrsa -des3 -out www.yourdomain.com.key
1024&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;It will ask you for a password. You’ll remove this later but for now
just type something you will remember. This key you will keep locally (don’t send
it to GoDaddy).&lt;br&gt;
&lt;h3&gt;Create Your CSR
&lt;/h3&gt;
This is the file you’ll actually send to GoDaddy to get your certificate:&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo openssl req -new -key www.yourdomain.com.key
-out www.yourdomain.com.csr&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Get Your Cert and Intermediate Cert
&lt;/h3&gt;
Now you go through Godaddy’s (or your certificate authority’s) process for getting
your certificate and their intermediate certificate. You’ll send them your CSR to
get these. Drop them in your&lt;font face="Courier New"&gt; /etc/apache2/ssl &lt;/font&gt;folder.&lt;br&gt;
&lt;h3&gt;Remove the Password from Your Private Key
&lt;/h3&gt;
This step is optional, but if you don’t do it Apache won’t start automatically on
reboot (it will prompt for a password).&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo mv www.yourdomain.com.key www.yourdomain.com.passkey&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;sudo openssl rsa -in www.yourdomain.com.passkey -out www.yourdomain.com.key&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Set Appropriate Permissions on Your Key Files
&lt;/h3&gt;
You don’t want random people to snag your keys. At this point if you do an &lt;font face="Courier New"&gt;ls
-l&lt;/font&gt; in the &lt;font face="Courier New"&gt;/etc/apache2/ssl &lt;/font&gt;folder you should
see that the files are owned by root. Now we just need to change the permissions so
only root can read them:&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo chmod 400 /etc/apache2/ssl/*&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Prep Apache by Installing Mods
&lt;/h3&gt;
Your Apache install probably doesn’t have mod_ssl or mod_headers installed, so you
will need to do:&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo a2enmod ssl&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;sudo a2enmod headers&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Adjust Site Config File in Apache
&lt;/h3&gt;
Assuming your site is already operational with http, you should have a config file
already under /etc/apache2/sites-available (like default). Edit that file so that
it looks like:&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;&amp;lt;VirtualHost *:443&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; ServerName&amp;nbsp; www.yourdomain.com&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; ServerAlias www.yourdomain.com&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; DocumentRoot /var/apps/yourapp/public&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; SSLEngine On&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; SSLCertificateFile&amp;nbsp;&amp;nbsp;&amp;nbsp; /etc/apache2/ssl/www.yourdomain.com.crt&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; SSLCertificateKeyFile /etc/apache2/ssl/www.yourdomain.com.key&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; SSLCertificateChainFile /etc/apache2/ssl/gd_bundle.crt&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; #For RoR "Mongrel"&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; RequestHeader set X-Forwarded-Proto "https"&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; #Hack for IE&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;…you of course will need to put in your domain where applicable and also
put the name of your key files in there as well. 
&lt;br&gt;
&lt;h3&gt;Restart Apache
&lt;/h3&gt;
These changes don't take effect until you restart apache, so do:&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo /etc/init.d/apache2 restart&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Adjust Your Rails App
&lt;/h3&gt;
Now we need to adjust your rails app so that it supports SSL. Edit your &lt;font face="Courier New"&gt;/app/controllers/application_controller.rb&lt;/font&gt; and
add this at the bottom:&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;&amp;nbsp; def ssl_required?&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; true&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;&amp;nbsp; end&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;If you wanted to get fancy,&amp;nbsp; you could add&amp;nbsp; in some code there
to return false if&lt;font face="Courier New"&gt; local_request&lt;/font&gt; or&lt;font face="Courier New"&gt; RAILS_ENV
== ‘test’&lt;/font&gt;.&lt;br&gt;
&lt;br&gt;
That’s it! Hope this saves someone else some web research!&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=4a0b98af-fcf5-4356-8af5-dda8b8d96996" /&gt;</description>
      <category>Enterprise Applications</category>
      <category>General Security</category>
    <feedburner:origLink>http://blog.tevora.com/2009/08/27/AddingSSLToUbuntuApache2RubyOnRails.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=3e08f540-2668-4f6c-aefa-0d3191c47e25</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,3e08f540-2668-4f6c-aefa-0d3191c47e25.aspx</pingback:target>
      <dc:creator>Adam Brand</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">There is a lot of information on iptables
(the Linux firewall) out there, but most of them focus on ingress rules. 
<br /><br />
Unfortunately, in many cases, simply creating ingress rules are insufficient. On systems
you really want to secure, you should also set up egress (outbound) rules to restrict
outbound traffic. 
<br /><br /><br />
NOTE: The commands in this post assume a Debian-based distribution (e.g., Ubuntu server).
The iptables commands should be the same across distributions, but check your own
distro’s reference guide for how to save and load iptables as those steps vary.<br /><br />
ALSO NOTE: Because of the column width in this blog, some of the rules wrap to a second
line. Keep in mind that all the lines start with "<font face="Courier New">sudo iptables</font>".<br /><br />
In the below example, we’ll set up fairly common rules for a server that only really
needs to get package updates. Remember that these are case sensitive commands, and
also that the order you type them is the order that they are evaluated (i.e., if you
are connecting over SSH, don’t do the <font face="Courier New">-A OUTPUT -j REJECT</font> first).<br /><blockquote><font face="Courier New">sudo iptables -A OUTPUT -o lo -p all -j ACCEPT </font><br /><font face="Courier New">sudo iptables -A OUTPUT -m state --state RELATED, ESTABLISHED
-j ACCEPT</font><br /><font face="Courier New">sudo iptables -A OUTPUT -p tcp --dport 80 -d security.ubuntu.com
-j ACCEPT</font><br /><font face="Courier New">sudo iptables -A OUTPUT -p tcp --dport 80 -d us.archive.ubuntu.com
-j ACCEPT</font><br /><font face="Courier New">sudo iptables -A OUTPUT -j REJECT</font></blockquote><br />
IMPORTANT: Do not add the <font face="Courier New">security.ubuntu.com</font> or <font face="Courier New">us.archive.ubuntu.com</font> rules
unless you make a <font face="Courier New">/etc/hosts</font> entry for those...otherwise
you will also need to let DNS out and it will be SLOW.<br /><br />
Let’s take a look at each of these rules:<br /><br /><br /><blockquote><font face="Courier New">sudo iptables -A OUTPUT -o lo -p all -j ACCEPT </font><br /></blockquote><br />
This is adding an entry saying that we should accept any traffic that wants to go
outbound on the local (127.0.0.1) interface. Some applications use this interface
to exchange information, and we don’t want to break those.<br /><br /><br /><blockquote><font face="Courier New">sudo iptables -A OUTPUT -m state --state RELATED,
ESTABLISHED -j ACCEPT</font><br /></blockquote><br />
This is the “secret sauce” rule, and one that is often forgotten, leading to disconnected
sessions and confusion. What this says is allow outbound traffic that associated with
a session that is already established or related to an established session. For example,
if you have SSH on your server, you can open up port 22 inbound, but how will the
server send data back to clients (that may even suggest an alternate higher port for
subsequent communications)? That’s what this rule allows.<br /><br /><br /><blockquote><font face="Courier New">sudo iptables -A OUTPUT -p tcp --dport 80 -d
security.ubuntu.com -j ACCEPT</font><br /><font face="Courier New">sudo iptables -A OUTPUT -p tcp --dport 80 -d us.archive.ubuntu.com
-j ACCEPT</font><br /></blockquote><br />
These rules simply tell iptables to allow traffic going to port 80 for ubuntu’s update
servers. These may be different depending on your region, and there may be more, so
you will have to do an apt-get update after you do this to make sure that it works
for you. IMPORTANT: As I mentioned before, DO NOT enable these rules without first
putting an entry mapping the appropriate IP’s in <font face="Courier New">/etc/hosts</font>.
Also if Ubuntu changes these IP’s, you will need to update your hosts entry. Otherwise
you would have to enable DNS to resolve those names and there could potentially be
an external lookup for every outbound packet (ouch!).<br /><br /><br /><blockquote><font face="Courier New">sudo iptables -A OUTPUT -j REJECT</font><br /></blockquote><br />
This is the rule that kills all the other traffic. This should definitely be the last
rule in your chain, or the other rules won’t work.<br /><br />
That’s it!<br /><br /><br />
Don’t forget to do:<br /><blockquote><font face="Courier New">sudo sh -c "iptables-save &gt; /etc/iptables.rules"</font><br /></blockquote><br />
if you want to keep the rules, and then add:<br /><blockquote><font face="Courier New">pre-up iptables-restore &lt; /etc/iptables.rules </font><br /></blockquote>under the interface (eth0 or whatever) in <font face="Courier New">/etc/network/interfaces</font>.<br /><br /><br />
Here are some other egress rules you may be interested in:<br /><br /><br />
To allow “ping” to work (from the server):<br /><blockquote><font face="Courier New">sudo iptables -A OUTPUT -p icmp --icmp echo-request
-j ACCEPT</font><br /><font face="Courier New">sudo iptables -A OUTPUT -p icmp --icmp echo-reply -j ACCEPT</font><br /></blockquote><br /><br />
To allow DNS to work (from the server):<br /><blockquote><font face="Courier New">sudo iptables -A OUTPUT -p tcp --dport 53 -j
ACCEPT</font><br /><font face="Courier New">sudo iptables -A OUTPUT -p udp --dport 53 -j ACCEPT</font><br /></blockquote><br /><br />
So now you have no excuse to leave your outbound traffic unguarded…get to it! :-)<br /><br /><p /><img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=3e08f540-2668-4f6c-aefa-0d3191c47e25" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/cFaMIgPIKcQ" height="1" width="1" /></body>
      <title>Configuring Egress (Outbound) Rules with iptables (ubuntu style)</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,3e08f540-2668-4f6c-aefa-0d3191c47e25.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/cFaMIgPIKcQ/ConfiguringEgressOutboundRulesWithIptablesUbuntuStyle.aspx</link>
      <pubDate>Wed, 26 Aug 2009 22:49:08 GMT</pubDate>
      <description>There is a lot of information on iptables (the Linux firewall) out there, but most of them focus on ingress rules. &lt;br&gt;
&lt;br&gt;
Unfortunately, in many cases, simply creating ingress rules are insufficient. On systems
you really want to secure, you should also set up egress (outbound) rules to restrict
outbound traffic. 
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
NOTE: The commands in this post assume a Debian-based distribution (e.g., Ubuntu server).
The iptables commands should be the same across distributions, but check your own
distro’s reference guide for how to save and load iptables as those steps vary.&lt;br&gt;
&lt;br&gt;
ALSO NOTE: Because of the column width in this blog, some of the rules wrap to a second
line. Keep in mind that all the lines start with "&lt;font face="Courier New"&gt;sudo iptables&lt;/font&gt;".&lt;br&gt;
&lt;br&gt;
In the below example, we’ll set up fairly common rules for a server that only really
needs to get package updates. Remember that these are case sensitive commands, and
also that the order you type them is the order that they are evaluated (i.e., if you
are connecting over SSH, don’t do the &lt;font face="Courier New"&gt;-A OUTPUT -j REJECT&lt;/font&gt; first).&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -o lo -p all -j ACCEPT &lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -m state --state RELATED, ESTABLISHED
-j ACCEPT&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -p tcp --dport 80 -d security.ubuntu.com
-j ACCEPT&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -p tcp --dport 80 -d us.archive.ubuntu.com
-j ACCEPT&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -j REJECT&lt;/font&gt;&lt;/blockquote&gt;
&lt;br&gt;
IMPORTANT: Do not add the &lt;font face="Courier New"&gt;security.ubuntu.com&lt;/font&gt; or &lt;font face="Courier New"&gt;us.archive.ubuntu.com&lt;/font&gt; rules
unless you make a &lt;font face="Courier New"&gt;/etc/hosts&lt;/font&gt; entry for those...otherwise
you will also need to let DNS out and it will be SLOW.&lt;br&gt;
&lt;br&gt;
Let’s take a look at each of these rules:&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -o lo -p all -j ACCEPT &lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
This is adding an entry saying that we should accept any traffic that wants to go
outbound on the local (127.0.0.1) interface. Some applications use this interface
to exchange information, and we don’t want to break those.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -m state --state RELATED,
ESTABLISHED -j ACCEPT&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
This is the “secret sauce” rule, and one that is often forgotten, leading to disconnected
sessions and confusion. What this says is allow outbound traffic that associated with
a session that is already established or related to an established session. For example,
if you have SSH on your server, you can open up port 22 inbound, but how will the
server send data back to clients (that may even suggest an alternate higher port for
subsequent communications)? That’s what this rule allows.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -p tcp --dport 80 -d
security.ubuntu.com -j ACCEPT&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -p tcp --dport 80 -d us.archive.ubuntu.com
-j ACCEPT&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
These rules simply tell iptables to allow traffic going to port 80 for ubuntu’s update
servers. These may be different depending on your region, and there may be more, so
you will have to do an apt-get update after you do this to make sure that it works
for you. IMPORTANT: As I mentioned before, DO NOT enable these rules without first
putting an entry mapping the appropriate IP’s in &lt;font face="Courier New"&gt;/etc/hosts&lt;/font&gt;.
Also if Ubuntu changes these IP’s, you will need to update your hosts entry. Otherwise
you would have to enable DNS to resolve those names and there could potentially be
an external lookup for every outbound packet (ouch!).&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -j REJECT&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
This is the rule that kills all the other traffic. This should definitely be the last
rule in your chain, or the other rules won’t work.&lt;br&gt;
&lt;br&gt;
That’s it!&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Don’t forget to do:&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo sh -c "iptables-save &amp;gt; /etc/iptables.rules"&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
if you want to keep the rules, and then add:&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;pre-up iptables-restore &amp;lt; /etc/iptables.rules &lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;under the interface (eth0 or whatever) in &lt;font face="Courier New"&gt;/etc/network/interfaces&lt;/font&gt;.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Here are some other egress rules you may be interested in:&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
To allow “ping” to work (from the server):&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -p icmp --icmp echo-request
-j ACCEPT&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -p icmp --icmp echo-reply -j ACCEPT&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;br&gt;
To allow DNS to work (from the server):&lt;br&gt;
&lt;blockquote&gt;&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -p tcp --dport 53 -j
ACCEPT&lt;/font&gt;
&lt;br&gt;
&lt;font face="Courier New"&gt;sudo iptables -A OUTPUT -p udp --dport 53 -j ACCEPT&lt;/font&gt;
&lt;br&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;br&gt;
So now you have no excuse to leave your outbound traffic unguarded…get to it! :-)&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=3e08f540-2668-4f6c-aefa-0d3191c47e25" /&gt;</description>
      <category>General Security</category>
    <feedburner:origLink>http://blog.tevora.com/2009/08/26/ConfiguringEgressOutboundRulesWithIptablesUbuntuStyle.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=6ed7fc96-b88e-46ac-b88b-33d04303ff27</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,6ed7fc96-b88e-46ac-b88b-33d04303ff27.aspx</pingback:target>
      <dc:creator>Brennen Reynolds</dc:creator>
      <title>Digital Evidence Collection</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,6ed7fc96-b88e-46ac-b88b-33d04303ff27.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/J2AAy1qR1Js/DigitalEvidenceCollection.aspx</link>
      <pubDate>Fri, 19 Jun 2009 18:17:54 GMT</pubDate>
      <description>&lt;link href="file:///C:%5CDOCUME%7E1%5CBrennen%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel=File-List&gt;&lt;?xml:namespace prefix = o /&gt;
&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"&gt;&lt;/o:smarttagtype&gt;
&lt;o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"&gt;&lt;/o:smarttagtype&gt;
&lt;object id=ieooui classid=clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D&gt;
&lt;/object&gt;
&lt;style&gt;
st1\:*{behavior:url(#ieooui) }
&lt;/style&gt;
&lt;style&gt;
&lt;!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;p class=MsoNormal&gt;
Today it’s not if your organization will have an electronic incident it’s when will
that incident occur. Regardless of the type of incident there is a high likelihood
your organization will need to collect digital evidence and build some form of a case
file. However, it is often in the first moments after an incident is detected that
crucial mistakes are made by the organization. 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Most organizations are not able to justify having a fulltime forensic examiner on
staff. The result of this is when incidents do occur the first responders often have
not been properly trained on sound evidence collection procedures. This post is going
to cover some of the basic steps and precautions that first responders should follow
to ensure they aren’t permanently damaging, altering or destroying critical digital
evidence. 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;b&gt;Physical evidence&lt;/b&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
More times than not the organization’s IT staff is called upon as the first responders.
While these individuals have a deep understanding of the internal technical details
of the organizations electronic systems they often do not realize the importance of
the physical world surrounding the systems. When first arriving at the scene care
should be taken by all to not alter the physical environment. Extensive photographs
of the cubical, room, etc should be taken to document the location of all items in
the environment. 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Once the collection of items begins, proper protection should be taken to preserve
physical evidence such as fingerprints on keyboards as well as protect the responders
from any harmful substances in the area. Additionally, proper storage containers used
to collect physical evidence ensuring there is no opportunity for contamination as
the evidence is transported.
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;b&gt;Volatile storage evidence&lt;/b&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
The proliferation of Web 2.0 applications has greatly complicated the collection of
digital evidence as many times the information is either scattered in render scraps
across a massive hard drive or only stored in a systems volatile RAM while the application
is being accessed. Therefore, when the system is powered off the data is lost forever
unless it can be captured while the system is still live. 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
A number of forensic tool vendors have developed solutions to aid in the capture of
volatile information from systems. &lt;a href="http://www.e-fense.com/live-response.php"&gt;e-fense
Live Response&lt;/a&gt; USB key allows first responders to acquire a comprehensive copy
of all critical system settings and memory contents from a live system. &lt;a href="http://www.guidancesoftware.com/"&gt;&lt;?xml:namespace prefix = st1 /&gt;Guidance
Software’s enCase 
&lt;st1:city w:st="on"&gt;
&lt;st1:place w:st="on"&gt;Enterprise&lt;/st1:place&gt;
&lt;/st1:city&gt;
&lt;/a&gt; application has a privileged read-only process running on your organizations
systems that can be used to transfer volatile information from a system to a central
repository without alerting the user of the system or requiring physical access to
the device. 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;b&gt;Critical business system &lt;/b&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Finally I want to discuss how to handle a critical business system being involved
in an incident. Obviously these systems usually cannot be taken off-line and sent
to a forensics lab for processing. They tend to be multi-user systems with a high
volume of traffic and activity. This means that the system state is changing quickly
and potential evidence may be lost if not captured in a timely manner. The challenge
is how to make an image of the system while it’s still online and constantly changing. 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
Again, there are many vendors with different tools available that can do network-based
image transfers of live systems including &lt;a href="http://www.accessdata.com/"&gt;Access
Data&lt;/a&gt;&lt;a href="http://www.accessdata.com/"&gt;&lt;/a&gt;, &lt;a href="http://www.guidancesoftware.com/"&gt;Guidance
Software&lt;/a&gt; or even the open source dd utility piped over a netcat tunnel (for those
who aren’t looking to spend a lot of money). While this may not be as ideal as a standalone
drive imaging process given the restrictions of dealing with these critical systems
this is the best option available and any image (even a smeared one) is better than
none. 
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;span style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"&gt;In the end organizations
should be prepared to handle incidents when they occur. By acquiring a few key tools,
having documented and proper incident response procedures and providing those who
will be initial responders with some basic training can be the difference in success
or failure of building sound evidence backed cases. &lt;/span&gt; 
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=6ed7fc96-b88e-46ac-b88b-33d04303ff27" /&gt;&lt;img src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/J2AAy1qR1Js" height="1" width="1"/&gt;</description>
      <category>Incident Reponse</category>
    <feedburner:origLink>http://blog.tevora.com/2009/06/19/DigitalEvidenceCollection.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=1d025d90-121d-4356-b4de-c172f63afbe1</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,1d025d90-121d-4356-b4de-c172f63afbe1.aspx</pingback:target>
      <dc:creator>Ray Zadjmool</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>What is Multifactor Authentication?</strong>
        </p>
        <p>
Multifactor authentication can best be described as a string of authentication methods
from two or more of the three categories of factors. Considered a form of strong authentication,
Multifactor authentication is used to create a higher form of assurance on protected
assets.
</p>
        <p>
          <strong>How is it different from Two Factor Authentication?</strong>
        </p>
        <p>
          <img src="http://readerszone.com/wp-content/uploads/Logo/bitlocker_logo.jpg" style="WIDTH: 183px; DISPLAY: inline; FLOAT: right; HEIGHT: 170px" height="128" width="152" />Its
not. Two factor authentication is a form of Multifactor Authentication. The term Multifactor
Authentication was created as a means to describe strong authentication methods that
might not neccessarily fit the more narrow and traditional definition of Two Factor
Authentication. Where as Two Factor authentication is <em>"something you know, and
something you have",</em> multfiactor authentication can just as easily be <em>"something
you have, something you are" or "something you know, and something you are"</em></p>
        <p>
          <strong>How is it different from "Strong Authentication"?</strong>
        </p>
        <p>
Strong authentication can simply be multiple
</p>
        <p>
According to the FFIEC,
</p>
        <p>
"<em>By definition true multifactor authentication requires the use of solutions from
two or more of the three categories of factors. Using multiple solutions from the
same category ... would not constitute multifactor authentication."</em></p>
        <p>
The three categories of factors from which two or more are required to be true multifactor
authentication are:
</p>
        <ul>
          <li>
Human Factor: Something the user is (biometric characteristics, voice, fingerprint,
retina).</li>
          <li>
Personal Factor: Something the user knows ( password, PIN);</li>
          <li>
Techincal Factor: Something the user has (OTP Token, ATM card, smart card)</li>
        </ul>
        <p>
          <strong>Types of Multifactor: Biometric and Pin</strong>
        </p>
        <p>
          <em>"Something you know, something you are"</em>
        </p>
        <p>
          <img src="http://blog.tevora.com/content/binary/zrclip_001n1d609f1b.png" style="TEXT-ALIGN: center; DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto" height="180" width="216" />
        </p>
        <p dir="ltr">
Something you have - your finger, voice or your eye.
</p>
        <p dir="ltr">
Something you are - Pin.
</p>
        <ul dir="ltr">
          <li>
            <div>
              <strong>When to use it:</strong> Datacenters doors.
</div>
          </li>
          <li>
            <div>
              <strong>When not to use it:</strong> Anything consumer facing (Online banking,
portals)
</div>
          </li>
        </ul>
        <blockquote>
          <p>
            <strong>Pros:</strong>
          </p>
          <ol>
            <li>
very cool</li>
            <li>
secure as can be - just make sure you tell tech support if you lose an eye.</li>
            <li>
low learning curve - scan, pin, repeat.</li>
            <li>
Considered non-repudiatable - almost 100%. (There is always the chance for the old
but goody: "It wasnt me, it was my twin" excuse)=</li>
          </ol>
          <p>
            <strong>Cons:</strong>
          </p>
          <ol>
            <li>
Expensive capital costs.</li>
            <li>
Expensive maintenance costs. Tech support is incremently more difficult. Supporting
remote users becomes an interesting problem....</li>
            <li>
Interoperability. For some reason alot of bio metric solutions are just now catching
up to the whole integration bandwagon. While integration support is ramping up, interopility
with things like LDAP should not be assumed.</li>
          </ol>
        </blockquote>
        <p>
          <strong>Types of Multifactor: Smart Card and Pin</strong>
        </p>
        <p>
          <em>"Somethign you know, something you have"</em>
        </p>
        <p>
Take a smart card reader and a pin and what do you have? Multifactor authentication
for less than 13 bucks (11.25 for the reader, 1.75 for the card).<img src="http://www.udel.edu/CIS/106/iaydin/07F/labs/lab01_files/SunRayCard.gif" style="TEXT-ALIGN: center; DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto" height="187" width="213" /></p>
        <p style="TEXT-ALIGN: left" dir="ltr">
        </p>
        <p dir="ltr">
        </p>
        <p dir="ltr">
        </p>
        <p dir="ltr">
Something you have - smart card, credit card, usb token
</p>
        <p dir="ltr">
Something you know - Pin or password.
</p>
        <p dir="ltr">
        </p>
        <p dir="ltr">
        </p>
        <ul dir="ltr">
          <li>
            <div>
              <strong>When to use it:</strong> Consumer applications, building entry, credit
cards
</div>
          </li>
          <li>
            <strong>When not to use it:</strong> Emergency exits.</li>
        </ul>
        <blockquote>
          <p>
            <strong>Pros:</strong>
          </p>
          <ol>
            <li>
Cheap to start, cheap to scale.</li>
            <li>
Most operating systems have native support for smart cards.</li>
            <li>
Good for consumer facing applications.</li>
          </ol>
          <p>
            <strong>Cons:</strong>
          </p>
          <ol>
            <li>
Can be reproduced. (Track data anyone.. the first skimming scam happened 24 seconds
after the first credit card was issued).</li>
            <li>
Higher learning curve</li>
          </ol>
        </blockquote>
        <p>
          <strong>Types of Multifactor: Profile</strong>
          <strong>Questions and Browser</strong>
        </p>
        <p>
          <em>Something you have, something you know</em>
        </p>
        <p style="TEXT-ALIGN: left">
Think 20 questions. If the resource needs to be protected at a higher assurance level
than just a simple password, then a process by which multiple profile questions could
be asked. Once correctly answered, and out of band procedure is done to validate the
"browser" or "workstation". A security validation cookie is set and from then on,
the browser acts as the second factor.
</p>
        <p style="TEXT-ALIGN: left">
          <img src="http://blog.tevora.com/content/binary/zrclip_003p30bd84fb.png" style="BORDER-BOTTOM: #000000 1px solid; TEXT-ALIGN: center; BORDER-LEFT: #000000 1px solid; WIDTH: 241px; DISPLAY: block; HEIGHT: 156px; MARGIN-LEFT: auto; BORDER-TOP: #000000 1px solid; MARGIN-RIGHT: auto; BORDER-RIGHT: #000000 1px solid" height="469" width="799" />
        </p>
        <p style="TEXT-ALIGN: left" dir="ltr">
Something you have - out of band validated browser, workstation, email
</p>
        <p dir="ltr">
Something you know - Pin or password.
</p>
        <p>
          <strong>When to use it:</strong> Consumer portals, online bankcing
</p>
        <p>
          <strong>When not to use it:</strong> VPNS
</p>
        <div style="MARGIN-LEFT: 2em" dir="ltr">
          <p>
            <strong>Pros:</strong>
          </p>
        </div>
        <blockquote>
          <ol>
            <li>
Extremely cost effective. This is how you raise the assurance level of 200,000 users
across the country.</li>
            <li>
Low learning curve. Answer some questions, and you are off. Change computers? Do it
again.</li>
          </ol>
          <p>
            <strong>Cons:</strong>
          </p>
          <ol>
            <li>
Is it really multifactor? I think the argument can be made the "browser" is something
you have but only if you have an out of band procedure to assign the browser to the
user (SMS, email, letter). Having said that, be prepared for a geek battle.</li>
            <li>
Not really non-repudiate-able. The "what if my wife used my computer" scenario is
always cited as proof of its <span style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">illegitimacy</span>.</li>
          </ol>
        </blockquote>
        <img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=1d025d90-121d-4356-b4de-c172f63afbe1" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/ImpZTVCA2Wg" height="1" width="1" /></body>
      <title>Multifactor Authentication</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,1d025d90-121d-4356-b4de-c172f63afbe1.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/ImpZTVCA2Wg/MultifactorAuthentication.aspx</link>
      <pubDate>Wed, 27 May 2009 23:32:42 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;What is Multifactor Authentication?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Multifactor authentication can best be described as a string of authentication methods
from two or more of the three categories of factors. Considered a form of strong authentication,
Multifactor authentication is used to create a higher form of assurance on protected
assets.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;How is it different from Two Factor Authentication?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://readerszone.com/wp-content/uploads/Logo/bitlocker_logo.jpg" style="WIDTH: 183px; DISPLAY: inline; FLOAT: right; HEIGHT: 170px" height="128" width="152" /&gt;Its
not. Two factor authentication is a form of Multifactor Authentication. The term Multifactor
Authentication was created as a means to describe strong authentication methods that
might not neccessarily fit the more narrow and traditional definition of Two Factor
Authentication. Where as Two Factor authentication is &lt;em&gt;"something you know, and
something you have",&lt;/em&gt; multfiactor authentication can just as easily be &lt;em&gt;"something
you have, something you are" or "something you know, and something you are"&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;How is it different from "Strong Authentication"?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Strong authentication can simply be multiple
&lt;/p&gt;
&lt;p&gt;
According to the FFIEC,
&lt;/p&gt;
&lt;p&gt;
"&lt;em&gt;By definition true multifactor authentication requires the use of solutions from
two or more of the three categories of factors. Using multiple solutions from the
same category ... would not constitute multifactor authentication."&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
The three categories of factors from which two or more are required to be true multifactor
authentication are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Human Factor: Something the user is (biometric characteristics, voice, fingerprint,
retina).&lt;/li&gt;
&lt;li&gt;
Personal Factor: Something the user knows ( password, PIN);&lt;/li&gt;
&lt;li&gt;
Techincal Factor: Something the user has (OTP Token, ATM card, smart card)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Types of Multifactor: Biometric and Pin&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"Something you know, something you are"&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blog.tevora.com/content/binary/zrclip_001n1d609f1b.png" style="TEXT-ALIGN: center; DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto" height="180" width="216" /&gt;
&lt;/p&gt;
&lt;p dir="ltr"&gt;
Something you have - your finger, voice or your eye.
&lt;/p&gt;
&lt;p dir="ltr"&gt;
Something you are - Pin.
&lt;/p&gt;
&lt;ul dir="ltr"&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Datacenters doors.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;When not to use it:&lt;/strong&gt; Anything consumer facing (Online banking,
portals)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Pros:&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
very cool&lt;/li&gt;
&lt;li&gt;
secure as can be - just make sure you tell tech support if you lose an eye.&lt;/li&gt;
&lt;li&gt;
low learning curve - scan, pin, repeat.&lt;/li&gt;
&lt;li&gt;
Considered non-repudiatable - almost 100%. (There is always the chance for the old
but goody: "It wasnt me, it was my twin" excuse)=&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;Cons:&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Expensive capital costs.&lt;/li&gt;
&lt;li&gt;
Expensive maintenance costs. Tech support is incremently more difficult. Supporting
remote users becomes an interesting problem....&lt;/li&gt;
&lt;li&gt;
Interoperability. For some reason alot of bio metric solutions are just now catching
up to the whole integration bandwagon. While integration support is ramping up, interopility
with things like LDAP should not be assumed.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Types of Multifactor: Smart Card and Pin&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"Somethign you know, something you have"&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Take a smart card reader and a pin and what do you have? Multifactor authentication
for less than 13 bucks (11.25 for the reader, 1.75 for the card).&lt;img src="http://www.udel.edu/CIS/106/iaydin/07F/labs/lab01_files/SunRayCard.gif" style="TEXT-ALIGN: center; DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto" height="187" width="213" /&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left" dir="ltr"&gt;
&lt;/p&gt;
&lt;p dir="ltr"&gt;
&lt;/p&gt;
&lt;p dir="ltr"&gt;
&lt;/p&gt;
&lt;p dir="ltr"&gt;
Something you have - smart card, credit card, usb token
&lt;/p&gt;
&lt;p dir="ltr"&gt;
Something you know - Pin or password.
&lt;/p&gt;
&lt;p dir="ltr"&gt;
&lt;/p&gt;
&lt;p dir="ltr"&gt;
&lt;/p&gt;
&lt;ul dir="ltr"&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Consumer applications, building entry, credit
cards
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When not to use it:&lt;/strong&gt; Emergency exits.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Pros:&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Cheap to start, cheap to scale.&lt;/li&gt;
&lt;li&gt;
Most operating systems have native support for smart cards.&lt;/li&gt;
&lt;li&gt;
Good for consumer facing applications.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;Cons:&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Can be reproduced. (Track data anyone.. the first skimming scam happened 24 seconds
after the first credit card was issued).&lt;/li&gt;
&lt;li&gt;
Higher learning curve&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;Types of Multifactor: Profile&lt;/strong&gt; &lt;strong&gt;Questions and Browser&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Something you have, something you know&lt;/em&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left"&gt;
Think 20 questions. If the resource needs to be protected at a higher assurance level
than just a simple password, then a process by which multiple profile questions could
be asked. Once correctly answered, and out of band procedure is done to validate the
"browser" or "workstation". A security validation cookie is set and from then on,
the browser acts as the second factor.
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left"&gt;
&lt;img src="http://blog.tevora.com/content/binary/zrclip_003p30bd84fb.png" style="BORDER-BOTTOM: #000000 1px solid; TEXT-ALIGN: center; BORDER-LEFT: #000000 1px solid; WIDTH: 241px; DISPLAY: block; HEIGHT: 156px; MARGIN-LEFT: auto; BORDER-TOP: #000000 1px solid; MARGIN-RIGHT: auto; BORDER-RIGHT: #000000 1px solid" height="469" width="799" /&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left" dir="ltr"&gt;
Something you have - out of band validated browser, workstation, email
&lt;/p&gt;
&lt;p dir="ltr"&gt;
Something you know - Pin or password.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;When to use it:&lt;/strong&gt; Consumer portals, online bankcing
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;When not to use it:&lt;/strong&gt; VPNS
&lt;/p&gt;
&lt;div style="MARGIN-LEFT: 2em" dir="ltr"&gt;
&lt;p&gt;
&lt;strong&gt;Pros:&lt;/strong&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote&gt; 
&lt;ol&gt;
&lt;li&gt;
Extremely cost effective. This is how you raise the assurance level of 200,000 users
across the country.&lt;/li&gt;
&lt;li&gt;
Low learning curve. Answer some questions, and you are off. Change computers? Do it
again.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;Cons:&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Is it really multifactor? I think the argument can be made the "browser" is something
you have but only if you have an out of band procedure to assign the browser to the
user (SMS, email, letter). Having said that, be prepared for a geek battle.&lt;/li&gt;
&lt;li&gt;
Not really non-repudiate-able. The "what if my wife used my computer" scenario is
always cited as proof of its &lt;span style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;illegitimacy&lt;/span&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt; &lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=1d025d90-121d-4356-b4de-c172f63afbe1" /&gt;</description>
      <category>Authentication</category>
    <feedburner:origLink>http://blog.tevora.com/2009/05/27/MultifactorAuthentication.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=4169fac4-01be-4f64-8717-8c0429a949c2</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,4169fac4-01be-4f64-8717-8c0429a949c2.aspx</pingback:target>
      <dc:creator>Ray Zadjmool</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>What is Two factor authentication?</strong>
        </p>
        <p>
          <em>"Something you have, and something you know."</em>
        </p>
        <p>
Two Factor authentication has become a standard when non-repudiation or higher assurance
is needed to protect an asset. The premise behind it is easy; prove that you are who
you say you are. The idea is as old as the credit card (itself a two factor device);
combine a physical device with a username or pass code.
</p>
        <p style="MARGIN: 0pt">
        </p>
        <p style="MARGIN: 0pt">
OTP [One Time Passcode] solutions for Two Factor dominate the industry and are usually
referred to as Tokens.
</p>
        <p style="MARGIN: 0pt">
        </p>
        <p style="MARGIN: 0pt">
        </p>
        <p style="MARGIN: 0pt">
        </p>
        <p style="MARGIN: 0pt">
        </p>
        <p>
          <br />
        </p>
        <p style="MARGIN: 0pt">
          <strong>
            <strong>How Does Two Factor OTP work?</strong>
          </strong>
        </p>
        <p style="MARGIN: 0pt">
        </p>
        <p style="MARGIN: 0pt">
        </p>
        <p style="MARGIN: 0pt">
        </p>
        <p style="MARGIN: 0pt">
A "Seed" is used to get the server and token in sync. The OTP is generated using several
factors such as time, crypt althorithm and the seed to generate the OTP. As the name
applies, the postcode is designed to be used "one time" and usually is configured
to expire shortly after its been generated.
</p>
        <p style="MARGIN: 0pt">
        </p>
        <p>
          <br />
        </p>
        <p style="MARGIN: 0pt">
          <strong>
            <strong>Types of Two Factor OTP:</strong>
          </strong>
        </p>
        <p>
          <br />
        </p>
        <p style="MARGIN: 0pt">
Depending on your need, several options exist for deploying Two Factor OTP.
</p>
        <p style="MARGIN: 0pt">
        </p>
        <p>
          <strong>Hard Tokens:</strong> A physical device with battery.These can come in many
forms: USB based, Display only, or Display with Pin PAD.Note: The latest invotations
with Tokens included credit card hard tokens.
</p>
        <p style="TEXT-ALIGN: center">
          <img src="http://www.andrewpatrick.ca/wp-content/uploads/rsa_key.gif" style="WIDTH: 112px; HEIGHT: 68px" height="218" width="400" />
        </p>
        <p style="MARGIN: 0pt">
          <strong>Software Tokens</strong>: Same as hard tokens but innstead of a battery, its
software that is installed on the PC, Laptop or Smart Phone. Several environmental
factors such as the computer bios clock and network time are used in addition to the
seed to keep the OTP in sync with the server.
</p>
        <p style="TEXT-ALIGN: center">
          <img src="http://devcentral.f5.com/Portals/0/rsa_soft_token_w350.jpg" style="WIDTH: 120px; HEIGHT: 95px" height="135" width="103" />
        </p>
        <p style="MARGIN: 0pt">
        </p>
        <p style="MARGIN: 0pt">
          <strong>On Demand OTP</strong>: SMS/EMAIL. Directory profile information about the
users cell phone or email address is used to deliver the OTP.
</p>
        <p style="TEXT-ALIGN: center">
          <img src="http://i.msdn.microsoft.com/Cc838351.StrongUserAuthentication03(en-us,MSDN.10).jpg" style="WIDTH: 124px; HEIGHT: 54px" height="88" width="275" />
        </p>
        <p style="MARGIN: 0pt">
          <strong>Scratch Card</strong>: Unique to Entrust, the user has a scratch card that
has a bingo style grid on it. The server challenges an OTP much like bingo - A5, B7,
C9, D8. You have to have the scratch card to figure out what the OTP challenge is
from the server.
</p>
        <p style="TEXT-ALIGN: center">
          <img src="http://www.netbanker.com/Images/entrust_identity_guard_2_2.gif" style="WIDTH: 126px; HEIGHT: 98px" height="136" width="216" />
        </p>
        <p style="MARGIN: 0pt">
        </p>
        <p>
          <br />
        </p>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt">
          <em>
            <strong style="FONT-SIZE: 18px">OTP Considerations:</strong>
          </em>
        </p>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt">
        </p>
        <p>
          <br />
        </p>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt">
          <strong>
            <em>Pros:</em>
          </strong> What are the advantages of Two Factor OTP for strong
authentication?
</p>
        <p>
          <br />
        </p>
        <ul>
          <li>
Easy to setup.</li>
          <li>
Very mature technology. Most vendors include self service.</li>
          <li>
Universally supported across most technologies. Usually integrated with Radius but
most vendors provide out of the box support with popular access platforms like Siteminder
or CoreID.</li>
        </ul>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt">
        </p>
        <p>
          <br />
        </p>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt">
          <em>
            <strong>Cons:</strong> OTP is not perfect. What are some of the issues with deploying
Two Factor OTP?</em>
        </p>
        <p>
          <br />
        </p>
        <ul>
          <li>
Can be somewhat difficult to scale- logistically. Although there are a lot of options
available, a lot of questions must be answered prior to deployment.</li>
        </ul>
        <blockquote>
          <p style="TEXT-ALIGN: left; MARGIN: 0pt">
How do you deliver the tokens?
</p>
          <p style="TEXT-ALIGN: left; MARGIN: 0pt">
What happens when a user loses a token?
</p>
          <p style="TEXT-ALIGN: left; MARGIN: 0pt">
What if they are traveling and they lose a token?
</p>
          <p style="TEXT-ALIGN: left; MARGIN: 0pt">
What sort of permissions do they need to install a soft token?
</p>
          <p style="TEXT-ALIGN: left; MARGIN: 0pt">
Do I have accurate employee info in a directory to use SMS or email Tokens?
</p>
          <p style="TEXT-ALIGN: left; MARGIN: 0pt">
How do I prevent someone from changing them
</p>
        </blockquote>
        <ul>
          <li>
High costs to scale - especially hard tokens. Hard tokens can range from $5-$70 bucks
a user. Not bad at a 100 but at 10,00. Also consider that hard tokens do have a battery
and therefore a shelf like of 5-7 years</li>
        </ul>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt">
          <strong>Future</strong>: Look to the clouds. Several vendors like Verisign (See VIP
Network) are starting to offer cloud based authentication services to allow for cross
domain trust.
</p>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt 0pt 0pt 36pt">
        </p>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt 0pt 0pt 36pt">
Presumably these type of services will be a platform to offer additional services
like risk based authentication or integration with identity provider frameworks like
OpenID, or Federation.
</p>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt">
        </p>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt">
        </p>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt">
        </p>
        <p>
          <br />
        </p>
        <p style="TEXT-ALIGN: left; MARGIN: 0pt">
          <strong>Vendors:</strong>
        </p>
        <ul>
          <li style="LIST-STYLE-TYPE: none">
            <br />
          </li>
          <li>
            <strong>RSA -</strong> SecureID with Authentication Manager</li>
          <li>
            <strong>Activ Identity</strong>
          </li>
          <li>
            <strong>Entrust -</strong> Identity Gaurd Mini Token, Scratch Cards</li>
          <li>
            <strong>Verisign -</strong> Unified Authentication</li>
        </ul>
        <img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=4169fac4-01be-4f64-8717-8c0429a949c2" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/pJ5eZF3Fchg" height="1" width="1" /></body>
      <title>Two Factor Authentication with OTP</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,4169fac4-01be-4f64-8717-8c0429a949c2.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/pJ5eZF3Fchg/TwoFactorAuthenticationWithOTP.aspx</link>
      <pubDate>Wed, 27 May 2009 19:28:04 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;What is Two factor authentication?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"Something you have, and something you know."&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Two Factor authentication has become a standard when non-repudiation or higher assurance
is needed to protect an asset. The premise behind it is easy; prove that you are who
you say you are. The idea is as old as the credit card (itself a two factor device);
combine a physical device with a username or pass code.
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
OTP [One Time Passcode] solutions for Two Factor dominate the industry and are usually
referred to as Tokens.
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;strong&gt;&lt;strong&gt;How Does Two Factor OTP work?&lt;/strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
A "Seed" is used to get the server and token in sync. The OTP is generated using several
factors such as time, crypt althorithm and the seed to generate the OTP. As the name
applies, the postcode is designed to be used "one time" and usually is configured
to expire shortly after its been generated.
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;strong&gt;&lt;strong&gt;Types of Two Factor OTP:&lt;/strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
Depending on your need, several options exist for deploying Two Factor OTP.
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Hard Tokens:&lt;/strong&gt; A physical device with battery.These can come in many
forms: USB based, Display only, or Display with Pin PAD.Note: The latest invotations
with Tokens included credit card hard tokens.
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;
&lt;img src="http://www.andrewpatrick.ca/wp-content/uploads/rsa_key.gif" style="WIDTH: 112px; HEIGHT: 68px" height="218" width="400" /&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;strong&gt;Software Tokens&lt;/strong&gt;: Same as hard tokens but innstead of a battery, its
software that is installed on the PC, Laptop or Smart Phone. Several environmental
factors such as the computer bios clock and network time are used in addition to the
seed to keep the OTP in sync with the server.
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;
&lt;img src="http://devcentral.f5.com/Portals/0/rsa_soft_token_w350.jpg" style="WIDTH: 120px; HEIGHT: 95px" height="135" width="103" /&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;strong&gt;On Demand OTP&lt;/strong&gt;: SMS/EMAIL. Directory profile information about the
users cell phone or email address is used to deliver the OTP.
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;
&lt;img src="http://i.msdn.microsoft.com/Cc838351.StrongUserAuthentication03(en-us,MSDN.10).jpg" style="WIDTH: 124px; HEIGHT: 54px" height="88" width="275" /&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;strong&gt;Scratch Card&lt;/strong&gt;: Unique to Entrust, the user has a scratch card that
has a bingo style grid on it. The server challenges an OTP much like bingo - A5, B7,
C9, D8. You have to have the scratch card to figure out what the OTP challenge is
from the server.
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;
&lt;img src="http://www.netbanker.com/Images/entrust_identity_guard_2_2.gif" style="WIDTH: 126px; HEIGHT: 98px" height="136" width="216" /&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
&lt;em&gt;&lt;strong style="FONT-SIZE: 18px"&gt;OTP Considerations:&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
&lt;strong&gt;&lt;em&gt;Pros:&lt;/em&gt;&lt;/strong&gt; What are the advantages of Two Factor OTP for strong
authentication?
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Easy to setup.&lt;/li&gt;
&lt;li&gt;
Very mature technology. Most vendors include self service.&lt;/li&gt;
&lt;li&gt;
Universally supported across most technologies. Usually integrated with Radius but
most vendors provide out of the box support with popular access platforms like Siteminder
or CoreID.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
&lt;em&gt;&lt;strong&gt;Cons:&lt;/strong&gt; OTP is not perfect. What are some of the issues with deploying
Two Factor OTP?&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Can be somewhat difficult to scale- logistically. Although there are a lot of options
available, a lot of questions must be answered prior to deployment.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt; 
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
How do you deliver the tokens?
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
What happens when a user loses a token?
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
What if they are traveling and they lose a token?
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
What sort of permissions do they need to install a soft token?
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
Do I have accurate employee info in a directory to use SMS or email Tokens?
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
How do I prevent someone from changing them
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;ul&gt;
&lt;li&gt;
High costs to scale - especially hard tokens. Hard tokens can range from $5-$70 bucks
a user. Not bad at a 100 but at 10,00. Also consider that hard tokens do have a battery
and therefore a shelf like of 5-7 years&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
&lt;strong&gt;Future&lt;/strong&gt;: Look to the clouds. Several vendors like Verisign (See VIP
Network) are starting to offer cloud based authentication services to allow for cross
domain trust.
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt 0pt 0pt 36pt"&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt 0pt 0pt 36pt"&gt;
Presumably these type of services will be a platform to offer additional services
like risk based authentication or integration with identity provider frameworks like
OpenID, or Federation.
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;p style="TEXT-ALIGN: left; MARGIN: 0pt"&gt;
&lt;strong&gt;Vendors:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li style="LIST-STYLE-TYPE: none"&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RSA -&lt;/strong&gt; SecureID with Authentication Manager&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Activ Identity&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entrust -&lt;/strong&gt; Identity Gaurd Mini Token, Scratch Cards&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verisign -&lt;/strong&gt; Unified Authentication&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=4169fac4-01be-4f64-8717-8c0429a949c2" /&gt;</description>
      <category>Authentication</category>
    <feedburner:origLink>http://blog.tevora.com/2009/05/27/TwoFactorAuthenticationWithOTP.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=8f00435f-9d92-4e66-a043-fc33b91f9990</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,8f00435f-9d92-4e66-a043-fc33b91f9990.aspx</pingback:target>
      <dc:creator>Jason Pieters</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p style="margin-bottom: 12pt; text-align: center;" align="left">
          <br />
        </p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Within our homes, small and medium business settings, and enterprise environments
we use data. We manipulate it, we report on it, we use it to create more data, we
may ship it off site, we bring it in, and we send it out. While we need all of it
to do our jobs; are we watching or keeping up with where we are placing it?
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Are we concerned that some of the times that we send it out that we do so unknowingly
or accidentally?
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Do we ever stop and think about what the exposure to the company is if we continue
to create these stores of data that could expose us to legal proceedings, loss of
business, or worse?
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Data proliferation is occurring everywhere around us and surprisingly enough the majority
of it is legitimate use of data and a good portion of that data is sensitive and protected
under any number of regulatory concerns (PCI, HIPAA, California SB 1386, etc.). So
how do we understand data proliferation and what can we do to manage it?
</p>
        <p style="margin-bottom: 12pt; text-align: center;" align="center">
          <img src="http://blog.tevora.com/content/binary/photo-sharing-books.jpg" border="0" />
        </p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Understanding data proliferation is often times a mix of psychology, computer science,
and business processes re-engineering. It is frustrating at times but hopefully I
can put you on a path that will, if nothing else, assist in getting your hands around
your own data. Dealing with data proliferation is a continual fight that can be summed
up as follows:
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
          <span style="text-decoration: underline;">1. Identify Possible Locations</span>
        </p>
        <p style="margin-bottom: 12pt; text-align: justify;">
          <span style="text-decoration: underline;">2. Discover Sensitive Information</span>
        </p>
        <p style="margin-bottom: 12pt; text-align: justify;">
          <span style="text-decoration: underline;">3. Identify Business Process</span>
        </p>
        <p style="margin-bottom: 12pt; text-align: justify;">
          <span style="text-decoration: underline;">4. Re-Engineer or Remove Process</span>
        </p>
        <p style="margin-bottom: 12pt; text-align: justify;">
          <span style="text-decoration: underline;">5. Identify Third Party Locations</span>
        </p>
        <p style="margin-bottom: 12pt; text-align: justify;">
          <span style="text-decoration: underline;">6. Repeat the Process</span>
        </p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Each one of these steps will be expanded upon. Often times it is easy for us to pick
out the obvious locations where data is and or should be stored. This isn't our problem.
The problem is all of those areas where data is unexpectedly stored. So we will turn
to a tool to see what the damage is. For this I suggest using an open source tool.
I recommend <a href="http://www2.cit.cornell.edu/security/tools/spider-windows.html" target="_blank">Spider</a> if
you are in a Windows environment. It does the job of identifying the obvious credit
card numbers, social security numbers, etc. without the cost associated of an enterprise
data loss prevention solutions.
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
The problem is there will be false positives, but at this point in the game we are
just trying to hone in on our data stores and there is no cost justification for acquiring
a more powerful solution.
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
First identify all areas within the business that may use or work with sensitive data.
The immediate areas are typically, Human Resources, Accounting, Internal Audit, all
corporate file servers, and backups. This is not by any means an exhaustive list of
possible locations but these areas, in my experience, are typically the largest stores
of sensitive and protected information.
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
A typical scenario is that we use a tool like Spider within our network and we identify
a user workstation with multiple excel spreadsheets containing what appears to be
sensitive data. We talk to the user who has these files, and we find out that they
use these excel files to facilitate and monitor the charge back process and then at
the end of the quarter they can go back and show the charge back percentages and they
use it for profit analysis and any other number of legitimate business needs.
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
So we now have an idea of why but what happens with the data when it is compiled into
these reports, are there subsystems that are involved?
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Are there applications that are handling this data?
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Where are the backups located for these systems?
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Are there additional file shares that are used to share these excel files?
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Are there any laptops that are used to perform these business processes?
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Now the scope of our search has expanded from finding these excel files to maybe two
or three other departments, several other file servers, maybe some offline systems
like laptops, and of course the backups for these systems. At this point we need to
stop the bleeding of data and the exposure. So we have to dig deep into each process
that is occurring within the charge back department to understand how they are using
the data and how much of it they actually need. Is there a secure way to share this
information and is a credit card number needed for profit and loss statements. Often
we will find out that 
<br />
only a portion of the jobs associated with the data gathering require all subsets
of the data.
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Could we provide secure jobs that ship these reports to the charge back department
with sanitized data? Could a system be put in place to present full credit card numbers
only when needed? At this point we merge the psychological and technological parts
of our minds to understand the business process and develop the solution. Often times
we find these data stores and the business process is that it is following doesn't
need the data, they are just doing what has always been done.
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Ask the question to people, do you absolutely need this data to perform your job?
Get documentation and regulations that require this to be done. Then implement the
appropriate controls on those systems to meet or exceed the regulatory requirements
affecting that data. Often times once more stringent controls are put in place people
realize that maybe they don't need all of the data to run their reports and there
may be a better way to do it.
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Following the loop through though we now have to perform all of these steps with each
business process that could have had the sensitive data spread to it. Now at this
point the potential for understanding our data proliferation dilemma could be overwhelming.
</p>
        <p style="margin-bottom: 12pt; text-align: justify;">
Using a more advanced solution to understand your data proliferation could be considered
and in that realm there are two solutions that should be considered McAfee's Network
DLP Discover and Symantec's Vontu DLP solution. Both of these solutions are maintained
by leaders in the security space and should be placed on the score sheet for any company
looking to acquire a DLP discovery solution.
</p>
        <br />
        <img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=8f00435f-9d92-4e66-a043-fc33b91f9990" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/4Vht9n2dtwg" height="1" width="1" /></body>
      <title>Data Proliferation, Attacking the Monster We’ve Created</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,8f00435f-9d92-4e66-a043-fc33b91f9990.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/4Vht9n2dtwg/DataProliferationAttackingTheMonsterWeveCreated.aspx</link>
      <pubDate>Tue, 26 May 2009 17:41:50 GMT</pubDate>
      <description>&lt;p style="margin-bottom: 12pt; text-align: center;" align="left"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Within our homes, small and medium business settings, and enterprise environments
we use data. We manipulate it, we report on it, we use it to create more data, we
may ship it off site, we bring it in, and we send it out. While we need all of it
to do our jobs; are we watching or keeping up with where we are placing it?
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Are we concerned that some of the times that we send it out that we do so unknowingly
or accidentally?
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Do we ever stop and think about what the exposure to the company is if we continue
to create these stores of data that could expose us to legal proceedings, loss of
business, or worse?
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Data proliferation is occurring everywhere around us and surprisingly enough the majority
of it is legitimate use of data and a good portion of that data is sensitive and protected
under any number of regulatory concerns (PCI, HIPAA, California SB 1386, etc.). So
how do we understand data proliferation and what can we do to manage it?
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: center;" align="center"&gt;
&lt;img src="http://blog.tevora.com/content/binary/photo-sharing-books.jpg" border="0"&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Understanding data proliferation is often times a mix of psychology, computer science,
and business processes re-engineering. It is frustrating at times but hopefully I
can put you on a path that will, if nothing else, assist in getting your hands around
your own data. Dealing with data proliferation is a continual fight that can be summed
up as follows:
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
&lt;span style="text-decoration: underline;"&gt;1. Identify Possible Locations&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
&lt;span style="text-decoration: underline;"&gt;2. Discover Sensitive Information&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
&lt;span style="text-decoration: underline;"&gt;3. Identify Business Process&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
&lt;span style="text-decoration: underline;"&gt;4. Re-Engineer or Remove Process&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
&lt;span style="text-decoration: underline;"&gt;5. Identify Third Party Locations&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
&lt;span style="text-decoration: underline;"&gt;6. Repeat the Process&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Each one of these steps will be expanded upon. Often times it is easy for us to pick
out the obvious locations where data is and or should be stored. This isn't our problem.
The problem is all of those areas where data is unexpectedly stored. So we will turn
to a tool to see what the damage is. For this I suggest using an open source tool.
I recommend &lt;a href="http://www2.cit.cornell.edu/security/tools/spider-windows.html" target="_blank"&gt;Spider&lt;/a&gt; if
you are in a Windows environment. It does the job of identifying the obvious credit
card numbers, social security numbers, etc. without the cost associated of an enterprise
data loss prevention solutions.
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
The problem is there will be false positives, but at this point in the game we are
just trying to hone in on our data stores and there is no cost justification for acquiring
a more powerful solution.
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
First identify all areas within the business that may use or work with sensitive data.
The immediate areas are typically, Human Resources, Accounting, Internal Audit, all
corporate file servers, and backups. This is not by any means an exhaustive list of
possible locations but these areas, in my experience, are typically the largest stores
of sensitive and protected information.
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
A typical scenario is that we use a tool like Spider within our network and we identify
a user workstation with multiple excel spreadsheets containing what appears to be
sensitive data. We talk to the user who has these files, and we find out that they
use these excel files to facilitate and monitor the charge back process and then at
the end of the quarter they can go back and show the charge back percentages and they
use it for profit analysis and any other number of legitimate business needs.
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
So we now have an idea of why but what happens with the data when it is compiled into
these reports, are there subsystems that are involved?
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Are there applications that are handling this data?
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Where are the backups located for these systems?
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Are there additional file shares that are used to share these excel files?
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Are there any laptops that are used to perform these business processes?
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Now the scope of our search has expanded from finding these excel files to maybe two
or three other departments, several other file servers, maybe some offline systems
like laptops, and of course the backups for these systems. At this point we need to
stop the bleeding of data and the exposure. So we have to dig deep into each process
that is occurring within the charge back department to understand how they are using
the data and how much of it they actually need. Is there a secure way to share this
information and is a credit card number needed for profit and loss statements. Often
we will find out that 
&lt;br&gt;
only a portion of the jobs associated with the data gathering require all subsets
of the data.
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Could we provide secure jobs that ship these reports to the charge back department
with sanitized data? Could a system be put in place to present full credit card numbers
only when needed? At this point we merge the psychological and technological parts
of our minds to understand the business process and develop the solution. Often times
we find these data stores and the business process is that it is following doesn't
need the data, they are just doing what has always been done.
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Ask the question to people, do you absolutely need this data to perform your job?
Get documentation and regulations that require this to be done. Then implement the
appropriate controls on those systems to meet or exceed the regulatory requirements
affecting that data. Often times once more stringent controls are put in place people
realize that maybe they don't need all of the data to run their reports and there
may be a better way to do it.
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Following the loop through though we now have to perform all of these steps with each
business process that could have had the sensitive data spread to it. Now at this
point the potential for understanding our data proliferation dilemma could be overwhelming.
&lt;/p&gt;
&lt;p style="margin-bottom: 12pt; text-align: justify;"&gt;
Using a more advanced solution to understand your data proliferation could be considered
and in that realm there are two solutions that should be considered McAfee's Network
DLP Discover and Symantec's Vontu DLP solution. Both of these solutions are maintained
by leaders in the security space and should be placed on the score sheet for any company
looking to acquire a DLP discovery solution.
&lt;/p&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=8f00435f-9d92-4e66-a043-fc33b91f9990" /&gt;</description>
      <category>General Security</category>
    <feedburner:origLink>http://blog.tevora.com/2009/05/26/DataProliferationAttackingTheMonsterWeveCreated.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=cab4c1fc-a346-495a-9e4e-e60b4d851ffa</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,cab4c1fc-a346-495a-9e4e-e60b4d851ffa.aspx</pingback:target>
      <dc:creator>Brennen Reynolds</dc:creator>
      <title>Maltego... the Information Gathering Swiss Army Knife</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,cab4c1fc-a346-495a-9e4e-e60b4d851ffa.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/PZPp6WtTtt0/MaltegoTheInformationGatheringSwissArmyKnife.aspx</link>
      <pubDate>Fri, 22 May 2009 01:02:17 GMT</pubDate>
      <description>&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;
&lt;meta name="ProgId" content="Word.Document"&gt;
&lt;meta name="Generator" content="Microsoft Word 11"&gt;
&lt;meta name="Originator" content="Microsoft Word 11"&gt;
&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CBrennen%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
&lt;a href="http://www.paterva.com/maltego/"&gt;Maltego from Paterva&lt;/a&gt;&lt;a href="http://www.paterva.com/maltego/"&gt;&lt;/a&gt; is
to information gathering as &lt;a href="http://nmap.org/"&gt;Nmap&lt;/a&gt;&amp;nbsp;&lt;a href="http://nmap.org/"&gt;&lt;/a&gt;is
to port scanning or &lt;a href="http://www.nessus.org/nessus/"&gt;Nessus&lt;/a&gt; is to vulnerability
scanning. It’s an all in one, Swiss army knife toolkit for everything related to online
information gathering. 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
Maltego provides a single canvas to investigate all things digital: domain names,
IP addresses, email addresses, phone numbers and even just a person’s name. Two building
blocks make up the majority of Maltego’s functionality: entities and transforms. Entities
are objects or things. Transforms are actions performed against entities which often
result in the creation of new entities. (Note: there is a really nice user’s guide
on the Maltego site so I am not going to cover how to install and get it up and running.)
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
To demonstrate the power (aka usefulness) of Maltego lets see what we can find out
about Tevora. First I created a “Website” entity for blog.tevora.com. Running the &lt;i style=""&gt;To
Domain [DNS]&lt;/i&gt; transform created a new domain entity for tevora.com (no big surprises
there). This domain entity allows many new transforms to run. After running the available
DNS transforms we are presented with the following image. 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;
&lt;img src="http://blog.tevora.com/images/mal1.jpg" alt="DNS" width="570" align="center" border="0" height="368"&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
Removing all the sub-entities lets see what information we can find from this blog
and its contents. Maltego’s &lt;i style=""&gt;To Email Addresses&lt;/i&gt; transform crawls a
website and retrieves all the emails addresses it find. The results show only a handful
of addresses and most appear to be specifically created for use on the blog (a good
security practice by the way). 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;img src="http://blog.tevora.com/images/mal2.jpg" alt="Email" width="452" align="center" border="0" height="356"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
Another transform, &lt;i style=""&gt;To Website [Incoming links SE]&lt;/i&gt;, when run on the
blog.tevora.com entity shows 3 other sites which have linked to this blog. The results
of this transform provide a picture of other sites linked to or mentioning your website
or blog.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;img src="http://blog.tevora.com/images/mal3.jpg" alt="Links" width="430" align="center" border="0" height="255"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
As a final example let’s shift the focus from this blog’s website to me, the author.
Creating a “Person” entity and running the &lt;i style=""&gt;To Website [SE]&lt;/i&gt; transform
on the person object with my name assigned to it we are able to see websites and blogs
where my name was found. (And if you are looking at the image close enough I will
tell you there are 2 individuals named Brennen Reynolds to be found on the net and
no I am not the one who rides horses). 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;img src="http://blog.tevora.com/images/mal4.jpg" alt="Web" width="885" align="center" border="0" height="804"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
As this mini-tutorial shows, &lt;a href="http://www.paterva.com/maltego/"&gt;Maltego&lt;/a&gt;&lt;a href="http://www.paterva.com/maltego/"&gt;&lt;/a&gt; is
capable of providing a wide array of information gathering tools in a single package.
Next time you are doing a pen-test or just looking to get a better picture of a site
/ domain / person, go download the Community Edition and take it for a test drive. 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=cab4c1fc-a346-495a-9e4e-e60b4d851ffa" /&gt;&lt;img src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/PZPp6WtTtt0" height="1" width="1"/&gt;</description>
      <category>General Security</category>
    <feedburner:origLink>http://blog.tevora.com/2009/05/22/MaltegoTheInformationGatheringSwissArmyKnife.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=1cc3ab66-fd76-4561-bf12-c5aa634b53ec</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,1cc3ab66-fd76-4561-bf12-c5aa634b53ec.aspx</pingback:target>
      <dc:creator>Brennen Reynolds</dc:creator>
      <title>Deleted Files … are they really gone?</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,1cc3ab66-fd76-4561-bf12-c5aa634b53ec.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/KMlmGuZpUh8/DeletedFilesAreTheyReallyGone.aspx</link>
      <pubDate>Fri, 13 Mar 2009 18:00:14 GMT</pubDate>
      <description>&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CBrennen%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:DocumentProperties&gt;
  &lt;o:Author&gt;registered user&lt;/o:Author&gt;
  &lt;o:Version&gt;11.9999&lt;/o:Version&gt;
 &lt;/o:DocumentProperties&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
 &lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" LatentStyleCount="156"&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;
	mso-font-charset:2;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:0 268435456 0 0 -2147483648 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:1966503922;
	mso-list-type:hybrid;
	mso-list-template-ids:-1682789116 67698693 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	font-family:Wingdings;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--&gt;
&lt;/style&gt;
&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;p class="MsoNormal"&gt;
Does deleting a file on a computer really mean its lost forever?&lt;br&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
Short answer: no. Longer answer: it depends, but probably not. 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
Given you are still reading this that must mean you are wondering “depends on what?”. 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;b style=""&gt;Deleting a File&lt;o:p&gt;&lt;/o:p&gt;
&lt;/b&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
Deleting a file in most current operating systems does not actually modify any of
the data contained in that file. Operating systems maintain an internal list of where
files are physically and logically located within the hard disk and file system. Different
file systems have different names for these lists including:
&lt;/p&gt;
&lt;ul style="margin-top: 0in;" type="square"&gt;
&lt;li class="MsoNormal" style=""&gt;
Master File Table (MFT) for NTFS&lt;/li&gt;
&lt;li class="MsoNormal" style=""&gt;
File Allocation Table (FAT) for FAT16 and FAT32&lt;/li&gt;
&lt;li class="MsoNormal" style=""&gt;
Catalog File for HFS&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
When you the user choose to delete a file, the operating system will remove that files
entry from this internal list and mark the space on the hard disk (called clusters)
as empty and available. However, the actual file contents are still sitting on the
disk unchanged! The delete files contents will remain on the disk until a new file
is created and the OS chooses to use the clusters of the old file to store the new
information. 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
The process of recovering deleted files and information is known as data carving.
Two freely available data carving tools are &lt;a href="http://foremost.sourceforge.net/"&gt;Foremost&lt;/a&gt;&lt;u&gt;&lt;span style="font-size: 11.5pt;"&gt;&lt;/span&gt;&lt;/u&gt;&lt;span style="font-size: 11.5pt;"&gt; &lt;/span&gt;and &lt;a href="http://www.digitalforensicssolutions.com/Scalpel/"&gt;Scalpel&lt;/a&gt;&lt;span style="font-size: 11.5pt;"&gt;&lt;a href="http://www.digitalforensicssolutions.com/Scalpel/"&gt;&lt;/a&gt;. &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;Using
either of these tools it is extremely easy to search for and extract out any deleted
data left on a hard drive or other storage device (including USB thumb drives). 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 11.5pt;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;b style=""&gt;&lt;span style="font-size: 11.5pt;"&gt;A Little Experiment&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 11.5pt;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 11.5pt;"&gt;To find out just how effective these tools are I
decided to experiment on an old USB thumb drive I found in a drawer. It’s only a 256
meg stick and hasn’t been used in a couple years. Plugging it into my Windows workstation
and viewing its contents showed no files on the drive and all 256 megs of space available.
So it appears there is nothing on it… right?&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 11.5pt;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 11.5pt;"&gt;I booted up my forensics laptop using the &lt;a href="http://www.e-fense.com/helix/"&gt;Helix3
Forensics LiveCD&lt;/a&gt;&lt;/span&gt;,&lt;span style="font-size: 11.5pt;"&gt; plugged in the USB stick
and created an image file containing an exact copy of the entire drive using the &lt;a href="http://www.forensicswiki.org/wiki/Dd"&gt;dd
utility&lt;/a&gt;&lt;a href="http://www.forensicswiki.org/wiki/Dd"&gt;&lt;/a&gt;. Now it was time to
find out if the disk really had nothing on it. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 11.5pt;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;b style=""&gt;&lt;span style="font-size: 11.5pt;"&gt;Moment of Truth&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 11.5pt;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 11.5pt;"&gt;I ran the image files through both Foremost and Scalpel
and instructed each tool to extract as much information as possible. This included
all possible types of files and even partial remains of files. The results were slightly
different between the two tools but each one found almost 100 files and file fragments!
Everything from Office documents to music files and even installation executables
for some small utilities I had once used was extracted. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="font-size: 11.5pt;"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;span style="font-size: 11.5pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;Moral of
the story is even though your files may be out of site they really aren’t gone for
good. So remember this, the next time you decide to toss out an old hard drive or
USB stick you might want to look into a secure wiping tool like &lt;a href="http://www.heidi.ie/node/6"&gt;Eraser&lt;/a&gt;&lt;a href="http://www.heidi.ie/node/6"&gt;&lt;/a&gt;. &lt;/span&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=1cc3ab66-fd76-4561-bf12-c5aa634b53ec" /&gt;&lt;img src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/KMlmGuZpUh8" height="1" width="1"/&gt;</description>
      <category>General Security</category>
    <feedburner:origLink>http://blog.tevora.com/2009/03/13/DeletedFilesAreTheyReallyGone.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=12ea8f2e-ea80-49fa-88e3-fc3ea6c03b47</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,12ea8f2e-ea80-49fa-88e3-fc3ea6c03b47.aspx</pingback:target>
      <dc:creator>Jason Pittman</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">There are occasions in technology where
events or results inspire feelings of mystery. Those, "it must be magic" moments when
our existing body of knowledge is incapable of processing the situation. I encountered
one such event today, so I thought I would share a bit.<br /><br />
Some time ago I designed an architecture for a business partner whereby a series of
system updates could be delivered into a closed network topology. Meaning, the target
computers were behind a gateway system with no direct ingress/egress points. We needed
an engine of the gateway system that would take the staged system updates, distribute
them securely and with integrity to the inward-facing computers and oversee the installation
of said updates in a safe manner (read: catch exceptions, manage installation order,
etc.). It took a few days but we finally nailed it. Another few days were spent in
rigorous QA since one of the updates was quite large and made serious modifications
to the target system architecture. All use cases passed.<br /><br />
Then we tried in in a pilot production environment. Failure.<br /><br />
We tried again the next night after some modifications to the deployment architecture.
Failure again.<br /><br />
Another day or two was spent analyzing the logs from the deployment but nothing stood
out. So, I recommended that we manually install the system updates to see if the deployment
architecture might not be handling some kinds of exceptions (missing files, corruption,
etc.). This was tricky due to the closed network topology but we pulled it off. Lo
and behold- there was corruption and it was an entire directory.<br /><br />
Enter stage left- error 1392.<br /><br />
1392 is a return error code from the system's native copy function. Although my initial
prediction rang true, I was stunned. First of all, an entire directory was corrupt
but the systems had never encountered any issues. Secondly, I had a strange feeling
that this corruption might be systemic; part of a base image that had been rolled
out some time in the past. What was I to do?<br /><br />
I solved the curious case of 1392 by writing a shell script that did the following:<br /><br />
1) Take an empty text file and copy it into the possibly corrupted directory. This
is key since it forces the target system to tell us if it indeed has a corrupted directory.<br /><br />
2) If we get a return code 0 (zero), go ahead and begin the deployment process.<br /><br />
3) If we get a return code of anything but 0 (zero) and 1392, toss an error and exit.<br /><br />
4) If we get a return code of 1392, take a (pre-staged) copy of the now-known-to-be
corrupted directory and overwrite the corrupted one. Then start the deployment routine.<br /><br />
Case solved. We were able to begin full deployment on schedule.<br /><p /><img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=12ea8f2e-ea80-49fa-88e3-fc3ea6c03b47" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/M0ispCCABPk" height="1" width="1" /></body>
      <title>The Curious Case of 1392</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,12ea8f2e-ea80-49fa-88e3-fc3ea6c03b47.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/M0ispCCABPk/TheCuriousCaseOf1392.aspx</link>
      <pubDate>Thu, 19 Feb 2009 02:30:57 GMT</pubDate>
      <description>There are occasions in technology where events or results inspire feelings of mystery. Those, "it must be magic" moments when our existing body of knowledge is incapable of processing the situation. I encountered one such event today, so I thought I would share a bit.&lt;br&gt;
&lt;br&gt;
Some time ago I designed an architecture for a business partner whereby a series of
system updates could be delivered into a closed network topology. Meaning, the target
computers were behind a gateway system with no direct ingress/egress points. We needed
an engine of the gateway system that would take the staged system updates, distribute
them securely and with integrity to the inward-facing computers and oversee the installation
of said updates in a safe manner (read: catch exceptions, manage installation order,
etc.). It took a few days but we finally nailed it. Another few days were spent in
rigorous QA since one of the updates was quite large and made serious modifications
to the target system architecture. All use cases passed.&lt;br&gt;
&lt;br&gt;
Then we tried in in a pilot production environment. Failure.&lt;br&gt;
&lt;br&gt;
We tried again the next night after some modifications to the deployment architecture.
Failure again.&lt;br&gt;
&lt;br&gt;
Another day or two was spent analyzing the logs from the deployment but nothing stood
out. So, I recommended that we manually install the system updates to see if the deployment
architecture might not be handling some kinds of exceptions (missing files, corruption,
etc.). This was tricky due to the closed network topology but we pulled it off. Lo
and behold- there was corruption and it was an entire directory.&lt;br&gt;
&lt;br&gt;
Enter stage left- error 1392.&lt;br&gt;
&lt;br&gt;
1392 is a return error code from the system's native copy function. Although my initial
prediction rang true, I was stunned. First of all, an entire directory was corrupt
but the systems had never encountered any issues. Secondly, I had a strange feeling
that this corruption might be systemic; part of a base image that had been rolled
out some time in the past. What was I to do?&lt;br&gt;
&lt;br&gt;
I solved the curious case of 1392 by writing a shell script that did the following:&lt;br&gt;
&lt;br&gt;
1) Take an empty text file and copy it into the possibly corrupted directory. This
is key since it forces the target system to tell us if it indeed has a corrupted directory.&lt;br&gt;
&lt;br&gt;
2) If we get a return code 0 (zero), go ahead and begin the deployment process.&lt;br&gt;
&lt;br&gt;
3) If we get a return code of anything but 0 (zero) and 1392, toss an error and exit.&lt;br&gt;
&lt;br&gt;
4) If we get a return code of 1392, take a (pre-staged) copy of the now-known-to-be
corrupted directory and overwrite the corrupted one. Then start the deployment routine.&lt;br&gt;
&lt;br&gt;
Case solved. We were able to begin full deployment on schedule.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=12ea8f2e-ea80-49fa-88e3-fc3ea6c03b47" /&gt;</description>
      <category>General Security</category>
    <feedburner:origLink>http://blog.tevora.com/2009/02/19/TheCuriousCaseOf1392.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=8836cec4-eeee-48aa-bd5b-3e6c6f8823ca</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,8836cec4-eeee-48aa-bd5b-3e6c6f8823ca.aspx</pingback:target>
      <dc:creator>Jason Pittman</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">I was doing some work on a very large log
correlation server recently. By large I mean copious amounts of log files, not necessarily
large in size. Essentially, the chief task was that I needed to audit what was being
kept as online history. As you, dedicated readers, remember PCI-DSS requires one year
of history to be kept with 90 days active and online. That can mean quite a bit of
data in most cases. Being both technically-adept and lazy, I turned to the "find"
command.<br /><br />
Naturally, I first needed to confirm that enough history was present. To do so, I
went with some find-fu along these lines:<br /><br />
find -mtime +364 -type f -exec ls -lah {} \;<br /><br />
Let's break that down a little:<br /><br />
1) find -&gt; our basic find command<br />
2) -mtime -&gt; this means we're going to be "finding" by modified time<br />
3) -type f -&gt; we're searching for files of course<br />
4) -exec -&gt; run a command for me<br />
5) ls -lah -&gt; the command I want to run; I opted to list the directory because
I also want to see the files, their sizes, etc.<br />
6) {} -&gt; this gives our command string an empty parameter set to feed ouput into
(so, input kinda). Basically, this is how we'll be able to see the file names, sizes,
etc.<br />
7) \; -&gt; this signals the end of the command<br /><br />
Cool. Now I have a list of files with a modified time older than 364 days (note: this
ran in the current working directory by intention), evidencing that at least one year
is being kept online. Cool enough but what other stuff can we do with the find command?<br /><br />
You can move files based on a size limit:<br /><br />
find -type f -size +10M | xargs -i -t mv {} /target/directory/to/move/files/to<br /><br />
The above would take all files (again, in the current path) that are greater than
10Megabytes and move them to a different directory. This can be useful for log rotations,
in preparation of purging data based on size requirements, etc.<br /><br />
Of course, everyone in security should know this one:<br /><br />
find / -type f \( -perm -4000 -o -perm -2000 \) -print<br /><br />
A free alcoholic beverage of your choice to the first person who identifies the above
correctly!<p /><img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=8836cec4-eeee-48aa-bd5b-3e6c6f8823ca" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/Xjr82Lbi49c" height="1" width="1" /></body>
      <title>Find, the Power</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,8836cec4-eeee-48aa-bd5b-3e6c6f8823ca.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/Xjr82Lbi49c/FindThePower.aspx</link>
      <pubDate>Tue, 17 Feb 2009 23:55:14 GMT</pubDate>
      <description>I was doing some work on a very large log correlation server recently.
By large I mean copious amounts of log files, not necessarily large in
size. Essentially, the chief task was that I needed to audit what was
being kept as online history. As you, dedicated readers, remember
PCI-DSS requires one year of history to be kept with 90 days active and online. That can mean
quite a bit of data in most cases. Being both technically-adept and
lazy, I turned to the "find" command.&lt;br&gt;
&lt;br&gt;
Naturally, I first needed to confirm that enough history was present. To do so, I
went with some find-fu along these lines:&lt;br&gt;
&lt;br&gt;
find -mtime +364 -type f -exec ls -lah {} \;&lt;br&gt;
&lt;br&gt;
Let's break that down a little:&lt;br&gt;
&lt;br&gt;
1) find -&amp;gt; our basic find command&lt;br&gt;
2) -mtime -&amp;gt; this means we're going to be "finding" by modified time&lt;br&gt;
3) -type f -&amp;gt; we're searching for files of course&lt;br&gt;
4) -exec -&amp;gt; run a command for me&lt;br&gt;
5) ls -lah -&amp;gt; the command I want to run; I opted to list the directory because
I also want to see the files, their sizes, etc.&lt;br&gt;
6) {} -&amp;gt; this gives our command string an empty parameter set to feed ouput into
(so, input kinda). Basically, this is how we'll be able to see the file names, sizes,
etc.&lt;br&gt;
7) \; -&amp;gt; this signals the end of the command&lt;br&gt;
&lt;br&gt;
Cool. Now I have a list of files with a modified time older than 364 days (note: this
ran in the current working directory by intention), evidencing that at least one year
is being kept online. Cool enough but what other stuff can we do with the find command?&lt;br&gt;
&lt;br&gt;
You can move files based on a size limit:&lt;br&gt;
&lt;br&gt;
find -type f -size +10M | xargs -i -t mv {} /target/directory/to/move/files/to&lt;br&gt;
&lt;br&gt;
The above would take all files (again, in the current path) that are greater than
10Megabytes and move them to a different directory. This can be useful for log rotations,
in preparation of purging data based on size requirements, etc.&lt;br&gt;
&lt;br&gt;
Of course, everyone in security should know this one:&lt;br&gt;
&lt;br&gt;
find / -type f \( -perm -4000 -o -perm -2000 \) -print&lt;br&gt;
&lt;br&gt;
A free alcoholic beverage of your choice to the first person who identifies the above
correctly!&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=8836cec4-eeee-48aa-bd5b-3e6c6f8823ca" /&gt;</description>
      <category>General Security</category>
    <feedburner:origLink>http://blog.tevora.com/2009/02/17/FindThePower.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.tevora.com/Trackback.aspx?guid=b9a0a89a-f63d-419a-8e90-73214c65e675</trackback:ping>
      <pingback:server>http://blog.tevora.com/pingback.aspx</pingback:server>
      <pingback:target>http://blog.tevora.com/PermaLink,guid,b9a0a89a-f63d-419a-8e90-73214c65e675.aspx</pingback:target>
      <dc:creator>Jason Pittman</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">For anyone who remembers their zoology,
or has watched enough Animal Channel or National Geographic, the concept of large
animal herds escaping predators by concentrating in tight groups should not be foreign.
After all, there's safety to be had in numbers. But have you ever asked yourself,
"what about those poor animals on the edge of the herd?" Those poor water buffalo,
gazelles, etc. that are caught on the edge are obviously very interested in reaching
the interior of the herd. There be lions and tigers (figuratively of course; tigers
do not roam the savannas!) in those bushes after all. 
<br /><br />
Now, standing back at a thousand-foot view we can gain a view of a writhing superorganism.
The edges constantly in flux, collapsing inward towards the center whilst the interior
is shuffled outward. 
<br /><br />
Zoology lesson aside, what does this have to do with IP addresses? Moreover, what
does this have to do with information security?<br /><br />
Question: what prevents us from conceptualizing our IP addresses (more specifically,
subnets) as herds? It would make sense that our lions and tigers (read: adversaries)
lurk nearby- nearby being at the lower ends of our subnets. I'm not sure I've ever
seen a piece of network-enabled malware or human take a binary search approach to
network mapping as an example. No, logic would tend to dictate that any asset inventory
effort begin at the logical starting point. For a subnet, that means .1 most commonly. 
<br /><br />
So, if our subnet is herd, wouldn't it make sense then to "herd" them into the center
of the range? Yes, I would avoid starting at the top of a range since that could logically
also be the beginning and, within the context of our analogy here, serve as the same
kind of herd edge as the true .1 beginning. It would also stand to reason to make
the herd as large as possible I would put forth...none of those pesky, small class
C's! Now, what if I had truly dynamic IP capabilities? I don't mean DHCP, rather a
truly dynamic IP mechanism that was more akin to how dynamic rekeying works in IPSec
or WPA2 technologies. Wouldn't that (somewhat) resemble the natural ebbs and flows
of a large herd? I think so.<br /><br />
In that kind of environment, how would an adversary ever close in on his/her prey?
Moreover, how much longer would this extend any kind of autodiscovery attempt (port
scanning, etc.) thereby allowing our IDS to kick in "sooner". Good security is, afterall,
a simple time trade-off calculation. I need to make sure it takes longer for "you"
to compromise an asset than it does for me to detect "you".<br /><br />
Yeah, there be lions and tigers here. Of course, the zoology analogy is intentionally
simplistic- this a security blog and all- but I rather think there is an opportunity
to re-examine how we manage our IP schemes and perhaps an opportunity for some new
technology. 
<p /><img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=b9a0a89a-f63d-419a-8e90-73214c65e675" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/tevora/AOWY/~4/Ydy_8WfMZ1M" height="1" width="1" /></body>
      <title>Lions, Tigers, and...IP Addresses</title>
      <guid isPermaLink="false">http://blog.tevora.com/PermaLink,guid,b9a0a89a-f63d-419a-8e90-73214c65e675.aspx</guid>
      <link>http://feedproxy.google.com/~r/tevora/AOWY/~3/Ydy_8WfMZ1M/LionsTigersAndIPAddresses.aspx</link>
      <pubDate>Fri, 13 Feb 2009 02:18:48 GMT</pubDate>
      <description>For anyone who remembers their zoology, or has watched enough Animal Channel or National Geographic, the concept of large animal herds escaping predators by concentrating in tight groups should not be foreign. After all, there's safety to be had in numbers. But have you ever asked yourself, "what about those poor animals on the edge of the herd?" Those poor water buffalo, gazelles, etc. that are caught on the edge are obviously very interested in reaching the interior of the herd. There be lions and tigers (figuratively of course; tigers do not roam the savannas!) in those bushes after all. &lt;br&gt;
&lt;br&gt;
Now, standing back at a thousand-foot view we can gain a view of a writhing superorganism.
The edges constantly in flux, collapsing inward towards the center whilst the interior
is shuffled outward. 
&lt;br&gt;
&lt;br&gt;
Zoology lesson aside, what does this have to do with IP addresses? Moreover, what
does this have to do with information security?&lt;br&gt;
&lt;br&gt;
Question: what prevents us from conceptualizing our IP addresses (more specifically,
subnets) as herds? It would make sense that our lions and tigers (read: adversaries)
lurk nearby- nearby being at the lower ends of our subnets. I'm not sure I've ever
seen a piece of network-enabled malware or human take a binary search approach to
network mapping as an example. No, logic would tend to dictate that any asset inventory
effort begin at the logical starting point. For a subnet, that means .1 most commonly. 
&lt;br&gt;
&lt;br&gt;
So, if our subnet is herd, wouldn't it make sense then to "herd" them into the center
of the range? Yes, I would avoid starting at the top of a range since that could logically
also be the beginning and, within the context of our analogy here, serve as the same
kind of herd edge as the true .1 beginning. It would also stand to reason to make
the herd as large as possible I would put forth...none of those pesky, small class
C's! Now, what if I had truly dynamic IP capabilities? I don't mean DHCP, rather a
truly dynamic IP mechanism that was more akin to how dynamic rekeying works in IPSec
or WPA2 technologies. Wouldn't that (somewhat) resemble the natural ebbs and flows
of a large herd? I think so.&lt;br&gt;
&lt;br&gt;
In that kind of environment, how would an adversary ever close in on his/her prey?
Moreover, how much longer would this extend any kind of autodiscovery attempt (port
scanning, etc.) thereby allowing our IDS to kick in "sooner". Good security is, afterall,
a simple time trade-off calculation. I need to make sure it takes longer for "you"
to compromise an asset than it does for me to detect "you".&lt;br&gt;
&lt;br&gt;
Yeah, there be lions and tigers here. Of course, the zoology analogy is intentionally
simplistic- this a security blog and all- but I rather think there is an opportunity
to re-examine how we manage our IP schemes and perhaps an opportunity for some new
technology. 
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.tevora.com/aggbug.ashx?id=b9a0a89a-f63d-419a-8e90-73214c65e675" /&gt;</description>
      <category>General Security</category>
    <feedburner:origLink>http://blog.tevora.com/2009/02/13/LionsTigersAndIPAddresses.aspx</feedburner:origLink></item>
  <media:rating>nonadult</media:rating></channel>
</rss>
