<?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:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Kirk Jackson's Page of Words</title>
    <link>http://pageofwords.com/blog/</link>
    <description>Run the ink across this page of words</description>
    <language>en-us</language>
    <copyright>Kirk Jackson</copyright>
    <lastBuildDate>Wed, 01 Sep 2010 04:18:01 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>kirkj@paradise.net.nz</managingEditor>
    <webMaster>kirkj@paradise.net.nz</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/pageofwords" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="pageofwords" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=611df22f-c847-4422-9ecb-131982b93a14</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,611df22f-c847-4422-9ecb-131982b93a14.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,611df22f-c847-4422-9ecb-131982b93a14.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=611df22f-c847-4422-9ecb-131982b93a14</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here's the presentation I delivered at the Auckland Code Camp 2010. It covers 10 things
that I found when surveying attendees websites :)
</p>
        <div class="prezi-player">
          <style type="text/css" media="screen">.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }</style>
          <object id="prezi_g6qwyes_oik_" name="prezi_g6qwyes_oik_" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" height="400" width="550">
            <param name="movie" value="http://prezi.com/bin/preziloader.swf" />
            <param name="allowfullscreen" value="true" />
            <param name="allowscriptaccess" value="always" />
            <param name="bgcolor" value="#ffffff" />
            <param name="flashvars" value="prezi_id=g6qwyes_oik_&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0" />
            <embed id="preziEmbed_g6qwyes_oik_" name="preziEmbed_g6qwyes_oik_" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" bgcolor="#ffffff" flashvars="prezi_id=g6qwyes_oik_&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0" height="400" width="550">
            </embed>
          </object>
          <div class="prezi-player-links">
            <p>
              <a title="Presentation to the Code Camp 2010 in Auckland, New Zealand. &#xD;&#xA;&#xD;&#xA;Presented by Kirk Jackson" href="http://prezi.com/g6qwyes_oik_/10-things-you-are-doing-wrong/">10
things YOU are doing wrong!</a> on <a href="http://prezi.com">Prezi</a></p>
          </div>
        </div>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=611df22f-c847-4422-9ecb-131982b93a14" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/Dz7RcxbjtB8" height="1" width="1" /></body>
      <title>10 things YOU are doing wrong!</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,611df22f-c847-4422-9ecb-131982b93a14.aspx</guid>
      <link>http://pageofwords.com/blog/2010/09/01/10ThingsYOUAreDoingWrong.aspx</link>
      <pubDate>Wed, 01 Sep 2010 04:18:01 GMT</pubDate>
      <description>&lt;p&gt;
Here's the presentation I delivered at the Auckland Code Camp 2010. It covers 10 things
that I found when surveying attendees websites :)
&lt;/p&gt;
&lt;div class="prezi-player"&gt;&lt;style type="text/css" media="screen"&gt;.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }&lt;/style&gt;
&lt;object id="prezi_g6qwyes_oik_" name="prezi_g6qwyes_oik_" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" height="400" width="550"&gt;
&lt;param name="movie" value="http://prezi.com/bin/preziloader.swf"&gt;
&lt;param name="allowfullscreen" value="true"&gt;
&lt;param name="allowscriptaccess" value="always"&gt;
&lt;param name="bgcolor" value="#ffffff"&gt;
&lt;param name="flashvars" value="prezi_id=g6qwyes_oik_&amp;amp;lock_to_path=0&amp;amp;color=ffffff&amp;amp;autoplay=no&amp;amp;autohide_ctrls=0"&gt;&lt;embed id="preziEmbed_g6qwyes_oik_" name="preziEmbed_g6qwyes_oik_" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" bgcolor="#ffffff" flashvars="prezi_id=g6qwyes_oik_&amp;amp;lock_to_path=0&amp;amp;color=ffffff&amp;amp;autoplay=no&amp;amp;autohide_ctrls=0" height="400" width="550"&gt;
&lt;/object&gt;
&lt;div class="prezi-player-links"&gt;
&lt;p&gt;
&lt;a title="Presentation to the Code Camp 2010 in Auckland, New Zealand. 

Presented by Kirk Jackson" href="http://prezi.com/g6qwyes_oik_/10-things-you-are-doing-wrong/"&gt;10
things YOU are doing wrong!&lt;/a&gt; on &lt;a href="http://prezi.com"&gt;Prezi&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=611df22f-c847-4422-9ecb-131982b93a14" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,611df22f-c847-4422-9ecb-131982b93a14.aspx</comments>
      <category>CodeCamp;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=ee2dad9f-5bb8-49cc-9fd2-b82af9a11c68</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,ee2dad9f-5bb8-49cc-9fd2-b82af9a11c68.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,ee2dad9f-5bb8-49cc-9fd2-b82af9a11c68.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ee2dad9f-5bb8-49cc-9fd2-b82af9a11c68</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you're in Auckland this Sunday, come along and check out the latest Microsoft technologies
from MS Communities<img style="border-bottom: 0px; border-left: 0px; margin: 10px; border-top: 0px; border-right: 0px" title="msc-logo" border="0" alt="msc-logo" align="left" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-45-09-metablogapi/4762.msc_2D00_logo_5F00_3.png" width="358" height="88" />.
</p>
        <p>
 
</p>
        <p>
It's happening Sunday 29 August from 930am till 530PM at the University of Auckland
Business School. This is a free event so please <a href="http://mscommunities.net.nz/summit/">Register
and attend</a></p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
The MS Communities website is at <a href="http://mscommunities.net.nz/summit/">http://mscommunities.net.nz/summit/</a> with
the days agenda
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=ee2dad9f-5bb8-49cc-9fd2-b82af9a11c68" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/DU73QRsdwxY" height="1" width="1" /></body>
      <title>MS Communities Code Camp/Summit This Sunday (29/AUG) in Auckland</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,ee2dad9f-5bb8-49cc-9fd2-b82af9a11c68.aspx</guid>
      <link>http://pageofwords.com/blog/2010/08/25/MSCommunitiesCodeCampSummitThisSunday29AUGInAuckland.aspx</link>
      <pubDate>Wed, 25 Aug 2010 13:07:55 GMT</pubDate>
      <description>&lt;p&gt;
If you're in Auckland this Sunday, come along and check out the latest Microsoft technologies
from MS Communities&lt;img style="border-bottom: 0px; border-left: 0px; margin: 10px; border-top: 0px; border-right: 0px" title="msc-logo" border="0" alt="msc-logo" align="left" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-45-09-metablogapi/4762.msc_2D00_logo_5F00_3.png" width="358" height="88" /&gt;.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
It's happening Sunday 29 August from 930am till 530PM at the University of Auckland
Business School. This is a free event so please &lt;a href="http://mscommunities.net.nz/summit/"&gt;Register
and attend&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
The MS Communities website is at &lt;a href="http://mscommunities.net.nz/summit/"&gt;http://mscommunities.net.nz/summit/&lt;/a&gt; with
the days agenda
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=ee2dad9f-5bb8-49cc-9fd2-b82af9a11c68" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,ee2dad9f-5bb8-49cc-9fd2-b82af9a11c68.aspx</comments>
      <category>CodeCamp;UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=9aad5abd-b8eb-43ea-89b0-8d9c36ca5df0</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,9aad5abd-b8eb-43ea-89b0-8d9c36ca5df0.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,9aad5abd-b8eb-43ea-89b0-8d9c36ca5df0.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=9aad5abd-b8eb-43ea-89b0-8d9c36ca5df0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://pageofwords.com/blog/images/dean.jpg" alt="dean.jpg" align="right" border="0" height="334" width="200" />Used
to be a QSA (Qualified Security Assessor). There are now 8 in NZ.<br /><br />
The QSA wears the risk and signs you off for PCI compliance.<br /><br />
There are no silver bullets for PCI stuff.<br /><br />
"It's a hell of a roller-coaster ride"<br /><br />
He has seen 2.5 million credit card numbers in NZ, in the clear, in many website databases.<br /><br />
One guy Albert Gonzalez compromised 170 million credit cards across many large corporations.<br /><br /><b>PCI requirements:</b><br /><br />
"Protect stored data": 79% of orgs fail on this.<br /><br />
PAN (account data) must be unreadable when stored.<br /><br />
You can never store mag stripe data.<br /><br />
"Track and monitor all access to network resources and cardholder data"<br /><br />
"Develop and maintain secure systems and applications" - 56% of organisations fail
on this<br /><br /><b>Rant:</b><br /><br />
1. Card holder data gets everywhere<br /><br />
2. Keep test and development environments out of scope. Don't use real live data in
them.<br /><br />
3. The good: payment gateways and companies that handle cards - they do a good job.
They outsource to experts.<br /><br />
The bad: small merchants with a few transactions. Cheap website with cheap hosting.
Easily compromised.<br /><br />
The ugly: corporates. Great staff but don't make any progress.<br /><br />
If you're a merchant: find a compliant service provider.<br /><br />
4. If your a service provider: code well, make a noise about it. Make your solutions
easy to assess for compliance. Keep in touch with your acquiring bank.<br /><br />
5. You need to evolve your security to address risks. You are allowed to exceed PCI
standards.<br /><br /><br />
6. New VISA best practices: you don't need to store the PAN any more, rely on your
service provider to do it.<br /><br /><br />
7. Do it properly, or don't use credit cards. Support your developers and give them
training.<br /><br />
8. Storage of card data: Challenge it - why does the business need it? Get rid of
old cards if you don't need them.<br /><br />
9. Checkbox security - don't just check the boxes. Exceed them.<br /><br />
10. OWASP top 10 - adopted by PCI DSS.<br /><br />
Two most useful links:<br /><br /><a href="https://www.pcisecuritystandards.org/">www.pcisecuritystandards.org</a><br /><br />
www.owasp.org<br /><br /><b>Parting thoughts:</b><br /><br />
- Use OWASP as a tool<br /><br />
- Don't confuse compliance and standards with security<br /><br />
- Chop up your credit cards!<br /><br /><b>Questions:</b><br /><br />
Why did you give up being a QSA?<br /><br />
It was really stressful<br /><br />
When collecting info and passing it on to a payment gateway, do you require an audit?<br /><br />
Different QSAs treat it differently. He believes the webserver is in scope if it's
taking the card data. New version of standard coming out in October that may address
in-memory stuff.<br /><br />
Why stop using credit cards? At least you get protection, unlike if you use debit
cards?<br /><br />
Dean uses a low-value debit card.<br /><br />
How does PCI deal with it if you're using third-party libraries?<br /><br />
Payment application DSS will kick in if you're using it to resell.<br /><p /><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=9aad5abd-b8eb-43ea-89b0-8d9c36ca5df0" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/igrS7j8cUr8" height="1" width="1" /></body>
      <title>Dean Carter: Ramblings of an ex-QSA</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,9aad5abd-b8eb-43ea-89b0-8d9c36ca5df0.aspx</guid>
      <link>http://pageofwords.com/blog/2010/07/15/DeanCarterRamblingsOfAnExQSA.aspx</link>
      <pubDate>Thu, 15 Jul 2010 04:47:41 GMT</pubDate>
      <description>&lt;img src="http://pageofwords.com/blog/images/dean.jpg" alt="dean.jpg" align="right" border="0" height="334" width="200"&gt;Used
to be a QSA (Qualified Security Assessor). There are now 8 in NZ.&lt;br&gt;
&lt;br&gt;
The QSA wears the risk and signs you off for PCI compliance.&lt;br&gt;
&lt;br&gt;
There are no silver bullets for PCI stuff.&lt;br&gt;
&lt;br&gt;
"It's a hell of a roller-coaster ride"&lt;br&gt;
&lt;br&gt;
He has seen 2.5 million credit card numbers in NZ, in the clear, in many website databases.&lt;br&gt;
&lt;br&gt;
One guy Albert Gonzalez compromised 170 million credit cards across many large corporations.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;PCI requirements:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
"Protect stored data": 79% of orgs fail on this.&lt;br&gt;
&lt;br&gt;
PAN (account data) must be unreadable when stored.&lt;br&gt;
&lt;br&gt;
You can never store mag stripe data.&lt;br&gt;
&lt;br&gt;
"Track and monitor all access to network resources and cardholder data"&lt;br&gt;
&lt;br&gt;
"Develop and maintain secure systems and applications" - 56% of organisations fail
on this&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Rant:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
1. Card holder data gets everywhere&lt;br&gt;
&lt;br&gt;
2. Keep test and development environments out of scope. Don't use real live data in
them.&lt;br&gt;
&lt;br&gt;
3. The good: payment gateways and companies that handle cards - they do a good job.
They outsource to experts.&lt;br&gt;
&lt;br&gt;
The bad: small merchants with a few transactions. Cheap website with cheap hosting.
Easily compromised.&lt;br&gt;
&lt;br&gt;
The ugly: corporates. Great staff but don't make any progress.&lt;br&gt;
&lt;br&gt;
If you're a merchant: find a compliant service provider.&lt;br&gt;
&lt;br&gt;
4. If your a service provider: code well, make a noise about it. Make your solutions
easy to assess for compliance. Keep in touch with your acquiring bank.&lt;br&gt;
&lt;br&gt;
5. You need to evolve your security to address risks. You are allowed to exceed PCI
standards.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
6. New VISA best practices: you don't need to store the PAN any more, rely on your
service provider to do it.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
7. Do it properly, or don't use credit cards. Support your developers and give them
training.&lt;br&gt;
&lt;br&gt;
8. Storage of card data: Challenge it - why does the business need it? Get rid of
old cards if you don't need them.&lt;br&gt;
&lt;br&gt;
9. Checkbox security - don't just check the boxes. Exceed them.&lt;br&gt;
&lt;br&gt;
10. OWASP top 10 - adopted by PCI DSS.&lt;br&gt;
&lt;br&gt;
Two most useful links:&lt;br&gt;
&lt;br&gt;
&lt;a href="https://www.pcisecuritystandards.org/"&gt;www.pcisecuritystandards.org&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
www.owasp.org&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Parting thoughts:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Use OWASP as a tool&lt;br&gt;
&lt;br&gt;
- Don't confuse compliance and standards with security&lt;br&gt;
&lt;br&gt;
- Chop up your credit cards!&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Questions:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Why did you give up being a QSA?&lt;br&gt;
&lt;br&gt;
It was really stressful&lt;br&gt;
&lt;br&gt;
When collecting info and passing it on to a payment gateway, do you require an audit?&lt;br&gt;
&lt;br&gt;
Different QSAs treat it differently. He believes the webserver is in scope if it's
taking the card data. New version of standard coming out in October that may address
in-memory stuff.&lt;br&gt;
&lt;br&gt;
Why stop using credit cards? At least you get protection, unlike if you use debit
cards?&lt;br&gt;
&lt;br&gt;
Dean uses a low-value debit card.&lt;br&gt;
&lt;br&gt;
How does PCI deal with it if you're using third-party libraries?&lt;br&gt;
&lt;br&gt;
Payment application DSS will kick in if you're using it to resell.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=9aad5abd-b8eb-43ea-89b0-8d9c36ca5df0" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,9aad5abd-b8eb-43ea-89b0-8d9c36ca5df0.aspx</comments>
      <category>OWASP;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=a25db50d-cf87-4743-a32e-277d70acebfb</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,a25db50d-cf87-4743-a32e-277d70acebfb.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,a25db50d-cf87-4743-a32e-277d70acebfb.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a25db50d-cf87-4743-a32e-277d70acebfb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://pageofwords.com/blog/images/hosting.jpg" alt="hosting.jpg" align="right" border="0" height="286" width="200" />Hosting
