<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Veracode Blog &#187; Tools</title>
	<atom:link href="http://www.veracode.com/blog/category/tools/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.veracode.com/blog</link>
	<description>Application security testing, analysis, and metrics</description>
	<lastBuildDate>Thu, 09 Feb 2012 13:18:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Musings on Custer&#8217;s Last Stand</title>
		<link>http://www.veracode.com/blog/2011/08/musings-on-custers-last-stand/</link>
		<comments>http://www.veracode.com/blog/2011/08/musings-on-custers-last-stand/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 15:00:53 +0000</pubDate>
		<dc:creator>Chris Wysopal</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Binary Analysis]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=1999</guid>
		<description><![CDATA[Let’s not mince words: this rambling diatribe from Oracle’s CSO is aimed directly at Veracode. No need for a cutesy acronym; we&#8217;re the only company with true static binary analysis technology, delivered as a service. Now that we’ve got that out of the way, let’s try to cut through the rhetoric (in just over a [...]]]></description>
			<content:encoded><![CDATA[<p>Let’s not mince words: this <a href="http://blogs.oracle.com/maryanndavidson/entry/those_who_can_t_do">rambling diatribe</a> from Oracle’s CSO is aimed directly at Veracode.  No need for a cutesy acronym; we&#8217;re the only company with true static binary analysis technology, delivered as a service.  Now that we’ve got that out of the way, let’s try to cut through the rhetoric (in just over a thousand words, to boot).</p>
<p>The recurring theme in her manifesto is the notion that certain software suppliers are &#8220;too big to test&#8221;.  It’s fine for the little guys, but not the 800-pound gorillas. Instead, software purchasers should blindly trust companies with security teams and assurance processes to produce secure code.  If only it were that simple.  In fact, according to our semi-annual <a href="http://info.veracode.com/state-of-software-security-report-volume3.html">State of Software Security Report</a>, there&#8217;s negligible variation in security quality across software suppliers regardless of company size.</p>
<p><center><img src="http://www.veracode.com/blog/wp-content/uploads/2011/08/sossfig26-smaller.png" alt="" title="sossfig26-smaller" width="492" height="357" class="aligncenter size-full wp-image-2035" style="padding-right:20px" /></center></p>
<p>We’re both flattered and amused that Ms. Davidson believes our company alone &#8220;created a market&#8221; for testing the software supply chain.  On the contrary, the market has created itself.  Take a look through the noteworthy breaches from the past 12-24 months; software vulnerabilities have been the culprit in nearly every case.  CISOs are waking up to the stark realization that all software &#8212; internally or externally produced &#8212; introduces risk into their organizations.  In this day and age, wise companies harbor a healthy suspicion of their software vendors.  Oracle can choose to do security testing in-house, but a company that&#8217;s &#8220;running their entire business&#8221; on Oracle’s software has a right to request unbiased evidence that the testing process is working.  </p>
<p>That being said, Oracle is hardly the poster child for security process.  Within the security community, they are notorious for shipping insecure products.  Their laughable &#8220;Unbreakable&#8221; marketing campaign was <a href="http://www.securityfocus.com/news/309">famously debunked</a> by security expert David Litchfield, who uncovered several critical (and easily avoidable) vulnerabilities within a matter of weeks.  They’ve also earned a reputation for <a href="http://seclists.org/bugtraq/2005/Oct/56">glacial response times and sloppy patches</a>.  No company can be expected to build perfectly secure software, but it’s pretty obvious why external validation is needed to complement in-house process &#8212; one need look no further than <a href="http://www.zerodayinitiative.com/advisories/published/">ZDI</a> for evidence.  Even Ms. Davidson&#8217;s own example illustrates how an outsourced service provider &#8220;HuiMaika&#8217;i&#8221; detected multiple vulnerabilities that weren’t discovered by Oracle’s internal team.</p>
<p>Perhaps the most shocking admission about Oracle&#8217;s security program is their interpretation of the &#8220;need to know&#8221; principle. Ms. Davidson asserts that she doesn&#8217;t need access to bug databases. This is a classic liability avoidance move and one that we&#8217;ve witnessed in other organizations as well.  Creating barriers to vulnerability information facilitates a culture in which the executive has plausible deniability of critical bugs and can simply look the other way if a ship deadline is looming or if the auditors pay a visit. CISOs should be clamoring for as much data as they can get their hands on, not eschewing it.</p>
<p>Finally, Ms. Davidson seemed offended that a tenured university professor would suggest licensing software developers to create a system of accountability.  Ironically, only a few years ago, she sent a letter to top universities pressuring them to incorporate secure coding guidelines such as the SANS coding certification into their curriculums.  She told them, &#8220;<a href="http://www.cert.org/podcast/show/20080930davidson.html">We will start making our purchasing decisions</a>, if you will, based on that.&#8221;  Apparently, it’s OK for Oracle to flex their muscle when &#8220;buying&#8221; (i.e. hiring) from universities, but it’s not OK for Oracle’s customers to hold them to similar standards?  It certainly sounds like Oracle has been feeling the pressure lately. </p>
<div style="float:right; margin-left:20px; margin-bottom:10px"><a href="http://www.veracode.com/blog/wp-content/uploads/2011/08/consumer-reports.jpg"><img src="http://www.veracode.com/blog/wp-content/uploads/2011/08/consumer-reports-224x300.jpg" alt="" title="consumer-reports" width="224" height="300" class="alignright size-medium wp-image-2027" /></a></div>
<p>There are third-party tests and assessments for perhaps every important purchase in business or in our personal lives. Companies hire law firms and specialists when they make acquisitions. People look to safety and quality tests from trusted sources before they buy everything from baby strollers to cars. You wouldn&#8217;t think of buying a home without a home inspection.  In each case, the cost of the independent test must be commensurate with the purchase price and the risk. Look at the typical due dilligence around home purchase. It doesn&#8217;t always make sense to pay an engineering firm thousands of dollars for a structural analysis, but it does make sense to hire a home inspector for a few hundred dollars, who in a few hours can uncover termites or a leaking roof. These are problems that must be fixed, and because the testing cost is so low it would be negligent not to do it.  Most of the major software vendors have participated in third-party testing either as part of their SDLC, to vet code they were acquiring or licensing, or as part of one of their customers&#8217; procurement process.</p>
<p>Veracode has never claimed that binary SAST provides complete software assurance.  From the beginning, we have recommended multiple testing methods to detect vulnerabilities that static automation can’t.  In fact, it’s impossible to receive our top ratings without a clean bill of health from a manual penetration test.  Each layer of testing, while imperfect on its own, uncovers problems that must be corrected.  </p>
<p>Outsourcing is not a dirty word.  Many companies outsource development for entire products or components of them.  Companies also outsource testing and training.  The multi-billion dollar IV&#038;V market grew out of this need &#8212; it&#8217;s simply good business. The goal is shipping secure code, not making a feel-good proclamation that your team can handle a modern development challenge with no outside help.  While Oracle can be proud that they have tamed a source code tool and lived to tell the tale, other companies are securing their code faster and cheaper with the help of outsourcing.  Even Veracode customers haven&#8217;t <em>fully outsourced</em> security; many of them have in-house security expertise and are just employing a service to make their security processes more robust.  They are still full participants in the process, making decisions around how/when to remediate, how much to invest, etc. Veracode acts as an application security partner, providing customers valuable intelligence gleaned from the software ecosystem. Just as Google gets smarter with every search that it does, Veracode gets smarter with every scan we do.</p>
<p>At least we can rest easy knowing that Oracle would never <a href="http://www.opensecrets.org/lobby/indusclient.php?id=B12&#038;year=2011">hire lobbyists</a> to <a href="http://www.itnews.com.au/News/268523,cable-us-pressured-eu-to-approve-oracle-sun-merger.aspx">promote an agenda</a>. That’s a relief!</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/dynamic-analysis">Dynamic Analysis</a><br />
<a href="http://www.veracode.com/security/internet-security">Internet Security</a><br />
<a href="http://www.veracode.com/security/malicious-code">Malicious Code</a><br />
<a href="http://www.veracode.com/security/vulnerability-assessment-software">Vulnerability Assessment</a><br />
<a href="http://www.veracode.com/security/web-security">Website Security</a><br />
<a href="http://www.veracode.com/security/application-testing-tool">Application Analysis</a></div>
<p></p>
<h5>Security Alternatives</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/hp-fortify-alternative">HP Fortify</a><br />
<a href="http://www.veracode.com/security/whitehat-security-alternative">Whitehat Security</a><br />
<a href="http://www.veracode.com/security/rational-appscan-alternative">IBM Rational AppScan</a>
</div>
<p></p>
<h5>Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">SQL Injection</a><br />
<a href="http://www.veracode.com/security/xss">XSS</a><br />
<a href="http://www.veracode.com/security/csrf">CSRF</a><br />
<a href="http://www.veracode.com/security/ldap-injection">LDAP Security</a><br />
<a href="http://www.veracode.com/security/mobile-code-security">Mobile Security</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2011/08/musings-on-custers-last-stand/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>&#8220;We Don&#8217;t Sell It? Then It&#8217;s Not Important&#8221;</title>
		<link>http://www.veracode.com/blog/2011/07/we-dont-sell-it-then-its-not-important/</link>
		<comments>http://www.veracode.com/blog/2011/07/we-dont-sell-it-then-its-not-important/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 14:00:16 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=1820</guid>
		<description><![CDATA[[UPDATE: Since there seems to be some confusion, the "We" in the title of this post is NOT "Veracode". The expression is a generic one intended to illustrate the attitude exhibited by many companies who like to downplay the value and/or effectiveness of technologies that they themselves do not sell. I can't believe I am [...]]]></description>
			<content:encoded><![CDATA[<p><em>[UPDATE: Since there seems to be some confusion, the "We" in the title of this post is NOT "Veracode".  The expression is a generic one intended to illustrate the attitude exhibited by many companies who like to downplay the value and/or effectiveness of technologies that they themselves do not sell.  I can't believe I am having to explain this.]</em></p>
<p>Fair warning, this is a bit of a rant.</p>
<p>Back in my consulting days (early 2000, I&#8217;m getting old), we delighted in the fact that our web application penetration testing methodology didn&#8217;t rely on automated tools.  This was completely true; we did everything manually, and we were among the best in the industry.  Many so-called security consultants of the day would run a commercial web scanner and repackage the results as a high dollar &#8220;penetration test&#8221; &#8212; what a ripoff!  </p>
<p>What we didn&#8217;t acknowledge to our customers is that those web scanners, even in their immature state, were probably capable of detecting some of the low hanging fruit that we didn&#8217;t want to spend our time looking for.  Oh, we&#8217;d find a few &#8220;representative examples&#8221; of XSS and SQL injection, but then we&#8217;d get bored and move on to the more interesting and complex attack vectors.  In our naivete, we figured developers would be inspired to revisit their entire input validation and/or output encoding practices, as opposed to just fixing the proof-of-concept examples we found.</p>
<p>Meanwhile, the commercial web scanner vendors were always downplaying the value of manual testing!  &#8220;Why would you want to pay for an expensive penetration test when you can just run this less expensive tool and find the same vulnerabilities?&#8221;  They&#8217;d gloss over all the <a href="http://lcamtuf.blogspot.com/2010/08/commercial-scanners-and-word-suck.html">technical challenges</a> of automated web scanning and conveniently forget to mention how it was impossible for them to find authorization issues, cryptographic weaknesses, business logic flaws, and so on. </p>
<p><b>What&#8217;s my point?</b></p>
<p>Using multiple testing methodologies is crucial.  Sure, there may be some overlap, but ultimately they are complementary to one another.  That&#8217;s why at Veracode, we&#8217;ve never positioned automated static analysis (SAST) as a complete solution.  That&#8217;s why we integrated both automated web scanning (DAST) and manual penetration testing into our service offerings less than a year after launching the company, even though SAST is our patented bread-and-butter technology.  This meant we could always be completely honest about the strengths and weaknesses of each technique.  I&#8217;ve had a slide titled &#8220;There Is No Silver Bullet&#8221; in my corporate slide deck since the very beginning.</p>
<p><b>Our silver bullet is better than yours</b></p>
<p>Meanwhile, it&#8217;s been amusing to watch other companies &#8212; who only had a single offering &#8212; having to espouse the tactic of downplaying any testing approach that wasn&#8217;t in their service portfolio.</p>
<ul>
<li>Over at Fortify, Brian Chess famously predicted that 2009 would mark <a href="http://www.csoonline.com/article/468766/pen-testing-dead-in-2009<br />
">the end of penetration testing</a>.</li>
<li>Over at WhiteHat, Jeremiah Grossman often downplays <a href="http://jeremiahgrossman.blogspot.com/2009/05/mythbusting-secure-code-is-less.html">the value</a> of writing <a href="http://jeremiahgrossman.blogspot.com/2008/05/does-secure-software-really-matter.html">secure code</a> and testing code quality.</li>
<li>Even as recently as last week, we have Errata Security (a consultancy) claiming that automated tools are <a href="http://erratasec.blogspot.com/2011/06/take-bow-everybody-security-industry.html">useless and doomed to fail</a>. Welcome back to 1999.</li>
<div style="float:right; margin-left:20px"><a href="http://www.veracode.com/blog/wp-content/uploads/2011/07/8090509_m.jpg"><img src="http://www.veracode.com/blog/wp-content/uploads/2011/07/8090509_m-233x300.jpg" alt="" title="8090509_m" width="200" class="aligncenter size-medium wp-image-1845" /></a></div>
</ul>
<p>I&#8217;m only picking on these guys because they&#8217;re visible, well-respected practitioners in the application security space.  Of course Brian knows source code scanning is an incomplete solution, and now that Fortify and WebInspect are part of the same parent company, I suspect he&#8217;s adjusted his message.  I&#8217;m certain Jeremiah knows there&#8217;s value in writing secure code during the SDLC, which is why WhiteHat is now trying to <a href="https://blog.whitehatsec.com/whitehat-acquires-infrared-static-analysis-here-we-come/">get into the SAST market</a> by acquiring some technology.  </p>
<p>And I&#8217;m pretty sure Dave Maynor knows automation does provide real value.  How else can a big company &#8212; spooked by all the recent breaches &#8212; quickly hunt for SQL injection vulnerabilities across 5,000 websites without the benefit of automation?  How does one look for issues in the 150 third-party libraries you use, where only the binary is available?  Do you hire <a href="http://www.azimuthsecurity.com/">Mark Dowd</a> to spend a month looking at each one?</p>
<p><b>Building trust</b></p>
<p>We all know a few sales reps that jump from one company to another, changing their pitch as they go no matter how much it conflicts with things they&#8217;ve said in the past.  First a service-based approach is best, but suddenly an on-premise tool is better.  Source code scanning used to be pointless, but now it&#8217;s the best thing since sliced bread!  It&#8217;s no surprise these guys don&#8217;t experience more success &#8212; they lack credibility.  The most successful account reps I&#8217;ve seen are the ones who build trust with their customers over time by being honest about what they are selling, even when hopping from one company to the next.</p>
<p>Look, it&#8217;s no big secret why people talk up their own stuff and imply everything else stinks.  It&#8217;s part of the sales and marketing machine and by no means is it unique to the security industry.  Even so, can&#8217;t we make an effort &#8212; as practitioners &#8212; to cut back on the rhetoric <em>a little bit</em> and be more honest with our customers?  Customers look to us as experts to help them build their security programs, and what do we do?  We oversell them on an approach that has huge gaps we pretend don&#8217;t exist.  If you&#8217;re really looking out for your customers, start being more honest, and stop handing out kool-aid.</p>
<p>Here&#8217;s another approach: Instead of outright dismissing an effective technology or methodology just because you don’t sell it, sometimes it&#8217;s worth thinking about partnering, or even building something better. That&#8217;s why at Veracode we designed our service platform around the idea of technology integration. There is no silver bullet and there never will be.</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/vulnerability-assessment-software">Vulnerability Assessment</a><br />
<a href="http://www.veracode.com/security/web-security">Website Security</a><br />
<a href="http://www.veracode.com/security/application-testing-tool">Application Analysis</a><br />
<a href="http://www.veracode.com/security/dynamic-analysis">Dynamic Analysis</a><br />
<a href="http://www.veracode.com/security/internet-security">Internet Security</a><br />
<a href="http://www.veracode.com/security/malicious-code">Malicious Code</a></div>
<p></p>
<h5>Security Alternatives</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/hp-fortify-alternative">HP Fortify</a><br />
<a href="http://www.veracode.com/security/whitehat-security-alternative">Whitehat Security</a><br />
<a href="http://www.veracode.com/security/rational-appscan-alternative">IBM Rational AppScan</a></div>
<p></p>
<h5>Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/csrf">CSRF</a><br />
<a href="http://www.veracode.com/security/ldap-injection">LDAP Security</a><br />
<a href="http://www.veracode.com/security/mobile-code-security">Mobile Security</a><br />
<a href="http://www.veracode.com/security/sql-injection">SQL Injection</a><br />
<a href="http://www.veracode.com/security/xss">What is Cross Site Scripting?</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2011/07/we-dont-sell-it-then-its-not-important/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Whitepaper: A Dose of Reality on Automated Static-Dynamic Hybrid Analysis</title>
		<link>http://www.veracode.com/blog/2010/12/whitepaper-a-dose-of-reality-on-automated-static-dynamic-hybrid-analysis/</link>
		<comments>http://www.veracode.com/blog/2010/12/whitepaper-a-dose-of-reality-on-automated-static-dynamic-hybrid-analysis/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 18:48:35 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Dynamic Analysis]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=1342</guid>
		<description><![CDATA[As application inventories have become larger, more diverse, and increasingly complex, organizations have struggled to build application security testing programs that are effective and scalable. New technologies and methodologies promise to help streamline the Secure Development Lifecycle (SDLC), making processes more efficient and easing the burden of information overload. In the realm of automated web [...]]]></description>
			<content:encoded><![CDATA[<p>As application inventories have become larger, more diverse, and increasingly complex, organizations have struggled to build application security testing programs that are effective and scalable.  New technologies and methodologies promise to help streamline the Secure Development Lifecycle (SDLC), making processes more efficient and easing the burden of information overload. </p>
<p>In the realm of automated web application testing, today’s technologies fall into one of two categories, Static Application Security Testing (SAST) and Dynamic Application Security Testing (DAST).  SAST analyzes application binaries or source code, detecting vulnerabilities by identifying insecure code paths without actually executing the program.  In contrast, DAST detects vulnerabilities by conducting attacks against a running instance of the application, simulating the behavior of a live attacker.  Most enterprises have incorporated at least one SAST or DAST technology; those with mature SDLCs may even use more than one of each.</p>
<p>In the past year or so, industry analysts and product vendors have become enamored with so-called “hybrid analysis” technologies.  Hybrid techniques aim to correlate the results of SAST and DAST to dramatically expand dynamic coverage, prioritize the combined set of results, and reduce both false positives and false negatives.  This whitepaper will examine each of these claims to give consumers technical insight into whether hybrid technologies can realistically live up to the hype.  </p>
<p>Several observations will be described in the following sections:</p>
<ul>
<li>Hybrid analysis may expand dynamic coverage, but the lack of application context limits its effectiveness.
<li>The challenge of reliably generating URL-to-source mappings, coupled with the existence of URL rewriting, undermines the accuracy and usefulness of vulnerability correlation.
<li>Hybrid analysis does not reduce false positive rates; rather, it lulls users into a false sense of security by suggesting that non-correlated vulnerabilities are false positives.
<li>Correlation should not be equated with exploitability.  Vulnerabilities should be prioritized based on severity and business impact, not based on how many scanners are capable of detecting it.
</ul>
<p>Download the <a href="http://www.veracode.com/blog/wp-content/uploads/2010/12/A-Dose-of-Reality-on-Hybrid-Analysis.pdf">full whitepaper</a>.</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/static-analysis-tool">Static Analysis Tool</a><br />
<a href="http://www.veracode.com/security/penetration-testing">Penetration Testing Tool</a><br />
<a href="http://www.veracode.com/security/static-code-analysis">Static Code Analysis</a><br />
<a href="http://www.veracode.com/security/vulnerability-scanning">Vulnerability Scanning</a><br />
<a href="http://www.veracode.com/security/web-application-security-testing">Web Application Testing</a><br />
<a href="http://www.veracode.com/security/software-testing-tools">Software Testing Tools</a><br />
<a href="http://www.veracode.com/security/source-code-security-analyzer">Source Code Security Analyzer</a><br />
<a href="http://www.veracode.com/security/code-security">Software Code Security</a><br />
<a href="http://www.veracode.com/security/application-testing-tool">Application Testing Tool</a><br />
<a href="http://www.veracode.com/security/code-analysis">Source Code Analysis</a><br />
<a href="http://www.veracode.com/security/code-review">Code Review Tools</a></div>
<h5>Veracode Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">Prevention of SQL Injection</a><br />
<a href="http://www.veracode.com/security/xss">Cross Site Scripting Vulnerabilities</a><br />
<a href="http://www.veracode.com/security/csrf">CSRF Attacks</a><br />
<a href="http://www.veracode.com/security/ldap-injection">LDAP Injection</a><br />
<a href="http://www.veracode.com/security/mobile-code-security">Mobile Code Security</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2010/12/whitepaper-a-dose-of-reality-on-automated-static-dynamic-hybrid-analysis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>An Ounce of Prevention is Worth a Pound of Cure</title>
		<link>http://www.veracode.com/blog/2009/11/an-ounce-of-prevention-is-worth-a-pound-of-cure/</link>
		<comments>http://www.veracode.com/blog/2009/11/an-ounce-of-prevention-is-worth-a-pound-of-cure/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 22:42:27 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=983</guid>
		<description><![CDATA[A conversation on Twitter this morning started out like this: @dinozaizovi: Finding vulnerabilities without exploiting them is like putting on a dress when you have nowhere to go. This clever analogy spurred a discussion about the importance of proving exploitability as a prerequisite to fixing bugs. While I agree that nothing is more convincing than [...]]]></description>
			<content:encoded><![CDATA[<p>A conversation on Twitter this morning started out like this:</p>
<blockquote><p>
@dinozaizovi: Finding vulnerabilities without exploiting them is like putting on a dress when you have nowhere to go.
</p></blockquote>
<p>This clever analogy spurred a discussion about the importance of proving exploitability as a prerequisite to fixing bugs.  While I agree that nothing is more convincing than a working exploit, there will always be a greater volume of bugs discovered than there are vulnerability researchers to write exploits.  Don&#8217;t get me wrong &#8212; as a former penetration tester, I agree that it is <em>fun</em> to write exploits, it just shouldn&#8217;t be a gating factor.  Putting the burden of proof on the researcher to develop an exploit is not scalable, nor does it help create a development culture that improves software security over the long term. </p>
<p>A related topic, and one that hits closer to home for me, is how software developers deal with the results of static analysis.  Static analysis is often misunderstood, particularly by people who have only dealt with dynamic analysis (fuzzing, web scanning, etc.) or penetration testing in the past.  Because static analysis detects flaws without actually executing the target application, there&#8217;s an increased likelihood of finding &#8220;noise&#8221; (insignificant flaws) or false positives. On the other hand, static analysis provides broader coverage, often detecting flaws in complex code paths that a web scan or human tester would be unlikely to find.  So there&#8217;s your trade-off.</p>
<p>Here&#8217;s a conversation I have all too frequently, paraphrased:</p>
<div id="indent">
<p><strong>DEVELOPER</strong><br />
I don&#8217;t think I should have to fix this SQL injection flaw unless you can prove to me that it&#8217;s exploitable.</p>
<p><strong>ME</strong><br />
Static analysis isn&#8217;t performed against a running instance of the application.  Not all flaws will be exploitable vulnerabilities, but some of them almost certainly are.  Here, let me show you all of the code paths where untrusted user input enters the application and eventually gets used in the ad-hoc SQL query we&#8217;ve marked as a bug.</p>
<p><strong>DEVELOPER</strong><br />
But what&#8217;s the URL that I can click on to exploit it?</p>
<p><strong>ME</strong><br />
Static analysis is different from a penetration test.  The output of our analysis is a code path, not a URL.  URL construction cannot be derived solely from the application code, because it depends on outside factors such as how the web server and application server are configured.  Moreover, we don&#8217;t have the necessary context of how this flaw fits into the business logic of the application.  Maybe this functionality is only accessible by certain users when their accounts are in a particular status.  It might take a couple hours working closely with a developer in a test environment to come up with the attack URL.  It might take several more hours to write a script around that attack URL to mine the database.  On the other hand, it would take about 10 minutes to replace that ad-hoc query with a parameterized prepared statement.</p>
<p><strong>DEVELOPER</strong><br />
Well, if you can&#8217;t demonstrate the vulnerability, then it&#8217;s not real.  </p>
<p><strong>ME</strong><br />
Demonstrating a working exploit certainly proves a system is vulnerable.  But the lack of a working exploit is hardly proof that it&#8217;s <em>not</em> vulnerable.  You could spend the time to investigate every single flaw to figure out which ones are vulnerable, or you could fix them all in such a way that you&#8217;re guaranteed it won&#8217;t be vulnerable.  In our opinion, the time is better spent on the latter. </p>
<p><strong>DEVELOPER</strong><br />
[more defensiveness]</p>
<p><strong>ME</strong><br />
[bangs head against wall]
</div>
<p>Now imagine that conversation stretching out to 30 minutes or more.  They could&#8217;ve fixed a half-dozen flaws already.  And it&#8217;s not limited to SQL injection.  For example, consider cross-site scripting (XSS):</p>
<div id="indent">
<p><strong>DEVELOPER</strong><br />
I need you to prove that this XSS flaw is exploitable.</p>
<p><strong>ME</strong><br />
How about just applying the proper output encoding so you <em>know</em> the untrusted input will be rendered safely by the browser?</p>
</div>
<p>Buffer overflows:</p>
<div id="indent">
<p><strong>DEVELOPER</strong><br />
I need you to prove that this buffer overflow is exploitable.</p>
<p><strong>ME</strong><br />
How about just using a bounded copy or putting in a length check, so you <em>know</em> the buffer won&#8217;t overflow?</p>
</div>
<p>By now you get the picture.  Many developers want proof, to the extent that they&#8217;ll sacrifice efficiency to get it.  If we are to improve software over the long haul, developers must learn to recognize situations where it takes less time to patch a bug than to argue about its exploitability.  On a more positive note, from someone who talks to static analysis customers on a daily basis, the tide is starting to turn in the right direction.  But it is still an uphill battle.</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/static-analysis-tool">Static Analysis Tool</a><br />
<a href="http://www.veracode.com/security/penetration-testing">Penetration Testing Tool</a><br />
<a href="http://www.veracode.com/security/static-code-analysis">Static Code Analysis</a><br />
<a href="http://www.veracode.com/security/vulnerability-scanning">Vulnerability Scanning</a><br />
<a href="http://www.veracode.com/security/web-application-security-testing">Web Application Testing</a><br />
<a href="http://www.veracode.com/security/software-testing-tools">Software Testing Tools</a><br />
<a href="http://www.veracode.com/security/source-code-security-analyzer">Source Code Security Analyzer</a><br />
<a href="http://www.veracode.com/security/code-security">Software Code Security</a><br />
<a href="http://www.veracode.com/security/application-testing-tool">Application Testing Tool</a><br />
<a href="http://www.veracode.com/security/code-analysis">Source Code Analysis</a><br />
<a href="http://www.veracode.com/security/code-review">Code Review Tools</a></div>
<h5>Veracode Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">Prevention of SQL Injection</a><br />
<a href="http://www.veracode.com/security/xss">Cross Site Scripting Vulnerabilities</a><br />
<a href="http://www.veracode.com/security/csrf">CSRF Attacks</a><br />
<a href="http://www.veracode.com/security/ldap-injection">LDAP Injection</a><br />
<a href="http://www.veracode.com/security/mobile-code-security">Mobile Code Security</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2009/11/an-ounce-of-prevention-is-worth-a-pound-of-cure/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Scrawlr: Are We Being Too Greedy?</title>
		<link>http://www.veracode.com/blog/2008/06/scrawlr-are-we-being-too-greedy/</link>
		<comments>http://www.veracode.com/blog/2008/06/scrawlr-are-we-being-too-greedy/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 16:19:45 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[blind sql injection]]></category>
		<category><![CDATA[hp]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[scrawlr]]></category>
		<category><![CDATA[sql injection]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=112</guid>
		<description><![CDATA[HP released a new tool called Scrawlr yesterday that can be used to identify certain types of SQL Injection vulnerabilities in a website. It was a joint effort with Microsoft and a direct response to the mass SQL Injection attacks of late. Scrawlr quickly came under fire on the Web Security mailing list for having [...]]]></description>
			<content:encoded><![CDATA[<p>HP released a <a href="http://www.communities.hp.com/securitysoftware/blogs/spilabs/archive/2008/06/23/finding-sql-injection-with-scrawlr.aspx">new tool called Scrawlr</a> yesterday that can be used to identify certain types of SQL Injection vulnerabilities in a website.  It was a joint effort with Microsoft and a direct response to the <a href="http://hackademix.net/2008/04/26/mass-attack-faq/">mass SQL Injection attacks</a> of late.</p>
<p>Scrawlr quickly came under fire on the <a href="http://www.webappsec.org/lists/websecurity/archive/2008-06/">Web Security mailing list</a> for having some pretty major limitations.  Billy Hoffman et al have been quick to point out that the tool was designed to address a very specific subset of SQL Injection vulnerability &#8212; the type affected by the mass attacks &#8212; and is not designed to be a general purpose replacement for existing SQL Injection scanners.  Let&#8217;s look at the limitations, as outlined on the HP page, one by one.</p>
<p><b>Limitation: Will only crawl up to 1500 pages</b></p>
<p>Depends on what they mean by 1500 pages.  For example, if I have these links on my front page, is that one URL or three?</p>
<ul>
<li>http://www.veracode.com/blog/?p=111&#038;foo=1</li>
<li>http://www.veracode.com/blog/?p=111&#038;foo=2</li>
<li>http://www.veracode.com/blog/?p=111&#038;foo=3</li>
<p>
</ul>
<p>Or, does it mean that it will really only crawl 1500 pages total, so if I have the same link 1500 times on the front page, it won&#8217;t go any further?  Either way, for most smaller websites this is probably fine.  If you need more than 1500 you could give it different starting URLs in an attempt to improve coverage.  It would be nice to have a clearer definition of what it means to &#8220;crawl up to 1500 pages&#8221; though.</p>
<p><b>Limitation: Does not support sites requiring authentication</b></p>
<p>Well, this will render it useless for the majority of enterprise apps.  But there are still a lot of sites out there that don&#8217;t require authentication, including some of the ones that got hit during the mass attacks, such as the United Nations, UK government, etc.  </p>
<p><i>[Update 06/26: <strike>Thomas Ptacek</strike> Mike Tracy <a href="http://www.matasano.com/log/1077/and-now-for-a-few-words-about-hps-scrawlr/">investigates further</a> and provides a workaround that'll work for the majority of sites that use cookie-based auth]</i></p>
<p><b>Limitation: Does not perform Blind SQL injection</b></p>
<p>They have taken a lot of flack for this but Billy describes it as a conscious choice:</p>
<blockquote><p>
An early version of the tool checked for blind SQL injection, but the final verison of Scrawlr did not. &#8230; The biggest feedback we got from early testing was developers wanted to &#8220;see&#8221; the vulnerability. Differential analysis is kind of difficult to visualize in a way that is helpful for the average dev, and pulling the table names through blind was too much of a performance issue.
</p></blockquote>
<p>I can sort of understand this rationale.  Blind SQL Injection testing is much more susceptible to false positives.  As users of any commercial web scanner or source code analyzer will attest, the more time you spend chasing down FPs, the less likely you are to put any faith in future results.  It&#8217;d be nice if there was a way to toggle Blind SQL Injection testing on and off, though (could be off by default so nobody gets confused).</p>
<p><b>Limitation: Cannot retrieve database contents</b></p>
<p>Who cares?  Find and fix the vulnerability.  Pulling down the entire database &#8220;because you can&#8221; is a total ego move.</p>
<p><b>Limitation: Does not support JavaScript or flash parsing</b></p>
<p>Nobody does this very well anyway, particularly the JavaScript part.  Writing a great crawler is probably the hardest part of writing an automated web scanner and it&#8217;s one of the biggest differentiators from one product to the next.  You&#8217;re not going to get that for free.</p>
<p><b>Limitation: Will not test forms for SQL Injection (POST Parameters)</b></p>
<p>This is probably the toughest one to swallow.  It&#8217;s not that difficult to parse out forms from HTML, and form POSTs can represent a major chunk of the attack surface.  Granted, <a href="http://isc.sans.org/diary.html?n&#038;storyid=4294">the Chinese tool</a> associated with the mass attacks did operate solely on GET requests (i.e. parameters in the query string) so HP can defend this again by saying the tool is really aimed at the sites being targeted by the mass attacks.  I think it&#8217;s a little short-sighted though; chances are that the mass attacks will evolve and it&#8217;s better to be proactive about it than reactive.</p>
<p><b>Conclusion</b></p>
<p>It&#8217;s tough to bash someone for releasing a free tool.  I personally think HP should add an option for enabling Blind SQL Injection testing, and that they should consider supporting POSTs as well as GETs.  You&#8217;re basically getting a (massively) stripped-down WebInspect for free, so take it for what it is.  No single tool is a panacea.</p>
<p>The jury is still out on how effective Scrawlr is against the things it <i>does</i> claim support for.  Keep watching the Web Security list; the reviews are filtering in.</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/internet-security">Internet Security</a><br />
<a href="http://www.veracode.com/security/malicious-code">Malicious Code</a><br />
<a href="http://www.veracode.com/security/vulnerability-assessment-software">Vulnerability Assessment</a><br />
<a href="http://www.veracode.com/security/web-security">Web Security</a><br />
<a href="http://www.veracode.com/security/application-testing-tool">Application Testing</a><br />
<a href="http://www.veracode.com/security/dynamic-analysis">Dynamic Analysis</a></div>
<p></p>
<h5>Security Alternatives</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/hp-fortify-alternative">HP Fortify</a><br />
<a href="http://www.veracode.com/security/whitehat-security-alternative">Whitehat Security</a><br />
<a href="http://www.veracode.com/security/rational-appscan-alternative">IBM Rational AppScan</a>
</div>
<p></p>
<h5>Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">SQL Injection Tutorial</a><br />
<a href="http://www.veracode.com/security/ldap-injection">LDAP Security</a><br />
<a href="http://www.veracode.com/security/mobile-code-security">Mobile Security</a><br />
<a href="http://www.veracode.com/security/xss">Prevent Cross Site Scripting</a><br />
<a href="http://www.veracode.com/security/csrf">CSRF</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2008/06/scrawlr-are-we-being-too-greedy/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

