<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>ClearNet Security</title>
    <link>http://blog.clearnetsec.com</link>
    <atom:link type="application/rss+xml" rel="self" href="http://blog.clearnetsec.com/articles.rss"/>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Microsoft may scan you</title>
      <description>&lt;p&gt;
A client this month was observing strange &lt;b&gt;FORM&lt;/b&gt; submittal activity and asked if I was still doing security testing of their web application.
&lt;/p&gt;


&lt;p&gt;
Since I was not, I participated in investigating.  I received a copy of their Apache log file.
&lt;/p&gt;


&lt;p&gt;
I downloaded &lt;a href="http://code.google.com/p/apache-scalp/"&gt;apache-scalp&lt;/a&gt;: 
&lt;/p&gt;


&lt;blockquote&gt;
&#8220;Scalp! is a log analyzer for the Apache web server that aims to look for security problems. The main idea is to look through huge log files and extract the possible attacks that have been sent through HTTP/GET&#8221;
&lt;/blockquote&gt;


&lt;p&gt;
From viewing the output of &lt;a href="http://code.google.com/p/apache-scalp/"&gt;Scalp!&lt;/a&gt; it was obvious an &lt;b&gt;automated application scanner&lt;/b&gt; was being used.  Three bits struck my curiosity:  
&lt;ul&gt;
&lt;li&gt;The scanner was one I hadn&#8217;t heard of:  &lt;a href="http://www.mavitunasecurity.com/netsparker/"&gt;netsparker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mavitunasecurity.com/netsparker/"&gt;Netsparker&lt;/a&gt; is commercial, implying someone was willing to pay money to find vulnerabilities
&lt;li&gt;The source of the scans was Microsoft&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;


&lt;p&gt;
My client was dumbfounded why MS was doing this.  I suggested they send an email to abuse@microsoft.com with the details and request their assistance.
&lt;/p&gt;


&lt;p&gt;
Lo and behold, Microsoft replied and was responsible.  Their &lt;a href="http://www.globalfoundationservices.com/"&gt;Online Services Security and Compliance (OSSC) team&lt;/a&gt; was actively scanning, unbeknownst to my client .  
&lt;/p&gt;


&lt;p&gt;
Given this client has a relationship with MS, my guess is they signed something with fine print explicitly allowing MS to perform ad-hoc vulnerability assessments.  
&lt;/p&gt;


&lt;p&gt;
Good to know this can happen.
&lt;/p&gt;
</description>
      <pubDate>Sun, 31 Jan 2010 11:43:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:d578ba5a-824e-42c6-b362-b3068c6667eb</guid>
      <author>tate@ClearNetSec.com (tate)</author>
      <comments>http://blog.clearnetsec.com/2010/01/31/microsoft-may-scan-you#comments</comments>
      <category>scanning</category>
      <category>security</category>
      <category>ClearNet</category>
      <category>ClearNet Security</category>
      <category>Tate Hansen</category>
      <category>vulnerability</category>
      <category>microsoft</category>
      <category>OSSC</category>
      <link>http://blog.clearnetsec.com/2010/01/31/microsoft-may-scan-you</link>
    </item>
    <item>
      <title>recap of a scope call</title>
      <description>&lt;p&gt;It&amp;#8217;s been some time, but I just had one those scope calls from out of left field. University, mid size, private, budget sensitive, one security engineer and he is relatively new.&lt;br&gt;
&lt;br&gt;
He is unsure of the state of his domain.&lt;br&gt;
&lt;img align="right" height="50%" src="http://blog.clearnetsec.com/files/lost.jpg" alt="lost"&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Me&lt;/strong&gt;: Have any security assessments ever been performed?&lt;br&gt;
&lt;strong&gt;Client: No&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Me:&lt;/strong&gt; &lt;em&gt;pause&lt;/em&gt; Do you trust the integrity of your servers?&lt;br&gt;
&lt;strong&gt;Client: No&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Me:&lt;/strong&gt; &lt;em&gt;pause&lt;/em&gt; You are processing credit cards?&lt;br&gt;
&lt;strong&gt;Client: Yes&lt;/strong&gt;.&lt;br&gt;&lt;/blockquote&gt;
&lt;br&gt;
Calls like this one ensue &lt;strong&gt;brain freeze&lt;/strong&gt; in me. I get so hung up on them I mumble for a bit until I catch a clear thought.&lt;br&gt;
&lt;br&gt;
On cue, this question soon followed: &lt;em&gt;&amp;#8220;I was thinking of starting with vulnerability assessments, but where do you recommend I start?&amp;#8221;&lt;/em&gt;&lt;br&gt;
&lt;br&gt;
Is this not a scenario security aficionados are to love?&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;I dread them now&lt;/strong&gt;. I&amp;#8217;m being tasked with teaching everything a functioning adult is to know on a phone call. Don&amp;#8217;t get me wrong, I do love the flood of ideas this scenario stimulates, but I&amp;#8217;m weary of working for clients so far behind in the game. My experience with like clients is they come to the play with little budget, support, and with even fewer resources.&lt;br&gt;
&lt;br&gt;
But in the spirit of the holidays, I&amp;#8217;m going to draft a list of tasks I&amp;#8217;d recommend he do and I&amp;#8217;ll share it here.&lt;/p&gt;</description>
      <pubDate>Wed, 30 Dec 2009 15:30:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:7a1427ad-d9da-4edb-b60d-8fab8dfc5bc4</guid>
      <author>tate@ClearNetSec.com (tate)</author>
      <comments>http://blog.clearnetsec.com/2009/12/30/recap-of-a-scope-call#comments</comments>
      <category>security</category>
      <category>ClearNet</category>
      <category>ClearNet Security</category>
      <category>ClearNet Security</category>
      <category>Tate Hansen</category>
      <category>assessments</category>
      <category>tate</category>
      <link>http://blog.clearnetsec.com/2009/12/30/recap-of-a-scope-call</link>
    </item>
    <item>
      <title>need to do a GET before POST, fuzzing with BURP and WebScarab</title>
      <description>&lt;p&gt;