and Web Apps<br />
The Obscurity of Security<br /><br />
Quintin from SiteHost and Mike from Web Drive cover horror stories they've uncovered
in website code when they've been rung up to fix something.<br /><br /><br />
Security used to be the domain of systems admins and hosters, but developers have
added more fancy features.<br /><br />
Website owners and developer blame their hosters when their sites are defaced.<br /><br /><b>What if security isn't part of the spec?</b><br /><br />
Make it part of the spec.<br /><br />
(Shift jobs if management won't let you make it part of the spec.)<br /><br />
Security starts early: Planning and design phase<br /><br />
- Research, talk to security people<br />
- Get your team some security experience<br />
- Reduce the attack surface<br />
- Keep it simple: Don't build a CMS for a 5 page site<br />
- Don't have an admin area, or use defense in depth to protect it<br /><br /><b>Not all apps are equal:</b><br /><br />
- Sometimes buying is better than building<br />
- Everything has security holes<br />
- Pick something good<br />
 - How does vendor approach security?<br />
 - Check the apps security history:<br />
   - If there are no holes, beware. If there are silly problems, beware.<br /><br /><b>RTFM:</b><br /><br />
- Read the OWASP top 10<br />
- Read the OWASP books<br />
- Read the install documentation and follow the "After installation" docs.<br />
- e.g. Think about what you do when you unserialise stuff; don't trust untrusted user
data<br /><br /><b>Development:</b><br /><br />
- Attack surface reduction<br />
- Validate all your input<br />
- Use source control, and know how it works.<br />
- Watch out for rolling .svn, .git, .cvs directories: might show directory lists,
source code, usernames<br />
- svn checkout is an invalid installation method<br />
- Look at all the files that are there! Especially free / open source apps you download<br /><br /><b>Data management:</b><br /><br />
- If you don't need it, don't store it<br />
- If you need to keep it, how do you need to access it?<br />
- Hash (with a salt), don't encrypt<br />
- Keep production and development seperate<br />
- Keep tabs on your data - size, growth rates, is data used by the code? Get rid of
it.<br /><br /><b>Password strategy:</b><br /><br />
- Don't reuse credentials<br />
- Weak usernames and passwords for db - common to see dbname = username = password<br />
- Watch out for old staff members and old passwords<br /><br /><b>Filesystem security:</b><br /><br />
- Watch out for apps that use /tmp and friends, or require special directory permissions<br />
- Learn how to chmod correctly. x is good enough for directory traversal.<br />
- Watch out for log files in web root<br />
- Beware test files eg phpinfo<br />
- Don't leave old crap on your filesystem: Session files, template caches, zip files<br /><br /><b>Deployment:</b><br /><br />
- Automate as much as possible<br />
- Don't blindly follow installation instructions<br />
  - Read them when you select the software, and understand what it's doing<br />
- Don't use hosting control panels if you don't need them - they have high level access
to the underlying system, and greatly increase your attack surface<br />
- Use SSL for the content not just for the login pages<br />
- Keep your websites separate - different trust level = different credentials<br /><br /><b>Backups:</b><br /><br />
- Keep your own backups - don't trust the providers ones. They protect from a catastrophic
failure, and you could lose 12-24 hours of data<br />
- Test them before you need to use them<br /><br /><b>Clouds:</b><br /><br />
- Don't ever use remote includes - including some third party code in your app!<br />
- Minimise remote resource usage:<br />
  - How does your site react if the remote resource is gone?<br />
  - Take your own copy of AJAX libraries<br />
- Do you need third party analytics for everything?<br />
- Outsourcing data storage: What data are you uploading? Where is it hosted? Is it
safe? Who has access to it? How are backups stored, and how long are they retained?<br /><br /><b>Software lifecycle management:</b><br /><br />
- Have a process for decommissioning, make sure you delete data and files that aren't
used<br />
- Make sure software is up to date<br />
- Who monitors upstream releases? How quickly do you make patches? Who makes the call?<br /><br /><b>Monitoring:</b><br /><br />
- Monitor changes to your website content and uptime<br />
- Check external access. Has your whitelist stopped working?<br />
- DNS: Remember that DNS is an external dependancy. Has your domain been hijacked?<br /><br /><b>Politics:</b><br /><br />
- Make security a part of job description - managers and developers need to make security
a priority and make it part of KPIs<br />
- Get buy-in from non-technical staff<br /><br /><b>Talk to your hosting providers:</b><br /><br />
Talk to their security guys well in advance. Make sure your specific requirements
are getting through to the technician who is doing the work (don't trust the salesperson).<br /><br />
Remember: It's your job to make sure it's working<br /><br /><b>Questions:</b><br /><br />
Including KPIs is a good thing, but you need to give developers the time to learn.<br /><p /><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=a25db50d-cf87-4743-a32e-277d70acebfb" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/QA_B6eW47mU" height="1" width="1" /></body>
      <title>Quintin Russ / Mike Jager - Hosting and Security</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,a25db50d-cf87-4743-a32e-277d70acebfb.aspx</guid>
      <link>http://pageofwords.com/blog/2010/07/15/QuintinRussMikeJagerHostingAndSecurity.aspx</link>
      <pubDate>Thu, 15 Jul 2010 04:24:29 GMT</pubDate>
      <description>&lt;img src="http://pageofwords.com/blog/images/hosting.jpg" alt="hosting.jpg" align="right" border="0" height="286" width="200"&gt;Hosting
and Web Apps&lt;br&gt;
The Obscurity of Security&lt;br&gt;
&lt;br&gt;
Quintin from SiteHost and Mike from Web Drive cover horror stories they've uncovered
in website code when they've been rung up to fix something.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Security used to be the domain of systems admins and hosters, but developers have
added more fancy features.&lt;br&gt;
&lt;br&gt;
Website owners and developer blame their hosters when their sites are defaced.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;What if security isn't part of the spec?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Make it part of the spec.&lt;br&gt;
&lt;br&gt;
(Shift jobs if management won't let you make it part of the spec.)&lt;br&gt;
&lt;br&gt;
Security starts early: Planning and design phase&lt;br&gt;
&lt;br&gt;
- Research, talk to security people&lt;br&gt;
- Get your team some security experience&lt;br&gt;
- Reduce the attack surface&lt;br&gt;
- Keep it simple: Don't build a CMS for a 5 page site&lt;br&gt;
- Don't have an admin area, or use defense in depth to protect it&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Not all apps are equal:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Sometimes buying is better than building&lt;br&gt;
- Everything has security holes&lt;br&gt;
- Pick something good&lt;br&gt;
&amp;nbsp;- How does vendor approach security?&lt;br&gt;
&amp;nbsp;- Check the apps security history:&lt;br&gt;
&amp;nbsp;&amp;nbsp; - If there are no holes, beware. If there are silly problems, beware.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;RTFM:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Read the OWASP top 10&lt;br&gt;
- Read the OWASP books&lt;br&gt;
- Read the install documentation and follow the "After installation" docs.&lt;br&gt;
- e.g. Think about what you do when you unserialise stuff; don't trust untrusted user
data&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Development:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Attack surface reduction&lt;br&gt;
- Validate all your input&lt;br&gt;
- Use source control, and know how it works.&lt;br&gt;
- Watch out for rolling .svn, .git, .cvs directories: might show directory lists,
source code, usernames&lt;br&gt;
- svn checkout is an invalid installation method&lt;br&gt;
- Look at all the files that are there! Especially free / open source apps you download&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Data management:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- If you don't need it, don't store it&lt;br&gt;
- If you need to keep it, how do you need to access it?&lt;br&gt;
- Hash (with a salt), don't encrypt&lt;br&gt;
- Keep production and development seperate&lt;br&gt;
- Keep tabs on your data - size, growth rates, is data used by the code? Get rid of
it.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Password strategy:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Don't reuse credentials&lt;br&gt;
- Weak usernames and passwords for db - common to see dbname = username = password&lt;br&gt;
- Watch out for old staff members and old passwords&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Filesystem security:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Watch out for apps that use /tmp and friends, or require special directory permissions&lt;br&gt;
- Learn how to chmod correctly. x is good enough for directory traversal.&lt;br&gt;
- Watch out for log files in web root&lt;br&gt;
- Beware test files eg phpinfo&lt;br&gt;
- Don't leave old crap on your filesystem: Session files, template caches, zip files&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Deployment:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Automate as much as possible&lt;br&gt;
- Don't blindly follow installation instructions&lt;br&gt;
&amp;nbsp; - Read them when you select the software, and understand what it's doing&lt;br&gt;
- Don't use hosting control panels if you don't need them - they have high level access
to the underlying system, and greatly increase your attack surface&lt;br&gt;
- Use SSL for the content not just for the login pages&lt;br&gt;
- Keep your websites separate - different trust level = different credentials&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Backups:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Keep your own backups - don't trust the providers ones. They protect from a catastrophic
failure, and you could lose 12-24 hours of data&lt;br&gt;
- Test them before you need to use them&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Clouds:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Don't ever use remote includes - including some third party code in your app!&lt;br&gt;
- Minimise remote resource usage:&lt;br&gt;
&amp;nbsp; - How does your site react if the remote resource is gone?&lt;br&gt;
&amp;nbsp; - Take your own copy of AJAX libraries&lt;br&gt;
- Do you need third party analytics for everything?&lt;br&gt;
- Outsourcing data storage: What data are you uploading? Where is it hosted? Is it
safe? Who has access to it? How are backups stored, and how long are they retained?&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Software lifecycle management:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Have a process for decommissioning, make sure you delete data and files that aren't
used&lt;br&gt;
- Make sure software is up to date&lt;br&gt;
- Who monitors upstream releases? How quickly do you make patches? Who makes the call?&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Monitoring:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Monitor changes to your website content and uptime&lt;br&gt;
- Check external access. Has your whitelist stopped working?&lt;br&gt;
- DNS: Remember that DNS is an external dependancy. Has your domain been hijacked?&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Politics:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
- Make security a part of job description - managers and developers need to make security
a priority and make it part of KPIs&lt;br&gt;
- Get buy-in from non-technical staff&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Talk to your hosting providers:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Talk to their security guys well in advance. Make sure your specific requirements
are getting through to the technician who is doing the work (don't trust the salesperson).&lt;br&gt;
&lt;br&gt;
Remember: It's your job to make sure it's working&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Questions:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Including KPIs is a good thing, but you need to give developers the time to learn.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=a25db50d-cf87-4743-a32e-277d70acebfb" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,a25db50d-cf87-4743-a32e-277d70acebfb.aspx</comments>
      <category>OWASP;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=74cac478-54fc-455b-b3b4-f73fe88a7816</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,74cac478-54fc-455b-b3b4-f73fe88a7816.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,74cac478-54fc-455b-b3b4-f73fe88a7816.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=74cac478-54fc-455b-b3b4-f73fe88a7816</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://pageofwords.com/blog/content/binary/tales.jpg" align="right" border="0" />
        <p>
Thanks to everyone who came along to our talk at <a href="http://www.owasp.org/index.php/OWASP_New_Zealand_Day_2010">OWASP
NZ Day 2010</a> today. 
<br /></p>
        <p>
Also, a big thanks to the <a href="http://www.dot.net.nz">Wellington .NET user group</a> crowd
that came last night to listen to our practice run -- you'll be pleased to know that
we dropped the discussion of hash extension attacks :)
</p>
Here are the slides for your downloading pleasure: <a href="http://pageofwords.com/blog/content/binary/tales-of-the-crypto.ppt">tales-of-the-crypto.ppt
(3.79 MB)</a><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=74cac478-54fc-455b-b3b4-f73fe88a7816" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/2S6sxW6yJI0" height="1" width="1" /></body>
      <title>Graeme Neilson / Kirk Jackson: Tales from the Crypt0</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,74cac478-54fc-455b-b3b4-f73fe88a7816.aspx</guid>
      <link>http://pageofwords.com/blog/2010/07/15/GraemeNeilsonKirkJacksonTalesFromTheCrypt0.aspx</link>
      <pubDate>Thu, 15 Jul 2010 03:25:18 GMT</pubDate>
      <description>&lt;img src="http://pageofwords.com/blog/content/binary/tales.jpg" align="right" border="0"&gt; 
&lt;p&gt;
Thanks to everyone who came along to our talk at &lt;a href="http://www.owasp.org/index.php/OWASP_New_Zealand_Day_2010"&gt;OWASP
NZ Day 2010&lt;/a&gt; today. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Also, a big thanks to the &lt;a href="http://www.dot.net.nz"&gt;Wellington .NET user group&lt;/a&gt; crowd
that came last night to listen to our practice run -- you'll be pleased to know that
we dropped the discussion of hash extension attacks :)
&lt;/p&gt;
Here are the slides for your downloading pleasure: &lt;a href="http://pageofwords.com/blog/content/binary/tales-of-the-crypto.ppt"&gt;tales-of-the-crypto.ppt
(3.79 MB)&lt;/a&gt;&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=74cac478-54fc-455b-b3b4-f73fe88a7816" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,74cac478-54fc-455b-b3b4-f73fe88a7816.aspx</comments>
      <category>OWASP;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=cefb12f7-1c1c-456d-a535-fdaea7c8e73d</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,cefb12f7-1c1c-456d-a535-fdaea7c8e73d.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,cefb12f7-1c1c-456d-a535-fdaea7c8e73d.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=cefb12f7-1c1c-456d-a535-fdaea7c8e73d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://pageofwords.com/blog/content/binary/metlstorm.jpg" align="right" border="0" /> Adam
is one of the organisers of <a href="https://kiwicon.org/">Kiwicon</a>, and has presented
on this topic in Singapore.<br /><br />
Using tools to capture / probe network traffic.<br /><br />
If you compare to app/data recon tools like Maltego, network recon tools aren't as
start of the art.<br /><br />
But... if you own the networks under this new fangled cloud stuff, then you own the
whole environment.<br /><br />
It's hard to map out, search and investigate &gt;= Class A<br /><br />
At the moment, only big countries can do that sort of investigation. Apparently countries
are gearing up for 'Cyber Wars'.<br /><br />
But, individuals and corporates can get involved in the same activities of cyber-war
or cyber-terrorism.<br /><br />
Scanning, pinging and trying exploits doesn't scale well - you have to do a lot of
work and get lots of false hits.<br /><br />
You might get owned randomly - it's cheap to own more targets, and then figure out
what to do with it later.<br /><br /><b>Targeting:</b><br /><br />
It's hard to target large numbers of IP addresses. The current tools can't scale to
those kinds of numbers (and the pay services will get really expensive).<br /><br /><b><a href="http://lowscuttlingchillicrab.com">lowscuttlingchillicrab.com</a></b><br /><br />
So he built a geo-targeted network recon data acquisition system with a web interface,
and scanned all of NZ and Singapore for conferences.<br /><br />
An interface to search over data.<br /><br />
"This is a highly secure router, stay away" - the open telnet port tells us so.<br /><br />
Cool things it does:<br /><ul><li>
Searches over certificates</li><li>
Screen captures remote desktop screens</li><li>
Good for targeting: finding particular applications / devices / protocols</li><li>
Good at finding other assets owned by a company outside of their own netblock</li><li>
Helps us understand how many vulnerable things are sitting out there</li></ul><b>The internals of the tool:</b><br /><br />
Version 1 was just to see how plausible it was to scan large chunks of the internet.
Used lots of glued together tools like nmap etc.<br /><br />
Version 2 is now a simple python script that has been optimised for acquiring the
data by scanning a whole country block over certain ports.<br /><br />
A few billion rows of data - use MongoDB to store data. Erlang, RabbitMQ, Python,
Celery MQ, Python / Django frontend, GridFS distributed filestore.<br /><br /><b>Target selection:</b><br /><br />
How do you define what a country is? Is it domain names ending in .nz? Netblocks announced
at peering exchanges? Address registry allocations? GeoIP?<br /><br />
He chose GeoIP as it simplified things - but misses out on .nz stuff hosted overseas.<br /><br /><b>Acquiring data:</b><br /><br />
Custom-tuned protocols to limit rates, fire up application to capture details for
different protocols.<br /><br />
About 1.4B rows per complete scan of NZ and Singapore.<br /><br />
Need to optimise for search / retrieval as that's the primary use once the data is
acquired.<br /><br /><b>Data mining:</b><br /><br />
Look for old boxes, boxes with self-signed certs, certain switches, domains etc.<br /><br />
Singapore: 377k boxes that talk HTTP - more than the number of live systems. 14k cisco
boxes. 12k open RDP (one with background of Commonwealth Bank of Australia :))<br /><br /><b>IDS Avoidance:</b><br /><br />
He's not actually carrying out any intrusions. Only collecting banners, and complying
with what they say.<br /><br />
IDSs don't necessarily detect them - only 7 complaints to ISP in NZ, and one funny
one in Singapore.<br /><br />
People <i>are </i>watching - DNS PTR backscatter gives an idea of people watching
and resolving domain names for IP address.<br /><br />
Portscans aren't very interesting these days. People notice, but don't do anything.<br /><br /><b>But not good for:</b><br /><br />
If you notice mis-configured systems, it's hard to do anything about it.<br /><br />
Giving it as public / bad guy access would be difficult and cause problems. 
<br /><br /><b>What about Shodan?</b><br /><br />
Scan whole world for 4 ports (21, 22, 23, 80), but not as many hosts or depth of coverage
in NZ.<br /><br />
Sells commercial access to exported data.<br /><br /><b>What does it mean?</b><br /><br />
A search engine over this data makes it very powerful.<br /><br />
It's not that hard to do this sort of thing. It's probably already being done by military
or crime industries. Cheap compared to a drug submarine :)<br /><br /><br /><b>Questions:</b><br /><br />
What did the abuse mails say?<br /><br />
One from a Uni, two or three from an ISP and they noticed scanning of the SIP voice
customers. A few of ZoneAlarm type people noticing.<br /><br />
Scanning boxes: Where were they hosted? Bandwidth out?<br /><br />
Domestically peered, gigabit to APE. It's not really bandwidth constrained, it's constrained
by politeness. Turned off state tracking for outbound connections. Could probably
do the whole country in 2 hours if you cranked it up, but would cause problems for
people.<br /><p /><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=cefb12f7-1c1c-456d-a535-fdaea7c8e73d" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/jMk3kJsfu8s" height="1" width="1" /></body>
      <title>Metlstorm: Low Scuttling Chillicrab</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,cefb12f7-1c1c-456d-a535-fdaea7c8e73d.aspx</guid>
      <link>http://pageofwords.com/blog/2010/07/15/MetlstormLowScuttlingChillicrab.aspx</link>
      <pubDate>Thu, 15 Jul 2010 01:48:11 GMT</pubDate>
      <description>&lt;img src="http://pageofwords.com/blog/content/binary/metlstorm.jpg" align="right" border="0"&gt; Adam
