<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.2.3" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>tssci security</title>
	<link>http://www.tssci-security.com</link>
	<description>top secret/secure computing information</description>
	<pubDate>Mon, 13 Jul 2009 07:47:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/tssci" type="application/rss+xml" /><feedburner:emailServiceId>tssci</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Virtual appliances for the security professional</title>
		<link>http://feedproxy.google.com/~r/tssci/~3/szQaTulO43k/</link>
		<comments>http://www.tssci-security.com/archives/2009/03/18/virtual-appliances-for-the-security-professional/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 23:35:56 +0000</pubDate>
		<dc:creator>dre</dc:creator>
		
		<category><![CDATA[Hacking]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[Defense]]></category>

		<guid isPermaLink="false">http://www.tssci-security.com/archives/2009/03/18/virtual-appliances-for-the-security-professional/</guid>
		<description><![CDATA[Virtual Infrastructure Security Facts

The number of virtual servers will rise to more than 1.7 million physical servers by 2010, resulting in 7.9 million logical servers.  Virtualized servers will represent 14.6% of all physical servers in 2010 compared to just 4.5% in 2005 (IDC)
60% of production virtual machines will be less secure than their physical counterparts [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Virtual Infrastructure Security Facts</strong></p>
<ul>
<li>The number of virtual servers will rise to more than 1.7 million physical servers by 2010, resulting in 7.9 million logical servers.  Virtualized servers will represent 14.6% of all physical servers in 2010 compared to just 4.5% in 2005 (IDC)</li>
<li><strong>60% of production virtual machines will be less secure</strong> than their physical counterparts through to 2009 (Gartner)</li>
<li>More than 75% of respondents cited reducing infrastructure hardware and software costs as the critical driver in data center planning (Ziff Davis)</li>
<li>Overall virtualization market has grown from approximately $560 million in 2005 to a forecasted $2.7 billion in 2009 (IDC)</li>
<li>10% of servers will be virtual by 2009, 60% by 2013 (Gartner)</li>
<li><strong>Fewer than 10%</strong> of organizations <strong>are doing anything</strong> special <strong>for virtualization security</strong> (Ziff Davis)</li>
</ul>
<p>Virtual Appliances (VAs) have several advantages over Live CD distributions.  They are easier to enable persistence and customize (especially for real performance in a VM, instead of via a bootable ISO).  It&#8217;s easier to take snapshots that represent a &#8220;point-in-time&#8221; to rollback configurations &#8212; or prevent security scanners from running into loop or crash conditions.  Cloning and templating can have significant advantages in terms of agility for testing and scaling architectures, in addition to aiding changes and repair processes.</p>
<p>Microsoft (including the <strong>free </strong>Hyper-V Server) and VMware (including the <strong>free</strong> ESXi) are the major players for hardware-VMM server virtualization, with the FOSS project, Xen, being prominent in some other product implementations.</p>
<p>Both VMware and Microsoft have their own disk formats for importing VMs (aka &#8220;Guests&#8221;) on to their Hosts (aka Hypervisor or Virtual Machine Monitor &#8212; VMM).  There is also a third, open format called OVF (or <a href="http://en.wikipedia.org/wiki/Open_Virtualization_Format" onclick="javascript:urchinTracker ('/outbound/article/en.wikipedia.org');">Open Virtualization Format</a>).</p>
<ol>
<li>Microsoft: VHD (Virtual Hard Disk)</li>
<li>VMware: vmdk (virtual machine disk)</li>
<li>Open Virtualization Format: ovf</li>
</ol>
<p>Sometimes, one-off scenarios will utilize tar, zip, or rar files to distribute VMs or encapsulated VMs, but this is becoming more and more rare.</p>
<p><strong>Virtual Appliances</strong></p>
<p>A Virtual Appliances is a pre-packaged VM.  Normally, a VM is just like a new machine &#8212; no OS, no nothing.  Virtual Appliances come with stuff, and usually only require booting into a DHCP-enabled network, where they self-configure themselves and become available via a web interface for further interaction.</p>
<p>You can find VAs at the following sources:</p>
<ul>
<li>VMware &#8212; <a href="http://www.vmware.com/appliances/" onclick="javascript:urchinTracker ('/outbound/article/www.vmware.com');">http://www.vmware.com/appliances/</a> <a href="http://www.vmware.com/appliances/partner/" onclick="javascript:urchinTracker ('/outbound/article/www.vmware.com');">http://www.vmware.com/appliances/partner/</a></li>
<li>Microsoft &#8212; <a href="http://technet.microsoft.com/en-us/bb738373.aspx" onclick="javascript:urchinTracker ('/outbound/article/technet.microsoft.com');">VHD Test Drive Program</a>, <a href="http://www.microsoft.com/windowsserversystem/virtualserver/partners/vhdpartners.mspx" onclick="javascript:urchinTracker ('/outbound/article/www.microsoft.com');">VHD Partners</a>, <a href="http://technet.microsoft.com/en-us/bb738372.aspx" onclick="javascript:urchinTracker ('/outbound/article/technet.microsoft.com');">VHDs by Product</a></li>
</ul>
<p>For those of you still using the outdated OSI model (i.e. you stupid network security geeks, j/k ;&gt; ), here is a general layout of what is available for you:</p>
<ul>
<li>Layer 7 &#8211;<a href="http://www.vmware.com/appliances/directory/1320" onclick="javascript:urchinTracker ('/outbound/article/www.vmware.com');"> Stonegate Virtual IPS</a></li>
<li>Layers 5&amp;6 &#8212; <a href="http://www.checkpoint.com/products/vpn-1_ve/index.html" onclick="javascript:urchinTracker ('/outbound/article/www.checkpoint.com');">Checkpoint VPN-1 Virtual Edition </a></li>
<li>Layer 4 &#8212; <a href="http://www.vmware.com/appliances/directory/150" onclick="javascript:urchinTracker ('/outbound/article/www.vmware.com');">X-m0n0wall</a></li>
<li>Layer 3 &#8212; <a href="http://www.vyatta.org/documentation/" onclick="javascript:urchinTracker ('/outbound/article/www.vyatta.org');">Vyatta Community Edition 5</a></li>
<li>Layer 2 &#8212; <a href="http://www.honeynet.org.pt/index.php/HoneyMole" onclick="javascript:urchinTracker ('/outbound/article/www.honeynet.org.pt');">HoneyMole</a></li>
</ul>
<p>Certainly, if you haven&#8217;t read or seen Chris Hoff&#8217;s various recent presentations, then you&#8217;re going to screw this up.  However, anyone with even a few weeks of virtual infrastructure experience will understand the application of the above VAs in a virtual infrastructure environment.</p>
<p>VMware is very useful for fuzz testing (as seen with <a href="http://www.fuzzing.org/category/sulley/" onclick="javascript:urchinTracker ('/outbound/article/www.fuzzing.org');">Sulley</a> and other frameworks which include interfaces to VMware monitors), and full-state or kernel debugging (as seen with <a href="http://www.sysersoft.com" onclick="javascript:urchinTracker ('/outbound/article/www.sysersoft.com');">Syser</a>, the replacement to the classic SoftICE), but this is more often for the VMware Server/Workstation products, not their Virtual Infrastructure products (i.e. ESX, ESXi, Virtual Center, <a href="http://www.vmware.com/download/download.do?downloadGroup=VCVA-BETA" onclick="javascript:urchinTracker ('/outbound/article/www.vmware.com');">vCenter Server</a>, and vSphere).</p>
<p>Many ISOs are moving to VAs.</p>
<p>Many demo-ware and software evaluations are moving from standalone installs directly to VAs (i.e. demo the new app on the new OS at the same time!).</p>
<p>Take these examples outlined in the next sections for a test drive.</p>
<p><strong>Pen-test VAs</strong></p>
<p>Would it be nice if you could setup a perfect pen-test environment, save it, and then clone it a bunch of times in order to tweak one specific thing and then run all your tests in parallel (say, with different credentials).  Well this is exactly what Pen-test VAs are going to allow you to do.  One machine: 4 web application security scanners.</p>
<p>Or better &#8212; run DRS (VMware&#8217;s Distributed Resource Schedule), which will automatically move VMs around contended Host resources.  Say you have four physical machines, all with a dual-core 2.2GHz proc and 3GB of memory.  Now say that you&#8217;re scanning some client machines in far away places (with constant ISP bandwidth churn on both ends &#8212; and in between).  Let&#8217;s pretend you have this setup:</p>
<ul>
<li>IBM AppScan running default-mode with regular user credentials</li>
<li>Acunetix WVS with AcuSensor tweaked specifically to the app using (at the very least) the web configuration files and structural layout.  One of your co-workers is changing the configuration as he/she learns more about the app from the client and working with the Acunetix support team</li>
<li>WebInspect running in four more VMs, two with admin rights &#8212; two others with user rights.  They&#8217;re setup to do parameter tampering and see if they can pollute access controls from admin to admin, user to user, or any combination</li>
</ul>
<p>If any of you know what CloudAV is&#8230; think what CloudWASS would look like.  I call it &#8220;WhiteRockSec&#8221;, which is&#8230; &#8220;like WhiteHatSec, but on Crack&#8221;.</p>
<p>Of course nobody has built these VAs yet.  In the meantime, you can use these two VAs to accomplish something similar:</p>
<ol>
<li><a href="http://www.vmware.com/appliances/directory/73789/" onclick="javascript:urchinTracker ('/outbound/article/www.vmware.com');">OWASP Live CD</a> VA</li>
<li>InGuardians <a href="http://www.vmware.com/appliances/directory/node/73043/" onclick="javascript:urchinTracker ('/outbound/article/www.vmware.com');">Samurai Web Testing Framework</a></li>
</ol>
<p><strong>WAF VAs or as I like to call them: VA+WAF</strong></p>
<p>VA+WAF is a Virtual Appliance that includes a WAF.  To those of you who don&#8217;t love my humor, you&#8217;re bound to definitely hate me for flipping the script on this marketing terminology.</p>
<p>Because network vendors (F5, Citrix, Breach, Cisco, Barracuda, Imperva, et al) really like to sell expensive appliances, it&#8217;s likely that they aren&#8217;t too keen on the idea of selling a software-based VA that is equivalent to their mind like an ISO (anyone remember the presentation on how to reverse-ISO a Netscreen IDP onto cheap PC hardware?). So you don&#8217;t see too many of these around yet.</p>
<p>I did happen to find these two though:</p>
<ol>
<li>Microsoft <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=558b262b-f953-435c-a255-53e9d450527d" onclick="javascript:urchinTracker ('/outbound/article/www.microsoft.com');">IAG 2007 Virtual Machine Trial </a></li>
<li><a href="http://www.vmware.com/appliances/directory/393/" onclick="javascript:urchinTracker ('/outbound/article/www.vmware.com');">Security Enhanced Web Application Server</a> with mod-security</li>
</ol>
<p><strong>AppDev/AppSec VAs</strong></p>
<p>Again, there really isn&#8217;t much here yet.</p>
<p>Microsoft has:</p>
<ol>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=9eb65c97-29c9-4d05-ae45-73d22ad4b86e" onclick="javascript:urchinTracker ('/outbound/article/www.microsoft.com');">Visual Studio Team System 2008 VSTS Hyper-V Image (Trial)</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=39644cdd-db4d-445e-b087-dd3e3cdf03fb" onclick="javascript:urchinTracker ('/outbound/article/www.microsoft.com');">Visual Studio Team System 2008 TFS Hyper-V Image (Trial)</a></li>
<li><a href="http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=922b4655-93d0-4476-bda4-94cf5f8d4814&amp;displaylang=en" onclick="javascript:urchinTracker ('/outbound/article/www.microsoft.com');">Microsoft Pre-release Software Visual Studio 2010 and .NET Framework 4.0 Community Technology Preview (CTP)</a></li>
</ol>
<p>Note well that the last link above, for the VSTS 2010 pre-release, has the VA in &#8220;vmc&#8221; format.  &#8220;vmc format&#8221; was from Microsoft&#8217;s older product.  Searching the Microsoft Download Center for vmc or vhd both have great results, but hopefully Microsoft will standardize on VHD or OVF.  For now, you can convert in many ways &#8212; including the latest tool from Microsoft, the <a href="http://technet.microsoft.com/en-us/magazine/2009.03.utilityspotlight.aspx" onclick="javascript:urchinTracker ('/outbound/article/technet.microsoft.com');">VMC to Hyper-V Import Tool</a>.</p>
<p>Integrating AppSec with the above VSTS and TFS tools is relatively easy.  For those not familiar with FxCop, StyleCop, and CAT.NET &#8212; you certainly should be.  TFS has some great built-ins for Governance that apply equally well between quality and security.  The <a href="http://blogs.msdn.com/teams_wit_tools/" onclick="javascript:urchinTracker ('/outbound/article/blogs.msdn.com');">TFS Team Blog</a> has some decent postings on topic, not directly to security yet (but probably in the future).  I&#8217;m working on additional ideas, heavily borrowed from the <a href="http://msdn.microsoft.com/en-us/teamsystem/aa718795.aspx" onclick="javascript:urchinTracker ('/outbound/article/msdn.microsoft.com');">Microsoft Process Templates and Tools</a> development center &#8212; and from watching <a href="http://blogs.infragistics.com/blogs/ed_blankenship/archive/2009/02/27/microsoft-process-template.aspx" onclick="javascript:urchinTracker ('/outbound/article/blogs.infragistics.com');">how Microsoft uses TFS</a> with their new <a href="http://mpt.codeplex.com/" onclick="javascript:urchinTracker ('/outbound/article/mpt.codeplex.com');">MPT toolkit</a>.</p>
<p>Security folk such as myself might want to just load Source Insight (or the Microsoft Express Editions) along with using the command-line CAT.NET or possibly SharpDevelop until Ounce O2 is widely available.</p>
<p>For Java, you can search the VMware Appliance Directory, but I found nothing useful.  Currently, the easiest and cheapest way to get JEE AppDev/AppSec going is to use <a href="http://www.easyeclipse.org/site/plugins/" onclick="javascript:urchinTracker ('/outbound/article/www.easyeclipse.org');">EasyEclipse</a>.   There is a commercial equivalent called Yoxos that also sounds very promising.  I think most of us would be flying blind without a few Eclipse plugins such as Classlocator, Jupiter, Flow4J, IvyDE, FindBugs, and PMD.  Build server ISOs such as <a href="http://buildix.thoughtworks.com/" onclick="javascript:urchinTracker ('/outbound/article/buildix.thoughtworks.com');">Buildix</a> would be wonderful to turn into a VA.</p>
<p>Again, us security folk would probably stick to Source Insight and/or SciTE along with the command-line versions of FindBugs and PMD.  Static analysis tools are slowly turning to be out of vogue these days&#8230; so YMMV.</p>
<p><strong>Summary</strong></p>
<p>Learning Virtual Infrastructure is going to take some time, but the payoff is worth it.  In no time, you&#8217;ll be turning your minimally-equipped Security Operations Center or appsec group into a real infrastructure to fear.</p>
<p>Download the hardware-VMMs to &#8220;whitebox supported&#8221; hardware (note: this doesn&#8217;t always have to be on an &#8220;official list&#8221; from the vendor).   Try both the evaluation versions (Microsoft Windows Server 2008 R2 Beta with Hyper-V Role enabled ; VMware ESX and vCenter Server VA) and the free ones (Microsoft Hyper-V Server 2008 R2 Beta ; VMware ESXi).  Download a few VAs in various formats and learn how to import and start them.  You&#8217;re on your way!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/tssci?a=szQaTulO43k:YNz-VG20VWw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/tssci?i=szQaTulO43k:YNz-VG20VWw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tssci?a=szQaTulO43k:YNz-VG20VWw:ACf-c_HutVc"><img src="http://feeds.feedburner.com/~ff/tssci?d=ACf-c_HutVc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tssci?a=szQaTulO43k:YNz-VG20VWw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/tssci?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tssci?a=szQaTulO43k:YNz-VG20VWw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/tssci?i=szQaTulO43k:YNz-VG20VWw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tssci?a=szQaTulO43k:YNz-VG20VWw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/tssci?i=szQaTulO43k:YNz-VG20VWw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tssci?a=szQaTulO43k:YNz-VG20VWw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/tssci?i=szQaTulO43k:YNz-VG20VWw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/tssci?a=szQaTulO43k:YNz-VG20VWw:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/tssci?d=cGdyc7Q-1BI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tssci/~4/szQaTulO43k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tssci-security.com/archives/2009/03/18/virtual-appliances-for-the-security-professional/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tssci-security.com/archives/2009/03/18/virtual-appliances-for-the-security-professional/</feedburner:origLink></item>
		<item>
		<title>Web application security incident handling</title>
		<link>http://feedproxy.google.com/~r/tssci/~3/BsRR87L3oj8/</link>
		<comments>http://www.tssci-security.com/archives/2009/02/23/web-application-security-incident-handling/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 01:32:44 +0000</pubDate>
		<dc:creator>Marcin</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.tssci-security.com/archives/2009/02/23/web-application-security-incident-handling/</guid>
		<description><![CDATA[I thought I&#8217;d take a moment to post about some web security tools I use pretty often, which help as a security consultant when responding to various web hacking related incidents.  These tools have helped me write my own scripts whenever I&#8217;m in a jam and need something good and quick to do the [...]]]></description>
			<content:encoded><![CDATA[<p>I thought I&#8217;d take a moment to post about some web security tools I use pretty often, which help as a security consultant when responding to various web hacking related incidents.  These tools have helped me write my own scripts whenever I&#8217;m in a jam and need something good and quick to do the job.</p>
<p><strong>Application Log File Forensics: The Hard Way</strong></p>
<p>The first thing a security professional or administrator usually think of when handling an application security incident is to check the logs for the applications, databases, and other application-tiers involved.  Often, these logs are either on the servers that run the applications themselves, or possibly in a central logging location.  If a certain attacker tool can be identified from the log files (or other sources such as full packet-capture), then it may be of interest to run that exact same tool against your own application-under-target (preferably in a mocked-up lab or test environment, if it mirrors production well enough).</p>
<p>The most popular web servers, Apache httpd and Microsoft IIS, do create local log files by default.  According to most compliance regulations and standards (e.g. COBIT, HIPAA, GLB, PCI-DSS, FISMA, EU Directive on Privacy and Electronic Communications, ISO 17799/27002, CA SB1386 and similar), logging must be centrally located, or may have other required provisions.  This may include application-layer information, such as the log information from Apache and IIS.  It may be very likely that your organization already has centralized logging where this information is available.</p>
<p>If centralized logging does not exist, it may be a good time to start up a project to enable it.  <a href="http://isbn.nu/0596529945" onclick="javascript:urchinTracker ('/outbound/article/isbn.nu');">The Apache Cookbook, 2E</a>, is the best place to go in order to configure httpd to start sending syslog information.   It&#8217;s about as simple to add &#8220;ErrorLog syslog:user&#8221; into the httpd.conf file, but this only logs error messages, not authentication/access_log messages.  The book gives two prescriptions, one using &#8220;AccessLog &#8220;|/usr/bin/logger&#8221; combined&#8221; if your OS supports the logger command properly.  The other is to run a custom log message through a Perl script, as seen below:</p>
<p><code>CustomLog |/usr/local/apache/bin/apache_syslog combined</code><br />
<code>cat &gt; apache_syslog<br />
#!/usr/bin/perl<br />
use Sys::Syslog qw( :DEFAULT setlogsock );<br />
setlogsock(&#39;unix&#39;);<br />
openlog(&#39;apache&#39;, &#39;cons&#39;, &#39;pid&#39;, &#39;user&#39;);<br />
while ($log = &lt;STDIN&gt;) {<br />
syslog(&#39;notice&#39;, $log);<br />
}<br />
closelog;</code></p>
<p>Microsoft IIS will need to go through the Event Log, which can be converted to syslog messages using a third-party software package such as <a href="http://www.intersectalliance.com/projects/SnareWindows/" onclick="javascript:urchinTracker ('/outbound/article/www.intersectalliance.com');">Snare</a> or <a href="http://www.mwagent.com/" onclick="javascript:urchinTracker ('/outbound/article/www.mwagent.com');">MonitorWare Agent</a>.  If IIS logs can also be converted to w3c standard log format, then Apache log analyzer tools such as <a href="http://awstats.org/" onclick="javascript:urchinTracker ('/outbound/article/awstats.org');">AWStats</a> could also be used.  W3C also has their own log analysis tool that also does HTML validation, called the <a href="http://www.w3.org/QA/Tools/LogValidator/" onclick="javascript:urchinTracker ('/outbound/article/www.w3.org');">Log Validator</a>.  These may be useful to run following your own scan of the application using the same or <a href="http://blog.tenablesecurity.com/2008/01/looking-for-web.html" onclick="javascript:urchinTracker ('/outbound/article/blog.tenablesecurity.com');">similar attacker tool</a>, as they will not only point out where in your application the scan/tool covered, but also where you may have the most errors or lack of quality/security controls.</p>
<p>The book <a href="http://isbn.nu/9780596518165" onclick="javascript:urchinTracker ('/outbound/article/isbn.nu');">Practical Information Security Monitoring</a> also makes some suggestions for log collections, including the use of <a href="http://sawmill.net" onclick="javascript:urchinTracker ('/outbound/article/sawmill.net');">Sawmill</a> or <a href="http://www.splunk.com/" onclick="javascript:urchinTracker ('/outbound/article/www.splunk.com');">Splunk</a> to sort/search log messages and gain further information and detail.  There may also be further adjustments you will want to do at the application (or other tier) layer, such as logging POST data.  We discussed logging HTTP referrers on our old post: <a href="http://www.tssci-security.com/archives/2007/09/12/using-google-analytics-to-subvert-privacy/" >Using Google Analytics to Subvert Privacy</a>.  <em>Practical Information Security Monitoring</em> talks about Oracle audit logging, but there is also a detailed article on Pete Finnigan&#8217;s blog on <a href="http://www.petefinnigan.com/weblog/archives/00001021.htm" onclick="javascript:urchinTracker ('/outbound/article/www.petefinnigan.com');">Oracle forensics and UKOUG</a>.  At the recent BlackHat DC conference, David Litchfield gave a talk on <a href="http://www.blackhat.com/html/bh-dc-09/bh-dc-09-archives.html#Litchfield" onclick="javascript:urchinTracker ('/outbound/article/www.blackhat.com');">The Forensic Investigation of a Compromised Oracle Database Server</a>, which may also be of interest (once the slides are available).  There are also some new books coming out on the topic of Oracle Forensics in the next few months / year.</p>
<p><strong>Web Application Incident Handling: The Easy Way </strong></p>
<p>Most of the logfile &#8220;digging&#8221; takes time, even when consolidated and using expert tools and analysis.  There are some very easy approaches that we&#8217;ve come up with, or seen others using and talking about.  These tools integrate well at the HTML and Script layers.</p>
<p>Over a year ago, Mario Heiderich started the <a href="http://php-ids.org/" onclick="javascript:urchinTracker ('/outbound/article/php-ids.org');">PHP-IDS project</a>, as a way to build protection and monitoring capabilities into PHP applications.  Several side projects spurred up as a direct result of the incredible work that was put into PHP-IDS, mainly its <a href="https://svn.php-ids.org/svn/trunk/lib/IDS/default_filter.xml" onclick="javascript:urchinTracker ('/outbound/article/svn.php-ids.org');">default_filter.xml regular expressions</a>.  This XML file of regular expressions provides capabilities to detect a vast range of attacks, including XSS, CSRF, SQL Injection, Directory Traversal, Local/Remote File Execution, DoS, and Information Disclosure.  Part of the success behind the PHP-IDS project, was the constant testing and attacking of PHP-IDS regex filters, which can be reviewed extensively in this <a href="http://sla.ckers.org/forum/read.php?12,8085" onclick="javascript:urchinTracker ('/outbound/article/sla.ckers.org');">sla.ckers.org thread</a>.  More info on PHP-IDS can be found in the <a href="http://php-ids.org/faq/" onclick="javascript:urchinTracker ('/outbound/article/php-ids.org');">PHP-IDS FAQ</a>.</p>
<p>Romain Gaucher, wrote <a href="http://rgaucher.info/post/2008/07/18/Scalp%3A-apache-log-based-attack-analyzer-using" onclick="javascript:urchinTracker ('/outbound/article/rgaucher.info');">Scalp</a>, an Apache log analyzer in Python, which leverages PHP-IDS&#8217; default_filter.xml to detect attack strings in logs.  I&#8217;ve used Scalp on numerous occasions, including a recent attack attempt on tssci-security.com.  By nature, Scalp cannot examine POST content because Apache logs do not contain POST data.  (See PHP-IDS or mod_security for those purposes)</p>
<p>Simply use Scalp by running it as follows (keep in mind there may be false positives with regards to the attack type, though it is very good at pulling attack queries from the log):</p>
<p><code>./scalp.py --log access_log --filters ./default_filter.xml --html --tough --exhaustive</code></p>
<p><a href="http://i8jesus.com/?p=33" onclick="javascript:urchinTracker ('/outbound/article/i8jesus.com');">Arshan Dabirsiaghi</a> recently released <a href="https://www.owasp.org/index.php/Category:OWASP_Scrubbr" onclick="javascript:urchinTracker ('/outbound/article/www.owasp.org');">OWASP Scrubbr</a>.  Scrubbr works by detecting input data in a specified database that does not match up with a specified AntiSamy policy file.  Because Scrubbr uses an AntiSamy policy to validate data, does not mean it necessarily detects XSS in your database.  Note, one does not require AntiSamy to be implemented in an application to use Scrubbr.  Using Scrubbr, you have the capability of validating each and every column capable of holding strings of every row of every table in a database.</p>
<p>Together, Scalp and Scrubbr make for excellent web application security forensic tools.  Scalp can help detect attacks in Apache logs, and Scrubbr can help you clean your database of content that does not match your site&#8217;s policy.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/tssci?a=Ymdr8c0u"><img src="http://feeds.feedburner.com/~f/tssci?i=Ymdr8c0u" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=SZksmR7c"><img src="http://feeds.feedburner.com/~f/tssci?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=0sEl7rq1"><img src="http://feeds.feedburner.com/~f/tssci?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=Nei2O4uI"><img src="http://feeds.feedburner.com/~f/tssci?i=Nei2O4uI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=w39r1WEW"><img src="http://feeds.feedburner.com/~f/tssci?i=w39r1WEW" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=qM5SlsEJ"><img src="http://feeds.feedburner.com/~f/tssci?i=qM5SlsEJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=xeoWLymk"><img src="http://feeds.feedburner.com/~f/tssci?d=131" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tssci/~4/BsRR87L3oj8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tssci-security.com/archives/2009/02/23/web-application-security-incident-handling/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tssci-security.com/archives/2009/02/23/web-application-security-incident-handling/</feedburner:origLink></item>
		<item>
		<title>Post to webappsec mailing-list on WAF and pen-test: dead again</title>
		<link>http://feedproxy.google.com/~r/tssci/~3/wIXLLoeiDXU/</link>
		<comments>http://www.tssci-security.com/archives/2009/02/12/post-to-webappsec-mailing-list-on-waf-and-pen-test-dead-again/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 02:51:24 +0000</pubDate>
		<dc:creator>dre</dc:creator>
		
		<category><![CDATA[Politics]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[Defense]]></category>

		<guid isPermaLink="false">http://www.tssci-security.com/archives/2009/02/12/post-to-webappsec-mailing-list-on-waf-and-pen-test-dead-again/</guid>
		<description><![CDATA[There is no doubt in my mind that some very strong experts out there have put WAF or WAF-like technology to good use.  However, WAF is dead and dying regardless.
I think that very large-installation, Internet-facing web applications require Anti-DDoS technology in the form of an appliance, preferably one that does rate-based behavior detection.  I often [...]]]></description>
			<content:encoded><![CDATA[<p>There is no doubt in my mind that some very strong experts out there have put WAF or WAF-like technology to good use.  However, WAF is dead and dying regardless.</p>
<p>I think that very large-installation, Internet-facing web applications require Anti-DDoS technology in the form of an appliance, preferably one that does rate-based behavior detection.  I often feel that those same organizations also require SLB appliances, although I prefer to see these integrated with a switch fabric in a chassis-based, large backplane network switch.  In a year&#8217;s time, SLB Layer-2 technology could be replaced by VMware DRS clustering and/or an equivalent like Microsoft PRO.  I was always a fan of Anycast to replace SLB at Layer-3.  I continue to suggest these models/architectures today.</p>
<p>Can whitelist WAF technology be used by those same devices in the short-term (Anti-DDoS or SLB appliance)?  Absolutely, as long as it&#8217;s done by an expert and tuned to the applications.  Should these devices sometimes be separated out of a traditional operational role, due to auditability and for compliance scoping purposes?  Probably not.  Should they perform monitoring, debugging capability, or solving hard production problems?  Probably not.</p>
<p>The reason that the first question is a yes, and the others are a no is because Anti-DDoS and SLB devices are already performance-ready-capable of providing WAF whitelisting functionality (note: not in all cases, but this works especially well for devices that provide rate-based behavior detection before mitigation).  Monitoring does NOT require an inline device.  All it requires is network taps (or potentially port-mirroring, but most professionals recommend taps over SPAN ports).  Also, infrastructure is changing rapidly, so it&#8217;s not wise to invest in a dying model.</p>
<p>Additionally, I know that companies like Sourcefire and Reflex Systems are integrating at the VMsafe API layer, which is a hypervisor introspection layer much like XenAccess.  This is really where much of the AV/IDS/IPS/HIMS/DLP/WAF/blacklisting-whitelisting technology belongs.  VNET will also change the introspection layer (in addition to almost completely eliminating the physical network layer and SIM/SEM/SIEM/NMS/EMS moves &amp; changes), as it simply adds to introspection functionality.  I have already alluded to Cisco AXG becoming a VNET &#8220;module&#8221;, but what if Reflex Systems or StoneSoft start integrating WAF not only as a VNSS (Virtual Network Security System), but also at the hypervisor introspection layer?</p>
<p>Fortunately, for application security, server virtualization and the evolutions it&#8217;s bringing with it e.g VNET and VMsafe, are going to dominate traditional networks and cut their existing budgets.  Unfortunately for application security, the new virtualization evolution also brings with it tons of object reuse (there are at least two new controls channels available to adversaries), and new ways of establishing covert channels.</p>
<p>This means a few things.  First of all, the word &#8220;firewall&#8221; is dead, and therefore, the word &#8220;web application firewall&#8221; and the associated acronym, WAF, are also dead.  Imagine today if there existed a control channel that, when taken over by adversaries, it became a covert channel that had unlimited object reuse control of every physical RAM on every computer in existence all at once.  This is cloud computing, but virtualized.</p>
<p>Not only that, but we are saying that adversaries have already bypassed traditional firewalls by using the application layer i.e.  Hacking Intranets from Jeremiah Grossman.  Thus, this master, covert control channel is already on its way to being built (at least as man-in-the-browser).  Imagine for a second that you don&#8217;t use NoScript with Firefox and additionally implement the features of Chrome by using multiple Firefox profiles.  Imagine for a second that you are a regular user, with all of those Clickjacking and modern application attacks available to anyone who wants to get to you.</p>
<p>Like many of us used the words &#8220;brick-and-mortar&#8221; to describe backwards-companies during the dotCom bubble, I think &#8220;fire-and-wall&#8221; well-describes organizations that continue to cling to traditional networks and network security as answers to Internet, Enterprise IT, and any operational risk.</p>
<p>Do I intend to sell you on the idea that we should all instead jump to Fortify RTA or Microsoft SRE?  No.  There are potential consequences to any of this.  This is only the functionality required to reduce risk to applications, not the assurance that risks have been removed.</p>
<p>TCSEC says that we need to balance functionality and assurance.  But nobody ever bothered to do any assurance.  Assurance is the Microsoft SDL, SDL Pro, and SDL-IT.  @Stake and Foundstone are gone and have split into tons of fractured security evaluation and risk assessment boutiques that have 1-300 developer-security-tester guru&#8217;s that mix SAST and DAST with expert review.</p>
<p>But the SAST+DAST market is less than $100M, while WAF is at least 20% more than that (although probably inflated).</p>
<p>I hate to be the bearer of bad news, but you don&#8217;t just say &#8220;DO BOTH&#8221; because nobody will do the SAST+DAST work.  We tried that last time, when tcp_wrappers and the DEC firewall came about  The underground that wanted to keep their covert control channels alive started dumping rootkits on pre-pwned Unix machines.  Then Dildog and others made it possible to easily access Windows machines, and after that - botnets and the like have reigned.  There are already backdoors in our web applications.  OWASP Scrubbr is not going to save us all by itself.</p>
<p>Who did the work back then?  OpenBSD?  Certainly not Microsoft, and even today their SDL appears to be failing by some, but imagine if it did not exist at all.  We obviously have to do better with assurance practices.</p>
<p>Can functionality-based controls work easier, better, and faster than assurance ones?  Are they that less complex and easier to train?  Or is there just more written about them because it&#8217;s easier to SELL them by baking them into products rather than customizing them to an ISV organization or an Enterprise development team?</p>
<p>If you are part of the group that is spending $120M on WAF technology, then you are hurting the SAST+DAST market because you&#8217;re taking away that spending.  Clearly, risk analysis is not taking place and people are spending based on familiarity in addition to PCI-DSS requirement 6.6, which all but forces the inequality to happen.</p>
<p>Look at the best in exploitation-countermeasure functionality-based controls that work on object reuse problems e.g. DEP, ASLR, SafeSEH, SafeInt, et al.  Are adversaries still bypassing these?  Security researchers in the offensive-research space are.  These countermeasures are closer to the code (even HIPS is closer than network-based IPS), like many WAF suggestions.  Is is true that we still require assurance even after 15 years of exploitation-countermeasure optimization?  I remember when stack-guard protections were first coming out - they were seen as a huge joke (i.e. toy/researcher technology), much like Fortify RTA, CORE GRASP, Microsoft AntiXSS-SRE/AntiCSRF, GDS Security GPF, and HDIV are seen now.</p>
<p>I know to many of you out there, this looks like a rant, and I really could go on forever about this topic.  So, go to the datacenter, give your WAFs a hug, and continue to buy into the &#8220;functionality is better than assurance&#8221; argument.  You&#8217;ll feel better in the morning, right after you forget that you just opened up your database to any talented people who want to make money from the data in it.</p>
<p>Also, pen-testing is dead.  We no longer need to prove that applications are insecure.  We know they&#8217;re insecure - no matter how many functionality controls you layer on top of them.  Unless YOU prove that the applications that YOU are responsible for ARE secure, you are working against the rights of users, consumers, cardholder data, personally identifiable information tied to healthcare and financial records, trade secrets, and the ability to control our critical infrastructure.  Enjoy.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/tssci?a=7vVmjEP2"><img src="http://feeds.feedburner.com/~f/tssci?i=7vVmjEP2" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=jjnNftCW"><img src="http://feeds.feedburner.com/~f/tssci?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=qIMQFpXQ"><img src="http://feeds.feedburner.com/~f/tssci?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=QVj5JtWR"><img src="http://feeds.feedburner.com/~f/tssci?i=QVj5JtWR" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=dGlMZa7v"><img src="http://feeds.feedburner.com/~f/tssci?i=dGlMZa7v" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=l4HBv9N1"><img src="http://feeds.feedburner.com/~f/tssci?i=l4HBv9N1" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=qDxDJugu"><img src="http://feeds.feedburner.com/~f/tssci?d=131" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tssci/~4/wIXLLoeiDXU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tssci-security.com/archives/2009/02/12/post-to-webappsec-mailing-list-on-waf-and-pen-test-dead-again/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tssci-security.com/archives/2009/02/12/post-to-webappsec-mailing-list-on-waf-and-pen-test-dead-again/</feedburner:origLink></item>
		<item>
		<title>Guests on OWASP Podcast #6</title>
		<link>http://feedproxy.google.com/~r/tssci/~3/-gLHYuWeKBk/</link>
		<comments>http://www.tssci-security.com/archives/2009/02/05/guests-on-owasp-podcast-6/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 16:53:27 +0000</pubDate>
		<dc:creator>Marcin</dc:creator>
		
		<category><![CDATA[People]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.tssci-security.com/archives/2009/02/05/guests-on-owasp-podcast-6/</guid>
		<description><![CDATA[Jim Manico invited Dre and I to join him with Brian Holyfield on this week&#8217;s OWASP Podcast.  Topics of discussion included our thoughts on web application security, WAFs, training, among others.  Give it a listen, and tell us what you think.
OWASP Podcast Series #6 (direct download link)
Brian introduced a tool he has been [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://manicode.blogspot.com/" onclick="javascript:urchinTracker ('/outbound/article/manicode.blogspot.com');">Jim Manico</a> invited Dre and I to join him with Brian Holyfield on this week&#8217;s <a href="https://www.owasp.org/index.php/Podcast_6" onclick="javascript:urchinTracker ('/outbound/article/www.owasp.org');">OWASP Podcast</a>.  Topics of discussion included our thoughts on web application security, WAFs, training, among others.  Give it a listen, and tell us what you think.</p>
<p><a href="http://www.owasp.org/download/jmanico/owasp_podcast_6.mp3" onclick="javascript:urchinTracker ('/outbound/article/www.owasp.org');">OWASP Podcast Series #6 (direct download link)</a></p>
<p>Brian introduced a tool he has been working on, <a href="http://www.gdssecurity.com/l/spf/" onclick="javascript:urchinTracker ('/outbound/article/www.gdssecurity.com');">SPF - Secure Parameter Filter</a>, which has the features we would like to see in WAFs, and would recommend people checking out as an alternative to implementing a commercial WAF as a short-term fix.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/tssci?a=w270i3CZ"><img src="http://feeds.feedburner.com/~f/tssci?i=w270i3CZ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=UH0fx8eT"><img src="http://feeds.feedburner.com/~f/tssci?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=1lnVsvPX"><img src="http://feeds.feedburner.com/~f/tssci?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=nJ0DOoUI"><img src="http://feeds.feedburner.com/~f/tssci?i=nJ0DOoUI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=y0anF7yw"><img src="http://feeds.feedburner.com/~f/tssci?i=y0anF7yw" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=j6dRj8x3"><img src="http://feeds.feedburner.com/~f/tssci?i=j6dRj8x3" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=IiaN04xV"><img src="http://feeds.feedburner.com/~f/tssci?d=131" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tssci/~4/-gLHYuWeKBk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tssci-security.com/archives/2009/02/05/guests-on-owasp-podcast-6/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tssci-security.com/archives/2009/02/05/guests-on-owasp-podcast-6/</feedburner:origLink></item>
		<item>
		<title>Introducing SSLFail.com</title>
		<link>http://feedproxy.google.com/~r/tssci/~3/EhnWX05TcFY/</link>
		<comments>http://www.tssci-security.com/archives/2009/01/22/introducing-sslfailcom/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 14:11:00 +0000</pubDate>
		<dc:creator>Marcin</dc:creator>
		
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.tssci-security.com/archives/2009/01/22/introducing-sslfailcom/</guid>
		<description><![CDATA[Hey all, I&#8217;d like to introduce all of you to a new site Tyler Reguly and I, along with Romain Gaucher and Jay Graver set up last week, SSLFail.com.  The site&#8217;s purpose is to point out the failures in various sites&#8217; SSL implementations.  We&#8217;ll be publishing tutorials, and informative articles on SSL in [...]]]></description>
			<content:encoded><![CDATA[<p>Hey all, I&#8217;d like to introduce all of you to a new site <a href="http://www.computerdefense.org/" onclick="javascript:urchinTracker ('/outbound/article/www.computerdefense.org');">Tyler Reguly</a> and I, along with <a href="http://rgaucher.info/b/" onclick="javascript:urchinTracker ('/outbound/article/rgaucher.info');">Romain Gaucher</a> and Jay Graver set up last week, <a href="http://www.sslfail.com/" onclick="javascript:urchinTracker ('/outbound/article/www.sslfail.com');">SSLFail.com</a>.  The site&#8217;s purpose is to point out the failures in various sites&#8217; SSL implementations.  We&#8217;ll be publishing tutorials, and informative articles on SSL in addition to pasting screenshots of high profile sites&#8217; failures.</p>
<p>We came up with the idea for the site when Romain came upon an SSL failure with <a href="http://www.sslfail.com/2009/01/gmail-ssl-fail-image/" onclick="javascript:urchinTracker ('/outbound/article/www.sslfail.com');">Gmail</a>.  Tyler then blogged about it, and then I was getting errors with <a href="http://www.sslfail.com/2009/01/facebook-ssl-fail-image/" onclick="javascript:urchinTracker ('/outbound/article/www.sslfail.com');">Facebook</a>.</p>
<p>The interesting things about Gmail, when you go to https://gmail.com, Firefox was the only browser we tested to follow the 301 Redirect to another domain (www.google.com) with a proper SSL certificate.  IE7 and Google Chrome on the other hand, asked the user for confirmation before the redirect.  Is this a Firefox SSL failure?  I don&#8217;t know, and several others I&#8217;ve spoken with aren&#8217;t sure how a browser should handle it either.</p>
<p>Anyways, just wanted to point out this new site, which has already gotten some attention from <a href="http://www.terminal23.net/2009/01/a_taste_of_ssl_failures_at_ssl.html" onclick="javascript:urchinTracker ('/outbound/article/www.terminal23.net');">lonervamp</a> at <a href="http://www.terminal23.net/2009/01/ev_ssl_fail_or_how_to_rebrand.html" onclick="javascript:urchinTracker ('/outbound/article/www.terminal23.net');">terminal23</a> and <a href="http://hype-free.blogspot.com/2009/01/sslfail.html" onclick="javascript:urchinTracker ('/outbound/article/hype-free.blogspot.com');">hype-free</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/tssci?a=gvRRiQMx"><img src="http://feeds.feedburner.com/~f/tssci?i=gvRRiQMx" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=7zKMr8rH"><img src="http://feeds.feedburner.com/~f/tssci?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=5NGKHVRp"><img src="http://feeds.feedburner.com/~f/tssci?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=WTD6JEo6"><img src="http://feeds.feedburner.com/~f/tssci?i=WTD6JEo6" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=1on3HBZZ"><img src="http://feeds.feedburner.com/~f/tssci?i=1on3HBZZ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=Ve9mfgSr"><img src="http://feeds.feedburner.com/~f/tssci?i=Ve9mfgSr" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=rkbFFBhs"><img src="http://feeds.feedburner.com/~f/tssci?d=131" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tssci/~4/EhnWX05TcFY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tssci-security.com/archives/2009/01/22/introducing-sslfailcom/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tssci-security.com/archives/2009/01/22/introducing-sslfailcom/</feedburner:origLink></item>
		<item>
		<title>SANS Top 25 Procurement Language and the OWASP Secure Software Contract Annex</title>
		<link>http://feedproxy.google.com/~r/tssci/~3/eBq9VVqFxMM/</link>
		<comments>http://www.tssci-security.com/archives/2009/01/16/sans-top-25-procurement-language-and-the-owasp-secure-software-contract-annex/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 05:17:40 +0000</pubDate>
		<dc:creator>Marcin</dc:creator>
		
		<category><![CDATA[People]]></category>

		<category><![CDATA[Politics]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.tssci-security.com/archives/2009/01/16/sans-top-25-procurement-language-and-the-owasp-secure-software-contract-annex/</guid>
		<description><![CDATA[As many of you have probably already heard, SANS, in a combined effort with MITRE released the CWE/SANS Top 25 Most Dangerous Programming Errors.  There have been numerous discussions on both the Secure Coding List and Webappsec mailing lists, along with a column from Gary McGraw and 11 reasons why Top 10 (or Top [...]]]></description>
			<content:encoded><![CDATA[<p>As many of you have probably already heard, <a href="http://www.sans.org/" onclick="javascript:urchinTracker ('/outbound/article/www.sans.org');">SANS</a>, in a combined effort with <a href="http://www.mitre.org/" onclick="javascript:urchinTracker ('/outbound/article/www.mitre.org');">MITRE</a> released the <a href="http://www.sans.org/top25errors/" onclick="javascript:urchinTracker ('/outbound/article/www.sans.org');">CWE/SANS Top 25 Most Dangerous Programming Errors</a>.  There have been numerous discussions on both the <a href="http://krvw.com/pipermail/sc-l/2009/001645.html" onclick="javascript:urchinTracker ('/outbound/article/krvw.com');">Secure Coding List</a> and <a href="http://www.webappsec.org/lists/websecurity/archive/2009-01/msg00019.html" onclick="javascript:urchinTracker ('/outbound/article/www.webappsec.org');">Webappsec mailing lists</a>, along with a column from Gary McGraw and <a href="http://www.informit.com/articles/article.aspx?p=1322398" onclick="javascript:urchinTracker ('/outbound/article/www.informit.com');">11 reasons why Top 10 (or Top 25) lists don&#8217;t work</a>.  This post is not about that.</p>
<p>Back in 2004, OWASP published the <a href="https://www.owasp.org/index.php/OWASP_Secure_Software_Contract_Annex" onclick="javascript:urchinTracker ('/outbound/article/www.owasp.org');">Secure Software Contract Annex</a> (referred to as OWASP Contract hereon out) to help software buyers and sellers achieve a meeting of the minds on application security.  The OWASP Contract was generously placed in the public domain so that end-users could use it without license burdens.  Since that time, the OWASP Contract has been widely used, even included in a Government acquisition guide (with full attribution).  Now SANS has published their <a href="http://www.sans.org/appseccontract/" onclick="javascript:urchinTracker ('/outbound/article/www.sans.org');">SANS Application Security Procurement Language</a> (referred to as SANS Contract) along with the release of the CWE Top 25.</p>
<p>There is no question, that the SANS Contract contains a ton of language from the OWASP Contract.  Roughly 75% of the SANS Contract is taken from the OWASP Contract  (see below for a side-by-side comparison).</p>
<p>In comparison the original contract put out by OWASP, the SANS-added contract language is very biased.  The OWASP Contract was meant to be fair, and balanced &#8212; between the software developers and the software buyers.  In the SANS Contract, the terms have been slanted to solely benefit software buyers and SANS.  Yes, SANS; through including terms that require developers &#8220;pass competency tests on application security,&#8221; which map directly back to SANS-offered application security training and certification exams.  In their contract, the vendor bears the burden of almost every term.</p>
<p>In no way do I intend that this post undermine the incredible efforts the MITRE organization has done with the <a href="http://cwe.mitre.org/" onclick="javascript:urchinTracker ('/outbound/article/cwe.mitre.org');">Common Weakness Enumeration</a> project.  Steven M. Christey of MITRE <a href="http://www.webappsec.org/lists/websecurity/archive/2009-01/msg00069.html" onclick="javascript:urchinTracker ('/outbound/article/www.webappsec.org');">even suggests</a> &#8220;promoting these efforts *NOW* while people are still paying attention.&#8221;</p>
<p>Instead of looking to the CWE/SANS Top 25 and SANS Application Security Procurement Language, I suggest everyone review the <a href="https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project" onclick="javascript:urchinTracker ('/outbound/article/www.owasp.org');">OWASP Application Security Verification Standard</a> and <a href="https://www.owasp.org/index.php/OWASP_Secure_Software_Contract_Annex" onclick="javascript:urchinTracker ('/outbound/article/www.owasp.org');">OWASP Secure Software Contract Annex</a>.  These two OWASP documents, brought together, set the bar for application security, and take a truly positive approach.  No longer are we enumerating badness &#8212; creating lists of things to watch out for &#8212; but what makes an application truly secure.  Take it one step further, and look at Andrew van der Stock&#8217;s <a href="http://www.greebo.net/2008/09/24/coding-standard/" onclick="javascript:urchinTracker ('/outbound/article/www.greebo.net');">OWASP Coding Standard</a> to what developers should be doing.</p>
<p>So I leave you all now with the following comparison between the two contracts and leave the rest up for discussion.</p>
<p><strong>Side-by-side comparison (<a href="http://www.tssci-security.com/upload/owasp-sans-diff.txt" >diff -u output</a>)<br />
</strong></p>
<table>
<tr>
<td>
<p><strong><a href="http://www.owasp.org/index.php/OWASP_Secure_Software_Contract_Annex" onclick="javascript:urchinTracker ('/outbound/article/www.owasp.org');">OWASP Contract (Dec 2004)</a></strong></p>
</td>
<td>
<p><strong><a href="http://www.sans.org/appseccontract/" onclick="javascript:urchinTracker ('/outbound/article/www.sans.org');">SANS Contract (Jan 2009) </a></strong></p>
</td>
</tr>
<tr>
<td>
<p>WARNING:<br />
THIS DOCUMENT SHOULD BE CONSIDERED GUIDANCE ONLY.  OWASP STRONGLY RECOMMENDS THAT YOU CONSULT A QUALIFIED ATTORNEY TO HELP YOU NEGOTIATE A SOFTWARE CONTRACT.</p>
</td>
<td>
<p>DISCLAIMER</p>
<p>THIS DOCUMENT SHOULD BE CONSIDERED GUIDANCE ONLY. IT IS STRONGLY RECOMMENDED THAT YOU CONSULT A QUALIFIED ATTORNEY TO HELP YOU NEGOTIATE A SOFTWARE CONTRACT</p>
</td>
</tr>
<tr>
<td>
<p>5. PERSONNEL AND ORGANIZATION</p>
<p>(a) Security Architect Developer will assign responsibility for security to a single senior technical resource, to be known as the project Security Architect. The Security Architect will certify the security of each deliverable.</p>
</td>
<td>
<p>Personnel</p>
<p>The Vendor shall identify in writing the person who will be responsible for overall security of the application development, management, and update process throughout the Contract period. The person identified shall be a single senior technical security specialist, to be known as the project Security Lead. The Security Lead shall certify in writing the security of each deliverable.</p>
</td>
</tr>
<tr>
<td>
<p>Security Training</p>
<p>Developer will be responsible for verifying that all members of the developer team have been trained in secure programming techniques.</p>
</td>
<td>
<p>Security Training</p>
<p>The Vendor shall be responsible for verifying that all members of the developer team have been successfully trained in secure programming techniques.</p>
</td>
</tr>
<tr>
<td>
<p>Trustworthy Developers</p>
<p>Developer agrees to perform appropriate background investigation of all development team members.</p>
</td>
<td>
<p>Background Checks of Developers</p>
<p>Vendor shall perform appropriate background investigation of all development team members and shall certify that all individuals who will be involved in this Contract and the software development process have cleared the background investigation.</p>
</td>
</tr>
<tr>
<td>
<p>Vulnerabilities Are Expected</p>
<p>Both Client and Developer will strive to identify vulnerabilities as early as possible in the lifecycle.</p>
</td>
<td>
<p>Vulnerabilities, Risks and Threats</p>
<p>The Vendor shall agree in writing that he will strive to identify vulnerabilities, risks and threats as early as possible at any time during the software lifecycle.</p>
</td>
</tr>
<tr>
<td>
<p>Developer and Client agree to work together to understand and document the risks facing the application. This effort should identify the key risks to the important assets and functions provided by the application. Each of the topics listed in the requirements section should be considered.</p>
</td>
<td>
<p>The Vendor shall identify the key risks to the important assets and functions provided by the application. The Vendor shall conduct an analysis of the attached 25 most common programming errors and document in writing that they have been mitigated.</p>
</td>
</tr>
<tr>
<td>
<p>Developer agrees to provide secure configuration guidelines that fully describe all security relevant configuration options and their implications for the overall security of the software. The guideline shall include a full description of dependencies on the supporting platform, including operating system, web server, and application server, and how they should be configured for security. The default configuration of the software shall be secure.</p>
</td>
<td>
<p>The Vendor shall provide secure configuration guidelines in writing to the Purchaser that fully describe all security relevant configuration options and their implications for the overall security of the software. The guideline shall include a full description of dependencies on the supporting platform, including operating system, web server, and application server, and how they should be configured for security. The default configuration of the software shall be secure.</p>
</td>
</tr>
<tr>
<td>
<p>Developer agrees to provide documentation that clearly explains the design for achieving each of the security requirements.</p>
</td>
<td>
<p>The Vendor shall provide written documentation to the Purchaser that clearly explains the design for achieving each of the security requirements.</p>
</td>
</tr>
<tr>
<td>
<p>Developer agrees to provide and follow a set of secure coding guidelines. These guidelines will indicate how code should be formatted, structured, and commented. All security-relevant code shall be thoroughly commented. Specific guidance on avoiding common security vulnerabilities shall be included. Also, all code shall be reviewed by at least one other Developer against the security requirements and coding guideline before it is considered ready for unit test.</p>
</td>
<td>
<p>The Vendor shall provide and follow a set of secure coding guidelines. These guidelines will indicate how code should be formatted, structured, and commented. All security-relevant code shall be thoroughly commented. Specific guidance on avoiding common security vulnerabilities shall be included. Also, all code shall be reviewed by at least one other Developer against the security requirements and coding guideline before it is considered ready for test.</p>
</td>
</tr>
<tr>
<td>
<p>6. DEVELOPMENT ENVIRONMENT</p>
<p>(a) Secure Coding<br />
Developer shall disclose what tools are used in the software development environment to encourage secure coding.</p>
<p>(b) Configuration Management<br />
Developer shall use a source code control system that authenticates and logs the team member associated with all changes to the software baseline and all related configuration and build files.</p>
<p>(c) DistributionDeveloper shall use a build process that reliably builds a complete distribution from source. This process shall include a method for verifying the integrity of the software delivered to Client.</p>
<p>7. LIBRARIES, FRAMEWORKS, AND PRODUCTS</p>
<p>(a) Disclosure<br />
Developer shall disclose all third party software used in the software, including all libraries, frameworks, components, and other products, whether commercial, free, open-source, or closed-source.</p>
<p>(b) Evaluation<br />
Developer shall make reasonable efforts to ensure that third party software meets all the terms of this agreement and is as secure as custom developed code developed under this agreement.</p>
</td>
<td>
<p>II. DEVELOPMENT ENVIRONMENT</p>
<p>(a) Secure Coding<br />
The Vendor shall disclose what tools are used in the software development environment to encourage secure coding.</p>
<p>(b) Configuration Management<br />
The Vendor shall use a source code control system that authenticates and logs the team member associated with all changes to the software baseline and all related configuration and build files.</p>
<p>(c) Distribution<br />
The Vendor shall use a build process that reliably builds a complete distribution from source. This process shall include a method for verifying the integrity of the software delivered to Client.</p>
<p>(d) Disclosure<br />
The Vendor shall document in writing to the Purchaser all third party software used in the software, including all libraries, frameworks, components, and other products, whether commercial, free, open-source, or closed-source.</p>
<p>(e) Evaluation<br />
The Vendor shall make reasonable efforts to ensure that third party software meets all the terms of this agreement and is as secure as custom developed code developed under this agreement</p>
</td>
</tr>
<tr>
<td>
<p>(e) Security Analysis and Testing</p>
<p>Developer agrees to provide and follow a security test plan that defines an approach for testing or otherwise establishing that each of the security requirements has been met. The level of rigor of this activity should be considered and detailed in the plan. Developer will execute the security test plan and provide the test results to Client.</p>
</td>
<td>
<p>III. TESTING</p>
<p>(a) General<br />
The Vendor shall provide and follow a security test plan that defines an approach for testing or otherwise establishing that each of the security requirements has been met. The level of rigor of this test process shall be detailed in the plan. The vendor shall implement the security test plan and provide the test results to Client in writing.</p>
</td>
</tr>
<tr>
<td>
<p>9. SECURITY ISSUE MANAGEMENT</p>
<p>(a) IdentificationDeveloper will track all security issues uncovered during the entire lifecycle, whether a requirements, design, implementation, testing, deployment, or operational issue. The risk associated with each security issue will be evaluated, documented, and reported to Client as soon as possible after discovery.</p>
</td>
<td>
<p>Tracking Security Issues</p>
<p>The Vendor shall track all security issues uncovered during the entire software lifecycle, whether a requirements, design, implementation, testing, deployment, or operational issue. The risk associated with each security issue shall be evaluated, documented, and reported to Purchaser as soon as possible after discovery</p>
</td>
</tr>
<tr>
<td>
<p>10. ASSURANCE(a) AssuranceDeveloper will provide a &#8220;certification package&#8221; consisting of the security documentation created throughout the development process. The package should establish that the security requirements, design, implementation, and test results were properly completed and all security issues were resolved appropriately.(b) Self-Certification<br />
The Security Architect will certify that the software meets the security requirements, all security activities have been performed, and all identified security issues have been documented and resolved. Any exceptions to the certification status shall be fully documented with the delivery.</p>
<p>(c) No Malicious Code<br />
Developer warrants that the software shall not contain any code that does not support a software requirement and weakens the security of the application, including computer viruses, worms, time bombs, back doors, Trojan horses, Easter eggs, and all other forms of malicious code.</p>
</td>
<td>
<p>IV. DELIVERY OF THE SECURE APPLICATION</p>
<p>The Vendor shall provide a &#8220;certification package&#8221; consisting of the security documentation created throughout the development process. The package shall establish that the security requirements, design, implementation, and test results were properly completed and all security issues were resolved appropriately.</p>
<p>Self-Certification<br />
The Security Lead shall certify to the purchaser in writing that the software meets the security requirements, all security activities have been performed, and all identified security issues have been documented and resolved. Any exceptions to the certification status shall be fully documented with the delivery.</p>
<p>No Malicious Code<br />
Developer warrants that the software shall not contain any code that does not support a software requirement and weakens the security of the application, including computer viruses, worms, time bombs, back doors, Trojan horses, Easter eggs, and all other forms of malicious code.</p>
</td>
</tr>
<tr>
<td>
<p>11. SECURITY ACCEPTANCE AND MAINTENANCE</p>
<p>(a) Acceptance<br />
The software shall not be considered accepted until the certification package is complete and all security issues have been resolved.</p>
<p>(b) Investigating Security Issues<br />
After acceptance, if security issues are discovered or reasonably suspected, Developer shall assist Client in performing an investigation to determine the nature of the issue.</p>
</td>
<td>
<p>V. SECURITY ACCEPTANCE AND MAINTENANCE</p>
<p>Acceptance<br />
The software shall not be considered accepted until the Vendor certification package is complete and all security issues have been resolved.</p>
<p>Investigating Security Issues<br />
After acceptance, if security issues are discovered or reasonably suspected, Vendor shall assist Purchaser in performing an investigation to determine the nature of the issue</p>
</td>
</tr>
</table>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/tssci?a=c19qw4kU"><img src="http://feeds.feedburner.com/~f/tssci?i=c19qw4kU" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=clGJQMUX"><img src="http://feeds.feedburner.com/~f/tssci?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=SfrRrJkR"><img src="http://feeds.feedburner.com/~f/tssci?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=cM6KlESe"><img src="http://feeds.feedburner.com/~f/tssci?i=cM6KlESe" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=eWisTfV1"><img src="http://feeds.feedburner.com/~f/tssci?i=eWisTfV1" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=1wmlsROJ"><img src="http://feeds.feedburner.com/~f/tssci?i=1wmlsROJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=leR8C16b"><img src="http://feeds.feedburner.com/~f/tssci?d=131" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tssci/~4/eBq9VVqFxMM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tssci-security.com/archives/2009/01/16/sans-top-25-procurement-language-and-the-owasp-secure-software-contract-annex/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tssci-security.com/archives/2009/01/16/sans-top-25-procurement-language-and-the-owasp-secure-software-contract-annex/</feedburner:origLink></item>
		<item>
		<title>Happy New Year — 2009</title>
		<link>http://feedproxy.google.com/~r/tssci/~3/04LGdaCYMTA/</link>
		<comments>http://www.tssci-security.com/archives/2008/12/31/happy-new-year-2009/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 04:59:00 +0000</pubDate>
		<dc:creator>Marcin</dc:creator>
		
		<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.tssci-security.com/archives/2008/12/31/happy-new-year-2009/</guid>
		<description><![CDATA[This is our last post for 2008, a year that has come and gone faster than I imagined.  I&#8217;ve been told the years only go quicker the older you get, so I do my best to enjoy it to the very last bit.
Anyways, both Dre and I would like to wish all of our [...]]]></description>
			<content:encoded><![CDATA[<p>This is our last post for 2008, a year that has come and gone faster than I imagined.  I&#8217;ve been told the years only go quicker the older you get, so I do my best to enjoy it to the very last bit.</p>
<p>Anyways, both Dre and I would like to wish all of our friends and readers a Happy New Year.  See you in 2009.</p>
<p>Cheers and Na Zdrowie!</p>
<p><img src="/images/nazdrowie.png" width="150" height="150" alt="Na Zdrowie!" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/tssci?a=NkG84hKE"><img src="http://feeds.feedburner.com/~f/tssci?i=NkG84hKE" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=buDd6O9h"><img src="http://feeds.feedburner.com/~f/tssci?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=jlOOVo5b"><img src="http://feeds.feedburner.com/~f/tssci?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=JogIyjGp"><img src="http://feeds.feedburner.com/~f/tssci?i=JogIyjGp" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=YSPJWp78"><img src="http://feeds.feedburner.com/~f/tssci?i=YSPJWp78" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=BE0PNrBm"><img src="http://feeds.feedburner.com/~f/tssci?i=BE0PNrBm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=XknFj6A5"><img src="http://feeds.feedburner.com/~f/tssci?d=131" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tssci/~4/04LGdaCYMTA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tssci-security.com/archives/2008/12/31/happy-new-year-2009/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tssci-security.com/archives/2008/12/31/happy-new-year-2009/</feedburner:origLink></item>
		<item>
		<title>bruteoptions.py — Get allowed HTTP Methods for a list of directories</title>
		<link>http://feedproxy.google.com/~r/tssci/~3/2FZMRo55Z3E/</link>
		<comments>http://www.tssci-security.com/archives/2008/12/31/bruteoptionspy-get-allowed-http-methods-for-a-list-of-directories/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 15:41:14 +0000</pubDate>
		<dc:creator>Marcin</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.tssci-security.com/archives/2008/12/31/bruteforcepy-get-allowed-http-methods-for-a-list-of-directories/</guid>
		<description><![CDATA[A recent email by Dave Aitel to the Dailydave mailing list on Pen testing web servers was an inspiration to publishing a short, but simple script.  I like to keep things simple when I write scripts, taking the Unix philosophy of doing one thing and doing it well.
bruteoptions.py takes two arguments: 1) a FQDN [...]]]></description>
			<content:encoded><![CDATA[<p>A recent email by Dave Aitel to the Dailydave mailing list on <a href="http://lists.immunitysec.com/pipermail/dailydave/2008-December/005471.html" onclick="javascript:urchinTracker ('/outbound/article/lists.immunitysec.com');">Pen testing web servers</a> was an inspiration to publishing a short, but simple script.  I like to keep things simple when I write scripts, taking the Unix philosophy of doing one thing and doing it well.</p>
<p><a href="http://www.tssci-security.com/projects/bruteoptions_py/" >bruteoptions.py</a> takes two arguments: 1) a FQDN of a known site, and 2) a file with directory names.  The script runs through and performs an OPTIONS HTTP Request for each directory name in the file.  In the past, I&#8217;ve used a combination of directories I&#8217;ve identified while browsing/spidering a website through Burp, and the other partly a dictionary list taken from a tool like <a href="http://www.owasp.org/index.php/Category:OWASP_DirBuster_Project" onclick="javascript:urchinTracker ('/outbound/article/www.owasp.org');">OWASP DirBuster</a>.</p>
<p>Using the tool is simple, just specify the site FQDN to scan and give it a file as a second argument.</p>
<p><code>$ ./bruteoptions.py<br />
./gethttpoptions.py &lt;url&gt; &lt;list of directories&gt;</code></p>
<p><code>$ ./bruteoptions.py tssci-security.com dirs<br />
“tssci-security.com”,”/about/”,”200 OK”,”Apache/1.3.39 (Unix)”,”None”<br />
“tssci-security.com”,”/upload/”,”200 OK”,”Apache/1.3.39 (Unix)”,”GET, HEAD, OPTIONS, TRACE”<br />
“tssci-security.com”,”/projects/”,”200 OK”,”Apache/1.3.39 (Unix)”,”None”</code></p>
<p>An interesting thing I&#8217;ve just noticed, is the lack of allowed methods returned for a virtual directory, versus an actual directory when run against my site.  If anyone cares to comment about this, I&#8217;d be interested to know what is the cause.</p>
<p>You can download the script from the <a href="http://www.tssci-security.com/projects/bruteoptions_py/" >bruteoptions.py project page</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/tssci?a=EHdRzHrq"><img src="http://feeds.feedburner.com/~f/tssci?i=EHdRzHrq" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=E2lKqrqP"><img src="http://feeds.feedburner.com/~f/tssci?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=EFlQCqD5"><img src="http://feeds.feedburner.com/~f/tssci?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=aB9xfn9v"><img src="http://feeds.feedburner.com/~f/tssci?i=aB9xfn9v" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=zp2TJnNR"><img src="http://feeds.feedburner.com/~f/tssci?i=zp2TJnNR" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=Gpazmkkd"><img src="http://feeds.feedburner.com/~f/tssci?i=Gpazmkkd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=kOldmY31"><img src="http://feeds.feedburner.com/~f/tssci?d=131" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tssci/~4/2FZMRo55Z3E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tssci-security.com/archives/2008/12/31/bruteoptionspy-get-allowed-http-methods-for-a-list-of-directories/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tssci-security.com/archives/2008/12/31/bruteoptionspy-get-allowed-http-methods-for-a-list-of-directories/</feedburner:origLink></item>
		<item>
		<title>Writing a web services fuzzer in 5 minutes to SQL injection</title>
		<link>http://feedproxy.google.com/~r/tssci/~3/eWEIbX-aTY4/</link>
		<comments>http://www.tssci-security.com/archives/2008/12/14/writing-a-web-services-fuzzer-in-5-minutes-to-sql-injection/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 05:15:50 +0000</pubDate>
		<dc:creator>Marcin</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[Work]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.tssci-security.com/archives/2008/12/14/writing-a-web-services-fuzzer-in-5-minutes-to-sql-injection/</guid>
		<description><![CDATA[This week, I was doing an internal penetration test for a client of a web service, which is used by applications loaded on kiosk machines around the country.  I didn&#8217;t have much time to do the test, so I had a couple advantages, like having network access to the service, the WSDL and also [...]]]></description>
			<content:encoded><![CDATA[<p>This week, I was doing an internal penetration test for a client of a <a href="http://1raindrop.typepad.com/" onclick="javascript:urchinTracker ('/outbound/article/1raindrop.typepad.com');">web service</a>, which is used by applications loaded on kiosk machines around the country.  I didn&#8217;t have much time to do the test, so I had a couple advantages, like having network access to the service, the <a href="http://www.w3.org/TR/wsdl" onclick="javascript:urchinTracker ('/outbound/article/www.w3.org');">WSDL</a> and also ability to interact with the developers.  This also gave me a chance to see how capable our web application firewall was at being able to detect attacks.</p>
<p>I had some trouble with <a href="http://www.owasp.org/index.php/Category:OWASP_WSFuzzer_Project" onclick="javascript:urchinTracker ('/outbound/article/www.owasp.org');">WSFuzzer</a>, and kept getting &#8220;XML Fault&#8221; errors like the one below:</p>
<blockquote><p>There was an anomaly encountered in interfacing with the provided target.  The neuroFuzz team is aware of these situational conditions and we are looking into the root cause(s) &#8230;</p>
<p>If you would like to help with this type of research send the following data along with some details about the target service to wsfuzzer@neurofuzz.com</p>
<p>Response: XML Fault</p></blockquote>
<p>Ok, no big deal &#8212; I&#8217;ll just write my own!  I loaded up <a href="http://www.soapui.org/" onclick="javascript:urchinTracker ('/outbound/article/www.soapui.org');">soapUI</a> and put in the WSDL address, and soapUI was able to generate the XML requests according to the WSDL.  soapUI automatically puts a question mark placeholder into the input areas, so I then saved these as individual XML files &#8212; one for each service method.</p>
<p>Then, I wrote a quick BASH script that looped through each line in WSFuzzer&#8217;s <a href="http://wsfuzzer.svn.sourceforge.net/viewvc/wsfuzzer/trunk/WSFuzzer/All_attack.txt?revision=273" onclick="javascript:urchinTracker ('/outbound/article/wsfuzzer.svn.sourceforge.net');">Attack_all.txt</a> and replaced every placeholder parameter in each XML file with the attack string:</p>
<pre>
#!/usr/bin/env bash

# Generate our attack files
# Escape slashes and backslashes
sed -e 's/\\/\\\\\\\\/g; s/\//\\\\\//g; s/:::.*//g' All_attack.txt &gt; All_attack.txt~

echo -n "Generating attacks"

n=0
for i in `ls -1 *.xml`
do
        while read line
        do
                sed "s/?/${line}/" $i &gt; $i.$n
                #echo "Writing $i.$n"
                echo -n "."
                let "n+=1"
        done &lt; All_attack.txt~
        let n=0
done

echo " done"

# Cleanup
echo "Removing temporary files no longer needed."
rm All_attack.txt~

exit 0</pre>
<p>This script will then generate one XML file for each attack string per method.  In my case, it generated close to 15,000 XML files.  So what do we do with this?  We&#8217;ll use cURL to POST it to the web server (after removing SQL shutdown statements and other risky injections):</p>
<p><code>$ for i in `ls *.xml.*`; do curl -A "marcin" -s -x 127.0.0.1:8880 -k -d @$i -H "Content-Type: text/xml;charset=UTF-8" -H "SOAPAction: \"\"" https://service-tested:8443/warfile/service/Endpoint; done</code></p>
<p>I specified a proxy by using the -x flag with cURL so I can proxy it through Burp, which keeps a detailed request/response log I could later pour through.</p>
<p>So there you have it: a web services fuzzer in 5 minutes, or less.  Sure, it doesn&#8217;t replace WSFuzzer as WSFuzzer does <em>a lot</em> more, it was enough for my purposes and gave me time to do other testing.  The best part about this, was when the database administrator notified us about a SQL injection we did that caused the CPU load to spike for a duration of time.  He&#8217;s been asking the developers to fix the query for months now, but his reasons for fixing were for performance.  Now he&#8217;s got a security reason to fix the code, and I wouldn&#8217;t have been surprised if they fixed it that same day.</p>
<p>Oh, and for those wondering&#8230;  the WAF missed about 25% of the attacks.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/tssci?a=0W6IUcOH"><img src="http://feeds.feedburner.com/~f/tssci?i=0W6IUcOH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=ycZFXBZF"><img src="http://feeds.feedburner.com/~f/tssci?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=RYKRiyAb"><img src="http://feeds.feedburner.com/~f/tssci?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=foAmsib3"><img src="http://feeds.feedburner.com/~f/tssci?i=foAmsib3" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=FOjPqCRG"><img src="http://feeds.feedburner.com/~f/tssci?i=FOjPqCRG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=Rk148vQm"><img src="http://feeds.feedburner.com/~f/tssci?i=Rk148vQm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=TRs2Onln"><img src="http://feeds.feedburner.com/~f/tssci?d=131" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tssci/~4/eWEIbX-aTY4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tssci-security.com/archives/2008/12/14/writing-a-web-services-fuzzer-in-5-minutes-to-sql-injection/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tssci-security.com/archives/2008/12/14/writing-a-web-services-fuzzer-in-5-minutes-to-sql-injection/</feedburner:origLink></item>
		<item>
		<title>Decreasing Security for Perceived Security — all in the name of compliance</title>
		<link>http://feedproxy.google.com/~r/tssci/~3/pxy3gyp3ApM/</link>
		<comments>http://www.tssci-security.com/archives/2008/11/20/decreasing-security-for-perceived-security-all-in-the-name-of-compliance/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 04:20:40 +0000</pubDate>
		<dc:creator>Marcin</dc:creator>
		
		<category><![CDATA[Work]]></category>

		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.tssci-security.com/archives/2008/11/20/decreasing-security-for-perceived-security-all-in-the-name-of-compliance/</guid>
		<description><![CDATA[Today I ran into a little setback for an issue I did not foresee.  For the past several months, I&#8217;ve been on a PCI remediation project, of which one of my tasks was to implement a web application firewall to address PCI requirement 6.6.  Now, for everyone out there who has been following [...]]]></description>
			<content:encoded><![CDATA[<p>Today I ran into a little setback for an issue I did not foresee.  For the past several months, I&#8217;ve been on a PCI remediation project, of which one of my tasks was to implement a web application firewall to address PCI requirement 6.6.  Now, for everyone out there who has been following our posts, knows <em>us</em> dealing with WAFs is worse than pulling teeth.</p>
<p>So, in creating a secure Apache standard build, I seemed to have over-engineered and made our build too secure.  How?  Well, one of the lines in our httpd.conf included the following <a href="http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslciphersuite" onclick="javascript:urchinTracker ('/outbound/article/httpd.apache.org');">SSLCipherSuite</a> directive:</p>
<pre>SSLCipherSuite HIGH:MEDIUM:+TLSv1:!LOW:!EXP:!ADH:!aNULL:!eNULL:!NULL:!SSLv2</pre>
<p>With support for the following ciphers:</p>
<pre>DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1
RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
RC4-MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5 </pre>
<p>Looks good right?</p>
<p>This directive, included the Diffie-Hellman ciphers, which I was reminded by blatant error messages of unsupported ciphers in the management console, that it was not susceptible to MITM attacks due to the nature of the <a href="http://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange" onclick="javascript:urchinTracker ('/outbound/article/en.wikipedia.org');">key-exchange</a>.  Doh!  What&#8217;s this mean?  Our WAF, was rendered useless for monitoring and protecting our application because our SSL encryption strengths being negotiated were the most secure, and thus, the WAF had no visibility into our application.  The most common SSL cipher being negotiated was TLS_DHE_RSA_WITH_AES_256_CBC_SHA &#8212; the most secure of all.</p>
<p>So to comply with PCI Requirement 6.6, I had to step down our list of available <a href="http://openssl.org/docs/apps/ciphers.html#CIPHER_SUITE_NAMES" onclick="javascript:urchinTracker ('/outbound/article/openssl.org');">SSL ciphers</a> with the following <tt>SSLCipherSuite</tt> directive:</p>
<pre>HIGH:MEDIUM:+TLSv1:!DH:!LOW:!EXP:!ADH:!aNULL:!eNULL:!NULL:!SSLv2</pre>
<p>which at least provided support for the following ciphers:</p>
<pre>AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1
RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
RC4-MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5 </pre>
<p>So much for PCI Requirement 4.1, which requires the use of strong cryptography and security protocols such as SSL/TLS to safeguard sensitive cardholder data.  This post is just a little FYI for those in the same boat.  Turns out we <em>can</em> be &#8220;too secure,&#8221; :P</p>
<p>As my manager likes to sometimes put it, &#8220;How do you like &#8216;dem apples?&#8221;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/tssci?a=zzBLhViV"><img src="http://feeds.feedburner.com/~f/tssci?i=zzBLhViV" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=ATabGOwT"><img src="http://feeds.feedburner.com/~f/tssci?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=BSNm0pSv"><img src="http://feeds.feedburner.com/~f/tssci?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=qf06w99I"><img src="http://feeds.feedburner.com/~f/tssci?i=qf06w99I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=Hu2i38tL"><img src="http://feeds.feedburner.com/~f/tssci?i=Hu2i38tL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=jEKOBNZ5"><img src="http://feeds.feedburner.com/~f/tssci?i=jEKOBNZ5" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/tssci?a=LOWfHeHc"><img src="http://feeds.feedburner.com/~f/tssci?d=131" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/tssci/~4/pxy3gyp3ApM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.tssci-security.com/archives/2008/11/20/decreasing-security-for-perceived-security-all-in-the-name-of-compliance/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.tssci-security.com/archives/2008/11/20/decreasing-security-for-perceived-security-all-in-the-name-of-compliance/</feedburner:origLink></item>
	</channel>
</rss>
