<?xml version="1.0" encoding="utf-8"?>
<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 - OWASP</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>Thu, 15 Jul 2010 04:47:41 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>kirkj@paradise.net.nz</managingEditor>
    <webMaster>kirkj@paradise.net.nz</webMaster>
    <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></p><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=9aad5abd-b8eb-43ea-89b0-8d9c36ca5df0" /></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></p><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=a25db50d-cf87-4743-a32e-277d70acebfb" /></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" /></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></p><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=cefb12f7-1c1c-456d-a535-fdaea7c8e73d" /></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" /></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></p><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=04c4734b-4fb2-423e-b951-47d645fd352f" /></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></p><img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=5e6df742-ff74-4a98-acc1-87e71eb694e2" /></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=f1045b20-3987-4fe6-bd24-dcffcdbbd9d7</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,f1045b20-3987-4fe6-bd24-dcffcdbbd9d7.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,f1045b20-3987-4fe6-bd24-dcffcdbbd9d7.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=f1045b20-3987-4fe6-bd24-dcffcdbbd9d7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you store, transmit or process credit card data, PCI applies.
</p>
        <p>
How can OWASP help you with PCI compliance?
</p>
        <p>
Credit card data:
</p>
        <ul>
          <li>
Primary Account Number (PAN): Can store it, but protection required.</li>
          <li>
Can never store the CVD 3 digit number or mag stripe</li>
        </ul>
        <p>
Card data attacks have been increasing in sophistication.
</p>
        <p>
PCI-DSS affects anyone who transmits, processes or stores payment card data. E.g.
merchants, service providers (e.g. Paymark, DPS).
</p>
        <p>
Look at <a href="https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml">12
requirements of PCI-DSS</a> (firewalls, storage etc)
</p>
        <p>
          <strong>Protecting stored data:</strong>
        </p>
        <p>
You must not store sensitive authentication data. Principle: if you don't need it,
don't store it. Consider outsourcing, truncation, tokenisation.
</p>
        <p>
Tokenisation: Replace PAN with a unique identifier "token"
</p>
        <p>
Truncation: don't store all the data (e.g. first 4, last 4 digits)
</p>
        <p>
Encryption: Encrypt at point of capture, only decrypt when required, use industry
standard encryption, protect your keys.
</p>
        <p>
          <strong>Developing secure applications / Test app was built securely / <strong>Use
secure coding guidelines</strong>:</strong>
        </p>
        <p>
Standard OWASP guidelines
</p>
        <p>
          <strong>Annual risk assessment:</strong>
        </p>
        <p>
Every year, new threats will affect your site. Go and re-assess against the new threats.
</p>
        <p>
 
</p>
        <p>
Fixing legacy systems: make sure no old data is lying around.
</p>
        <p>
Real life example: it's very easy to mess up (example of reverting to old code)
</p>
        <p>
Parting thoughts: achieve, maintain and validate compliance. Secure development is
a key activity. OWASP is a good source. Reduce storage of PAN data.
</p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=f1045b20-3987-4fe6-bd24-dcffcdbbd9d7" />
      </body>
      <title>OWASP NZ: PCI-DSS for OWASP Practitioners: Dean Carter, security-assessment.com</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,f1045b20-3987-4fe6-bd24-dcffcdbbd9d7.aspx</guid>
      <link>http://pageofwords.com/blog/2009/07/13/OWASPNZPCIDSSForOWASPPractitionersDeanCarterSecurityassessmentcom.aspx</link>
      <pubDate>Mon, 13 Jul 2009 03:46:55 GMT</pubDate>
      <description>&lt;p&gt;
If you store, transmit or process credit card data, PCI applies.
&lt;/p&gt;
&lt;p&gt;
How can OWASP help you with PCI compliance?
&lt;/p&gt;
&lt;p&gt;
Credit card data:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Primary Account Number (PAN): Can store it, but protection required.&lt;/li&gt;
&lt;li&gt;
Can never store the CVD 3 digit number or mag stripe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Card data attacks have been increasing in sophistication.
&lt;/p&gt;
&lt;p&gt;
PCI-DSS affects anyone who transmits, processes or stores payment card data. E.g.
merchants, service providers (e.g. Paymark, DPS).
&lt;/p&gt;
&lt;p&gt;
Look at &lt;a href="https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml"&gt;12
requirements of PCI-DSS&lt;/a&gt; (firewalls, storage etc)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Protecting stored data:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
You must not store sensitive authentication data. Principle: if you don't need it,
don't store it. Consider outsourcing, truncation, tokenisation.
&lt;/p&gt;
&lt;p&gt;
Tokenisation: Replace PAN with a unique identifier "token"
&lt;/p&gt;
&lt;p&gt;
Truncation: don't store all the data (e.g. first 4, last 4 digits)
&lt;/p&gt;
&lt;p&gt;
Encryption: Encrypt at point of capture, only decrypt when required, use industry
standard encryption, protect your keys.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Developing secure applications / Test app was built securely / &lt;strong&gt;Use
secure coding guidelines&lt;/strong&gt;:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Standard OWASP guidelines
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Annual risk assessment:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Every year, new threats will affect your site. Go and re-assess against the new threats.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Fixing legacy systems: make sure no old data is lying around.
&lt;/p&gt;
&lt;p&gt;
Real life example: it's very easy to mess up (example of reverting to old code)
&lt;/p&gt;
&lt;p&gt;
Parting thoughts: achieve, maintain and validate compliance. Secure development is
a key activity. OWASP is a good source. Reduce storage of PAN data.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=f1045b20-3987-4fe6-bd24-dcffcdbbd9d7" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,f1045b20-3987-4fe6-bd24-dcffcdbbd9d7.aspx</comments>
      <category>OWASP;Security;Web</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=3f86c7a5-c70e-403b-a37e-4738592e3fe1</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,3f86c7a5-c70e-403b-a37e-4738592e3fe1.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,3f86c7a5-c70e-403b-a37e-4738592e3fe1.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=3f86c7a5-c70e-403b-a37e-4738592e3fe1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Bug chaining - an idea that hasn't really propagated yet.