is one of the organisers of &lt;a href="https://kiwicon.org/"&gt;Kiwicon&lt;/a&gt;, and has presented
on this topic in Singapore.&lt;br&gt;
&lt;br&gt;
Using tools to capture / probe network traffic.&lt;br&gt;
&lt;br&gt;
If you compare to app/data recon tools like Maltego, network recon tools aren't as
start of the art.&lt;br&gt;
&lt;br&gt;
But... if you own the networks under this new fangled cloud stuff, then you own the
whole environment.&lt;br&gt;
&lt;br&gt;
It's hard to map out, search and investigate &amp;gt;= Class A&lt;br&gt;
&lt;br&gt;
At the moment, only big countries can do that sort of investigation. Apparently countries
are gearing up for 'Cyber Wars'.&lt;br&gt;
&lt;br&gt;
But, individuals and corporates can get involved in the same activities of cyber-war
or cyber-terrorism.&lt;br&gt;
&lt;br&gt;
Scanning, pinging and trying exploits doesn't scale well - you have to do a lot of
work and get lots of false hits.&lt;br&gt;
&lt;br&gt;
You might get owned randomly - it's cheap to own more targets, and then figure out
what to do with it later.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Targeting:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
It's hard to target large numbers of IP addresses. The current tools can't scale to
those kinds of numbers (and the pay services will get really expensive).&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;a href="http://lowscuttlingchillicrab.com"&gt;lowscuttlingchillicrab.com&lt;/a&gt;&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
So he built a geo-targeted network recon data acquisition system with a web interface,
and scanned all of NZ and Singapore for conferences.&lt;br&gt;
&lt;br&gt;
An interface to search over data.&lt;br&gt;
&lt;br&gt;
"This is a highly secure router, stay away" - the open telnet port tells us so.&lt;br&gt;
&lt;br&gt;
Cool things it does:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Searches over certificates&lt;/li&gt;
&lt;li&gt;
Screen captures remote desktop screens&lt;/li&gt;
&lt;li&gt;
Good for targeting: finding particular applications / devices / protocols&lt;/li&gt;
&lt;li&gt;
Good at finding other assets owned by a company outside of their own netblock&lt;/li&gt;
&lt;li&gt;
Helps us understand how many vulnerable things are sitting out there&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;The internals of the tool:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Version 1 was just to see how plausible it was to scan large chunks of the internet.
Used lots of glued together tools like nmap etc.&lt;br&gt;
&lt;br&gt;
Version 2 is now a simple python script that has been optimised for acquiring the
data by scanning a whole country block over certain ports.&lt;br&gt;
&lt;br&gt;
A few billion rows of data - use MongoDB to store data. Erlang, RabbitMQ, Python,
Celery MQ, Python / Django frontend, GridFS distributed filestore.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Target selection:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
How do you define what a country is? Is it domain names ending in .nz? Netblocks announced
at peering exchanges? Address registry allocations? GeoIP?&lt;br&gt;
&lt;br&gt;
He chose GeoIP as it simplified things - but misses out on .nz stuff hosted overseas.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Acquiring data:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Custom-tuned protocols to limit rates, fire up application to capture details for
different protocols.&lt;br&gt;
&lt;br&gt;
About 1.4B rows per complete scan of NZ and Singapore.&lt;br&gt;
&lt;br&gt;
Need to optimise for search / retrieval as that's the primary use once the data is
acquired.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Data mining:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Look for old boxes, boxes with self-signed certs, certain switches, domains etc.&lt;br&gt;
&lt;br&gt;
Singapore: 377k boxes that talk HTTP - more than the number of live systems. 14k cisco
boxes. 12k open RDP (one with background of Commonwealth Bank of Australia :))&lt;br&gt;
&lt;br&gt;
&lt;b&gt;IDS Avoidance:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
He's not actually carrying out any intrusions. Only collecting banners, and complying
with what they say.&lt;br&gt;
&lt;br&gt;
IDSs don't necessarily detect them - only 7 complaints to ISP in NZ, and one funny
one in Singapore.&lt;br&gt;
&lt;br&gt;
People &lt;i&gt;are &lt;/i&gt;watching - DNS PTR backscatter gives an idea of people watching
and resolving domain names for IP address.&lt;br&gt;
&lt;br&gt;
Portscans aren't very interesting these days. People notice, but don't do anything.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;But not good for:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
If you notice mis-configured systems, it's hard to do anything about it.&lt;br&gt;
&lt;br&gt;
Giving it as public / bad guy access would be difficult and cause problems. 
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;What about Shodan?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Scan whole world for 4 ports (21, 22, 23, 80), but not as many hosts or depth of coverage
in NZ.&lt;br&gt;
&lt;br&gt;
Sells commercial access to exported data.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;What does it mean?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
A search engine over this data makes it very powerful.&lt;br&gt;
&lt;br&gt;
It's not that hard to do this sort of thing. It's probably already being done by military
or crime industries. Cheap compared to a drug submarine :)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Questions:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
What did the abuse mails say?&lt;br&gt;
&lt;br&gt;
One from a Uni, two or three from an ISP and they noticed scanning of the SIP voice
customers. A few of ZoneAlarm type people noticing.&lt;br&gt;
&lt;br&gt;
Scanning boxes: Where were they hosted? Bandwidth out?&lt;br&gt;
&lt;br&gt;
Domestically peered, gigabit to APE. It's not really bandwidth constrained, it's constrained
by politeness. Turned off state tracking for outbound connections. Could probably
do the whole country in 2 hours if you cranked it up, but would cause problems for
people.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=cefb12f7-1c1c-456d-a535-fdaea7c8e73d" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,cefb12f7-1c1c-456d-a535-fdaea7c8e73d.aspx</comments>
      <category>OWASP;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=0428b4c3-fb5a-4368-8643-2d069a95aab2</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,0428b4c3-fb5a-4368-8643-2d069a95aab2.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,0428b4c3-fb5a-4368-8643-2d069a95aab2.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0428b4c3-fb5a-4368-8643-2d069a95aab2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://pageofwords.com/blog/images/paul.jpg" alt="paul.jpg" align="right" border="0" height="370" width="200" />Paul
Craig works at security-assessment.com as a forensic investigator.<br /><br />
Forensic investigation: <i>Fact</i>-based investigation - must be reproducible and
not based on anything subjective.<br /><br />
If you're going to get hacked, it will start at your web app. Firewalls generally
stop all other traffic.<br /><br />
Treat all results as possible legal evidence - could be used for murder etc cases.
Evidence could be used to allow police to arrest a suspect.<br /><br />
Most computer crimes in NZ will be tried under property law with a judge and jury.<br /><br />
All evidence may need to be provided to defendant to cast doubt on the evidence. How
was it collected or analysed?<br /><br />
Common things customers say:<br /><br />
- Assumptions<br />
- They only compromised one server - assume it has happened more than once<br />
- We already dealt with it - probably destroyed all forensic evidence (could come
back to bite in the future)<br />
- It's too hard / not my problem<br /><br /><b>What to do when there's an incident:</b><br /><br />
How you act makes all the difference. Smooth engagements and do things as fast as
possible.<br /><br />
Need a single point of contact for all security incidents within an organisation.<br /><br />
Appoint an incident response team - includng someone with internal clout, legal support.<br /><br />
Find a forensics supplier in advance. Don't leave it till when there's an incident.<br /><br />
It's a specialised industry, and you shouldn't do it yourself.<br /><br /><b>Media:</b><br /><br />
Media love a hacking story. This makes things stressful.<br /><br />
You need a bottom draw letter pre-written that you can give to the media. Get it signed
by the CEO now.<br /><br /><b>Technical incident response:</b><br /><br />
Treat with urgency, gather incident team together in a secure location.<br /><br />
Get incident responder into the system as soon as possible to get current connections,
arp caches etc.<br /><br />
- Disable scheduled patches, updates, restarts<br />
- Unplug from internet / firewall it<br />
- Leave the server powered on<br />
- Put a big sign "Do not touch"<br /><br />
Within a day or less if possible.<br /><br /><b>Police reports:</b><br /><br />
If you have evidence that a crime has been committed, or something could be committed
(e.g. fraud), file an incident report with police. As much evidence as possible.<br /><br /><b>Will you catch them?</b><br /><br />
If NZ / AU - likely.<br /><br />
If UN / NATO, possible but involved IPTF task force.<br /><br />
Other country: very slim chance of catching them.<br /><br /><b>When don't you have to file a report:</b><br /><br />
No loss of finances, no increase in fraud risk, no chance of repurcussions / fines.<br /><br /><br /><b>How to do forensics:</b><br /><br />
Paul then talked about how security-assessment.com do forensics testing. Take-away:
it's hard, and in order to provide evidence in court you won't actually be able to
do it yourself.<br /><br /><b>Examples:</b><br /><br />
Paul gave examples of when they'd be engaged with customers. Problems encountered:<br /><br />
- They knew they had been hacked, but hadn't told each other<br />
- Meeting in insecure places<br />
- Taking too long to figure out what to do<br />
- Companies that don't know how to respond<br />
- Assuming evidence has been destroyed already<br /><br />
Without senior executive support, nothing will happen. Forensic and technical response
isn't a technical problem: it is an entire business problem.<br /><br /><b>Take-home:</b><br /><br />
Sooner or later, you'll get hacked. When it happens, take it seriously.<br /><br />
Prepare for that incident straight away. Figure out what you'd do?<br /><br />
Stay cool when it happens, follow the game plan.<br /><br />
Never assume anything!<br /><br /><b>Questions:</b><br /><br />
How do you deal with situations where the hacked website needs to be back up in 10
minutes? So you don't have time to do forensics?<br /><br />
- Bring up a DR server if you have a safe backup.<br />
- If it's compromised, you have to take it off immediately if someone is on that server
at that time<br /><br />
How do you deal with virtualisation? When you don't have physical access to a machine?<br /><br />
- Can get all active memory and disk onto a disk<br />
- Can take the entire VM snapshot and rebuild into a real computer again<br /><br />
What about if it's a cloud provider?<br /><br />
- Probably have no access to get an image. Comes down to whether we can get that access.<br /><br />
Does a live image impact the integrity of the evidence?<br /><br />
- Hash the evidence as soon as it is taken, so we can prove the image is unaltered.<br /><br />
If hacker uses anonymity services like tor / proxies?<br /><br />
- Often there's one request where they connect back directly.<br />
- Often there's still some fragments of evidence remaining.<br />
- Might be able to find out what they did, but not necessarily who did it.<br />
  - "Your credit cards have not been touched"<br /><br /><br /><br /><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=0428b4c3-fb5a-4368-8643-2d069a95aab2" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/tGMPDtB3IPw" height="1" width="1" /></body>
      <title>Paul Craig: What to do when you get pwned?</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,0428b4c3-fb5a-4368-8643-2d069a95aab2.aspx</guid>
      <link>http://pageofwords.com/blog/2010/07/15/PaulCraigWhatToDoWhenYouGetPwned.aspx</link>
      <pubDate>Thu, 15 Jul 2010 00:00:10 GMT</pubDate>
      <description>&lt;img src="http://pageofwords.com/blog/images/paul.jpg" alt="paul.jpg" align="right" border="0" height="370" width="200"&gt;Paul