A recent web application I was testing was generating a unique hidden token on every render of the login page &lt;i&gt;(revealed in the pink section in the screenshot below by &lt;a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project"&gt;WebScarab&lt;/a&gt;).&lt;/i&gt;  
&lt;/p&gt;


&lt;p&gt;&lt;img src="http://blog.clearnetsec.com/files/login2.png" width="95%"/&gt;
&lt;p&gt;
I had setup a &lt;a href="http://www.portswigger.net/suite/"&gt;BURP&lt;/a&gt; intruder run to iterate through a list of attack strings when I noticed a few of the responses contained a message displaying &lt;b&gt;&#8220;unable to verify session&#8221;&lt;/b&gt;.&lt;br/&gt;
&lt;/p&gt;
&lt;p&gt;
That is when I checked for a hidden value, and when discovered, guessed it was a dynamic key identifying each individual form submit.
&lt;/p&gt;
&lt;p&gt;
The fuzzers in &lt;a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project"&gt;WebScarab&lt;/a&gt; and &lt;a href="http://www.portswigger.net/suite/"&gt;BURP&lt;/a&gt; typically work by repeatedly &lt;b&gt;POSTing&lt;/b&gt; to a web form, like the login form above, then capturing and/or analyzing each response.  Commercial scanners do the same.  Repeatedly &lt;b&gt;POSTing&lt;/b&gt; fails to work in this case.   &lt;br/&gt;
&lt;/p&gt;
&lt;p&gt;
Screenshot showing &lt;a href="http://www.portswigger.net/suite/"&gt;BURP&amp;#8217;s&lt;/a&gt; intruder and that I want to run a sniper attack (i.e. send one attack string at this position (red text below) per &lt;b&gt;POST&lt;/b&gt; request).
&lt;/p&gt;
&lt;img src="http://blog.clearnetsec.com/files/intruder_setup.png"/&gt;
&lt;p&gt;
Screenshot showing a few custom attack strings loaded into &lt;a href="http://www.portswigger.net/suite/"&gt;BURP&lt;/a&gt;
&lt;/p&gt;
&lt;img src="http://blog.clearnetsec.com/files/intruder_setup1.png"/&gt;
&lt;p&gt;
Screenshot showing the execution and results of an intruder attack (i.e. looping through the attack string list and submitting each via a &lt;b&gt;POST&lt;/b&gt; request)
&lt;/p&gt;
&lt;img src="http://blog.clearnetsec.com/files/intruder_attack.png"/&gt;
&lt;p&gt;
Screenshot showing &lt;a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project"&gt;WebScarab&amp;#8217;s&lt;/a&gt; fuzzer setup.&lt;br/&gt;
&lt;/p&gt;
&lt;img src="http://blog.clearnetsec.com/files/webscarab.png"/&gt;
&lt;p&gt;
The problem in this scenario is the hidden token is only good for one &lt;b&gt;POST&lt;/b&gt; request.  Maybe I missed it, but I didn&#8217;t see an easy way to tell &lt;a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project"&gt;WebScarab&amp;#8217;s&lt;/a&gt; fuzzer or &lt;a href="http://www.portswigger.net/suite/"&gt;BURP&amp;#8217;s&lt;/a&gt; intruder to first perform a &lt;b&gt;GET&lt;/b&gt; request (so I can capture a valid one time token value) then submit a &lt;b&gt;POST&lt;/b&gt; request.   &lt;br/&gt;
&lt;/p&gt;

&lt;p&gt;A few lines of Ruby along with the &lt;a href="http://mechanize.rubyforge.org/mechanize/"&gt;Mechanize&lt;/a&gt; library made for a simple work-around.&lt;/p&gt;

&lt;div class="CodeRay"&gt;&lt;pre&gt;&lt;span class="CodeRay"&gt;&lt;span class="dt"&gt;#!/usr/bin/ruby&lt;/span&gt;
require &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;rubygems&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;
require &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;mechanize&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;

agent = &lt;span class="co"&gt;WWW&lt;/span&gt;::&lt;span class="co"&gt;Mechanize&lt;/span&gt;.new
agent.set_proxy(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;localhost&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;8008&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;)

&lt;span class="co"&gt;File&lt;/span&gt;.open(&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;fuzzlist.txt&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;) &lt;span class="r"&gt;do&lt;/span&gt; |file|
  file.each_line {|fuzz_string| 
    agent.get(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;http://target/signin&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;) &lt;span class="r"&gt;do&lt;/span&gt; |page|
      form = page.forms.first 
      form.field_with(&lt;span class="sy"&gt;:name&lt;/span&gt; =&amp;gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;data[user][email]&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;).value = fuzz_string
      form.field_with(&lt;span class="sy"&gt;:name&lt;/span&gt; =&amp;gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;data[user][password]&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;).value = fuzz_string
      form.click_button
    &lt;span class="r"&gt;end&lt;/span&gt;
  }
&lt;span class="r"&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
I configured mechanize to use my preferred proxy (&lt;a href="http://www.portswigger.net/suite/"&gt;BURP&lt;/a&gt;).  The script loops through the fuzzlist.txt file, performs a &lt;b&gt;GET&lt;/b&gt; request (now we have a valid token), then submits the form.  Problem solved.
&lt;/p&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 19 Nov 2009 16:16:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:114a35c4-ae9b-4682-8ac4-12dd31b616fb</guid>
      <author>tate@ClearNetSec.com (tate)</author>
      <comments>http://blog.clearnetsec.com/2009/11/19/need-to-do-a-get-before-post-fuzzing-with-burp-and-websca#comments</comments>
      <category>web</category>
      <category>security</category>
      <category>proxy</category>
      <category>ClearNet</category>
      <category>ClearNet Security</category>
      <category>Tate Hansen</category>
      <category>fuzzing</category>
      <category>penetration</category>
      <category>burp</category>
      <category>webscarab</category>
      <category>mechanize</category>
      <category>fuzzer</category>
      <link>http://blog.clearnetsec.com/2009/11/19/need-to-do-a-get-before-post-fuzzing-with-burp-and-websca</link>
    </item>
    <item>
      <title>Signing things</title>
      <description>&lt;p&gt;I just saw that Thawte is &lt;a href="https://siteseal.thawte.com/support/index.html?page=content&amp;amp;id=SO12658"&gt;ending&lt;/a&gt; their Web of Trust email keys program.     I think they should have sold directory services in addition to providing keys,  perhaps I'll write about that next.   It got me thinking about SSL/TLS.   I've always felt that the openssl program does a lot more than most people know to do with it.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;blockquote&gt;openssl dst -sha1 &lt;em&gt;yourfile&lt;/em&gt;
&lt;/blockquote&gt;
&lt;p&gt;is about 20% faster than &amp;quot;sha1sum &lt;em&gt;yourfile&lt;/em&gt;&amp;quot; on my OpenSuse 10.1 AMD Opteron system.     That might not be terribly interesting but 20% adds up on bigger files, like DVD images.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Another thing is in this world of automatic updates and appstores,  it's more important than ever to have a verification mechanism in place.   OpenSSL provide all of the tools for some simple, yet strong, verification.   A lot of people I know are confused by certificates and don't fully understand the different formats and what you can do with them but OpenSSL provides the raw basics to simply perform signing and verification.&lt;/p&gt;
&lt;p&gt;Generate a 2048bit RSA key:&lt;/p&gt;
&lt;blockquote&gt;openssl genrsa -out rsapriv.pem 2048&lt;/blockquote&gt;
&lt;p&gt;Extract the public portion:&lt;/p&gt;
&lt;blockquote&gt;openssl rsa -in rsapriv.pem  -pubout -out rsapub.pem&lt;/blockquote&gt;
&lt;p&gt;Sign a file and store the signature in testsig.bin:&lt;/p&gt;
&lt;blockquote&gt;openssl sha1 -sign rsapriv.pem  -out testsig.bin &lt;em&gt;yourfile&lt;/em&gt;&lt;/blockquote&gt;
&lt;p&gt;To verify:&lt;/p&gt;
&lt;blockquote&gt;openssl sha1 -verify rsapub.pem  -signature testsig.bin &lt;em&gt;yourfile&lt;/em&gt;&lt;/blockquote&gt;
&lt;p&gt;There you go,  signing and verification without any of the &amp;quot;complicated&amp;quot; PKCS stuff.    It's only marginally more work to actually add a CA to the mix.&lt;/p&gt;

</description>
      <pubDate>Wed, 07 Oct 2009 00:48:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:a1f2587e-146b-4e64-8cdf-5b131a002aae</guid>
      <author>ian@ClearNetSec.com (Ian S. Nelson)</author>
      <comments>http://blog.clearnetsec.com/2009/10/07/signing-things#comments</comments>
      <link>http://blog.clearnetsec.com/2009/10/07/signing-things</link>
    </item>
    <item>
      <title>Man vs. web app</title>
      <description>&lt;p&gt;For me, it&#8217;s hard to downplay my joy from successfully assailing a web application and finding valuable faults: more so when nothing of value is reported from scanning using the most expensive app scanners.&lt;/p&gt;

&lt;p&gt;On a recent gig I was focusing on finding issues with a couple of forms. Wielding &lt;a href="http://www.portswigger.net/"&gt;BURP&lt;/a&gt;, I was intercepting all the GETs and POSTs and noticed the server responding with JSON data (i.e. http://[&amp;#8230;]/&lt;b&gt;data.json&lt;/b&gt;)&lt;/p&gt;

&lt;p&gt;I tossed the JSON blob into an online JSON validator (&lt;a href="http://www.jsonlint.com/"&gt;http://www.jsonlint.com/&lt;/a&gt;) to make it easier to read &lt;i&gt;(below is a small snippet)&lt;/i&gt;.&lt;/p&gt;

&lt;div class="CodeRay"&gt;&lt;pre&gt;&lt;span class="CodeRay"&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;sanitized&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;: 
  { &lt;span class="er"&gt;&#8220;&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;D&lt;/span&gt;&lt;span class="er"&gt;e&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;i&lt;/span&gt;&lt;span class="er"&gt;l&lt;/span&gt;&lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: 
    { &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;_&lt;/span&gt;&lt;span class="er"&gt;i&lt;/span&gt;&lt;span class="er"&gt;d&lt;/span&gt;&lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="i"&gt;276060&lt;/span&gt;&lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;, 
      &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;b&lt;/span&gt;&lt;span class="er"&gt;b&lt;/span&gt;&lt;span class="er"&gt;_&lt;/span&gt;&lt;span class="er"&gt;i&lt;/span&gt;&lt;span class="er"&gt;d&lt;/span&gt;&lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="i"&gt;103065&lt;/span&gt;&lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;, 
      &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;c&lt;/span&gt;&lt;span class="er"&gt;c&lt;/span&gt;&lt;span class="er"&gt;_&lt;/span&gt;&lt;span class="er"&gt;i&lt;/span&gt;&lt;span class="er"&gt;d&lt;/span&gt;&lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="i"&gt;515&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;d&lt;/span&gt;&lt;span class="i"&gt;8933&lt;/span&gt;&lt;span class="er"&gt;c&lt;/span&gt;&lt;span class="i"&gt;821&lt;/span&gt;&lt;span class="er"&gt;b&lt;/span&gt;&lt;span class="i"&gt;2&lt;/span&gt;&lt;span class="er"&gt;f&lt;/span&gt;&lt;span class="i"&gt;72&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="i"&gt;8&lt;/span&gt;&lt;span class="er"&gt;c&lt;/span&gt;&lt;span class="er"&gt;b&lt;/span&gt;&lt;span class="er"&gt;b&lt;/span&gt;&lt;span class="i"&gt;7054&lt;/span&gt;&lt;span class="er"&gt;z&lt;/span&gt;&lt;span class="er"&gt;e&lt;/span&gt;&lt;span class="er"&gt;d&lt;/span&gt;&lt;span class="i"&gt;3&lt;/span&gt;&lt;span class="er"&gt;c&lt;/span&gt;&lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;, 
      &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;x&lt;/span&gt;&lt;span class="er"&gt;_&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="er"&gt;i&lt;/span&gt;&lt;span class="er"&gt;m&lt;/span&gt;&lt;span class="er"&gt;e&lt;/span&gt;&lt;span class="ke"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="i"&gt;2009&lt;/span&gt;&lt;span class="i"&gt;-0&lt;/span&gt;&lt;span class="i"&gt;8&lt;/span&gt;&lt;span class="i"&gt;-12&lt;/span&gt; &lt;span class="i"&gt;21&lt;/span&gt;:&lt;span class="i"&gt;42&lt;/span&gt;:&lt;span class="i"&gt;40&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;,
      &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;y&lt;/span&gt;&lt;span class="er"&gt;_&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="er"&gt;i&lt;/span&gt;&lt;span class="er"&gt;m&lt;/span&gt;&lt;span class="er"&gt;e&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="i"&gt;2009&lt;/span&gt;&lt;span class="i"&gt;-0&lt;/span&gt;&lt;span class="i"&gt;8&lt;/span&gt;&lt;span class="i"&gt;-12&lt;/span&gt; &lt;span class="i"&gt;21&lt;/span&gt;:&lt;span class="i"&gt;47&lt;/span&gt;:&lt;span class="i"&gt;34&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;,
      &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;f&lt;/span&gt;&lt;span class="er"&gt;u&lt;/span&gt;&lt;span class="er"&gt;l&lt;/span&gt;&lt;span class="er"&gt;l&lt;/span&gt;&lt;span class="er"&gt;_&lt;/span&gt;&lt;span class="er"&gt;n&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;m&lt;/span&gt;&lt;span class="er"&gt;e&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;T&lt;/span&gt; &lt;span class="er"&gt;H&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;, 
      &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;c&lt;/span&gt;&lt;span class="er"&gt;o&lt;/span&gt;&lt;span class="er"&gt;m&lt;/span&gt;&lt;span class="er"&gt;m&lt;/span&gt;&lt;span class="er"&gt;e&lt;/span&gt;&lt;span class="er"&gt;n&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: null, 
      &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;c&lt;/span&gt;&lt;span class="er"&gt;o&lt;/span&gt;&lt;span class="er"&gt;u&lt;/span&gt;&lt;span class="er"&gt;n&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="er"&gt;r&lt;/span&gt;&lt;span class="er"&gt;y&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;U&lt;/span&gt;&lt;span class="er"&gt;n&lt;/span&gt;&lt;span class="er"&gt;i&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="er"&gt;e&lt;/span&gt;&lt;span class="er"&gt;d&lt;/span&gt; &lt;span class="er"&gt;S&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="er"&gt;e&lt;/span&gt;&lt;span class="er"&gt;s&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;, 
      &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;s&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="er"&gt;e&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;C&lt;/span&gt;&lt;span class="er"&gt;o&lt;/span&gt;&lt;span class="er"&gt;l&lt;/span&gt;&lt;span class="er"&gt;o&lt;/span&gt;&lt;span class="er"&gt;r&lt;/span&gt;&lt;span class="er"&gt;a&lt;/span&gt;&lt;span class="er"&gt;d&lt;/span&gt;&lt;span class="er"&gt;o&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;,
       &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;c&lt;/span&gt;&lt;span class="er"&gt;i&lt;/span&gt;&lt;span class="er"&gt;t&lt;/span&gt;&lt;span class="er"&gt;y&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;: &lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="er"&gt;B&lt;/span&gt;&lt;span class="er"&gt;r&lt;/span&gt;&lt;span class="er"&gt;o&lt;/span&gt;&lt;span class="er"&gt;o&lt;/span&gt;&lt;span class="er"&gt;m&lt;/span&gt;&lt;span class="er"&gt;f&lt;/span&gt;&lt;span class="er"&gt;i&lt;/span&gt;&lt;span class="er"&gt;e&lt;/span&gt;&lt;span class="er"&gt;l&lt;/span&gt;&lt;span class="er"&gt;d&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;
       [...]
     }
  } &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I soon realized the JSON objects contained great information for crafting precision attacks.&lt;/p&gt;

&lt;p&gt;The JSON data reads like they are database column values. I wondered for a moment what would happen if I just use the strings in the JSON objects for POST keys, came up with logical values matching the keys, then started POSTing the modified form data.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Bingo&lt;/b&gt;. By simply intercepting POST requests and appending new key/value pairs to the list of key/value pairs already being submitted I was able to modify database values unattended by the developers. In this case, it meant I was able to modify information inserted and owned by other users of the site.&lt;/p&gt;

&lt;p&gt;I&#8217;m not espousing &lt;b&gt;&lt;/i&gt;Harry Potter&lt;/b&gt;&lt;/i&gt; skills here, rather illustrating one of many examples of why Man is needed to go beyond where automated web app scanners stop.&lt;/p&gt;</description>
      <pubDate>Sat, 22 Aug 2009 16:59:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:0c1a9b04-0938-4c1e-8295-d5d722c9dcc8</guid>
      <author>tate@ClearNetSec.com (tate)</author>
      <comments>http://blog.clearnetsec.com/2009/08/22/man-vs-web-app#comments</comments>
      <category>security</category>
      <category>proxy</category>
      <category>assessment</category>
      <category>ClearNet</category>
      <category>ClearNet Security</category>
      <category>Tate Hansen</category>
      <category>vulnerability</category>
      <category>web application</category>
      <category>scanners</category>
      <category>json</category>
      <category>burp</category>
      <link>http://blog.clearnetsec.com/2009/08/22/man-vs-web-app</link>
    </item>
    <item>
      <title>keep passphrases &#8216;in the mind&#8217;</title>
      <description>I&#8217;ve always heard from friends that a court could compel a person to divulge a passphrase to get to their encrypted information. &lt;br /&gt;&lt;br /&gt;
I learned that is not exactly true while attending &lt;a href="https://www.defcon.org/html/defcon-17/dc-17-speakers.html#Pitchford"&gt;Tyler Pitchford&#8217;s presentation&lt;/a&gt; at &lt;a href="http://www.defcon.org/"&gt;Defcon 17&lt;/a&gt;.  
&lt;br /&gt;&lt;br /&gt;
Encryption keys are &lt;b&gt;&lt;i&gt;products of the mind&lt;/i&gt;&lt;/b&gt; and are protected by the &lt;a href="http://en.wikipedia.org/wiki/Fifth_Amendment_to_the_United_States_Constitution"&gt;Fifth Amendment&lt;/a&gt;. 
&lt;br /&gt; &lt;br /&gt;
The case from which these assertions are derived is &lt;a href="http://en.wikipedia.com/wiki/United_States_v._Boucher"&gt;United States v. Boucher&lt;/a&gt;. Sebastien may have to give up his passphrase in the end because he made a &lt;b&gt;&lt;i&gt;terrible decision&lt;/i&gt;&lt;/b&gt; in the beginning by consenting to talk. 
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;Never talk.  Never.&lt;/b&gt;  If you haven&#8217;t already, watch this &lt;a href="http://video.google.com/videoplay?docid=-4097602514885833865"&gt;video presentation by Professor James Duane&lt;/a&gt; titled &lt;i&gt;Don&#8217;t Talk to the Police&lt;/i&gt; to learn all about why.   
&lt;blockquote&gt; Why I am proud to admit that I will &lt;i&gt;&lt;b&gt;never&lt;/i&gt;&lt;/b&gt; talk to any police officer.  In Praise of the Fifth Amendment Right to Not Be a Witness Against Yourself.   
&lt;/blockquote&gt;


</description>
      <pubDate>Mon, 03 Aug 2009 06:13:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:c8596962-10c3-405b-892a-894f87d3ec46</guid>
      <author>tate@ClearNetSec.com (tate)</author>
      <comments>http://blog.clearnetsec.com/2009/08/03/keep-passphrases-%E2%80%98in-the-mind%E2%80%99#comments</comments>
      <category>security</category>
      <category>ClearNet</category>
      <category>ClearNet Security</category>
      <category>Tate Hansen</category>
      <category>passphrase</category>
      <category>encryption</category>
      <category>tate</category>
      <category>defcon</category>
      <category>police</category>
      <trackback:ping>http://blog.clearnetsec.com/trackbacks?article_id=1574</trackback:ping>
      <link>http://blog.clearnetsec.com/2009/08/03/keep-passphrases-%E2%80%98in-the-mind%E2%80%99</link>
    </item>
    <item>
      <title>tech notes on vSwitches and layer 2 attacks</title>
      <description>&lt;p&gt;&lt;p&gt;&lt;p&gt; I recently completed a pen test from the sole position of possessing remote administrative privileges to a few guest VMs. &lt;/p&gt; &lt;p&gt; I fired up &lt;a href="http://www.yersinia.net/"&gt;yersinia&lt;/a&gt; to learn if launching layer 2 attacks could disrupt normal operations.  While doing that I grabbed a copy of this book:&lt;br /&gt; &lt;a href="http://www.amazon.com/gp/product/0137158009?ie=UTF8&amp;tag=clearnetsecco-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0137158009"&gt;VMware vSphere and Virtual Infrastructure Security: Securing the Virtual Environment&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=clearnetsecco-20&amp;l=as2&amp;o=1&amp;a=0137158009" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt; &lt;/p&gt; &lt;p&gt; vSwitches are reportedly immune to layer 2 attacks.  &lt;/p&gt; &lt;blockquote&gt; &lt;i&gt;"Currently, a vSwitch will protect you from the following types of attacks by not providing the underlying functionality that these attacks require."&lt;/i&gt; &lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;MAC Flooding&lt;/li&gt; &lt;li&gt;Double Encapsulation attacks (multiple 801.q envelopes)&lt;/li&gt; &lt;li&gt;Multicast Brute Force Attacks&lt;/li&gt; &lt;li&gt;Spanning Tree Attacks&lt;/li&gt; &lt;li&gt;Random Frame Attacks &lt;/li&gt; &lt;li&gt;DTP/VTP&lt;/li&gt; &lt;/ul&gt; &lt;p&gt; I was able to perform MiTM via ARP cache poisoning on other visible guest VMs sharing the same network segment (because the attack targets the guest VM and not the vSwitch) &#8211; but in this case, each segment was allocated to a unique customer and therefore not a valuable test (i.e. poisoning one&#8217;s self was not in scope).   &lt;/p&gt; &lt;p&gt; You can configure VMware to further limit attacks within a broadcast domain: &lt;ul&gt; &lt;li&gt;Security | Promiscuous Mode (default is to reject) : Reject&lt;/li&gt; &lt;li&gt;Security | MAC Address Changes (default is to accept): Reject&lt;/ll&gt; &lt;li&gt;Security | Forged Transmits (allow outbound frame w/a source MAC that is different) (default is to accept) : Reject&lt;/ul&gt; &lt;/p&gt;&lt;/p&gt;&lt;/p&gt;

</description>
      <pubDate>Thu, 23 Jul 2009 09:47:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4eb95569-dfce-47ac-9f50-34710cbe0644</guid>
      <author>tate@ClearNetSec.com (tate)</author>
      <comments>http://blog.clearnetsec.com/2009/07/23/tech-notes-on-vswitches-and-layer-2-attacks#comments</comments>
      <category>security</category>
      <category>ClearNet</category>
      <category>ClearNet Security</category>
      <category>Tate Hansen</category>
      <category>vmware</category>
      <category>pentesting</category>
      <category>vswitch</category>
      <link>http://blog.clearnetsec.com/2009/07/23/tech-notes-on-vswitches-and-layer-2-attacks</link>
    </item>
    <item>
      <title>Best to skip the pen test gigs with too short of attack windows</title>
      <description>&lt;p&gt;
&lt;meta content="" name="Title"&gt;
&lt;meta content="" name="Keywords"&gt;
&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type"&gt;
&lt;meta content="Word.Document" name="ProgId"&gt;
&lt;meta content="Microsoft Word 2008" name="Generator"&gt;
&lt;meta content="Microsoft Word 2008" name="Originator"&gt;
&lt;link href="file://localhost/Users/tate/Library/Caches/TemporaryItems/msoclip/0clip_filelist.xml" rel="File-List" /&gt; &lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;o:DocumentProperties&gt;
&lt;o:Template&gt;Normal.dotm&lt;/o:Template&gt;
&lt;o:Revision&gt;0&lt;/o:Revision&gt;
&lt;o:TotalTime&gt;0&lt;/o:TotalTime&gt;
&lt;o:Pages&gt;1&lt;/o:Pages&gt;
&lt;o:Words&gt;158&lt;/o:Words&gt;
&lt;o:Characters&gt;906&lt;/o:Characters&gt;
&lt;o:Company&gt;Inspekt Security&lt;/o:Company&gt;
&lt;o:Lines&gt;7&lt;/o:Lines&gt;
&lt;o:Paragraphs&gt;1&lt;/o:Paragraphs&gt;
&lt;o:CharactersWithSpaces&gt;1112&lt;/o:CharactersWithSpaces&gt;
&lt;o:Version&gt;12.0&lt;/o:Version&gt;
&lt;/o:DocumentProperties&gt;
&lt;o:OfficeDocumentSettings&gt;
&lt;o:AllowPNG /&gt;
&lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:WordDocument&gt;
&lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
&lt;w:TrackMoves&gt;false&lt;/w:TrackMoves&gt;
&lt;w:TrackFormatting /&gt;
&lt;w:PunctuationKerning /&gt;
&lt;w:DrawingGridHorizontalSpacing&gt;18 pt&lt;/w:DrawingGridHorizontalSpacing&gt;
&lt;w:DrawingGridVerticalSpacing&gt;18 pt&lt;/w:DrawingGridVerticalSpacing&gt;
&lt;w:DisplayHorizontalDrawingGridEvery&gt;0&lt;/w:DisplayHorizontalDrawingGridEvery&gt;
&lt;w:DisplayVerticalDrawingGridEvery&gt;0&lt;/w:DisplayVerticalDrawingGridEvery&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:DontGrowAutofit /&gt;
&lt;w:DontAutofitConstrainedTables /&gt;
&lt;w:DontVertAlignInTxbx /&gt;
&lt;/w:Compatibility&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="276"&gt;
&lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt; &lt;style type="text/css"&gt;
&lt;!--
 /* Font Definitions */
@font-face
	{font-family:Cambria;
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:3 0 0 0 1 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-ascii-font-family:Cambria;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Cambria;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Cambria;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
@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:12.0pt;
font-family:"Times New Roman";
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;  &lt;!--StartFragment--&gt;&lt;o:p&gt;&lt;/o:p&gt;I just completed an external pen test whereby the rules of engagement limited the scan windows to two hours per night.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Requests for longer were rejected.                  &lt;/meta&gt;
&lt;/meta&gt;
&lt;/meta&gt;
&lt;/meta&gt;
&lt;/meta&gt;
&lt;/meta&gt;
&lt;/p&gt;
&lt;p&gt;&lt;o:p&gt;&lt;/o:p&gt;I hadn&amp;rsquo;t run within this tight of windows in some time and now I remember why I hate it so much.&lt;/p&gt;
&lt;p&gt;&lt;o:p&gt;&lt;/o:p&gt;I spent more time jacking any and every configuration setting I could tweak to boost each tool for balls out speed and baby-sitting (because failing seems to be a popular thing to do if you&amp;rsquo;re a tool sprinting at 50 threads and spending 0ms between requests) that I didn&amp;rsquo;t get nearly the time I wanted to concentrate on what I was paid to do: bust in.&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;img height="199" width="300" vspace="5" align="right" alt="" src="http://blog.clearnetsec.com/files/passedout.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;o:p&gt;&lt;/o:p&gt;As a case in point I was working a SQLi point that was allowing me to download their entire database, alas, I only ever retrieved four of the 200+ tables during any one window.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Worse is I spun my wheels for several critical hours exerting fervent trial and error effort tweaking tool options, largely in vain, in hopes of making things go faster.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;The consequence was tool tweaking dominated my attention.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Creativity, the force summoned for powersploiting, remained unconscious.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;!--EndFragment--&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;

</description>
      <pubDate>Thu, 02 Jul 2009 16:27:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:2b2108b1-ab55-403a-915e-b459bf80b6bc</guid>
      <author>tate@ClearNetSec.com (tate)</author>
      <comments>http://blog.clearnetsec.com/2009/07/02/best-to-skip-the-pen-test-gigs-with-too-short-of-attack-windows#comments</comments>
      <category>security</category>
      <category>ClearNet</category>
      <category>ClearNet Security</category>
      <category>Tate Hansen</category>
      <category>pentesting</category>
      <trackback:ping>http://blog.clearnetsec.com/trackbacks?article_id=1572</trackback:ping>
      <link>http://blog.clearnetsec.com/2009/07/02/best-to-skip-the-pen-test-gigs-with-too-short-of-attack-windows</link>
    </item>
    <item>
      <title>Staffing and teams</title>
      <description>I was listening to a podcast on Agile Staffing last week and they succinctly stated a couple things everyone sort of knows but doesn't say that often.
&lt;ul&gt;
	&lt;li&gt;On small startup type teams, the team is everything, a bad team member can kill the product and the company.&lt;/li&gt;
	&lt;li&gt;On particularly agile teams,  having agile people is better than having technology experts.&lt;/li&gt;
&lt;/ul&gt;

The first point is really clear,  be it the leadership of the team or contributors to the team,  if any one piece is broken then the whole thing won't work well.   The second point is something I think people tend to dismiss,  people like to list desired skills in job descriptions more so than desired attitudes and in an interview it's far more likely you'll be asked to write some code or explain some sort of process than you will be given a personality profile.

One pattern that I've seen at a number of companies I've worked at is that new people will be some how challenged and asked to do some heroic amount of work and the company sort of over reaches.   After that challenge project is done the team never fully recovers,  the team is skeptical of everything and doesn't want to work that hard again.  All future projects are exercises in work reduction, not so much in product improvement.  The team is reluctant to do anything like the challenge again.  You end up with something that's fundamentally not repeatable.  Even if you end up with a great result,  the team is fried and you can't follow it up.  

Another pattern I've seen is the so called "analysis paralysis."   The desire to find a singular, "perfect," solution to a problem outweighs the desire to do anything else.   Rather than attempting to fix problems or "solve the problem multiple times," or put "band-aids" on problems there is a desire to wait until an ultimate solution is created, which is usually never.   With the problem,  there are usually some fairly easy things that can be done to make some sort of incremental improvements along the way.  

Back to that second point,  there are personality traits that help you find people that help you break those patterns.   There are people that are willing to iterate on solutions and try to repeat success and those are the people you want to put on teams.    Now this is all software talk but does it apply to security and network teams?    Is a security policy something that has to be iterated on and changed over time or is there a "perfect" solution that can be reached?    You can have the best security guys in the world working for you but if you've overextended them do they still actually work?



</description>
      <pubDate>Tue, 30 Jun 2009 04:28:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:c9320b4d-c808-4275-8a55-9f9275f62582</guid>
      <author>ian@ClearNetSec.com (Ian S. Nelson)</author>
      <comments>http://blog.clearnetsec.com/2009/06/30/staffing-and-teams#comments</comments>
      <link>http://blog.clearnetsec.com/2009/06/30/staffing-and-teams</link>
    </item>
    <item>
      <title>Defending data?  Incentivize.</title>
      <description>&lt;p&gt;Defending boils down to skill and &lt;strong&gt;incentive&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Tools that provide visibility are required, but that&amp;rsquo;s another topic.  Skill is also an obvious requisite.&lt;/p&gt;
&lt;p&gt;How about incentives? What incentives are in place for security engineers to really dig in and be great defenders?&lt;/p&gt;
&lt;p&gt;Tier one engineers working out of traditional MSSPs are paid in the $20 per hour range or lower and by the nature of their position they have minimal understanding of anything of substance about their clients&amp;rsquo; networks.&lt;/p&gt;
&lt;p&gt;Opposite that, I know a very talented group of engineers working at an expensive outsourced IT/software company whom are responsible for their company&amp;rsquo;s top paying customers. They breathe uptime.  Heads roll and the company loses money when downtime occurs.  Security is barely an afterthought.  Lest they do see a security issue, they may skip notifying for why create more support tickets and work.&lt;/p&gt;
&lt;p&gt;It doesn&amp;rsquo;t make sense to punish defenders for failing to prevent infiltration &amp;ndash; that is to be expected today. &lt;strong&gt; Simply detecting one is a great accomplishment.     &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To move defenders to be great defenders, reward them for detecting infiltrations.&lt;/p&gt;
&lt;p&gt;I think it would be great for company&amp;rsquo;s to hire an outside party to perform unauthorized activity at an increasing pace and breadth until someone responsible for monitoring sounds the alarm.  Reward those who discovered the activity.  Do it frequently.  Change it up.  Make a competition out of it.  No doubt this would help weed out bad performers, be they internal or external.&lt;/p&gt;
&lt;p&gt;This is very similar to what I&amp;rsquo;ve seen a few hospitals implement.  If an employee stops and challenges a person without a badge then they receive a $100 bonus.      &lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not promoting pen. testing here, though it&amp;rsquo;s a good example of a challenge.&amp;nbsp; I think simple and frequent small scale tests tied to rewards would work wonders for many security groups and for the company&amp;rsquo;s wanting to keep their assets protected.&lt;/p&gt;

</description>
      <pubDate>Sun, 31 May 2009 06:41:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:618bfe41-1533-41b4-aac8-c0c87a541663</guid>
      <author>tate@ClearNetSec.com (tate)</author>
      <comments>http://blog.clearnetsec.com/2009/05/31/defending-data-incentivize#comments</comments>
      <category>security</category>
      <category>ClearNet</category>
      <category>ClearNet Security</category>
      <category>Tate Hansen</category>
      <category>mssp</category>
      <trackback:ping>http://blog.clearnetsec.com/trackbacks?article_id=1569</trackback:ping>
      <link>http://blog.clearnetsec.com/2009/05/31/defending-data-incentivize</link>
    </item>
  </channel>
</rss>