</p>
        <p>
How do we rate how severe a bug is? Consider how easy it is to exploit, where it is
accessible from (client-side, server-side, internet, local, mass exploitable, targeted
exploit, etc).
</p>
        <p>
Audience attempted to rate the severity of a couple of bugs:
</p>
        <ul>
          <li>
SQL injection on authenticated site -&gt; medium/high 
</li>
          <li>
File upload php files on authenticated site -&gt; high/critical 
</li>
          <li>
Local file disclosure -&gt; medium/high 
</li>
          <li>
XSS - reflective, authenticated -&gt; low/medium 
</li>
        </ul>
        <p>
Is attacker considered 'authenticated' once there is an XSS attack? Any subsequent
attacks can be treated as authenticated.
</p>
        <p>
When you join together the XSS bug with the file upload bug, then it's critical!
</p>
        <p>
Bug chaining: taking multiple bugs and chaining them together to create exploitable
vulnerabilities. Instead of looking at each individual bug, look at how they can be
combined together.
</p>
        <p>
There are now frameworks to help chain together exploits - and this is how a lot of
worms now work.
</p>
        <p>
Recent examples of chaining exploits: PHPMyAdmin &lt;= 3.1.3; SugarCRM &lt;= 5.2.0e
- compromise server through 3 bugs together.
</p>
        <p>
How to deal with this? CVSSv2:
</p>
        <ul>
          <li>
Common Vulnerability Scoring System v2.0 
</li>
          <li>
Scoring system for assessing bugs 
</li>
          <li>
Considers exploit complexity, application location, authentication, target likelihood
etc 
</li>
          <li>
Can be very complex, time consuming, difficult to follow 
</li>
        </ul>
        <p>
"You can explain this stuff all day, but when network admins actually see you do it,
that's when they understand" Brett Moore
</p>
        <p>
VtigerCRM - large open-source CRM system which fixed problems with a security patch,
but don't link to the fix (and haven't installed it themselves!).
</p>
        <p>
He wrote a BeEf module for VtigerCRM that can run as an auto-run module (took less
than 2 hours to write):
</p>
        <ul>
          <li>
Chains file upload and XSS bug to upload a malicious PHP script to start a command
shell</li>
          <li>
Connection is from <em>server</em> to the attackers machine, so user doesn't need
to stay connected</li>
        </ul>
        <p>
          <strong>Summary:</strong>
        </p>
        <p>
Don't look at severity of individual bugs - need to look at how bugs can be joined
together.
</p>
        <p>
          <em>Understand </em>the bugs.
</p>
        <p>
Follow the OWASP coding and testing guidelines.
</p>
        <p>
Tools:
</p>
        <ul>
          <li>
            <a href="http://www.bindshell.net/tools/beef/">BeEf</a> - command console for an attacker
to run script on the client computer. Modular list of exploits, and control multiple
victims. Autorun modules to automatically execute modules within 1.5-2 seconds.</li>
        </ul>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=3f86c7a5-c70e-403b-a37e-4738592e3fe1" />
      </body>
      <title>OWASP NZ: Application Bug Chaining: Mark Piper, Catalyst IT</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,3f86c7a5-c70e-403b-a37e-4738592e3fe1.aspx</guid>
      <link>http://pageofwords.com/blog/2009/07/13/OWASPNZApplicationBugChainingMarkPiperCatalystIT.aspx</link>
      <pubDate>Mon, 13 Jul 2009 02:57:28 GMT</pubDate>
      <description>&lt;p&gt;