Craig works at security-assessment.com as a forensic investigator.&lt;br&gt;
&lt;br&gt;
Forensic investigation: &lt;i&gt;Fact&lt;/i&gt;-based investigation - must be reproducible and
not based on anything subjective.&lt;br&gt;
&lt;br&gt;
If you're going to get hacked, it will start at your web app. Firewalls generally
stop all other traffic.&lt;br&gt;
&lt;br&gt;
Treat all results as possible legal evidence - could be used for murder etc cases.
Evidence could be used to allow police to arrest a suspect.&lt;br&gt;
&lt;br&gt;
Most computer crimes in NZ will be tried under property law with a judge and jury.&lt;br&gt;
&lt;br&gt;
All evidence may need to be provided to defendant to cast doubt on the evidence. How
was it collected or analysed?&lt;br&gt;
&lt;br&gt;
Common things customers say:&lt;br&gt;
&lt;br&gt;
- Assumptions&lt;br&gt;
- They only compromised one server - assume it has happened more than once&lt;br&gt;
- We already dealt with it - probably destroyed all forensic evidence (could come
back to bite in the future)&lt;br&gt;
- It's too hard / not my problem&lt;br&gt;
&lt;br&gt;
&lt;b&gt;What to do when there's an incident:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
How you act makes all the difference. Smooth engagements and do things as fast as
possible.&lt;br&gt;
&lt;br&gt;
Need a single point of contact for all security incidents within an organisation.&lt;br&gt;
&lt;br&gt;
Appoint an incident response team - includng someone with internal clout, legal support.&lt;br&gt;
&lt;br&gt;
Find a forensics supplier in advance. Don't leave it till when there's an incident.&lt;br&gt;
&lt;br&gt;
It's a specialised industry, and you shouldn't do it yourself.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Media:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Media love a hacking story. This makes things stressful.&lt;br&gt;
&lt;br&gt;
You need a bottom draw letter pre-written that you can give to the media. Get it signed
by the CEO now.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Technical incident response:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Treat with urgency, gather incident team together in a secure location.&lt;br&gt;
&lt;br&gt;
Get incident responder into the system as soon as possible to get current connections,
arp caches etc.&lt;br&gt;
&lt;br&gt;
- Disable scheduled patches, updates, restarts&lt;br&gt;
- Unplug from internet / firewall it&lt;br&gt;
- Leave the server powered on&lt;br&gt;
- Put a big sign "Do not touch"&lt;br&gt;
&lt;br&gt;
Within a day or less if possible.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Police reports:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
If you have evidence that a crime has been committed, or something could be committed
(e.g. fraud), file an incident report with police. As much evidence as possible.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Will you catch them?&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
If NZ / AU - likely.&lt;br&gt;
&lt;br&gt;
If UN / NATO, possible but involved IPTF task force.&lt;br&gt;
&lt;br&gt;
Other country: very slim chance of catching them.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;When don't you have to file a report:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
No loss of finances, no increase in fraud risk, no chance of repurcussions / fines.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;How to do forensics:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Paul then talked about how security-assessment.com do forensics testing. Take-away:
it's hard, and in order to provide evidence in court you won't actually be able to
do it yourself.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Examples:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Paul gave examples of when they'd be engaged with customers. Problems encountered:&lt;br&gt;
&lt;br&gt;
- They knew they had been hacked, but hadn't told each other&lt;br&gt;
- Meeting in insecure places&lt;br&gt;
- Taking too long to figure out what to do&lt;br&gt;
- Companies that don't know how to respond&lt;br&gt;
- Assuming evidence has been destroyed already&lt;br&gt;
&lt;br&gt;
Without senior executive support, nothing will happen. Forensic and technical response
isn't a technical problem: it is an entire business problem.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Take-home:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Sooner or later, you'll get hacked. When it happens, take it seriously.&lt;br&gt;
&lt;br&gt;
Prepare for that incident straight away. Figure out what you'd do?&lt;br&gt;
&lt;br&gt;
Stay cool when it happens, follow the game plan.&lt;br&gt;
&lt;br&gt;
Never assume anything!&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Questions:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
How do you deal with situations where the hacked website needs to be back up in 10
minutes? So you don't have time to do forensics?&lt;br&gt;
&lt;br&gt;
- Bring up a DR server if you have a safe backup.&lt;br&gt;
- If it's compromised, you have to take it off immediately if someone is on that server
at that time&lt;br&gt;
&lt;br&gt;
How do you deal with virtualisation? When you don't have physical access to a machine?&lt;br&gt;
&lt;br&gt;
- Can get all active memory and disk onto a disk&lt;br&gt;
- Can take the entire VM snapshot and rebuild into a real computer again&lt;br&gt;
&lt;br&gt;
What about if it's a cloud provider?&lt;br&gt;
&lt;br&gt;
- Probably have no access to get an image. Comes down to whether we can get that access.&lt;br&gt;
&lt;br&gt;
Does a live image impact the integrity of the evidence?&lt;br&gt;
&lt;br&gt;
- Hash the evidence as soon as it is taken, so we can prove the image is unaltered.&lt;br&gt;
&lt;br&gt;
If hacker uses anonymity services like tor / proxies?&lt;br&gt;
&lt;br&gt;
- Often there's one request where they connect back directly.&lt;br&gt;
- Often there's still some fragments of evidence remaining.&lt;br&gt;
- Might be able to find out what they did, but not necessarily who did it.&lt;br&gt;
&amp;nbsp; - "Your credit cards have not been touched"&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=0428b4c3-fb5a-4368-8643-2d069a95aab2" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,0428b4c3-fb5a-4368-8643-2d069a95aab2.aspx</comments>
      <category>OWASP;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=04c4734b-4fb2-423e-b951-47d645fd352f</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,04c4734b-4fb2-423e-b951-47d645fd352f.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,04c4734b-4fb2-423e-b951-47d645fd352f.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=04c4734b-4fb2-423e-b951-47d645fd352f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://pageofwords.com/blog/images/roberto.jpg" alt="roberto.jpg" align="right" border="0" height="292" width="200" />Roberto's
talk covered application-level vulnerabilities, and gave some ideas on how to plan
for them, how to react when they happen, and how to recover from them.<br /><br />
Most denial of service attacks have traditionally covered the layer 3 or 4 (i.e. the
transport or network stack), but Roberto has seen attacks against applications and
web service layers.<br /><br />
Can lead to increased use of resources like CPU, network<br /><br />
Root causes:<br /><br />
- bug<br />
- application logic open to abuse<br />
- session level attacks<br /><br />
Examples:<br /><br />
PHP: Can create an unbounded size object in code<br /><br />
Failure to release resource: DB exception doesn't close connection. Attacker can cause
app to open up lots of DB connections and deny service.<br /><br />
Sesion related: storing lots of session objects that consume resources, so attacker
can target this to exhaust server resources.<br /><br />
User input as a loop counter: If the user can control how many times an expensive
operation is performed, it can cause the app to do lots of demanding work.<br /><br />
=&gt; Put in some limits, don't allow the user to set in their code.<br /><br />
Regular expressions: Certain input may cause lots of passes through a regular expression,
causing lots of CPU to be used.<br /><br />
Other web problems can amplify DOS effects (XSS, XSRF, SQL injection, large file input)<br /><br />
Recommendations:<br /><br />
- Input strict validation and filtering<br />
- Handle exceptions and properly release resources<br />
- Set limits for:<br />
  - Session related objects<br />
  - Token expiration<br />
  - Object allocation<br />
  - Loop counters<br />
  - User registration - captcha<br />
  - Concurrent session tokens per IP address<br /><br />
- Testing your web app<br />
  - Test Regex, database queries<br />
  - DoS and stress testing<br />
  - Security testing<br /><br /><b>XML attacks:</b><br /><br />
There are lots of attacks against XML or web services.<br /><br />
Recommendations: don't use customised XML parser, input validation, use an XML firewall,
limit the sizes of input messages, disable external DTDs.<br /><br /><b>Webserver attacks:</b><br /><br />
Attacks to use up all the threads on a webserver, or slow down the processing so the
server can't process other requests.<br /><br />
Recommendations: Apache and IS have modules or configuration settings. Make sure you
test the changes.<br /><br /><b>Database attacks:</b><br /><br />
Make the DB do more work than they should. E.g. cause a slow scan over a whole table,
or avoid caching layers.<br /><br />
Recommendations: Input validation, captcha or user limits, only let authenticated
users perform slow queries, use caching layers.<br /><br /><b>If you are under attack:</b><br /><br />
Be prepared, have a plan, simulate it often.<br /><br /><b>When under attack:</b><br /><br />
Is it real? What is the target? Is the target critical?<br /><br /><b>Reacting:</b><br /><br />
Several methods: slow down the attack, deflect it, drop connections, escalate to authorities
or other nefarious ways to stop botnets.<br /><br /><b>Recovering:</b><br /><br />
Meet up to debrief as soon as possible afterwards. What lessons were learnt? Update
incident plan.<br /><br />
What was the root cause? What if it happens again? Provide all data to law enforcement.<br /><br /><b>Conclusion:</b><br /><br />
No generic solution to DOS.<br /><br />
If offered a DOS solution product, look carefully before committing.<br /><br />
Start networking with people that can help you.<br /><br /><p /><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=04c4734b-4fb2-423e-b951-47d645fd352f" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/7mIUW1_5fgk" height="1" width="1" /></body>
      <title>Roberto Suggi Liverani - Defending Against Application Level DoS Attacks</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,04c4734b-4fb2-423e-b951-47d645fd352f.aspx</guid>
      <link>http://pageofwords.com/blog/2010/07/14/RobertoSuggiLiveraniDefendingAgainstApplicationLevelDoSAttacks.aspx</link>
      <pubDate>Wed, 14 Jul 2010 23:37:58 GMT</pubDate>
      <description>&lt;img src="http://pageofwords.com/blog/images/roberto.jpg" alt="roberto.jpg" align="right" border="0" height="292" width="200"&gt;Roberto's
talk covered application-level vulnerabilities, and gave some ideas on how to plan
for them, how to react when they happen, and how to recover from them.&lt;br&gt;
&lt;br&gt;
Most denial of service attacks have traditionally covered the layer 3 or 4 (i.e. the
transport or network stack), but Roberto has seen attacks against applications and
web service layers.&lt;br&gt;
&lt;br&gt;
Can lead to increased use of resources like CPU, network&lt;br&gt;
&lt;br&gt;
Root causes:&lt;br&gt;
&lt;br&gt;
- bug&lt;br&gt;
- application logic open to abuse&lt;br&gt;
- session level attacks&lt;br&gt;
&lt;br&gt;
Examples:&lt;br&gt;
&lt;br&gt;
PHP: Can create an unbounded size object in code&lt;br&gt;
&lt;br&gt;
Failure to release resource: DB exception doesn't close connection. Attacker can cause
app to open up lots of DB connections and deny service.&lt;br&gt;
&lt;br&gt;
Sesion related: storing lots of session objects that consume resources, so attacker
can target this to exhaust server resources.&lt;br&gt;
&lt;br&gt;
User input as a loop counter: If the user can control how many times an expensive
operation is performed, it can cause the app to do lots of demanding work.&lt;br&gt;
&lt;br&gt;
=&amp;gt; Put in some limits, don't allow the user to set in their code.&lt;br&gt;
&lt;br&gt;
Regular expressions: Certain input may cause lots of passes through a regular expression,
causing lots of CPU to be used.&lt;br&gt;
&lt;br&gt;
Other web problems can amplify DOS effects (XSS, XSRF, SQL injection, large file input)&lt;br&gt;
&lt;br&gt;
Recommendations:&lt;br&gt;
&lt;br&gt;
- Input strict validation and filtering&lt;br&gt;
- Handle exceptions and properly release resources&lt;br&gt;
- Set limits for:&lt;br&gt;
&amp;nbsp; - Session related objects&lt;br&gt;
&amp;nbsp; - Token expiration&lt;br&gt;
&amp;nbsp; - Object allocation&lt;br&gt;
&amp;nbsp; - Loop counters&lt;br&gt;
&amp;nbsp; - User registration - captcha&lt;br&gt;
&amp;nbsp; - Concurrent session tokens per IP address&lt;br&gt;
&lt;br&gt;
- Testing your web app&lt;br&gt;
&amp;nbsp; - Test Regex, database queries&lt;br&gt;
&amp;nbsp; - DoS and stress testing&lt;br&gt;
&amp;nbsp; - Security testing&lt;br&gt;
&lt;br&gt;
&lt;b&gt;XML attacks:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
There are lots of attacks against XML or web services.&lt;br&gt;
&lt;br&gt;
Recommendations: don't use customised XML parser, input validation, use an XML firewall,
limit the sizes of input messages, disable external DTDs.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Webserver attacks:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Attacks to use up all the threads on a webserver, or slow down the processing so the
server can't process other requests.&lt;br&gt;
&lt;br&gt;
Recommendations: Apache and IS have modules or configuration settings. Make sure you
test the changes.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Database attacks:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Make the DB do more work than they should. E.g. cause a slow scan over a whole table,
or avoid caching layers.&lt;br&gt;
&lt;br&gt;
Recommendations: Input validation, captcha or user limits, only let authenticated
users perform slow queries, use caching layers.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;If you are under attack:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Be prepared, have a plan, simulate it often.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;When under attack:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Is it real? What is the target? Is the target critical?&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Reacting:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Several methods: slow down the attack, deflect it, drop connections, escalate to authorities
or other nefarious ways to stop botnets.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Recovering:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Meet up to debrief as soon as possible afterwards. What lessons were learnt? Update
incident plan.&lt;br&gt;
&lt;br&gt;
What was the root cause? What if it happens again? Provide all data to law enforcement.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Conclusion:&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
No generic solution to DOS.&lt;br&gt;
&lt;br&gt;
If offered a DOS solution product, look carefully before committing.&lt;br&gt;
&lt;br&gt;
Start networking with people that can help you.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=04c4734b-4fb2-423e-b951-47d645fd352f" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,04c4734b-4fb2-423e-b951-47d645fd352f.aspx</comments>
      <category>OWASP;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=5e6df742-ff74-4a98-acc1-87e71eb694e2</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,5e6df742-ff74-4a98-acc1-87e71eb694e2.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,5e6df742-ff74-4a98-acc1-87e71eb694e2.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=5e6df742-ff74-4a98-acc1-87e71eb694e2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img src="http://pageofwords.com/blog/images/brett.jpg" alt="brett.jpg" align="right" border="0" height="415" width="300" />Brett
