<?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; Vulnerabilities</title>
	<atom:link href="http://www.veracode.com/blog/category/vulnerabilities/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>Delivering Unhappiness</title>
		<link>http://www.veracode.com/blog/2012/01/delivering-unhappiness/</link>
		<comments>http://www.veracode.com/blog/2012/01/delivering-unhappiness/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 20:16:17 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Disclosure]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=3119</guid>
		<description><![CDATA[You&#8217;ve probably read by now that online retailer Zappos suffered a security breach affecting over 24 million customers. As a Zappos customer, I received the email last night alerting me about the breach. I got a nearly identical email from their sister company, 6pm.com, as well. This is a clear sign that I buy too [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve probably read by now that online retailer Zappos <a href="http://techcrunch.com/2012/01/15/zappos-suffers-security-breach-customer-emails-and-passwords-affected/">suffered a security breach</a> affecting over 24 million customers.  As a Zappos customer, I received <a href="http://imgur.com/vnAlj">the email</a> last night alerting me about the breach.  I got a nearly identical email from their sister company, 6pm.com, as well.  This is a clear sign that I buy too many shoes.</p>
<p>What&#8217;s interesting to me about this breach is that Zappos is renowned for their customer service, so watching how they communicate in the coming days and weeks should be an interesting case study.  A few notable points so far:</p>
<ul>
<li>Tony Hsieh, the CEO, posted a copy of the <a href="http://blogs.zappos.com/securityemail">internal email</a> that they had sent to all their employees.  And <a href="https://twitter.com/#!/zappos/status/158722675517300737">tweeted</a> about it.  The only difference from the customer-facing email was that it stated the number of records affected.  But it&#8217;s unusual for a company to share internal communication like this.</li>
<li>Zappos expired everybody&#8217;s password, forcing customers to follow the password reset workflow before regaining access to their account.  Usually a company will urge you to change your password but won&#8217;t force you to do so.  This was a good move on their part.  The servers seemed very overloaded though; around 9pm last night it took me a few minutes (and a couple of server timeouts) to successfully reset my password.</li>
<li>Around the same time, Zappos <a href="twitpic.com/87uajh">disabled international access</a> to their website, meaning that anybody outside the US couldn&#8217;t reset their password as instructed in the email.  This seemed a bit odd.  As I am writing this post, the site is <a href="https://twitter.com/#!/Zappos_Service/status/158977260085452800">still unavailable</a> to international customers.  This has understandably <a href="https://twitter.com/#!/ashmcsass/status/158940842944507906">frustrated some customers</a>.</li>
<li>In the customer-facing email, Zappos notes that credit card numbers were not affected, but &#8220;cryptographically scrambled&#8221; passwords were. This is where I believe they ought to be more forthcoming. What does &#8220;cryptographically scrambled&#8221; entail?  An unsalted MD5 hash, <a href="http://nakedsecurity.sophos.com/2012/01/04/researchers-find-many-weak-stratfor-passwords/">Stratfor style</a>?  Salted hashes?  Symmetric encryption?  A homegrown algorithm?  Something stronger like bcrypt or scrypt?  This detail is critical, because it indicates how easy it will be for attackers to recover the original passwords from the affected customers and try to use them on other sites like Gmail, Facebook, Twitter, and others.  Customers might be more likely to change their password on other websites if they understood the relative risk.</li>
<li>The email does not disclose how long customer data was exposed prior to the breach notification.  This is an important detail that was omitted.</li>
<li>Zappos has been actively engaging with customers on their <a href="https://twitter.com/#!/Zappos_Service">@Zappos_Service</a> Twitter account.  In fact, last night when I <a href="https://twitter.com/#!/chriseng/statuses/158744312014848000">posed a question</a> to the CEO&#8217;s Twitter alias, @Zappos_Service responded 4 minutes later.  They didn&#8217;t have an answer, but they responded.</li>
<li>They <a href="http://blogs.zappos.com/securityemail">turned off their phone system</a> because they felt responding via email would be more efficient (and their phone system couldn&#8217;t handle the volume anyway). Still, can you imagine a &#8220;typical&#8221; company doing this?  It seems simultaneously crazy and brilliant.</li>
<li>It takes a long time to send 24+ million emails.  I received mine last night at 8:34pm and 9:03pm, but a colleague here at Veracode mentioned he didn&#8217;t get his until this morning.  So assuming they&#8217;re going out alphabetically by e-mail address, that&#8217;s how long it took to get from &#8220;c&#8221; to &#8220;r&#8221;.</li>
<li>Since both Zappos.com and 6pm.com were affected, it&#8217;s possible that they shared a single database.  There are a bunch of scenarios though.  It could be a vulnerability in application code shared by both sites.  It could have also been an insider attack, but the fact that credit card numbers were not compromised suggests to me that the attack was external.</li>
</ul>
<p>For me, the two things to watch for now are how quickly they restore international access and whether or not they disclose how passwords were stored and what &#8220;cryptographically scrambled&#8221; means in that context.  Security breaches happen to the best of companies and these days what differentiates you is how you respond.  So far I believe Zappos is on the right track.</p>
<p>(Incidentally, Tony Hsieh&#8217;s book, <a href="http://www.deliveringhappiness.com/about-us/about-2/">Delivering Happiness</a>, is a fantastic read. I have a lot of respect for how this company operates, and not just because my shoes arrive overnight.)</p>
<p></br></p>
<hr style="color: #CCC; height: 1px; ">
</p>
<h3>Veracode Security Guides</h3>
<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/csrf">CSRF</a><br />
<a href="http://www.veracode.com/security/xss">Cross-Site Scripting</a>
	</div>
<h3>Data Security Resources</h3>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/data-loss-prevention">Data Leak</a><br />
<a href="http://www.veracode.com/security/data-breach">Security Breach</a><br />
<a href="http://www.veracode.com/security/data-security">Data Security</a>
</div>
<hr style="color: #CCC; height: 1px; ">
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2012/01/delivering-unhappiness/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Vulnerability Response Done Right</title>
		<link>http://www.veracode.com/blog/2012/01/vulnerability-response-done-right/</link>
		<comments>http://www.veracode.com/blog/2012/01/vulnerability-response-done-right/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 15:30:00 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Disclosure]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=2913</guid>
		<description><![CDATA[Here&#8217;s a feel good story to start the new year. Just before the holidays, we detected a cross-site scripting (XSS) vulnerability while running a web application scan for one of our customers. Nothing special about that; we detect thousands of these things every week. But as we discussed this particular finding, we noticed that the [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a feel good story to start the new year.</p>
<p>Just before the holidays, we detected a cross-site scripting (XSS) vulnerability while running a web application scan for one of our customers. Nothing special about that; we detect thousands of these things every week. But as we discussed this particular finding, we noticed that the layout of the website looked&#8230; familiar. As it turned out, the discussion forum where we found the XSS was a SaaS-based product called Lithium.</p>
<p>From <a href="http://www.lithium.com/who-we-are/">Lithium&#8217;s website</a>: &#8220;The world&#8217;s most innovative companies such as AT&#038;T, Barnes &#038; Noble, Best Buy, Sephora, Univision, Home Depot, and HP use Lithium to engage their customers in breathtaking new ways (literally, breathtaking).&#8221;  Run <a href="https://www.google.com/search?q=inurl%3Act-p">this Google search</a> and you&#8217;ll find a bunch of Fortune 500 companies using their software. </p>
<p>So now, instead of one XSS, we have hundreds. It&#8217;s not just our customer who is impacted. Suddenly it&#8217;s kind of a big deal.</p>
<p>Here&#8217;s how everything played out. We&#8217;ll do this timeline CORE Security style (all times EST).</p>
<ul>
<li><b>2011-12-15 5:29 PM.</b> We fire off a quick email to the address listed on Lithium&#8217;s <a href="http://www.lithium.com/security/">Security</a> page.</li>
<li><b>2011-12-15 6:12 PM.</b> We receive a response from Misha Logvinov, Lithium&#8217;s CIO.</li>
<li><b>2011-12-15 6:23 PM.</b> We encrypt and send over the vulnerability details to Lithium.</li>
<li><b>2011-12-15 11:40 PM.</b> Lithium reports they have a patch ready to go and will update in the morning.</li>
<li><b>2011-12-16 2:30 PM.</b> We do a little poking around and it seems the vulnerability is patched for some domains but not others. We email for a status check.</li>
<li><b>2011-12-16 2:37 PM.</b> Lithium confirms that the patch is in the process of being rolled out and will be completed by close of business.</li>
<li><b>2011-12-16 COB-ish.</b> We&#8217;re not seeing any more vulnerable instances.
</ul>
<p>Anybody who has reported vulnerabilities before can appreciate how unusual it is for a vendor to respond this quickly. Everything was accomplished in under 24 hours! That is practically unheard of. </p>
<p>From a &#8220;big picture&#8221; perspective, this whole situation illustrates some important application security themes:</p>
<ul>
<li><b>It’s a canonical example of software supply chain risk.</b> A single XSS vulnerability simultaneously affected hundreds, maybe thousands of customers. No matter how securely these companies developed software internally, they were still exposed to vulnerabilities in third-party software.</li>
<li><b>It emphasizes the ecosystem effect of vendor security assessments.</b> One Lithium customer did an analysis of third-party code they were operating. A defect was found, and the vendor fixed it. Now all Lithium customers benefit, without having to lift a finger! Imagine if all companies assessed their third-party code and insisted on fixes from their suppliers.</li>
<li><b>It shows that SaaS can have huge security benefits.</b>  Imagine if Lithium had been deployed as an on-premise product at each customer sites, requiring each customer to download and install a fix themselves. Some companies would probably never get around to patching their servers. The flip side is if the SaaS company dragged their feet &#8212; or simply refused &#8212; to patch the software, leaving the customer without a viable mitigation.</li>
<li><b>It demonstrates that application security response can be done right.</b> Lithium engaged quickly, took the vulnerability report seriously, and wasted no time in fixing the problem. It&#8217;s not uncommon for some vendors to take months.</li>
</ul>
<p>Increasingly, we&#8217;re seeing our customers rethink how they vet the software they purchase or license from third-party suppliers. I hope success stories like these become commonplace as we start holding software suppliers &#8212; both SaaS and on-premise &#8212; accountable for security, not just functionality.</p>
<p></br></p>
<hr style="color: #CCC; height: 1px; ">
<h3>Veracode Security Guides</h3>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/xss">Cross-Site Scripting</a><br />
<a href="http://www.veracode.com/security/sql-injection">SQL Injection</a><br />
<a href="http://www.veracode.com/security/csrf">CSRF</a>	</div>
<h3>Data Security Resources</h3>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/data-security">Data Protection</a><br />
<a href="http://www.veracode.com/security/data-loss-prevention">Data Leak</a><br />
<a href="http://www.veracode.com/security/data-breach">Data Security Breach</a></div>
<hr style="color: #CCC; height: 1px; ">
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2012/01/vulnerability-response-done-right/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ICS-CERT Warns of Backdoors in Standard Network Module</title>
		<link>http://www.veracode.com/blog/2011/12/ics-cert-warns-of-backdoors-in-standard-network-module/</link>
		<comments>http://www.veracode.com/blog/2011/12/ics-cert-warns-of-backdoors-in-standard-network-module/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 18:39:31 +0000</pubDate>
		<dc:creator>Chris Wysopal</dc:creator>
				<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=2716</guid>
		<description><![CDATA[ICS-CERT warns of backdoors in a standard network module for control systems. The type of equipment is the Schneider Electric Quantum Ethernet Module. Both static passwords and a remotely accessible debug service were found. Backdoors in industrial control systems These backdoor revelations in industrial control equipment are becoming frequent. Earlier this year Dillion Beresford found [...]]]></description>
			<content:encoded><![CDATA[<p>ICS-CERT warns of backdoors in a standard network module for control systems. The type of equipment is the Schneider Electric Quantum Ethernet Module. Both static passwords and a remotely accessible debug service were found.  </p>
<p><a href="http://www.h-online.com/security/news/item/Backdoors-in-industrial-control-systems-1395141.html">Backdoors in industrial control systems</a></p>
<p>These backdoor revelations in industrial control equipment are becoming frequent.  Earlier this year Dillion Beresford found <a href="http://threatpost.com/en_us/blogs/black-hat-remote-dos-backdoor-easter-egg-among-newly-discovered-siemens-holes-080311">similar backdoor vulnerabilities in Siemens equipment</a>.</p>
<p>We find these types vulnerabilities fairly often when we scan vendor code on behalf of our customers at Veracode.  Our recent <a href="http://info.veracode.com/state-of-software-security-report-volume4.html">State of Software Security Report vol. 4</a> detailed the findings.  We didn&#8217;t find these backdoors in internally developed, outsourced, or open source applications.  <strong>We did find backdoors in 3% of software vendor developed code.</strong></p>
<p><a href="http://www.veracode.com/blog/wp-content/uploads/2011/12/vuln-dist-by-supplier1.jpg"><img src="http://www.veracode.com/blog/wp-content/uploads/2011/12/vuln-dist-by-supplier1.jpg" alt="" title="vuln-dist-by-supplier" width="599" height="363" class="aligncenter size-full wp-image-2723" /></a></p>
<p>This chart above is the result of our static and dynamic analysis of thousands of different applications over the preceding 18 month period.</p>
<p>Vendors add this backdoor code because it lowers their support costs. Unfortunately it is at the expense of the customer&#8217;s risk.  It is easier for a vendor support technician to remotely diagnose a problem if they know a &#8220;support&#8221; password to your system or if there is a debugging interface exposed to the network.  No need to fly on site or communicate time consuming &#8220;remote hands&#8221; commands to a local IT employee.</p>
<p>We have seen an uptick in customers performing 3rd party scans on the software they are purchasing.  A few years ago it was only our financial services customers that were concerned about backdoors and vulnerabilities in the code they were purchasing.  Now we are seeing a much broader range of industry verticals.</p>
<p><a href="http://www.veracode.com/blog/wp-content/uploads/2011/12/industry-types1.jpg"><img src="http://www.veracode.com/blog/wp-content/uploads/2011/12/industry-types1.jpg" alt="" title="industry-types" width="600" height="184" class="aligncenter size-full wp-image-2720" /></a></p>
<p>The chart above shows we have 8 different industry types including: aerospace &#038; defense and oil &#038; gas, scanning 3rd party code.  We are still not seeing industrial control equipment but with the news this year I think it is only a matter of time.  3rd party analysis will grow as operators of code continue the trend to hold vendors accountable.</p>
<p>Backdoor testing should always include static code scanning.  How can you find a static password or cryptography key without it?  Ideally this is done on the product binary.  Vendors are loath to give up source code, even to a 3rd party, and even if they do they might not give you the exact source code or all of the source code.  Binary scanning and backdoor testing go hand in hand so Veracode has done research on the subject of backdoor and implemented as much as was practical in our binary static analysis.  For further reading on testing apps for backdoors see our <a href="http://www.veracode.com/images/stories/static-detection-of-backdoors-1.0.pdf">&#8220;Static Detection of Application Backdoors&#8221;</a> paper which was presented at Black Hat Las Vegas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2011/12/ics-cert-warns-of-backdoors-in-standard-network-module/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<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>Malicious Mobile Code Meets Exploit Selling</title>
		<link>http://www.veracode.com/blog/2010/03/malicious-mobile-code-meets-exploit-selling/</link>
		<comments>http://www.veracode.com/blog/2010/03/malicious-mobile-code-meets-exploit-selling/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 19:22:18 +0000</pubDate>
		<dc:creator>Tyler Shields</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Disclosure]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[Vulnerabilities]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[Mobile Spyware]]></category>
		<category><![CDATA[responsible disclosure]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=1214</guid>
		<description><![CDATA[I&#8217;ve been focused on conducting research into the mobile spyware arena these last few months and the results have been very interesting. As I&#8217;m sure you are aware, I released a fully functional piece of Blackberry Spyware called txsBBSpy at the Shmoocon security conference in February 2010 and have done a number of interviews and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been focused on conducting research into the mobile spyware arena these last few months and the results have been very interesting. As I&#8217;m sure you are aware, I released a fully functional piece of Blackberry Spyware called txsBBSpy at the <a href="http://www.shmoocon.org">Shmoocon</a> security conference in February 2010 and have done a number of interviews and podcasts on the topic. While my research is interesting, other high profile attacks just this week could really make this type of spyware/trojan a lot more dangerous.</p>
<p>At <a href="http://cansecwest.com">CanSecWest security conference</a> this week, iPhone, Firefox, Safari, and other mobile operating systems and browsers were proven vulnerable to zero day exploitation. <a href="http://www.theregister.co.uk/2010/03/25/pwn2own_2010_day_one/">(The Register Article)</a>. Many people have expressed to me that txsBBSpy doesn&#8217;t actually have an infection vector and that mobile devices are secure from attack. I think the results of Pwn2Own clearly demonstrate otherwise. Mobile devices are just as insecure, if not more so than the standard desktop system. What makes it even more dangerous is that researchers who sell their exploits can get between 10K$ and 115K$ depending on the specifics of the flaw. That&#8217;s no longer chump change! Why would any researcher have any incentive at all to disclose the flaw responsibly given the big dollars that can be made by <a href="http://blogs.forbes.com/firewall/2010/03/25/the-bounty-for-an-apple-bug-115000/">selling to a broker</a>.</p>
<p>The only thing really limiting researchers from selling their flaws on the open market is the threat of incarceration. <a href="http://www.wired.com/threatlevel/2010/03/jethro-sentencing/">Jeremy Jethro</a> was sentenced this week to three years probation and 10K$ in fines for selling exploit code to hacker Albert Gonzalez who in turn used the code in hacking companies and stealing 90 million credit card and debit card numbers. Gonzalez paid Jethro 60$K for the exploit while Jethro had no indication that Gonzalez intended to use the exploit code in any illegitimate way. Had this gone to court, the precedent that could have been set here is astonishing. Luckily this case was a plea bargain, otherwise the selling of exploit code would essentially be criminalized and we wouldn&#8217;t be sure to what degree this really impacts the researcher. If a researcher were to sell his exploit code to <a href="http://www.zerodayinitiative.com/">ZDI</a> and then ZDI somehow accidentally leaks the code that is then used in an attack, who is to blame and who pays the fines/jail time? If a researcher sells his code to an independent broker who then resells the code to a criminal, who is left holding the legal bag? We do know this much.. it&#8217;s dangerous and potentially illegal to sell exploit code that is then used in a crime regardless of your knowledge of the crime. Everything else is still shades of grey.</p>
<p>What does this mean for mobile based Spyware? It means that those vulnerable phone operating systems and browsers are likely to get exploited with previously unknown vulnerabilities and spyware like mine is likely to be the resulting payload. Welcome to the era of malicious mobile attacks.</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/application-testing-tool">Application Testing Tool</a><br />
<a href="http://www.veracode.com/security/static-analysis-tool">Static Analysis</a><br />
<a href="http://www.veracode.com/security/penetration-testing">Penetration Testing</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 Tools</a><br />
<a href="http://www.veracode.com/security/web-application-security-testing">Web Application Security</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/code-analysis">Source Code Analysis</a><br />
<a href="http://www.veracode.com/security/code-review">Code Review</a></div>
<h5>Veracode Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">SQL Injection Vulnerabilities</a><br />
<a href="http://www.veracode.com/security/xss">Cross Site Scripting</a><br />
<a href="http://www.veracode.com/security/csrf">Cross Site Request Forgery</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/03/malicious-mobile-code-meets-exploit-selling/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Admitting Compromise Good News</title>
		<link>http://www.veracode.com/blog/2010/01/google-admitting-compromise-good-news/</link>
		<comments>http://www.veracode.com/blog/2010/01/google-admitting-compromise-good-news/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 16:50:52 +0000</pubDate>
		<dc:creator>Chris Wysopal</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Disclosure]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=1032</guid>
		<description><![CDATA[I applaud Google for coming forward and letting the world know about how they were attacked and what the attackers were after. Secrecy only helps the offense. Most of the time we only hear about attacks when there is public evidence such as a defaced web page, screen shots sourced from the attacker, or there [...]]]></description>
			<content:encoded><![CDATA[<p>I applaud Google for coming forward and letting the world know about how they were attacked and what the attackers were after.  Secrecy only helps the offense. Most of the time we only hear about attacks when there is public evidence such as a defaced web page, screen shots sourced from the attacker, or there is a prosecution.  Since the vast majority of attackers are quiet and not prosecuted the public admission of attacks is a great public service which will help organizations understand their own risk. Other organization similar in size and sophistication to Google are clearly at risk from similar attackers and attacks.</p>
<p>This widespread attack on US high tech companies signals that 2010 is the year organizations will wake up that there are sophisticated attackers after their intellectual property such as source code and hardware designs.  All the same attacks used to steal CC#’s and online passwords for financial theft are being targeted at intellectual property.</p>
<p>Attackers are well organized and have command &amp; control in place so that the discovery of a zero day vulnerability can be used to maximum advantage by rapidly hitting a large number of high value targets.</p>
<p>The only solution to running software with latent vulnerabilities is to stop running software with latent vulnerabilities. Anti-virus and IDS won’t help when it is a zero day vulnerability where there is no pattern to match.  Software acceptance needs to include evidence that rigorous security testing was performed.</p>
<p>It is time for organizations to take a hard look at the set of client software they allow on their employees workstations and determine how trustworthy that software is.  In most organizations these client systems have unbounded risk and are receiving data from the untrusted internet.  If this doesn&#8217;t change, attacks similar to what happened to Google are going to effect every organization with something of value.</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/application-testing-tool">Application Testing Tool</a><br />
<a href="http://www.veracode.com/security/static-analysis-tool">Static Analysis</a><br />
<a href="http://www.veracode.com/security/penetration-testing">Penetration Testing</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 Tools</a><br />
<a href="http://www.veracode.com/security/web-application-security-testing">Web Application Security</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/code-analysis">Source Code Analysis</a><br />
<a href="http://www.veracode.com/security/code-review">Code Review</a></div>
<h5>Veracode Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">SQL Injection Vulnerabilities</a><br />
<a href="http://www.veracode.com/security/xss">Cross Site Scripting</a><br />
<a href="http://www.veracode.com/security/csrf">Cross Site Request Forgery</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/01/google-admitting-compromise-good-news/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Vulnerability in Virtualization App Wipes Out 100,000 Sites</title>
		<link>http://www.veracode.com/blog/2009/06/vulnerability-in-virtualization-app-wipes-out-100000-sites/</link>
		<comments>http://www.veracode.com/blog/2009/06/vulnerability-in-virtualization-app-wipes-out-100000-sites/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 17:48:12 +0000</pubDate>
		<dc:creator>Chris Wysopal</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=793</guid>
		<description><![CDATA[Vaserve, a UK webhosting company says that 100,000 of its customer sites were wiped out in what looks like a zero day attack on HyperVM, a virtualization application they used. The HyperVM was a product of lxlabs. I checked out the lxlabs product documentation and website and could not find any reference to using a [...]]]></description>
			<content:encoded><![CDATA[<p>Vaserve, a UK webhosting company says that 100,000 of its customer sites were wiped out in what looks like a <a href="http://www.theregister.co.uk/2009/06/08/webhost_attack/">zero day attack on HyperVM</a>, a virtualization application they used.  The HyperVM was a product of <a href="http://lxlabs.com">lxlabs</a>.</p>
<p>I checked out the lxlabs product documentation and website and could not find any reference to using a secure development lifecycle.  I did find this rather disturbing post to their forum as the first post on a new topic &#8220;Security&#8221; in April 10, 2009. It was not replied to until yesterday.</p>
<p><a href="http://forum.lxlabs.com/index.php?t=msg&#038;th=11197&#038;start=0&#038;">http://forum.lxlabs.com/index.php?t=msg&#038;th=11197&#038;start=0&#038;</a>:</p>
<blockquote><p>Lxadmin/hyperVM has become popular enough that people are SPECIFICALLY targeting these softwares now, and so we are now redoubling our focus on security.</p>
<p>If anybody knows about any vulnerability in hyperVM or lxadmin, please contact lxinfo at lxlabs.com, and we can negotiate a payment if you can demonstrate it clearly.</p>
<p>Of course, after we fix the bug and update the softwares, we will absolutely disclose it publicly too, since we believe in 100% openness, but we need to know about vulnerabilities before it can impact our clients.</p>
<p>Thanks.</p></blockquote>
<p>This is obviously not a good software security strategy. The owner of the IP is responsible for testing for security flaws. It was obviously too little too late for lxlabs.  The industry can learn from this lesson.  Don&#8217;t wait until your software reaches critical mass and raises the attention of blackhat researchers before you start to think about application security.</p>
<p>The bigger issue and one that Vaserve should be asking itself is why did they place so much trust in software that clearly didn&#8217;t have a software security process behind it.  Vaserve should have looked for evidence of a 3rd party security review before they accepted the risk of an application that has the potential to bring down their whole company.</p>
<p>Hosting and cloud provider customers need to ask themselves how they vet the providers they use.  Have their providers demanded evidence of 3rd party security reviews of the products in their infrastructure stack?  Until customers start requiring this evidence these disasters will continue.  Evidence of a security review has to start with the end user customer and work its way up the supply chain to hosting/cloud provider and then to the software vendor.</p>
<p></br></p>
<h3>Veracode Security Guides</h3>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/csrf">CSRF</a><br />
<a href="http://www.veracode.com/security/sql-injection">SQL Injection</a><br />
<a href="http://www.veracode.com/security/xss">XSS</a></div>
<h3>Data Security Resources</h3>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/data-loss-prevention">Data Loss</a><br />
<a href="http://www.veracode.com/security/data-security">Data Security</a><br />
<a href="http://www.veracode.com/security/data-breach">Data Breach</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2009/06/vulnerability-in-virtualization-app-wipes-out-100000-sites/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How To Protect Your Users From Password Theft</title>
		<link>http://www.veracode.com/blog/2009/01/how-to-protect-your-users-from-password-theft/</link>
		<comments>http://www.veracode.com/blog/2009/01/how-to-protect-your-users-from-password-theft/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 20:49:44 +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[Vulnerabilities]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=650</guid>
		<description><![CDATA[Monster.com recently disclosed yet another major breach that compromised the personal data of over 1.3 million users. This is not unlike the previous breach in August 2007, though the attack vector was likely different. From a notice on their website (emphasis mine): We recently learned our database was illegally accessed and certain contact and account [...]]]></description>
			<content:encoded><![CDATA[<p>Monster.com recently disclosed <a href="http://www.theregister.co.uk/2009/01/24/latest_monster_security_breach/">yet another major breach</a> that compromised the personal data of over 1.3 million users.  This is not unlike the <a href="http://www.crn.com/security/201802313">previous breach</a> in August 2007, though the attack vector was likely different.  From <a href="http://help.monster.com/besafe/jobseeker/index.asp">a notice on their website</a> (emphasis mine):</p>
<blockquote><p>We recently learned our database was illegally accessed and certain contact and account data were taken, including Monster user IDs <strong>and passwords</strong>, email addresses, names, phone numbers, and some basic demographic data. The information accessed does not include resumes.</p></blockquote>
<p>Considering the well-known tendency to use the same password on multiple websites, compounded with the fact that Monster <a href="http://pr.monsterworldwide.com/phoenix.zhtml?c=131001&#038;p=irol-newsArticle&#038;ID=1046234&#038;highlight=">pledged a comprehensive security review</a> after the first breach, it&#8217;s just embarrassing that they are still storing passwords in the clear.  </p>
<p>So let&#8217;s talk about how to properly store passwords for a web application. </p>
<p><strong>Use a one-way cryptographic hash</strong></p>
<p>Don&#8217;t store your passwords in the clear!  If you do, an attacker just needs to find one SQL Injection vulnerability and he&#8217;s got the password for every one of your users.  The idea behind using a one-way algorithm is that the hash value can&#8217;t be reversed to &#8220;decrypt&#8221; the password.  So how does authentication work?  When a user attempts to login, you apply the same one-way algorithm to convert the user-provided password into the hash value, and then compare the two hashes.  If they match, then the user-provided password was correct.  At no time is the password ever stored in the clear.</p>
<p>Often, developers will hear the advice &#8220;use a hash&#8221; and interpret that as &#8220;run the plaintext password through MD5 or SHA-1 and store the result.&#8221;  But that only solves part of the problem &#8212; the part about using an irreversible algorithm.  It doesn&#8217;t protect against pre-computation.  Let&#8217;s say you&#8217;ve used SHA-1 to hash your passwords, and your USERS table looks like this in the database:</p>
<pre>
USER          PASSWORD_HASH
admin         5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
bob           fbb73ec5afd91d5b503ca11756e33d21a9045d9d
jim           7c6a61c68ef8b9b6b061b28c348bc1ed7921cb53
</pre>
<p>So if you wanted to obtain the original passwords you&#8217;d have to run a dictionary or brute force attack, hashing all possible password options with SHA-1 and comparing the output to the stored hashes.  This would take a long time but eventually you&#8217;d figure some of them out.  But what if you already had a list of all 8-character permutations and their corresponding SHA-1 hashes?  Now all you have to do is <em>look up</em> the hashes, rather than computing them on-the-fly.  This is the idea behind <a href="http://en.wikipedia.org/wiki/Rainbow_table">rainbow tables</a>.  </p>
<p>An attacker with a SHA-1 rainbow table covering 8-character alphanumeric combinations would quickly look up those three hashes and obtain the original passwords of &#8220;password&#8221;, &#8220;p4ssword&#8221;, and &#8220;passw0rd&#8221; respectively.</p>
<p><strong>Use a salt</strong></p>
<p>The best defense against pre-computation of raw hashes is <a href="http://en.wikipedia.org/wiki/Salt_(cryptography)">salting</a>.  To salt a password, you append or prepend a random string of bits to the plaintext password and hash the result.  You then store the salt value alongside the hash so that it can be used by the authentication routine.  Look in the /etc/shadow file of any modern Unix system and you&#8217;ll see something like this:</p>
<pre>
user1:$1$lKorlp4C$RD5TSM6PaZ6oaWRVUuXT40:13740:0:99999:7:::
user2:$1$qOmA0CUm$I6IdbZDTDl6B6m7s77VPe1:13650:0:99999:7:::
user3:$1$nIEInNo5$PSxcLtvGIJArL8r2AQl74.:13749:0:99999:7:::
</pre>
<p>Let&#8217;s look at the &#8220;user1&#8243; entry in the example above, paying attention to the second field which contains a bunch of alphanumeric characters separated by dollar signs. The first token, 1, is a version number,  The second token, lKorlp4C, is the salt.  The third token, RD5TSM6PaZ6oaWRVUuXT40, is the one-way hash that was calculated using lKorlp4C as the salt.</p>
<p>When the user attempts to login, the system passes the user-provided password along with the stored salt into the hash routine (in this case, md5crypt), and compares the result to the stored hash.</p>
<p>Each bit of salt used doubles the amount of storage and computation required for a pre-computed table.  For instance, if we used one bit of salt &#8212; either 0 or 1 &#8212; the rainbow table would have to account for two variations of every password.  Eight bits of salt require 2^8, or 256 variations of every password.  Use a sufficiently large salt and pre-computation becomes infeasible.  For example, the md5crypt utility uses 48 bits of salt (and for an extra layer of protection, it runs 1000 iterations of MD5 to slow down dictionary attacks).</p>
<p>There are a couple of common mistakes that people make with regard to salting.  First, don&#8217;t use the same salt every time.  If you do, you&#8217;re not really increasing the search space because the attacker only has to account for a single salt value.  Second, don&#8217;t worry about protecting the salt values, they&#8217;re not secrets.  The added security is derived not from the secrecy of the salt but rather by the amount it increases the resources required for pre-computation.</p>
<p>If you have OpenSSL installed you can play around with various salt mechanisms and see what the output looks like:</p>
<pre>
$ openssl passwd -h
Usage: passwd [options] [passwords]
where options are
-crypt             standard Unix password algorithm (default)
-1                 MD5-based password algorithm
-apr1              MD5-based password algorithm, Apache variant
-salt string       use provided salt
-in file           read passwords from file
-stdin             read passwords from stdin
-noverify          never verify when reading password from terminal
-quiet             no warnings
-table             format output as table
-reverse           switch table columns

$ openssl passwd -1 password
$1$LH1SwzJI$0ho4XuPVfGlbWIcNuGIap/
$ openssl passwd -1 password
$1$eAUtQOBh$GlvJwVsyb8In5KKkvnR0E0
$ openssl passwd -1 password
$1$PgaSiWTy$ElLh6uy83Y6T4Y70AGmV20
</pre>
<p>A quick Google search shows that there is a <a href="http://www.codingforums.com/showthread.php?t=155709">lot of confusion</a> about salting.</p>
<p><strong>But wait, now my password recovery feature won&#8217;t work</strong></p>
<p>What&#8217;s that? You say your application has one of those &#8220;Forgot My Password&#8221; features where a user can type in their username and their current password will be sent to the e-mail address on file?  Clearly, that requirement <em>depends</em> on passwords being stored either in the clear or using a  reversible mechanism such as symmetric encryption.  </p>
<p>The answer here is to redesign your password recovery feature.  Don&#8217;t let an unnecessary requirement force you into poor security practices.  If you must e-mail a password, generate a temporary password that&#8217;s only valid for a short time period, and require the user to login immediately and select a new password.  This obviates the need to retrieve the original, forgotten password.</p>
<p><strong>Why not just use symmetric encryption?</strong></p>
<p>Instead of storing passwords in the clear, you could encrypt them using a symmetric algorithm such as AES and have the application encrypt/decrypt as needed.  While this solves the plaintext storage problem, it creates a new problem: key management.  Where do you store the key?  How often does it change?  How many people have access to it?  What do you do if/when the key is compromised?  And so on.  The tradeoff really isn&#8217;t worth it for something that&#8217;s more elegantly solved with salted hashes.</p>
<p><strong>Layered defenses</strong></p>
<p>While you&#8217;re rethinking password storage, it might be a good time to consider other <a href="http://www.veracode.com/blog/2009/01/tallying-twitters-security-best-practice-violations/">common flubs</a> such as password complexity and brute-force protections.</p>
<p><strong>In conclusion</strong></p>
<ul>
<li>Storing passwords in the clear puts your users at unnecessary risk if (when) your application database is compromised</li>
<li>Use salted hashes instead of storing passwords in a recoverable format</li>
<li>Password recovery mechanisms can be implemented without needing to obtain the original password</li>
<li>As with any aspect of security architecture, use layered defenses</li>
</ul>
<p>Have fun refactoring!</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/01/how-to-protect-your-users-from-password-theft/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Microsoft Fixes 8-year Old Design Flaw in SMB</title>
		<link>http://www.veracode.com/blog/2008/11/microsoft-fixes-8-year-old-design-flaw-in-smb/</link>
		<comments>http://www.veracode.com/blog/2008/11/microsoft-fixes-8-year-old-design-flaw-in-smb/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 21:11:12 +0000</pubDate>
		<dc:creator>Christien Rioux</dc:creator>
				<category><![CDATA[Disclosure]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Vulnerabilities]]></category>
		<category><![CDATA[advisory dinosaur bug]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=483</guid>
		<description><![CDATA[With regard to the recent Patch Tuesday fix, there has been an issue fixed regarding NTLM Relaying, that has been around for more than eight years. In 2000, I wrote an advisory about NTLM relaying (CVE-2000-0834). The problem turned out to be significantly larger than I originally suggested in the advisory. The attack extended to [...]]]></description>
			<content:encoded><![CDATA[<p>With regard to the recent Patch Tuesday fix, there has been an issue fixed regarding NTLM Relaying, that has been around for more than eight years. </p>
<p>In 2000, I wrote an <a href="http://packetstormsecurity.org/advisories/atstake/A091400-1">advisory</a> about NTLM relaying (<a href="http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2000-0834">CVE-2000-0834</a>). The problem turned out to be significantly larger than I originally suggested in the advisory. The attack extended to other NTLM-based authentications on other protocols and allowed general-purpose credential theft via a man-in-the-middle attack.</p>
<p>The <a href="http://en.wikipedia.org/wiki/SMBRelay">SMBRelay</a> tool was published in 2001 by Sir Dystic of Cult Of The Dead Cow, and that really took it to the next level. The protocol completely fell apart. It kicked off a number of other analyses of the NTLM protocol that finally resulted in this patch.  Eight years after it&#8217;s discovery.</p>
<p>At least they got around to it. Thanks!</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/web-security">Web Security</a><br />
<a href="http://www.veracode.com/security/vulnerability-assessment-software">Vulnerability Assessment</a><br />
<a href="http://www.veracode.com/security/application-testing-tool">Application Analysis</a><br />
<a href="http://www.veracode.com/security/static-code-analysis">Static Code Analysis</a><br />
<a href="http://www.veracode.com/security/code-analysis">Source Code Analysis</a><br />
<a href="http://www.veracode.com/security/software-testing-tools">Software Testing Tools</a><br />
<a href="http://www.veracode.com/security/static-analysis-tool">Static Analysis Tool</a><br />
<a href="http://www.veracode.com/security/web-application-security-testing">Web Application Security</a><br />
<a href="http://www.veracode.com/">Application Security</a></div>
<p></p>
<h5 style="margin-bottom: 10px">Security Threat Guides</h5>
<div style="margin-left:15px;">
<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">XSS</a><br />
<a href="http://www.veracode.com/security/csrf">CSRF</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2008/11/microsoft-fixes-8-year-old-design-flaw-in-smb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Speculation on Palin E-mail Hack</title>
		<link>http://www.veracode.com/blog/2008/09/speculation-on-palin-e-mail-hack/</link>
		<comments>http://www.veracode.com/blog/2008/09/speculation-on-palin-e-mail-hack/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 18:12:08 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[RESEARCH]]></category>
		<category><![CDATA[Vulnerabilities]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[palin]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=282</guid>
		<description><![CDATA[Assuming the mailbox hack is not an elaborate ruse, how did they do it? Almost as bad as the Sprint PCS password reset fiasco that made the news in April, here is the Yahoo Mail password reset screen: As you can see, you need to know the user&#8217;s birthday, country of residence, and postal code. [...]]]></description>
			<content:encoded><![CDATA[<p>Assuming <a href="http://www.veracode.com/blog/2008/09/sarah-palins-yahoo-mailbox-compromised/">the mailbox hack</a> is not an elaborate ruse, how did they do it?</p>
<p>Almost as bad as the <a href="http://consumerist.com/376845/flawed-security-lets-sprint-accounts-get-easily-hijacked">Sprint PCS password reset fiasco</a> that made the news in April, here is the Yahoo Mail password reset screen:</p>
<p><a href="http://www.veracode.com/blog/wp-content/uploads/2008/09/yahooreset.gif"><center><img src="http://www.veracode.com/blog/wp-content/uploads/2008/09/yahooreset-300x178.gif" alt="" title="yahooreset" width="300" height="178" class="aligncenter size-medium wp-image-283 photoborder" /></center></a></p>
<p>As you can see, you need to know the user&#8217;s birthday, country of residence, and postal code.  Not difficult information to dig up in Palin&#8217;s case, <a href="http://wikileaks.org/leak/sarah-palin-hack-2008/email-account-info.txt">as shown here</a>.  After you enter this information correctly, you are asked to type in the alternate e-mail address that&#8217;s associated with the account.  But they give you hints &#8212; so if your alternate e-mail was sarah@alaska.gov, they would show you s****@a*****.gov.</p>
<p>Assuming you guess the alternate e-mail correctly, Yahoo mails a password reset link to that address.  So it&#8217;s likely that the attacker may have also had to gain access to her alternate e-mail account.  Either that, or they exploited a vulnerability in the Yahoo password reset mechanism itself, which seems less likely but not implausible.</p>
<p>So Yahoo itself probably didn&#8217;t get hacked, per se, even though there will probably be a lot of FUD in the media about that.</p>
<p><b>Update 08/18/2008 1:00am EST:</b> </p>
<p>Just found this writeup describing how it transpired: <a href="http://pastebin.com/f7fb944c5">http://pastebin.com/f7fb944c5</a>.    Again, not vouching for the authenticity but it does seem plausible, and it&#8217;s consistent with my password reset theory.  I guess my Yahoo account doesn&#8217;t have a secret question defined so I wasn&#8217;t presented that option when I tested the reset mechanism earlier today.</p>
<p>Just for fun, here&#8217;s the list of non-customizable secret questions Yahoo lets you pick from, as of tonight:</p>
<p><a href="http://www.veracode.com/blog/wp-content/uploads/2008/09/yahooreset2.gif"><center><img src="http://www.veracode.com/blog/wp-content/uploads/2008/09/yahooreset2-300x118.gif" alt="" title="yahooreset2" width="300" height="118" class="aligncenter size-medium wp-image-294 photoborder" /></center></a></p>
<p>And they sure don&#8217;t make it easy for you to <a href="http://help.yahoo.com/l/us/yahoo/acct/info/sqachange.html">update your secret question</a>, do they?  (must be logged in to Yahoo for that link to work)</p>
<h5>Veracode Security Solutions</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/application-testing-tool">Application Testing Tool</a><br />
<a href="http://www.veracode.com/security/static-analysis-tool">Static Analysis</a><br />
<a href="http://www.veracode.com/security/penetration-testing">Penetration Testing</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 Tools</a><br />
<a href="http://www.veracode.com/security/web-application-security-testing">Web Application Security</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/code-analysis">Source Code Analysis</a><br />
<a href="http://www.veracode.com/security/code-review">Code Review</a></div>
<h5>Veracode Security Threat Guides</h5>
<div style="margin-left:15px;">
<a href="http://www.veracode.com/security/sql-injection">SQL Injection Vulnerabilities</a><br />
<a href="http://www.veracode.com/security/xss">Cross Site Scripting</a><br />
<a href="http://www.veracode.com/security/csrf">Cross Site Request Forgery</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/2008/09/speculation-on-palin-e-mail-hack/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