Bug chaining - an idea that hasn't really propagated yet.
&lt;/p&gt;
&lt;p&gt;
How do we rate how severe a bug is? Consider how easy it is to exploit, where it is
accessible from (client-side, server-side, internet, local, mass exploitable, targeted
exploit, etc).
&lt;/p&gt;
&lt;p&gt;
Audience attempted to rate the severity of a couple of bugs:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
SQL injection on authenticated site -&amp;gt; medium/high 
&lt;/li&gt;
&lt;li&gt;
File upload php files on authenticated site -&amp;gt; high/critical 
&lt;/li&gt;
&lt;li&gt;
Local file disclosure -&amp;gt; medium/high 
&lt;/li&gt;
&lt;li&gt;
XSS - reflective, authenticated -&amp;gt; low/medium 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Is attacker considered 'authenticated' once there is an XSS attack? Any subsequent
attacks can be treated as authenticated.
&lt;/p&gt;
&lt;p&gt;
When you join together the XSS bug with the file upload bug, then it's critical!
&lt;/p&gt;
&lt;p&gt;
Bug chaining: taking multiple bugs and chaining them together to create exploitable
vulnerabilities. Instead of looking at each individual bug, look at how they can be
combined together.
&lt;/p&gt;
&lt;p&gt;
There are now frameworks to help chain together exploits - and this is how a lot of
worms now work.
&lt;/p&gt;
&lt;p&gt;
Recent examples of chaining exploits: PHPMyAdmin &amp;lt;= 3.1.3; SugarCRM &amp;lt;= 5.2.0e
- compromise server through 3 bugs together.
&lt;/p&gt;
&lt;p&gt;
How to deal with this? CVSSv2:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Common Vulnerability Scoring System v2.0 
&lt;/li&gt;
&lt;li&gt;
Scoring system for assessing bugs 
&lt;/li&gt;
&lt;li&gt;
Considers exploit complexity, application location, authentication, target likelihood
etc 
&lt;/li&gt;
&lt;li&gt;
Can be very complex, time consuming, difficult to follow 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
"You can explain this stuff all day, but when network admins actually see you do it,
that's when they understand" Brett Moore
&lt;/p&gt;
&lt;p&gt;
VtigerCRM - large open-source CRM system which fixed problems with a security patch,
but don't link to the fix (and haven't installed it themselves!).
&lt;/p&gt;
&lt;p&gt;
He wrote a BeEf module for VtigerCRM that can run as an auto-run module (took less
than 2 hours to write):
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Chains file upload and XSS bug to upload a malicious PHP script to start a command
shell&lt;/li&gt;
&lt;li&gt;
Connection is from &lt;em&gt;server&lt;/em&gt; to the attackers machine, so user doesn't need
to stay connected&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Summary:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Don't look at severity of individual bugs - need to look at how bugs can be joined
together.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Understand &lt;/em&gt;the bugs.
&lt;/p&gt;
&lt;p&gt;
Follow the OWASP coding and testing guidelines.
&lt;/p&gt;
&lt;p&gt;
Tools:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.bindshell.net/tools/beef/"&gt;BeEf&lt;/a&gt; - command console for an attacker
to run script on the client computer. Modular list of exploits, and control multiple
victims. Autorun modules to automatically execute modules within 1.5-2 seconds.&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=3f86c7a5-c70e-403b-a37e-4738592e3fe1" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,3f86c7a5-c70e-403b-a37e-4738592e3fe1.aspx</comments>
      <category>OWASP;Security;Web</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=d1f49c3b-5881-4efa-b142-652a5de9592e</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,d1f49c3b-5881-4efa-b142-652a5de9592e.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,d1f49c3b-5881-4efa-b142-652a5de9592e.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d1f49c3b-5881-4efa-b142-652a5de9592e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Firefox extensions: They're just software, like ActiveX. Extend, modify and control
the browser.
</p>
        <p>
Firefox extension points:
</p>
        <ul>
          <li>
XUL: XML user interface language</li>
          <li>
XBL: XML Binding Language - logical behaviour of widgets</li>
          <li>
XPCOM: Reusable components, interface to file system etc.</li>
          <li>
XPConnect: Allows Javascript to connect to XPCOM</li>
          <li>
Chrome: Special browser zone that is fully trusted by firefox - code is fully trusted,
has access to filesystem, user passwords etc.</li>
        </ul>
        <p>
Mozilla security extension model is non-existent. All extensions are fully trusted
by Firefox - no boundaries between extensions, they can modify each other without
the user knowing. Can be coded in C++ and subject to memory corruption etc.
</p>
        <p>
Extensions are very popular (billion downloads) and can be found everywhere - social
networks, search engines, software packages (skype, anti-virus), anti-phishing toolbars.
</p>
        <p>
Biggest problem is the human side of things - Addins.mozilla.org recommend extensions
and add a 'recommended' icon next to them. Extension source code isn't read by third
parties (<em>"It's not the linux kernel"</em>).
</p>
        <p>
There's no protection from an extension with a security problem, it will bypass any
other phishing / malware protection extensions.
</p>
        <p>
Extensions aren't signed (even the Mozilla ones), so we can't rely on people checking
signatures.
</p>
        <p>
If an extension is originally trusted, then subsequent updates won't go through the
same review process.
</p>
        <p>
No current guidelines for testing a Firefox extension, so security-assessement.com
havce come up with their own methodology (whitepaper to be released this year, early
next year):
</p>
        <ul>
          <li>
Isolated testing: Only test one extension at a time, on different OSes with different
Firefox versions.</li>
          <li>
Information gathering: How does the extension work, how is it installed? Look inside
the extension package (a zip file) and look for malicious files (e.g. .exe, .msi etc)</li>
          <li>
Look for XPInstall API functions that are dangerous (e.g. executing code on install)</li>
          <li>
Look for suspicious files in the extension folder (e.g. softlinks to other directories)</li>
          <li>
Look inside install.rdf - some tags can hide extensions so they don't appear in the
addon manager</li>
          <li>
Extensions can have the same description as other installed extensions, so two appear
in addon manager</li>
          <li>
Does the extension try to trick the user into thinking it's verified?</li>
          <li>
Look for pointers outside the extension, or flags that expose the extension object
or content to untrusted code (e.g. contentaccessible=yes or xpcnativewrappers=no)</li>
          <li>