presented a talk on some of the "Not so common code vulnerabilities".<br /><br />
The theme of his talk was that we shouldn't trust user input.<br /><br />
My notes:<br /><br />
A security vulnerability in an app - a weakness that allows a user to perform an action
that was unintended.<br /><br />
AppTrends graph (<a href="http://www.cenzic.com/">cenzic.com</a>) - input validation
is the cause of everything (XSS, SQL injection, etc)<br /><br /><br />
Frameworks won't protect you (e.g. .NET, PHP, Java frameworks). 
<br /><br />
Frameworks can promote bad practices, or have bugs in them themselves.<br /><br />
- Spring Framework http://blog.o0o.nu/ - override class loaded<br />
- Struts2 - execute arbitrary java code<br /><br />
Examples of problems:<br /><br />
Trusting filenames / urls from the user<br /><br />
Using 302 Redirects as a security measure - returning secure 
<br /><br />
content below the redirect by mistake<br /><br />
Captchas: Tell whether it's a human or computer. Bad implementations where people
have rolled their own and make it easy for computer to answer<br /><br />
Online shopping: Response from DPS comes in a browser redirect, so you can intercept
it, and add extra stuff to the shopping cart after paying, but before the website
thinks the order is finished.<br /><br />
Flash: Parameters for a flash movie can be entered in the url as well. Movie hosted
on our site can end up displaying images or other content from our attack website.<br /><br />
Forgotten password: Stored proc truncates email address to 100 characters when looking
up the user, but application uses the whole string. This can lead to an attacker receiving
the forgotten password email.<br /><br />
Java object serialisation: Object is serialised into a cookie using Base64 encoding.
Ooops: It contains something sensitive like a password.<br /><br />
PHP app in a security appliance used by a .mil: Shell out to a system command using
a url parameter passed via an unauthenticated user.<br /><br />
Cookies: storing security data in a cookie - example of LoginAttempts - an attacker
can modify the cookie to their hearts content.<br /><br />
Cookie: remember me functionality - store random token in the database and send it
to the user as a cookie, so they can log in automatically. Vulnerability: flawed if
null was stored in both the db and the cookie.<br /><br /><br />
Lesson:<br /><br />
Never trust the users input<br /><br />
Input validation is the key. 
<br /><br /><br />
You can use hidden form fields or cookies, as long as the backend input validation
is secure. You can't trust that the frontend is doing things correctly.<br /><br />
Backend should:<br />
- Validate the data<br />
- Ensure the user is authorised to access the data<br /><br />
Data comes in many forms (upper / lower case, encoded etc)<br /><br />
- Decode the data, or reject it if a normal user wouldn't send it<br /><br />
Ensure data conforms to the correct format<br />
- Check length, type, min / max values<br />
- Alphanumeric / valid date only<br /><br />
Reject invalid data, rather than attempting to fix it up.<br /><br />
Beware writing your own data sanitisation functions - needs to be well tested and
document. Use OWASP or language features if possible.<br /><br />
- Easy to write bad sanitisation. Examples of bad url testing, 
<br /><br />
XSS works without script<br /><br /><br />
Takeaways:<br /><br />
- Review your code. Have "Code Review Parties"<br />
- Have peer reviews<br />
- Have standards, and stick to them<br /><br />
Questions to Brett:<br /><br />
Should we still trust CAPTCHA?<br /><br />
Still effective at the moment, but can be broken.<br /><p /><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=5e6df742-ff74-4a98-acc1-87e71eb694e2" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/jdyb45_JNoY" height="1" width="1" /></body>
      <title>Brett Moore: Don't try this at home</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,5e6df742-ff74-4a98-acc1-87e71eb694e2.aspx</guid>
      <link>http://pageofwords.com/blog/2010/07/14/BrettMooreDontTryThisAtHome.aspx</link>
      <pubDate>Wed, 14 Jul 2010 21:59:45 GMT</pubDate>
      <description>&lt;img src="http://pageofwords.com/blog/images/brett.jpg" alt="brett.jpg" align="right" border="0" height="415" width="300"&gt;Brett
presented a talk on some of the "Not so common code vulnerabilities".&lt;br&gt;
&lt;br&gt;
The theme of his talk was that we shouldn't trust user input.&lt;br&gt;
&lt;br&gt;
My notes:&lt;br&gt;
&lt;br&gt;
A security vulnerability in an app - a weakness that allows a user to perform an action
that was unintended.&lt;br&gt;
&lt;br&gt;
AppTrends graph (&lt;a href="http://www.cenzic.com/"&gt;cenzic.com&lt;/a&gt;) - input validation
is the cause of everything (XSS, SQL injection, etc)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Frameworks won't protect you (e.g. .NET, PHP, Java frameworks). 
&lt;br&gt;
&lt;br&gt;
Frameworks can promote bad practices, or have bugs in them themselves.&lt;br&gt;
&lt;br&gt;
- Spring Framework http://blog.o0o.nu/ - override class loaded&lt;br&gt;
- Struts2 - execute arbitrary java code&lt;br&gt;
&lt;br&gt;
Examples of problems:&lt;br&gt;
&lt;br&gt;
Trusting filenames / urls from the user&lt;br&gt;
&lt;br&gt;
Using 302 Redirects as a security measure - returning secure 
&lt;br&gt;
&lt;br&gt;
content below the redirect by mistake&lt;br&gt;
&lt;br&gt;
Captchas: Tell whether it's a human or computer. Bad implementations where people
have rolled their own and make it easy for computer to answer&lt;br&gt;
&lt;br&gt;
Online shopping: Response from DPS comes in a browser redirect, so you can intercept
it, and add extra stuff to the shopping cart after paying, but before the website
thinks the order is finished.&lt;br&gt;
&lt;br&gt;
Flash: Parameters for a flash movie can be entered in the url as well. Movie hosted
on our site can end up displaying images or other content from our attack website.&lt;br&gt;
&lt;br&gt;
Forgotten password: Stored proc truncates email address to 100 characters when looking
up the user, but application uses the whole string. This can lead to an attacker receiving
the forgotten password email.&lt;br&gt;
&lt;br&gt;
Java object serialisation: Object is serialised into a cookie using Base64 encoding.
Ooops: It contains something sensitive like a password.&lt;br&gt;
&lt;br&gt;
PHP app in a security appliance used by a .mil: Shell out to a system command using
a url parameter passed via an unauthenticated user.&lt;br&gt;
&lt;br&gt;
Cookies: storing security data in a cookie - example of LoginAttempts - an attacker
can modify the cookie to their hearts content.&lt;br&gt;
&lt;br&gt;
Cookie: remember me functionality - store random token in the database and send it
to the user as a cookie, so they can log in automatically. Vulnerability: flawed if
null was stored in both the db and the cookie.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Lesson:&lt;br&gt;
&lt;br&gt;
Never trust the users input&lt;br&gt;
&lt;br&gt;
Input validation is the key. 
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
You can use hidden form fields or cookies, as long as the backend input validation
is secure. You can't trust that the frontend is doing things correctly.&lt;br&gt;
&lt;br&gt;
Backend should:&lt;br&gt;
- Validate the data&lt;br&gt;
- Ensure the user is authorised to access the data&lt;br&gt;
&lt;br&gt;
Data comes in many forms (upper / lower case, encoded etc)&lt;br&gt;
&lt;br&gt;
- Decode the data, or reject it if a normal user wouldn't send it&lt;br&gt;
&lt;br&gt;
Ensure data conforms to the correct format&lt;br&gt;
- Check length, type, min / max values&lt;br&gt;
- Alphanumeric / valid date only&lt;br&gt;
&lt;br&gt;
Reject invalid data, rather than attempting to fix it up.&lt;br&gt;
&lt;br&gt;
Beware writing your own data sanitisation functions - needs to be well tested and
document. Use OWASP or language features if possible.&lt;br&gt;
&lt;br&gt;
- Easy to write bad sanitisation. Examples of bad url testing, 
&lt;br&gt;
&lt;br&gt;
XSS works without script&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Takeaways:&lt;br&gt;
&lt;br&gt;
- Review your code. Have "Code Review Parties"&lt;br&gt;
- Have peer reviews&lt;br&gt;
- Have standards, and stick to them&lt;br&gt;
&lt;br&gt;
Questions to Brett:&lt;br&gt;
&lt;br&gt;
Should we still trust CAPTCHA?&lt;br&gt;
&lt;br&gt;
Still effective at the moment, but can be broken.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=5e6df742-ff74-4a98-acc1-87e71eb694e2" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,5e6df742-ff74-4a98-acc1-87e71eb694e2.aspx</comments>
      <category>OWASP;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=ec0e1324-3840-43c9-854f-d0d49822d4e9</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,ec0e1324-3840-43c9-854f-d0d49822d4e9.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,ec0e1324-3840-43c9-854f-d0d49822d4e9.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=ec0e1324-3840-43c9-854f-d0d49822d4e9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">I had fun attending <a href="http://www.owasp.org/index.php/OWASP_New_Zealand_Day_2010">OWASP
NZ Day 2010</a>.<br /><br />
There were 6 great sessions - plus Graeme and I presented a talk on encryption, and
how to develop applications using encryption:<br /><br /><a class="TitleLinkStyle" rel="bookmark" href="2010/07/14/BrettMooreDontTryThisAtHome.aspx">Brett
Moore: Don't try this at home</a><br /><a class="TitleLinkStyle" rel="bookmark" href="2010/07/14/RobertoSuggiLiveraniDefendingAgainstApplicationLevelDoSAttacks.aspx">Roberto
Suggi Liverani - Defending Against Application Level DoS Attacks</a><br /><a class="TitleLinkStyle" rel="bookmark" href="2010/07/15/PaulCraigWhatToDoWhenYouGetPwned.aspx">Paul
Craig: What to do when you get pwned?</a><br /><a class="TitleLinkStyle" rel="bookmark" href="2010/07/15/MetlstormLowScuttlingChillicrab.aspx">Metlstorm:
Low Scuttling Chillicrab</a><br /><a class="TitleLinkStyle" rel="bookmark" href="2010/07/15/GraemeNeilsonKirkJacksonTalesFromTheCrypt0.aspx">Graeme
Neilson / Kirk Jackson: Tales from the Crypt0</a><br /><a class="TitleLinkStyle" rel="bookmark" href="2010/07/15/QuintinRussMikeJagerHostingAndSecurity.aspx">Quintin
Russ / Mike Jager - Hosting and Security</a><br /><a class="TitleLinkStyle" rel="bookmark" href="2010/07/15/DeanCarterRamblingsOfAnExQSA.aspx">Dean
Carter: Ramblings of an ex-QSA</a><br /><br />
I came away with that feeling of satisfaction where you know you've learnt lots, but
haven't had time to digest and process it all yet. Some of my immediate takeaways
are:<br /><br /><ul><li>
Input validation is still a big area of problems in most apps<br /></li><li>
Application bugs and inefficiencies can be vectors for denial of service attacks</li><li>
If you get pwned, hacked or DOS'd, you need to have a plan of what you're going to
do to recover, and if there's a chance that you need law enforcement involved, you
need to get a forensic analyst involved very early on (preferably in advance)</li><li>
There are lots of computers on the internet in NZ, and lots of them have obvious vulnerabilities.
No-one is doing anything about this (at least, no-one <i>good</i> is doing anything
about this!)</li><li>
Bad development practices lead to problems in the hosting environment. App and deployment
security problems live on</li><li>
Credit cards are the devil, and should be treated as such :)</li></ul>
Thanks Roberto and Lech for organising, I'm looking forward to next year!<br /><br />
Kirk<br /><br /><p /><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=ec0e1324-3840-43c9-854f-d0d49822d4e9" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/pilo-x4IAUc" height="1" width="1" /></body>
      <title>OWASP NZ Day 2010</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,ec0e1324-3840-43c9-854f-d0d49822d4e9.aspx</guid>
      <link>http://pageofwords.com/blog/2010/07/14/OWASPNZDay2010.aspx</link>
      <pubDate>Wed, 14 Jul 2010 21:54:01 GMT</pubDate>
      <description>I had fun attending &lt;a href="http://www.owasp.org/index.php/OWASP_New_Zealand_Day_2010"&gt;OWASP
NZ Day 2010&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
There were 6 great sessions - plus Graeme and I presented a talk on encryption, and
how to develop applications using encryption:&lt;br&gt;
&lt;br&gt;
&lt;a class="TitleLinkStyle" rel="bookmark" href="2010/07/14/BrettMooreDontTryThisAtHome.aspx"&gt;Brett
Moore: Don't try this at home&lt;/a&gt;
&lt;br&gt;
&lt;a class="TitleLinkStyle" rel="bookmark" href="2010/07/14/RobertoSuggiLiveraniDefendingAgainstApplicationLevelDoSAttacks.aspx"&gt;Roberto
Suggi Liverani - Defending Against Application Level DoS Attacks&lt;/a&gt;
&lt;br&gt;
&lt;a class="TitleLinkStyle" rel="bookmark" href="2010/07/15/PaulCraigWhatToDoWhenYouGetPwned.aspx"&gt;Paul
Craig: What to do when you get pwned?&lt;/a&gt;
&lt;br&gt;
&lt;a class="TitleLinkStyle" rel="bookmark" href="2010/07/15/MetlstormLowScuttlingChillicrab.aspx"&gt;Metlstorm:
Low Scuttling Chillicrab&lt;/a&gt;
&lt;br&gt;
&lt;a class="TitleLinkStyle" rel="bookmark" href="2010/07/15/GraemeNeilsonKirkJacksonTalesFromTheCrypt0.aspx"&gt;Graeme
Neilson / Kirk Jackson: Tales from the Crypt0&lt;/a&gt;
&lt;br&gt;
&lt;a class="TitleLinkStyle" rel="bookmark" href="2010/07/15/QuintinRussMikeJagerHostingAndSecurity.aspx"&gt;Quintin
Russ / Mike Jager - Hosting and Security&lt;/a&gt;
&lt;br&gt;
&lt;a class="TitleLinkStyle" rel="bookmark" href="2010/07/15/DeanCarterRamblingsOfAnExQSA.aspx"&gt;Dean
Carter: Ramblings of an ex-QSA&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
I came away with that feeling of satisfaction where you know you've learnt lots, but
haven't had time to digest and process it all yet. Some of my immediate takeaways
are:&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Input validation is still a big area of problems in most apps&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Application bugs and inefficiencies can be vectors for denial of service attacks&lt;/li&gt;
&lt;li&gt;
If you get pwned, hacked or DOS'd, you need to have a plan of what you're going to
do to recover, and if there's a chance that you need law enforcement involved, you
need to get a forensic analyst involved very early on (preferably in advance)&lt;/li&gt;
&lt;li&gt;
There are lots of computers on the internet in NZ, and lots of them have obvious vulnerabilities.
No-one is doing anything about this (at least, no-one &lt;i&gt;good&lt;/i&gt; is doing anything
about this!)&lt;/li&gt;
&lt;li&gt;
Bad development practices lead to problems in the hosting environment. App and deployment
security problems live on&lt;/li&gt;
&lt;li&gt;
Credit cards are the devil, and should be treated as such :)&lt;/li&gt;
&lt;/ul&gt;
Thanks Roberto and Lech for organising, I'm looking forward to next year!&lt;br&gt;
&lt;br&gt;
Kirk&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=ec0e1324-3840-43c9-854f-d0d49822d4e9" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,ec0e1324-3840-43c9-854f-d0d49822d4e9.aspx</comments>
      <category>Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=b5e7398b-bf8f-4de8-ab39-12eb7f826235</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,b5e7398b-bf8f-4de8-ab39-12eb7f826235.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,b5e7398b-bf8f-4de8-ab39-12eb7f826235.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=b5e7398b-bf8f-4de8-ab39-12eb7f826235</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I'm helping organise the first <a href="http://www.ignitewellington.co.nz/">Ignite
Wellington</a> on Tuesday 2 March.
</p>
        <p>
We've got a bunch of great speakers lined up, and space for some more. <a href="http://www.ignitewellington.co.nz/">Sign
up now!</a></p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=b5e7398b-bf8f-4de8-ab39-12eb7f826235" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/ha3YEIMJbIM" height="1" width="1" /></body>
      <title>Ignite Wellington &amp;ndash; the countdown begins</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,b5e7398b-bf8f-4de8-ab39-12eb7f826235.aspx</guid>
      <link>http://pageofwords.com/blog/2010/02/04/IgniteWellingtonNdashTheCountdownBegins.aspx</link>
      <pubDate>Thu, 04 Feb 2010 09:48:19 GMT</pubDate>
      <description>&lt;p&gt;
I'm helping organise the first &lt;a href="http://www.ignitewellington.co.nz/"&gt;Ignite
Wellington&lt;/a&gt; on Tuesday 2 March.
&lt;/p&gt;
&lt;p&gt;
We've got a bunch of great speakers lined up, and space for some more. &lt;a href="http://www.ignitewellington.co.nz/"&gt;Sign
up now!&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=b5e7398b-bf8f-4de8-ab39-12eb7f826235" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,b5e7398b-bf8f-4de8-ab39-12eb7f826235.aspx</comments>
      <category>Ignite</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=066d4399-c377-40d1-b04d-981490574888</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,066d4399-c377-40d1-b04d-981490574888.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,066d4399-c377-40d1-b04d-981490574888.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=066d4399-c377-40d1-b04d-981490574888</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>Edit: Sorry, this event has been cancelled due to personal reasons. Sorry
for getting your hopes up!</strong>
        </p>
        <p>
Michael Howard, author of Writing Secure Code is in Wellington to present a free workshop
on Wednesday 27 January:
</p>
        <blockquote>
          <p>
            <strong>"Everything Developers Need to Know About Security... and more!"</strong>
          </p>
        </blockquote>
        <blockquote>
          <p>
Over the last few years, Michael has heard every plausible and implausible excuse
for not paying attention to security. Come to this lighthearted, but deadly serious
talk and learn some of the tricks of the trade to help you learn more about security,
some of the critical skills you should know, and how to get others to pay attention
to security too. 
</p>
          <p>
Following pizza, in the second part of this presentation Michael will cover some of
the tools and processes that you can use to help make developing .NET or ASP.NET applications
more secure, such as FxCop, Threat Modelling, the Web protection library and the VSTS
SDL template.
</p>
        </blockquote>
        <p>
Michael has been a big part of the Security Development Lifecycle at Microsoft, and
the lifecycle and principles are used by many companies around the world - not just
those in the Microsoft development space.
</p>
        <p>
The workshop should be fun - Michael presented a similar talk at TechEd 2009, which
was very well received.
</p>
        <p>
          <strong>What:</strong> Everything Developers Need to Know About Security. and more! 
<br /><strong>Who:</strong> Michael Howard, Microsoft 
<br /><strong>When:</strong> Wed 27 Jan, 5-8pm 
<br /><strong>Where:</strong> TBA (Wellington CBD) 
<br /><strong>How:</strong> RSVP to <a href="mailto:kirkj@paradise.net.nz">kirkj@paradise.net.nz</a> ASAP
- places are limited! 
<br /><strong>Cost:</strong> Free! Pizza and drinks will be provided mid-way through 
</p>
        <p>
More information about Michael:
</p>
        <p>
Michael Howard, Principal Security Program Manager, Microsoft's Security Engineering
Team, Microsoft
</p>
        <p>
Michael Howard is a principal security program manager on the Trustworthy Computing
(TwC) Group's Security Engineering team at Microsoft, where he is responsible for
managing secure design, programming, and testing techniques across the company.
</p>
        <p>
Howard is an architect of the Security Development Lifecycle (SDL), a process for
improving the security of Microsoft's software. 
</p>
        <p>
Howard began his career with Microsoft in 1992 at the company's New Zealand office,
working for the first two years with Windows and compilers on the Product Support
Services team, and then with Microsoft Consulting Services, where he provided security
infrastructure support to customers and assisted in the design of custom solutions
and development of software. 
</p>
        <p>
In 1997, Howard moved to the United States to work for the Windows division on Internet
Information Services, Microsoft's next-generation web server, before moving to his
current role in 2000. 
</p>
        <p>
Howard is an editor of IEEE Security &amp; Privacy, a frequent speaker at security-related
conferences and he regularly publishes articles on secure coding and design. Howard
is the co-author of seven security books, including the award-winning Writing Secure
Code, The Security Development Lifecycle, Writing Secure Code for Windows Vista and
his most recent release, 24 Deadly Sins of Software Security.
</p>
        <p>
          <strong>Edit: Sorry, this event has been cancelled due to personal reasons. Sorry
for getting your hopes up!</strong>
        </p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=066d4399-c377-40d1-b04d-981490574888" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/ELu99Xr3_x0" height="1" width="1" /></body>
      <title>Michael Howard Workshop - 27 Jan</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,066d4399-c377-40d1-b04d-981490574888.aspx</guid>
      <link>http://pageofwords.com/blog/2010/01/19/MichaelHowardWorkshop27Jan.aspx</link>
      <pubDate>Tue, 19 Jan 2010 22:10:07 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;Edit: Sorry, this event has been cancelled due to personal reasons. Sorry
for getting your hopes up!&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Michael Howard, author of Writing Secure Code is in Wellington to present a free workshop
on Wednesday 27 January:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;"Everything Developers Need to Know About Security... and more!"&lt;/strong&gt;
&lt;/p&gt;
&lt;/blockquote&gt; &lt;blockquote&gt; 
&lt;p&gt;
Over the last few years, Michael has heard every plausible and implausible excuse
for not paying attention to security. Come to this lighthearted, but deadly serious
talk and learn some of the tricks of the trade to help you learn more about security,
some of the critical skills you should know, and how to get others to pay attention
to security too. 
&lt;/p&gt;
&lt;p&gt;
Following pizza, in the second part of this presentation Michael will cover some of
the tools and processes that you can use to help make developing .NET or ASP.NET applications
more secure, such as FxCop, Threat Modelling, the Web protection library and the VSTS
SDL template.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Michael has been a big part of the Security Development Lifecycle at Microsoft, and
the lifecycle and principles are used by many companies around the world - not just
those in the Microsoft development space.
&lt;/p&gt;
&lt;p&gt;
The workshop should be fun - Michael presented a similar talk at TechEd 2009, which
was very well received.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;What:&lt;/strong&gt; Everything Developers Need to Know About Security. and more! 
&lt;br /&gt;
&lt;strong&gt;Who:&lt;/strong&gt; Michael Howard, Microsoft 
&lt;br /&gt;
&lt;strong&gt;When:&lt;/strong&gt; Wed 27 Jan, 5-8pm 
&lt;br /&gt;
&lt;strong&gt;Where:&lt;/strong&gt; TBA (Wellington CBD) 
&lt;br /&gt;
&lt;strong&gt;How:&lt;/strong&gt; RSVP to &lt;a href="mailto:kirkj@paradise.net.nz"&gt;kirkj@paradise.net.nz&lt;/a&gt; ASAP
- places are limited! 
&lt;br /&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; Free! Pizza and drinks will be provided mid-way through 
&lt;/p&gt;
&lt;p&gt;
More information about Michael:
&lt;/p&gt;
&lt;p&gt;
Michael Howard, Principal Security Program Manager, Microsoft's Security Engineering
Team, Microsoft
&lt;/p&gt;
&lt;p&gt;
Michael Howard is a principal security program manager on the Trustworthy Computing
(TwC) Group's Security Engineering team at Microsoft, where he is responsible for
managing secure design, programming, and testing techniques across the company.
&lt;/p&gt;
&lt;p&gt;
Howard is an architect of the Security Development Lifecycle (SDL), a process for
improving the security of Microsoft's software. 
&lt;/p&gt;
&lt;p&gt;
Howard began his career with Microsoft in 1992 at the company's New Zealand office,
working for the first two years with Windows and compilers on the Product Support
Services team, and then with Microsoft Consulting Services, where he provided security
infrastructure support to customers and assisted in the design of custom solutions
and development of software. 
&lt;/p&gt;
&lt;p&gt;
In 1997, Howard moved to the United States to work for the Windows division on Internet
Information Services, Microsoft's next-generation web server, before moving to his
current role in 2000. 
&lt;/p&gt;
&lt;p&gt;
Howard is an editor of IEEE Security &amp;amp; Privacy, a frequent speaker at security-related
conferences and he regularly publishes articles on secure coding and design. Howard
is the co-author of seven security books, including the award-winning Writing Secure
Code, The Security Development Lifecycle, Writing Secure Code for Windows Vista and
his most recent release, 24 Deadly Sins of Software Security.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Edit: Sorry, this event has been cancelled due to personal reasons. Sorry
for getting your hopes up!&lt;/strong&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=066d4399-c377-40d1-b04d-981490574888" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,066d4399-c377-40d1-b04d-981490574888.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=d106ff05-ad5b-4e09-90fd-6e54156917cd</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,d106ff05-ad5b-4e09-90fd-6e54156917cd.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,d106ff05-ad5b-4e09-90fd-6e54156917cd.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d106ff05-ad5b-4e09-90fd-6e54156917cd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
[I just sent this email out to all user group attendees]
</p>
        <p>
 
</p>
        <p>
Merry Christmas!
</p>
        <p>
 
</p>
        <p>
Because the year is winding up, I wanted to send you an email to thank you for being
part of our great .NET user group community in Wellington this year. 
</p>
        <p>
 
</p>
        <p>
The highlight this year has been the branching out of the .NET User Group: Sky Sigal
has started the Silverlight user group and Mark Carroll the VSTS user group. 
</p>
        <p>
 
</p>
        <p>
Another great thing we've done this year is increase the number of meetings. It has
been 7 years since the first meeting in Nov 2002. In 2003 we met every two months,
in 2004 we switched to monthly and this year we've switched to fortnightly (weekly,
if you attend Silverlight meetings as well!) 
</p>
        <p>
 
</p>
        <p>
          <u>Stats: 
<br /></u>
        </p>
        <p>
Across the three user groups we had 31 meetings, which is pretty amazing for a 52
week year. 
</p>
        <p>
 
</p>
        <p>
Looking at the stats for the Wellington .NET User Group on it's own: we had 21 meetings
with 650 attendees. I went through the list and there were over 250 different people! 
</p>
        <p>
 
</p>
        <p>
It has been so great to welcome new faces to our community, and to see familiar faces
offer to present some of their ideas and wisdom for the benefit of others. 
</p>
        <p>
 
</p>
        <p>
We ran a Code Camp again this year at Whitireia in Porirua, which went really well.
I was also involved in our biggest Code Camp yet which was in Auckland before TechEd
and had over 300 people attend. 
</p>
        <p>
 
</p>
        <p>
          <u>Thanks:</u>
        </p>
        <p>
I'd like to give an extra big "THANKS" to the speakers who worked so hard
to put together sessions this year:
</p>
        <p>
Alex Dean, Amir Shevat, Andrew Tokeley, Andy Prow, Bevan Arps, Bohdan Szymanik, Chakkaradeep
Chandran, Chris Klug, Daniel McGaughran, Ivan Towlson, James Hippolite, Kevin Daly,
Mike Zeff, Owen Evans, Richard Dingwall, Scott McKenzie, Sky Sigal and Tim Heuer. 
</p>
        <p>
 
</p>
        <p>
Their willingness to share their experiences, put together talks and field the difficult
questions really helped us all in our quest for knowledge. Also, thanks to them, I
only needed to inflict myself on you as a speaker four times this year :) 
</p>
        <p>
 
</p>
        <p>
I'd like to thank my employer Xero for hosting so many meetings, as well as Intergen
and Provoke for hosting us in our times of need. I'd also like to thank Vicky for
organising our drinks --- we appreciate it! 
</p>
        <p>
 
</p>
        <p>
          <u>The prizes: 
<br /></u>
        </p>
        <p>
I bet you weren't expecting prizes. Aren't you glad you read this far down the email? 
</p>
        <p>
The inaugral winner of the "Geek of the year" goes to Bevan Arps. He was
the person who attended the most user group meetings, and he presented the most sessions
too. Bevan wins a Microsoft LifeCam VX-5000 valued at $100. 
</p>
        <p>
 
</p>
        <p>
Please remember Bevan: when your computer is watching you, the whole world can see
what you're wearing :) 
</p>
        <p>
 
</p>
        <p>
To draw the winner of the "Lucky Geek" prize, I gave one entry for each
meeting you attended, and used Simon Green's famous RandomDraw program to pick a winner.
</p>
        <p>
 
</p>
        <p>
The winner of the "Lucky Geek" award is Ram Petikam. Ram wins a copy of
Rise of Nations / Rise of Legends, which I'm sure his teenage son will enjoy. 
</p>
        <p>
 
</p>
        <p>
          <u>Your Challenge:</u>
        </p>
        <p>