Extensions can be merged into the firefox UI - e.g. top toolbar, bottom status bar.
They can also modify existing buttons e.g. Reload, Back, Forward or Home button.</li>
          <li>
Use the extension. Check the DOM of a test page with the extension loaded (they used
mozreply to do this)</li>
          <li>
Debugging: can set breakpoints using Javascript debugger.</li>
          <li>
Sandbox: can be sidestepped by replacing code inside the sandbox or evaluating it
from outside</li>
          <li>
XPCOM components: .dll or .so - compiled code that the extension may ship with, or
may use existing components on the machine. May need to review source code or decompile.
A bunch of components to watch out for.</li>
          <li>
wrappedJSObject: removes the protection of the XPComComponent, so they are avoiding
the firefox protection.</li>
          <li>
Watch out for callback functions, which may be replaced / modified</li>
          <li>
window.OpenDialog: Opens any URI with elevated chrome privileges</li>
          <li>
Auth: Some expose credentials in plain text, e.g. GET or basic auth</li>
          <li>
Auth: Some expose functionality via javascript that can side-step normal process</li>
          <li>
Skype extension - a javascript call that any web page can use to start dialing your
skype to any 
</li>
          <li>
XSS: Watch out for XSS issues - can execute in the chrome zone from DOM events, embedded
XSS, recursive iframes</li>
          <li>
XSS: Extensions loading external scripts</li>
        </ul>
        <p>
They have applied their methodology to different extensions, and some responses have
been slow or non-existent!
</p>
        <p>
Here are some extensions that were demoed and had problems. They are all common or
Mozilla recommended (all these have been fixed):
</p>
        <ul>
          <li>
FireFTP: Could include malicious code in the welcome method of an FTP server, and
the browser would execute it. Showed a proof of concept sending the contents of win.ini
to a different server, and using BeEf to control client.</li>
          <li>
CoolPreviews: Susceptible to XSS if a data:// URI is used. Showed a remote code execution
when right-clicking on a link and previewing it with CoolPreviews.</li>
          <li>
WizzRSS: HTML and Javascript in the &lt;description&gt; tag of RSS feeds is executed
in the chrome zone. Showed a reverse shell onto the Windows machine from a malicious
users machine.</li>
        </ul>
        <p>
Extension developers and vendors haven't got a security disclosure process yet - they
don't know how to deal with the issues yet. Some extensions don't even publish an
email address for the author.
</p>
        <p>
Tools:
</p>
        <ul>
          <li>
Firebug</li>
          <li>
MozRepl</li>
          <li>
            <a href="http://www.bindshell.net/tools/beef/">BeEf</a> - command console for an attacker
to run script on the client computer.</li>
        </ul>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d1f49c3b-5881-4efa-b142-652a5de9592e" />
      </body>
      <title>OWASP NZ: Exploiting Firefox Extensions: Roberto Suggi Liverani &amp;amp; Nick Freeman, Security-Assessment.com</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,d1f49c3b-5881-4efa-b142-652a5de9592e.aspx</guid>
      <link>http://pageofwords.com/blog/2009/07/13/OWASPNZExploitingFirefoxExtensionsRobertoSuggiLiveraniAmpNickFreemanSecurityAssessmentcom.aspx</link>
      <pubDate>Mon, 13 Jul 2009 02:19:53 GMT</pubDate>
      <description>&lt;p&gt;
Firefox extensions: They're just software, like ActiveX. Extend, modify and control
the browser.
&lt;/p&gt;
&lt;p&gt;
Firefox extension points:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
XUL: XML user interface language&lt;/li&gt;
&lt;li&gt;
XBL: XML Binding Language - logical behaviour of widgets&lt;/li&gt;
&lt;li&gt;
XPCOM: Reusable components, interface to file system etc.&lt;/li&gt;
&lt;li&gt;
XPConnect: Allows Javascript to connect to XPCOM&lt;/li&gt;
&lt;li&gt;
Chrome: Special browser zone that is fully trusted by firefox - code is fully trusted,
has access to filesystem, user passwords etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Mozilla security extension model is non-existent. All extensions are fully trusted
by Firefox - no boundaries between extensions, they can modify each other without
the user knowing. Can be coded in C++ and subject to memory corruption etc.
&lt;/p&gt;
&lt;p&gt;
Extensions are very popular (billion downloads) and can be found everywhere - social
networks, search engines, software packages (skype, anti-virus), anti-phishing toolbars.
&lt;/p&gt;
&lt;p&gt;
Biggest problem is the human side of things - Addins.mozilla.org recommend extensions
and add a 'recommended' icon next to them. Extension source code isn't read by third
parties (&lt;em&gt;"It's not the linux kernel"&lt;/em&gt;).
&lt;/p&gt;
&lt;p&gt;
There's no protection from an extension with a security problem, it will bypass any
other phishing / malware protection extensions.
&lt;/p&gt;
&lt;p&gt;
Extensions aren't signed (even the Mozilla ones), so we can't rely on people checking
signatures.
&lt;/p&gt;
&lt;p&gt;
If an extension is originally trusted, then subsequent updates won't go through the
same review process.
&lt;/p&gt;
&lt;p&gt;
No current guidelines for testing a Firefox extension, so security-assessement.com
havce come up with their own methodology (whitepaper to be released this year, early
next year):
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Isolated testing: Only test one extension at a time, on different OSes with different
Firefox versions.&lt;/li&gt;
&lt;li&gt;
Information gathering: How does the extension work, how is it installed? Look inside
the extension package (a zip file) and look for malicious files (e.g. .exe, .msi etc)&lt;/li&gt;
&lt;li&gt;
Look for XPInstall API functions that are dangerous (e.g. executing code on install)&lt;/li&gt;
&lt;li&gt;
Look for suspicious files in the extension folder (e.g. softlinks to other directories)&lt;/li&gt;
&lt;li&gt;
Look inside install.rdf - some tags can hide extensions so they don't appear in the
addon manager&lt;/li&gt;
&lt;li&gt;
Extensions can have the same description as other installed extensions, so two appear
in addon manager&lt;/li&gt;
&lt;li&gt;
Does the extension try to trick the user into thinking it's verified?&lt;/li&gt;
&lt;li&gt;
Look for pointers outside the extension, or flags that expose the extension object
or content to untrusted code (e.g. contentaccessible=yes or xpcnativewrappers=no)&lt;/li&gt;
&lt;li&gt;
Extensions can be merged into the firefox UI - e.g. top toolbar, bottom status bar.
They can also modify existing buttons e.g. Reload, Back, Forward or Home button.&lt;/li&gt;
&lt;li&gt;
Use the extension. Check the DOM of a test page with the extension loaded (they used
mozreply to do this)&lt;/li&gt;
&lt;li&gt;
Debugging: can set breakpoints using Javascript debugger.&lt;/li&gt;
&lt;li&gt;
Sandbox: can be sidestepped by replacing code inside the sandbox or evaluating it
from outside&lt;/li&gt;
&lt;li&gt;
XPCOM components: .dll or .so - compiled code that the extension may ship with, or
may use existing components on the machine. May need to review source code or decompile.
A bunch of components to watch out for.&lt;/li&gt;
&lt;li&gt;
wrappedJSObject: removes the protection of the XPComComponent, so they are avoiding
the firefox protection.&lt;/li&gt;
&lt;li&gt;
Watch out for callback functions, which may be replaced / modified&lt;/li&gt;
&lt;li&gt;
window.OpenDialog: Opens any URI with elevated chrome privileges&lt;/li&gt;
&lt;li&gt;
Auth: Some expose credentials in plain text, e.g. GET or basic auth&lt;/li&gt;
&lt;li&gt;
Auth: Some expose functionality via javascript that can side-step normal process&lt;/li&gt;
&lt;li&gt;
Skype extension - a javascript call that any web page can use to start dialing your
skype to any 
&lt;/li&gt;
&lt;li&gt;
XSS: Watch out for XSS issues - can execute in the chrome zone from DOM events, embedded
XSS, recursive iframes&lt;/li&gt;
&lt;li&gt;
XSS: Extensions loading external scripts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
They have applied their methodology to different extensions, and some responses have
been slow or non-existent!
&lt;/p&gt;
&lt;p&gt;
Here are some extensions that were demoed and had problems. They are all common or
Mozilla recommended (all these have been fixed):
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
FireFTP: Could include malicious code in the welcome method of an FTP server, and
the browser would execute it. Showed a proof of concept sending the contents of win.ini
to a different server, and using BeEf to control client.&lt;/li&gt;
&lt;li&gt;
CoolPreviews: Susceptible to XSS if a data:// URI is used. Showed a remote code execution
when right-clicking on a link and previewing it with CoolPreviews.&lt;/li&gt;
&lt;li&gt;
WizzRSS: HTML and Javascript in the &amp;lt;description&amp;gt; tag of RSS feeds is executed
in the chrome zone. Showed a reverse shell onto the Windows machine from a malicious
users machine.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Extension developers and vendors haven't got a security disclosure process yet - they
don't know how to deal with the issues yet. Some extensions don't even publish an
email address for the author.
&lt;/p&gt;
&lt;p&gt;
Tools:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Firebug&lt;/li&gt;
&lt;li&gt;
MozRepl&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.bindshell.net/tools/beef/"&gt;BeEf&lt;/a&gt; - command console for an attacker
to run script on the client computer.&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d1f49c3b-5881-4efa-b142-652a5de9592e" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,d1f49c3b-5881-4efa-b142-652a5de9592e.aspx</comments>
      <category>OWASP;Security;Web</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=e186d726-c16e-4399-b503-9321a8a0a515</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,e186d726-c16e-4399-b503-9321a8a0a515.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,e186d726-c16e-4399-b503-9321a8a0a515.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=e186d726-c16e-4399-b503-9321a8a0a515</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
With shift to web services, where we are relying on client to secure stuff, we have
to remember not to trust the client.
</p>
        <p>
Gave a methodology for testing web services:
</p>
        <ul>
          <li>
Service discovery:</li>
          <ul>
            <li>
Look for WSDL or similar files that contain service info, using search engines, site
spidering or looking at app behaviour</li>
          </ul>
          <li>
Method discovery:</li>
          <ul>
            <li>
Look inside the WSDL to see what methods are available, or if there isn't one, you
can brute force the webservice with common method names to find ones that exist.</li>
          </ul>
          <li>
OWASP top 10. These still all apply to web service calls, including:</li>
          <ul>
            <li>