A lot of geeky stuff is going on in the Microsoft world. Spend a few hours this holiday
season trying out something new (maybe even win an MSDN subscription <a href="http://bit.ly/6LK8vN">http://bit.ly/6LK8vN</a> ).
Tell us what you did in our first meeting of the year, and you may win a prize! 
</p>
        <p>
 
</p>
        <p>
          <u>Final thanks: 
<br /></u>
        </p>
        <p>
And the final, biggest THANKS to Microsoft! We appreciated every slice of the almost
400 pizzas we ate this year! 
</p>
        <p>
 
</p>
        <p>
Have a great holiday season, a Merry Christmas and a happy new year. I look forward
to seeing you at meetings in the new year. 
</p>
        <p>
 
</p>
        <p>
Kirk 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
For your edification, here are the 31 meetings we had this year. How many did you
come along to? 
</p>
        <p>
 
</p>
        <p>
VSTS - 2 meetings: 
</p>
        <p>
 
</p>
        <p>
02/99/2009    Introduction to Visual Studio Team System 2010 
<br />
18/11/2009    Team System, two years down the track 
</p>
        <p>
Silverlight - 8 meetings: 
</p>
        <p>
01/07/2009    Building Accessible Silverlight Applications 
<br />
29/07/2009    The Gestalt Project 
<br />
09/09/2009    All about using Unity CAL, and Prism in Silverlight 
<br />
30/09/2009    Creating stuff in WPF and Silverlight 3 
<br />
14/10/2009    Bindings 
<br />
28/10/2009    RIA Services 
<br />
11/11/2009    Silverlight Animation 
<br />
09/12/2009    Styling a WPF/Silverlight application 
</p>
        <p>
DNUG - 21 meetings: 
</p>
        <p>
21/01/2009    C# 4 and .NET Framework 4.0 
<br />
04/02/2009    Windows Azure 
<br />
18/02/2009    LINQ Refresher, Anti-XSS and SDE Libraries 
<br />
04/03/2009    Recipes for Scalability 
<br />
18/03/2009    Silverlight 2 
<br />
15/04/2009    SQL Data Services 
<br />
22/04/2009    Silverlight 3 and .NET RIA Services 
<br />
29/04/2009    Teaching the good-guys bad-tricks 
<br />
06/05/2009    Best practice - Caching 
<br />
20/05/2009    Best practice - Towards Maintainability 
<br />
27/05/2009    Using the AJAX Controls Toolbox in SharePoint 
<br />
03/06/2009    Dependency injection using Ninject 
<br />
17/06/2009    ASP.NET MVC - a deeper dive 
<br />
15/07/2009    How To: Design and Develop an Application to Ensure Its
Quality 
<br />
05/08/2009    Towards Supportability 
<br />
19/08/2009    Windows Mobile 6.5 Widgets 
<br />
23/09/2009    Domain Driven Design 101 
<br />
07/10/2009    .NET on the iPhone using MonoTouch 
<br />
21/10/2009    Behaviour Driven Development 
<br />
04/11/2009    Unit Testing 101 
<br />
04/12/2009    PDC Announcements, Azure, Silverlight 4, Sharepoint 2010
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d106ff05-ad5b-4e09-90fd-6e54156917cd" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/AIemUJNeNuA" height="1" width="1" /></body>
      <title>Have a Geeky User Group Christmas!</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,d106ff05-ad5b-4e09-90fd-6e54156917cd.aspx</guid>
      <link>http://pageofwords.com/blog/2009/12/23/HaveAGeekyUserGroupChristmas.aspx</link>
      <pubDate>Wed, 23 Dec 2009 10:20:43 GMT</pubDate>
      <description>&lt;p&gt;
[I just sent this email out to all user group attendees]
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Merry Christmas!
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Because the year is winding up, I wanted to send you an email to thank you for being
part of our great .NET user group community in Wellington this year. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
The highlight this year has been the branching out of the .NET User Group: Sky Sigal
has started the Silverlight user group and Mark Carroll the VSTS user group. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Another great thing we've done this year is increase the number of meetings. It has
been 7 years since the first meeting in Nov 2002. In 2003 we met every two months,
in 2004 we switched to monthly and this year we've switched to fortnightly (weekly,
if you attend Silverlight meetings as well!) 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Stats: 
&lt;br /&gt;
&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
Across the three user groups we had 31 meetings, which is pretty amazing for a 52
week year. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Looking at the stats for the Wellington .NET User Group on it's own: we had 21 meetings
with 650 attendees. I went through the list and there were over 250 different people! 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
It has been so great to welcome new faces to our community, and to see familiar faces
offer to present some of their ideas and wisdom for the benefit of others. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
We ran a Code Camp again this year at Whitireia in Porirua, which went really well.
I was also involved in our biggest Code Camp yet which was in Auckland before TechEd
and had over 300 people attend. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Thanks:&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
I'd like to give an extra big &amp;quot;THANKS&amp;quot; to the speakers who worked so hard
to put together sessions this year:
&lt;/p&gt;
&lt;p&gt;
Alex Dean, Amir Shevat, Andrew Tokeley, Andy Prow, Bevan Arps, Bohdan Szymanik, Chakkaradeep
Chandran, Chris Klug, Daniel McGaughran, Ivan Towlson, James Hippolite, Kevin Daly,
Mike Zeff, Owen Evans, Richard Dingwall, Scott McKenzie, Sky Sigal and Tim Heuer. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Their willingness to share their experiences, put together talks and field the difficult
questions really helped us all in our quest for knowledge. Also, thanks to them, I
only needed to inflict myself on you as a speaker four times this year :) 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
I'd like to thank my employer Xero for hosting so many meetings, as well as Intergen
and Provoke for hosting us in our times of need. I'd also like to thank Vicky for
organising our drinks --- we appreciate it! 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;The prizes: 
&lt;br /&gt;
&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
I bet you weren't expecting prizes. Aren't you glad you read this far down the email? 
&lt;/p&gt;
&lt;p&gt;
The inaugral winner of the &amp;quot;Geek of the year&amp;quot; goes to Bevan Arps. He was
the person who attended the most user group meetings, and he presented the most sessions
too. Bevan wins a Microsoft LifeCam VX-5000 valued at $100. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Please remember Bevan: when your computer is watching you, the whole world can see
what you're wearing :) 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
To draw the winner of the &amp;quot;Lucky Geek&amp;quot; prize, I gave one entry for each
meeting you attended, and used Simon Green's famous RandomDraw program to pick a winner.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
The winner of the &amp;quot;Lucky Geek&amp;quot; award is Ram Petikam. Ram wins a copy of
Rise of Nations / Rise of Legends, which I'm sure his teenage son will enjoy. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Your Challenge:&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
A lot of geeky stuff is going on in the Microsoft world. Spend a few hours this holiday
season trying out something new (maybe even win an MSDN subscription &lt;a href="http://bit.ly/6LK8vN"&gt;http://bit.ly/6LK8vN&lt;/a&gt; ).
Tell us what you did in our first meeting of the year, and you may win a prize! 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Final thanks: 
&lt;br /&gt;
&lt;/u&gt;
&lt;/p&gt;
&lt;p&gt;
And the final, biggest THANKS to Microsoft! We appreciated every slice of the almost
400 pizzas we ate this year! 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Have a great holiday season, a Merry Christmas and a happy new year. I look forward
to seeing you at meetings in the new year. 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Kirk 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
For your edification, here are the 31 meetings we had this year. How many did you
come along to? 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
VSTS - 2 meetings: 
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
02/99/2009&amp;#160;&amp;#160;&amp;#160; Introduction to Visual Studio Team System 2010 
&lt;br /&gt;
18/11/2009&amp;#160;&amp;#160;&amp;#160; Team System, two years down the track 
&lt;/p&gt;
&lt;p&gt;
Silverlight - 8 meetings: 
&lt;/p&gt;
&lt;p&gt;
01/07/2009&amp;#160;&amp;#160;&amp;#160; Building Accessible Silverlight Applications 
&lt;br /&gt;
29/07/2009&amp;#160;&amp;#160;&amp;#160; The Gestalt Project 
&lt;br /&gt;
09/09/2009&amp;#160;&amp;#160;&amp;#160; All about using Unity CAL, and Prism in Silverlight 
&lt;br /&gt;
30/09/2009&amp;#160;&amp;#160;&amp;#160; Creating stuff in WPF and Silverlight 3 
&lt;br /&gt;
14/10/2009&amp;#160;&amp;#160;&amp;#160; Bindings 
&lt;br /&gt;
28/10/2009&amp;#160;&amp;#160;&amp;#160; RIA Services 
&lt;br /&gt;
11/11/2009&amp;#160;&amp;#160;&amp;#160; Silverlight Animation 
&lt;br /&gt;
09/12/2009&amp;#160;&amp;#160;&amp;#160; Styling a WPF/Silverlight application 
&lt;/p&gt;
&lt;p&gt;
DNUG - 21 meetings: 
&lt;/p&gt;
&lt;p&gt;
21/01/2009&amp;#160;&amp;#160;&amp;#160; C# 4 and .NET Framework 4.0 
&lt;br /&gt;
04/02/2009&amp;#160;&amp;#160;&amp;#160; Windows Azure 
&lt;br /&gt;
18/02/2009&amp;#160;&amp;#160;&amp;#160; LINQ Refresher, Anti-XSS and SDE Libraries 
&lt;br /&gt;
04/03/2009&amp;#160;&amp;#160;&amp;#160; Recipes for Scalability 
&lt;br /&gt;
18/03/2009&amp;#160;&amp;#160;&amp;#160; Silverlight 2 
&lt;br /&gt;
15/04/2009&amp;#160;&amp;#160;&amp;#160; SQL Data Services 
&lt;br /&gt;
22/04/2009&amp;#160;&amp;#160;&amp;#160; Silverlight 3 and .NET RIA Services 
&lt;br /&gt;
29/04/2009&amp;#160;&amp;#160;&amp;#160; Teaching the good-guys bad-tricks 
&lt;br /&gt;
06/05/2009&amp;#160;&amp;#160;&amp;#160; Best practice - Caching 
&lt;br /&gt;
20/05/2009&amp;#160;&amp;#160;&amp;#160; Best practice - Towards Maintainability 
&lt;br /&gt;
27/05/2009&amp;#160;&amp;#160;&amp;#160; Using the AJAX Controls Toolbox in SharePoint 
&lt;br /&gt;
03/06/2009&amp;#160;&amp;#160;&amp;#160; Dependency injection using Ninject 
&lt;br /&gt;
17/06/2009&amp;#160;&amp;#160;&amp;#160; ASP.NET MVC - a deeper dive 
&lt;br /&gt;
15/07/2009&amp;#160;&amp;#160;&amp;#160; How To: Design and Develop an Application to Ensure Its
Quality 
&lt;br /&gt;
05/08/2009&amp;#160;&amp;#160;&amp;#160; Towards Supportability 
&lt;br /&gt;
19/08/2009&amp;#160;&amp;#160;&amp;#160; Windows Mobile 6.5 Widgets 
&lt;br /&gt;
23/09/2009&amp;#160;&amp;#160;&amp;#160; Domain Driven Design 101 
&lt;br /&gt;
07/10/2009&amp;#160;&amp;#160;&amp;#160; .NET on the iPhone using MonoTouch 
&lt;br /&gt;
21/10/2009&amp;#160;&amp;#160;&amp;#160; Behaviour Driven Development 
&lt;br /&gt;
04/11/2009&amp;#160;&amp;#160;&amp;#160; Unit Testing 101 
&lt;br /&gt;
04/12/2009&amp;#160;&amp;#160;&amp;#160; PDC Announcements, Azure, Silverlight 4, Sharepoint 2010
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d106ff05-ad5b-4e09-90fd-6e54156917cd" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,d106ff05-ad5b-4e09-90fd-6e54156917cd.aspx</comments>
      <category>UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=e8f31c63-4081-4e58-8d7e-accb2315d8bb</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,e8f31c63-4081-4e58-8d7e-accb2315d8bb.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,e8f31c63-4081-4e58-8d7e-accb2315d8bb.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e8f31c63-4081-4e58-8d7e-accb2315d8bb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
To prevent cross-site scripting, it's important to encode data before outputting it.
</p>
        <p>
Up until now, it has been quite hard to ensure you're encoding everywhere throughout
your app.
</p>
        <p>
It's great to see the new syntax in ASP.NET 4 to automatically encode:
</p>
        <blockquote>
          <pre class="csharpcode">First Name: <span class="asp">&lt;%</span><span class="kwrd">:</span> Model.FirstName <span class="asp">%&gt;</span> Last
Name: <span class="asp">&lt;%</span><span class="kwrd">:</span> Model.FirstName <span class="asp">%&gt;</span><span class="kwrd">&lt;</span><span class="html">form</span><span class="attr">method</span><span class="kwrd">="post"</span><span class="kwrd">&gt;</span><span class="asp">&lt;%</span><span class="kwrd">:</span> Html.TextBox(<span class="str">"FirstName"</span>) <span class="asp">%&gt;</span><span class="asp">&lt;%</span><span class="kwrd">:</span> Html.TextBox(<span class="str">"LastName"</span>) <span class="asp">%&gt;</span><span class="kwrd">&lt;/</span><span class="html">form</span><span class="kwrd">&gt;</span></pre>
        </blockquote>
        <p>
(From <a href="http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx">Phil
Haack's blog</a>)
</p>
        <p>
This means that for all new web applications, you can build using &lt;%: %&gt; instead
of &lt;%= %&gt;, which is great for ASP.NET MVC applications where that syntax is
common. 
</p>
        <p>
For older applications you will be able to opt in to the new encoding syntax, but
your old code will keep working exactly as it already does (perhaps insecurely, if
you're not encoding!)
</p>
        <p>
Here's hoping that we'll be able to replace the standard HtmlEncode with the <a href="http://www.codeplex.com/AntiXSS">AntiXSS</a> goodness
I described here:
</p>
        <ul>
          <li>
            <a href="http://pageofwords.com/blog/2009/02/25/WhatIsEncodingCrossSiteScriptingAndTheAntiXSSEncodingMethods.aspx">What
is encoding? Cross site scripting and the AntiXSS encoding methods</a>
          </li>
        </ul>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=e8f31c63-4081-4e58-8d7e-accb2315d8bb" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/24qrCPW4oX4" height="1" width="1" /></body>
      <title>Syntax support for HTML Encoding in ASP.NET 4</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,e8f31c63-4081-4e58-8d7e-accb2315d8bb.aspx</guid>
      <link>http://pageofwords.com/blog/2009/10/09/SyntaxSupportForHTMLEncodingInASPNET4.aspx</link>
      <pubDate>Fri, 09 Oct 2009 09:00:18 GMT</pubDate>
      <description>&lt;p&gt;
To prevent cross-site scripting, it's important to encode data before outputting it.
&lt;/p&gt;
&lt;p&gt;
Up until now, it has been quite hard to ensure you're encoding everywhere throughout
your app.
&lt;/p&gt;
&lt;p&gt;
It's great to see the new syntax in ASP.NET 4 to automatically encode:
&lt;/p&gt;
&lt;blockquote&gt; &lt;pre class="csharpcode"&gt;First Name: &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;&lt;span class="kwrd"&gt;:&lt;/span&gt; Model.FirstName &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt; Last
Name: &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;&lt;span class="kwrd"&gt;:&lt;/span&gt; Model.FirstName &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;method&lt;/span&gt;&lt;span class="kwrd"&gt;="post"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;&lt;span class="kwrd"&gt;:&lt;/span&gt; Html.TextBox(&lt;span class="str"&gt;"FirstName"&lt;/span&gt;) &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt; &lt;span class="asp"&gt;&amp;lt;%&lt;/span&gt;&lt;span class="kwrd"&gt;:&lt;/span&gt; Html.TextBox(&lt;span class="str"&gt;"LastName"&lt;/span&gt;) &lt;span class="asp"&gt;%&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
(From &lt;a href="http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx"&gt;Phil
Haack's blog&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
This means that for all new web applications, you can build using &amp;lt;%: %&amp;gt; instead
of &amp;lt;%= %&amp;gt;, which is great for ASP.NET MVC applications where that syntax is
common. 
&lt;/p&gt;
&lt;p&gt;
For older applications you will be able to opt in to the new encoding syntax, but
your old code will keep working exactly as it already does (perhaps insecurely, if
you're not encoding!)
&lt;/p&gt;
&lt;p&gt;
Here's hoping that we'll be able to replace the standard HtmlEncode with the &lt;a href="http://www.codeplex.com/AntiXSS"&gt;AntiXSS&lt;/a&gt; goodness
I described here:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://pageofwords.com/blog/2009/02/25/WhatIsEncodingCrossSiteScriptingAndTheAntiXSSEncodingMethods.aspx"&gt;What
is encoding? Cross site scripting and the AntiXSS encoding methods&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=e8f31c63-4081-4e58-8d7e-accb2315d8bb" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,e8f31c63-4081-4e58-8d7e-accb2315d8bb.aspx</comments>
      <category>AntiXSS;Security</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=d0f71522-9841-4a10-a26e-9f08807c355a</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,d0f71522-9841-4a10-a26e-9f08807c355a.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,d0f71522-9841-4a10-a26e-9f08807c355a.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d0f71522-9841-4a10-a26e-9f08807c355a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://tech-and-arts.blogspot.com/">Daniel</a> presented this talk at the <a href="http://www.dot.net.nz/UserGroupPages/WellingtonSilverlight.aspx">Wellington
Silverlight user group</a> last Wednesday.
</p>
        <p>
I enjoyed this talk. Daniel went back to basics and showed how to get up and running
with Silverlight and WPF development, covered the various layouts you can use in XAML,
and went through some of the fundamentals of how XAML and code interact.
</p>
        <p>
I think the part I most appreciated was the content that Daniel left out of his talk.
He was very well prepared, and had intentionally kept things simple, which is hard
to do when you have deep technical knowledge and enjoy sharing it - I struggle with
keeping my talks focussed without diverting on a tangent.
</p>
        <p>
Well done Daniel, I'm looking forward to your next talk!
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d0f71522-9841-4a10-a26e-9f08807c355a" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/uNKEQ1bZ2L8" height="1" width="1" /></body>
      <title>Creating Stuff in WPF and Silverlight 3 - Daniel McGaughran</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,d0f71522-9841-4a10-a26e-9f08807c355a.aspx</guid>
      <link>http://pageofwords.com/blog/2009/10/01/CreatingStuffInWPFAndSilverlight3DanielMcGaughran.aspx</link>
      <pubDate>Thu, 01 Oct 2009 19:56:23 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://tech-and-arts.blogspot.com/"&gt;Daniel&lt;/a&gt; presented this talk at the &lt;a href="http://www.dot.net.nz/UserGroupPages/WellingtonSilverlight.aspx"&gt;Wellington
Silverlight user group&lt;/a&gt; last Wednesday.
&lt;/p&gt;
&lt;p&gt;
I enjoyed this talk. Daniel went back to basics and showed how to get up and running
with Silverlight and WPF development, covered the various layouts you can use in XAML,
and went through some of the fundamentals of how XAML and code interact.
&lt;/p&gt;
&lt;p&gt;
I think the part I most appreciated was the content that Daniel left out of his talk.
He was very well prepared, and had intentionally kept things simple, which is hard
to do when you have deep technical knowledge and enjoy sharing it - I struggle with
keeping my talks focussed without diverting on a tangent.
&lt;/p&gt;
&lt;p&gt;
Well done Daniel, I'm looking forward to your next talk!
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d0f71522-9841-4a10-a26e-9f08807c355a" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,d0f71522-9841-4a10-a26e-9f08807c355a.aspx</comments>
      <category>Silverlight;UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=0d0258e1-c265-4774-b6af-53aef552a189</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,0d0258e1-c265-4774-b6af-53aef552a189.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,0d0258e1-c265-4774-b6af-53aef552a189.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=0d0258e1-c265-4774-b6af-53aef552a189</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I attended Richard's Domain Driven Design introduction at the Wellington .NET user
group back on the September 23.
</p>
        <p>
Richard introduced Domain Driven Design and the motivations behind using it, covered
the 'building blocks' and then gave some examples of how to put it in practice.
</p>
        <p>
Richard has blogged the details of his talk here: <a href="http://richarddingwall.name/2009/09/24/slides-from-my-domain-driven-design-101-talk/">Slides
from my Domain Driven Design 101 Talk</a></p>
        <p>
I enjoyed Richard's slide deck, and his presentation style - simple slides so that
my focus was on what he was saying. The parts of his talk that I took the most out
of were the encapsulation of business logic into Specifications (different from the
testing concept), and the explicit anti-corruption layer when interfacing with any
external system.
</p>
        <p>
Thanks Richard!
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=0d0258e1-c265-4774-b6af-53aef552a189" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/xIFDqMJe0OM" height="1" width="1" /></body>
      <title>Domain Driven Design 101 &amp;ndash; Richard Dingwall</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,0d0258e1-c265-4774-b6af-53aef552a189.aspx</guid>
      <link>http://pageofwords.com/blog/2009/10/01/DomainDrivenDesign101NdashRichardDingwall.aspx</link>
      <pubDate>Thu, 01 Oct 2009 19:51:47 GMT</pubDate>
      <description>&lt;p&gt;
I attended Richard's Domain Driven Design introduction at the Wellington .NET user
group back on the September 23.
&lt;/p&gt;
&lt;p&gt;
Richard introduced Domain Driven Design and the motivations behind using it, covered
the 'building blocks' and then gave some examples of how to put it in practice.
&lt;/p&gt;
&lt;p&gt;
Richard has blogged the details of his talk here: &lt;a href="http://richarddingwall.name/2009/09/24/slides-from-my-domain-driven-design-101-talk/"&gt;Slides
from my Domain Driven Design 101 Talk&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I enjoyed Richard's slide deck, and his presentation style - simple slides so that
my focus was on what he was saying. The parts of his talk that I took the most out
of were the encapsulation of business logic into Specifications (different from the
testing concept), and the explicit anti-corruption layer when interfacing with any
external system.
&lt;/p&gt;
&lt;p&gt;
Thanks Richard!
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=0d0258e1-c265-4774-b6af-53aef552a189" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,0d0258e1-c265-4774-b6af-53aef552a189.aspx</comments>
      <category>UserGroup</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=07b70667-0f1c-4d92-87a2-67d0cde7cb57</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,07b70667-0f1c-4d92-87a2-67d0cde7cb57.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,07b70667-0f1c-4d92-87a2-67d0cde7cb57.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=07b70667-0f1c-4d92-87a2-67d0cde7cb57</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We got some great feedback from attendees at this year's Code Camp in Auckland. I
thought I'd share some stats from the survey sent to attendees.
</p>
        <p>
We counted 300 people there at one time, so we estimate somewhere between 300 and
350 people came along for sessions during the day. Note that approximately half of
the attendees responded to the survey that these figures were drawn from.
</p>
        <p>
We had three streams: Development, SQL and Security. 
</p>
        <p>
Attendance was roughly:
</p>
        <ul>
          <li>
Development: 68%</li>
          <li>
SQL: 19%</li>
          <li>
Security 13%</li>
        </ul>
        <p>
Although, people could switch between streams as they wished.
</p>
        <p>
          <strong>Did you also go to TechEd?</strong>
        </p>
        <ul>
          <li>
Yes: 30%</li>
          <li>
No: 70%</li>
        </ul>
        <p>
          <strong>How did you find out about Code Camp?</strong>
        </p>
        <ul>
          <li>
            <a href="http://www.dot.net.nz/GeneralPages/TempMailingLists.aspx">dot.net.nz mailing
list</a>: 23%</li>
          <li>
Co-worker: 35%</li>
          <li>
MSDN Flash Email: 22%</li>
          <li>
via a blog: 5%</li>
        </ul>
        <p>
          <strong>Session feedback:</strong>
        </p>
        <ul>
          <li>
94% of session feedback was in the range 'satisfied' to 'very satisfied'</li>
          <li>
40% of feedback was 'very satisfied'</li>
        </ul>
        <p>
          <strong>Regions:</strong>
        </p>
        <ul>
          <li>
85% from Auckland</li>
          <li>
4% each from Wellington and Bay of Plenty</li>
          <li>
3% each from Waikato and Canterbury</li>
        </ul>
        <p>
          <strong>User groups:</strong>
        </p>
        <ul>
          <li>
51% of people attend one or more of their local <a href="www.dot.net.nz">user groups</a></li>
          <li>
To the remainder: <a href="http://www.dot.net.nz/">come along and join us!</a></li>
        </ul>
        <p>
The presenter with the most feedback on his sessions was the AWESOME <a href="hestia.typepad.com">Ivan
Towlson</a>.
</p>
        <p>
We got lots of great general comments, here are a few:
</p>
        <blockquote>
          <p>
            <em>Great work guys! Thoroughly enjoyed. </em>
          </p>
          <p>
            <em>
            </em>
          </p>
          <p>
            <em>Really enjoyed the day - thanks guys! </em>
          </p>
          <p>
            <em>
            </em>
          </p>
          <p>
            <em>Thanks for the opportunity for those of us who could not attend TechEd</em>
          </p>
          <p>
            <em>
            </em>
          </p>
          <p>
            <em>I am a sole operator / consultant with very limited budget, so "free"
events are really </em>
            <em>appreciated.  I am very happy to dedicate my time
to attendance at events that are run as well as </em>
            <em>this was.  Thanks again.</em>
          </p>
          <p>
            <em>
            </em>
          </p>
          <p>
            <em>We appreciate international visitors giving up their mornings to our benefit</em>
          </p>
          <p>
            <em>
            </em>
          </p>
          <p>
            <em>I really enjoyed every session and thought that each one had a valuable piece
of information to </em>
            <em>take away - well done! </em>
          </p>
        </blockquote>
        <p>
Thanks everyone for your feedback (good and <strike>bad</strike> constructive), we'll
use it all to help make the next community Code Camp even better!
</p>
        <p>
 
</p>
        <p>
To find out about future Code Camps, and user group events in your area, please visit
the <a href="http://www.dot.net.nz">dot.net.nz</a> website and <a href="http://www.dot.net.nz/GeneralPages/TempMailingLists.aspx">sign
up to a mailing list</a>.
</p>
        <p>
 
</p>
        <p>
Kirk
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=07b70667-0f1c-4d92-87a2-67d0cde7cb57" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/pageofwords/~4/I-fe0EX3MVA" height="1" width="1" /></body>
      <title>Code Camp Auckland 2009 &amp;ndash; Feedback from attendees</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,07b70667-0f1c-4d92-87a2-67d0cde7cb57.aspx</guid>
      <link>http://pageofwords.com/blog/2009/09/26/CodeCampAuckland2009NdashFeedbackFromAttendees.aspx</link>
      <pubDate>Sat, 26 Sep 2009 01:26:03 GMT</pubDate>
      <description>&lt;p&gt;
We got some great feedback from attendees at this year's Code Camp in Auckland. I
thought I'd share some stats from the survey sent to attendees.
&lt;/p&gt;
&lt;p&gt;
We counted 300 people there at one time, so we estimate somewhere between 300 and
350 people came along for sessions during the day. Note that approximately half of
the attendees responded to the survey that these figures were drawn from.
&lt;/p&gt;
&lt;p&gt;
We had three streams: Development, SQL and Security. 
&lt;/p&gt;
&lt;p&gt;
Attendance was roughly:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Development: 68%&lt;/li&gt;
&lt;li&gt;
SQL: 19%&lt;/li&gt;
&lt;li&gt;
Security 13%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Although, people could switch between streams as they wished.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Did you also go to TechEd?&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Yes: 30%&lt;/li&gt;
&lt;li&gt;
No: 70%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;How did you find out about Code Camp?&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.dot.net.nz/GeneralPages/TempMailingLists.aspx"&gt;dot.net.nz mailing
list&lt;/a&gt;: 23%&lt;/li&gt;
&lt;li&gt;
Co-worker: 35%&lt;/li&gt;
&lt;li&gt;
MSDN Flash Email: 22%&lt;/li&gt;
&lt;li&gt;
via a blog: 5%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Session feedback:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
94% of session feedback was in the range 'satisfied' to 'very satisfied'&lt;/li&gt;
&lt;li&gt;
40% of feedback was 'very satisfied'&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Regions:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
85% from Auckland&lt;/li&gt;
&lt;li&gt;
4% each from Wellington and Bay of Plenty&lt;/li&gt;
&lt;li&gt;
3% each from Waikato and Canterbury&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;User groups:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
51% of people attend one or more of their local &lt;a href="www.dot.net.nz"&gt;user groups&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
To the remainder: &lt;a href="http://www.dot.net.nz/"&gt;come along and join us!&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The presenter with the most feedback on his sessions was the AWESOME &lt;a href="hestia.typepad.com"&gt;Ivan
Towlson&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
We got lots of great general comments, here are a few:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Great work guys! Thoroughly enjoyed. &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Really enjoyed the day - thanks guys! &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Thanks for the opportunity for those of us who could not attend TechEd&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;I am a sole operator / consultant with very limited budget, so &amp;quot;free&amp;quot;
events are really &lt;/em&gt;&lt;em&gt;appreciated.&amp;#160; I am very happy to dedicate my time
to attendance at events that are run as well as &lt;/em&gt;&lt;em&gt;this was.&amp;#160; Thanks again.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;We appreciate international visitors giving up their mornings to our benefit&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;I really enjoyed every session and thought that each one had a valuable piece
of information to &lt;/em&gt;&lt;em&gt;take away - well done! &lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Thanks everyone for your feedback (good and &lt;strike&gt;bad&lt;/strike&gt; constructive), we'll
use it all to help make the next community Code Camp even better!
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
To find out about future Code Camps, and user group events in your area, please visit
the &lt;a href="http://www.dot.net.nz"&gt;dot.net.nz&lt;/a&gt; website and &lt;a href="http://www.dot.net.nz/GeneralPages/TempMailingLists.aspx"&gt;sign
up to a mailing list&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Kirk
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=07b70667-0f1c-4d92-87a2-67d0cde7cb57" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,07b70667-0f1c-4d92-87a2-67d0cde7cb57.aspx</comments>
      <category>CodeCamp</category>
    </item>
  </channel>
</rss>