Malicious file execution, insecure direct object reference, 
</li>
            <li>
CSRF with AJAX clients</li>
            <li>
Information leakage</li>
            <li>
Broken auth and session mgmt</li>
            <li>
Insecure crypto storage</li>
            <li>
Insecure communications - SSL is important</li>
            <li>
Failure to restrict URL access - protect admin etc web services from anonymous access</li>
          </ul>
          <li>
Web service specific tests:</li>
          <ul>
            <li>
XML issues (external entities, malformed XML, recursive XML, XML entity expansion,
XML attribute blowup, overlarge XML and CDATA injection)</li>
            <ul>
              <li>
Can find out details inside the secure network, and CSRF etc machines in there.</li>
            </ul>
            <li>
WS-Routing issues</li>
          </ul>
          <li>
WS-Security is not a panacea - secures the method integrity and confidentiality, but
doesn't stop bad stuff coming through.</li>
        </ul>
        <p>
Tools shown:
</p>
        <ul>
          <li>
            <a href="http://www.sift.com.au/73/171/sift-web-method-search-tool.htm">SIFT web method
search tool</a> - brute force the web service to find out which methods are supported.</li>
          <li>
            <a href="http://www.foundstone.com/us/resources/proddesc/wsdigger.htm">Foundstone
WS Digger</a> - automate attacks against web services (XSS, SQL, Xpath etc)</li>
          <li>
            <a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project">Webscarab</a> -
to modify XML posted to web services and try connecting to external entities</li>
        </ul>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=e186d726-c16e-4399-b503-9321a8a0a515" />
      </body>
      <title>OWASP NZ: Testing Web Services: Nick van Dadelszen, Lateral Security</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,e186d726-c16e-4399-b503-9321a8a0a515.aspx</guid>
      <link>http://pageofwords.com/blog/2009/07/12/OWASPNZTestingWebServicesNickVanDadelszenLateralSecurity.aspx</link>
      <pubDate>Sun, 12 Jul 2009 23:47:27 GMT</pubDate>
      <description>&lt;p&gt;
With shift to web services, where we are relying on client to secure stuff, we have
to remember not to trust the client.
&lt;/p&gt;
&lt;p&gt;
Gave a methodology for testing web services:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Service discovery:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
Look for WSDL or similar files that contain service info, using search engines, site
spidering or looking at app behaviour&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Method discovery:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
Look inside the WSDL to see what methods are available, or if there isn't one, you
can brute force the webservice with common method names to find ones that exist.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
OWASP top 10. These still all apply to web service calls, including:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
Malicious file execution, insecure direct object reference, 
&lt;/li&gt;
&lt;li&gt;
CSRF with AJAX clients&lt;/li&gt;
&lt;li&gt;
Information leakage&lt;/li&gt;
&lt;li&gt;
Broken auth and session mgmt&lt;/li&gt;
&lt;li&gt;
Insecure crypto storage&lt;/li&gt;
&lt;li&gt;
Insecure communications - SSL is important&lt;/li&gt;
&lt;li&gt;
Failure to restrict URL access - protect admin etc web services from anonymous access&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
Web service specific tests:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
XML issues (external entities, malformed XML, recursive XML, XML entity expansion,
XML attribute blowup, overlarge XML and CDATA injection)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
Can find out details inside the secure network, and CSRF etc machines in there.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
WS-Routing issues&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
WS-Security is not a panacea - secures the method integrity and confidentiality, but
doesn't stop bad stuff coming through.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Tools shown:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.sift.com.au/73/171/sift-web-method-search-tool.htm"&gt;SIFT web method
search tool&lt;/a&gt; - brute force the web service to find out which methods are supported.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.foundstone.com/us/resources/proddesc/wsdigger.htm"&gt;Foundstone
WS Digger&lt;/a&gt; - automate attacks against web services (XSS, SQL, Xpath etc)&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project"&gt;Webscarab&lt;/a&gt; -
to modify XML posted to web services and try connecting to external entities&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=e186d726-c16e-4399-b503-9321a8a0a515" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,e186d726-c16e-4399-b503-9321a8a0a515.aspx</comments>
      <category>OWASP;Security;Web</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=a86714d8-ff21-48c4-8ab8-6ddaf0929b4e</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,a86714d8-ff21-48c4-8ab8-6ddaf0929b4e.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,a86714d8-ff21-48c4-8ab8-6ddaf0929b4e.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=a86714d8-ff21-48c4-8ab8-6ddaf0929b4e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>If you don't own the 3 OWASP books, you've failed.</em>
        </p>
        <p>
We're still facing the same vulnerabilities we already have, because we are doing
something wrong. Maybe it's security professionals that are doing something wrong,
by not educating developers properly.
</p>
        <p>
Big security companies still having problems with their websites.
</p>
        <p>
Most vulnerabilities are well known.
</p>
        <p>
Security people don't write code. developers do. They don't "get" security:
</p>
        <ul>
          <li>
Don't fix the root cause 
</li>
          <li>
Don't understand the threat 
</li>
          <li>
Most have never seen a vulnerability exploited 
</li>
        </ul>
        <p>
Sitting down with developers and stepping them through a vulnerability helps show
them the light and they understand and think about vulnerabilities.
</p>
        <p>
Talk today designed to show developers exploits in action.
</p>
        <p>
Tools showed:
</p>
        <ul>
          <li>
            <a href="http://portswigger.net/proxy/">Burp</a> - proxy tool for intercepting requests 
</li>
          <li>
A custom sitemap tool that Insomnia uses 
</li>
          <li>
An MS-SQL Enumeration tool that takes a vulnerable url and pulls out all the DB info
using the master db to enumerate tables</li>
          <li>
            <a href="http://aspxspy.codeplex.com/">ASPX Spy</a> - if you can get this ASP.NET
file up on to a server and run, it provides a UI for playing around with the OS.</li>
          <li>
            <a href="http://sqlmap.sourceforge.net/">SQL Map</a> - an automatic SQL injection
tool - can enumerate the DB, even if the data is not displayed by inferring the state
of the db based on the page output. 
</li>
        </ul>
        <p>
Problems shown:
</p>
        <ul>
          <li>
Robots.txt is not a place to list parts of your site that you don't want people to
know about :) 
</li>
          <li>
Buying -1 quantity of a $1000 book leads to the users credit on the shopping site
increasing by $1000 :) 
</li>
          <li>
XML parsing vulnerability that allows external entities to be referenced in the XML
provided to a web service - which can pull the contents of a file off the server. 
</li>
          <li>
Query string parameters passed to the command interpreter, and used for file names. 
</li>
          <li>
PHP include let's you include PHP source from another web server (looks like you need
to <a href="http://us3.php.net/manual/en/function.include.php">disable URL fopen wrappers</a>). 
</li>
          <li>
Only securing GET requests to an admin directory. 
</li>
          <li>
Showed a fake version of the CCIP website with multiple problems.</li>
          <li>
Admin interface for a website is exposed to the internet. 
</li>
        </ul>
        <p>
Open questions:
</p>
        <ul>
          <li>
Who owns server configuration? Architects, developers, system administrators? If server
or framework config changes, then we're insecure.</li>
          <li>
Is it security professionals job to make sure problems are corrected?</li>
        </ul>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=a86714d8-ff21-48c4-8ab8-6ddaf0929b4e" />
      </body>
      <title>OWASP NZ: Vulnerabilities in Action: Brett Moore, Insomnia Security</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,a86714d8-ff21-48c4-8ab8-6ddaf0929b4e.aspx</guid>
      <link>http://pageofwords.com/blog/2009/07/12/OWASPNZVulnerabilitiesInActionBrettMooreInsomniaSecurity.aspx</link>
      <pubDate>Sun, 12 Jul 2009 22:37:46 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;If you don't own the 3 OWASP books, you've failed.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
We're still facing the same vulnerabilities we already have, because we are doing
something wrong. Maybe it's security professionals that are doing something wrong,
by not educating developers properly.
&lt;/p&gt;
&lt;p&gt;
Big security companies still having problems with their websites.
&lt;/p&gt;
&lt;p&gt;
Most vulnerabilities are well known.
&lt;/p&gt;
&lt;p&gt;
Security people don't write code. developers do. They don't "get" security:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Don't fix the root cause 
&lt;/li&gt;
&lt;li&gt;
Don't understand the threat 
&lt;/li&gt;
&lt;li&gt;
Most have never seen a vulnerability exploited 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Sitting down with developers and stepping them through a vulnerability helps show
them the light and they understand and think about vulnerabilities.
&lt;/p&gt;
&lt;p&gt;
Talk today designed to show developers exploits in action.
&lt;/p&gt;
&lt;p&gt;
Tools showed:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://portswigger.net/proxy/"&gt;Burp&lt;/a&gt; - proxy tool for intercepting requests 
&lt;/li&gt;
&lt;li&gt;
A custom sitemap tool that Insomnia uses 
&lt;/li&gt;
&lt;li&gt;
An MS-SQL Enumeration tool that takes a vulnerable url and pulls out all the DB info
using the master db to enumerate tables&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://aspxspy.codeplex.com/"&gt;ASPX Spy&lt;/a&gt; - if you can get this ASP.NET
file up on to a server and run, it provides a UI for playing around with the OS.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://sqlmap.sourceforge.net/"&gt;SQL Map&lt;/a&gt; - an automatic SQL injection
tool - can enumerate the DB, even if the data is not displayed by inferring the state
of the db based on the page output. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Problems shown:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Robots.txt is not a place to list parts of your site that you don't want people to
know about :) 
&lt;/li&gt;
&lt;li&gt;
Buying -1 quantity of a $1000 book leads to the users credit on the shopping site
increasing by $1000 :) 
&lt;/li&gt;
&lt;li&gt;
XML parsing vulnerability that allows external entities to be referenced in the XML
provided to a web service - which can pull the contents of a file off the server. 
&lt;/li&gt;
&lt;li&gt;
Query string parameters passed to the command interpreter, and used for file names. 
&lt;/li&gt;
&lt;li&gt;
PHP include let's you include PHP source from another web server (looks like you need
to &lt;a href="http://us3.php.net/manual/en/function.include.php"&gt;disable URL fopen wrappers&lt;/a&gt;). 
&lt;/li&gt;
&lt;li&gt;
Only securing GET requests to an admin directory. 
&lt;/li&gt;
&lt;li&gt;
Showed a fake version of the CCIP website with multiple problems.&lt;/li&gt;
&lt;li&gt;
Admin interface for a website is exposed to the internet. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Open questions:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Who owns server configuration? Architects, developers, system administrators? If server
or framework config changes, then we're insecure.&lt;/li&gt;
&lt;li&gt;
Is it security professionals job to make sure problems are corrected?&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=a86714d8-ff21-48c4-8ab8-6ddaf0929b4e" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,a86714d8-ff21-48c4-8ab8-6ddaf0929b4e.aspx</comments>
      <category>OWASP;Security;Web</category>
    </item>
    <item>
      <trackback:ping>http://pageofwords.com/blog/Trackback.aspx?guid=d09742c2-7e46-463c-9712-a5118698f486</trackback:ping>
      <pingback:server>http://pageofwords.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://pageofwords.com/blog/PermaLink,guid,d09742c2-7e46-463c-9712-a5118698f486.aspx</pingback:target>
      <dc:creator>Kirk Jackson</dc:creator>
      <wfw:comment>http://pageofwords.com/blog/CommentView,guid,d09742c2-7e46-463c-9712-a5118698f486.aspx</wfw:comment>
      <wfw:commentRss>http://pageofwords.com/blog/SyndicationService.asmx/GetEntryCommentsRss?guid=d09742c2-7e46-463c-9712-a5118698f486</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Paul raised the question: "Is internet security getting better or worse?"
</p>
        <p>
By 2004 we had bought lots of security products, and now only port 80 is the only
open port (default DENY). Hackers started hacking web apps instead.
</p>
        <p>
Classic ASP was easy to hack. until in 2005 when vendors started releasing safer technology
frameworks (2005? We were using it in 2002)
</p>
        <p>
Note: ASP.NET doesn't have XSS protection built in, unless you leave ValidateRequest
on (which no-one does), as controls only sporadically escape their output.
</p>
        <p>
Paul looked at Security-Assessment's old pen-test projects and compared their vulnerabilities
to those run recently.
</p>
        <p>
          <em>"In 2003-2005, web application developers were F$%^&amp;* bad"</em>
        </p>
        <p>
"<em>Developers fail at anything to do with files"</em></p>
        <p>
But the situations hasn't got much better lately. Admin sections are still accessible,
SQL injection still found, but less common, file uploads allowing directory traversal.
</p>
        <p>
When developers use framework security controls, they're okay. If they use custom
security code, they mess it up.
</p>
        <p>
          <em>"Less vulnerabilities in 2009 resulted in a shell"</em>
        </p>
        <p>
          <em>"Security only works flawlessly when it's already implemented in the framework"</em> -
when developers build their own code, they normally mess it up.
</p>
        <p>
          <strong>Summary: The internet is getting more secure, but we're not there yet! Only
need one bug to get in to a system.</strong>
        </p>
        <img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d09742c2-7e46-463c-9712-a5118698f486" />
      </body>
      <title>OWASP NZ: Insecurity and the Internet: Paul Craig &amp;ndash; Security-Assessment.com</title>
      <guid isPermaLink="false">http://pageofwords.com/blog/PermaLink,guid,d09742c2-7e46-463c-9712-a5118698f486.aspx</guid>
      <link>http://pageofwords.com/blog/2009/07/12/OWASPNZInsecurityAndTheInternetPaulCraigNdashSecurityAssessmentcom.aspx</link>
      <pubDate>Sun, 12 Jul 2009 21:44:40 GMT</pubDate>
      <description>&lt;p&gt;
Paul raised the question: "Is internet security getting better or worse?"
&lt;/p&gt;
&lt;p&gt;
By 2004 we had bought lots of security products, and now only port 80 is the only
open port (default DENY). Hackers started hacking web apps instead.
&lt;/p&gt;
&lt;p&gt;
Classic ASP was easy to hack. until in 2005 when vendors started releasing safer technology
frameworks (2005? We were using it in 2002)
&lt;/p&gt;
&lt;p&gt;
Note: ASP.NET doesn't have XSS protection built in, unless you leave ValidateRequest
on (which no-one does), as controls only sporadically escape their output.
&lt;/p&gt;
&lt;p&gt;
Paul looked at Security-Assessment's old pen-test projects and compared their vulnerabilities
to those run recently.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"In 2003-2005, web application developers were F$%^&amp;amp;* bad"&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
"&lt;em&gt;Developers fail at anything to do with files"&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
But the situations hasn't got much better lately. Admin sections are still accessible,
SQL injection still found, but less common, file uploads allowing directory traversal.
&lt;/p&gt;
&lt;p&gt;
When developers use framework security controls, they're okay. If they use custom
security code, they mess it up.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"Less vulnerabilities in 2009 resulted in a shell"&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;"Security only works flawlessly when it's already implemented in the framework"&lt;/em&gt; -
when developers build their own code, they normally mess it up.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Summary: The internet is getting more secure, but we're not there yet! Only
need one bug to get in to a system.&lt;/strong&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://pageofwords.com/blog/aggbug.ashx?id=d09742c2-7e46-463c-9712-a5118698f486" /&gt;</description>
      <comments>http://pageofwords.com/blog/CommentView,guid,d09742c2-7e46-463c-9712-a5118698f486.aspx</comments>
      <category>OWASP;Security;Web</category>
    </item>
  </channel>
</rss>