<?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 Security Blog: Application security research, security trends and opinions &#187; RESEARCH</title>
	<atom:link href="http://www.veracode.com/blog/category/research/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.veracode.com/blog</link>
	<description>Application security testing, analysis, and metrics</description>
	<lastBuildDate>Fri, 18 May 2012 16:17:21 +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>A Brief Field Guide to Post-UDID Unique IDs on iOS</title>
		<link>http://www.veracode.com/blog/2012/04/a-brief-field-guide-to-post-udid-unique-ids-on-ios/</link>
		<comments>http://www.veracode.com/blog/2012/04/a-brief-field-guide-to-post-udid-unique-ids-on-ios/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 20:19:11 +0000</pubDate>
		<dc:creator>Brandon Creighton</dc:creator>
				<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=4814</guid>
		<description><![CDATA[In iOS 5.0, the call to retrieve the device-specific unique identifier (&#8220;UDID&#8221;) of an iOS device &#8212; specifically, the accessor to UIDevice&#8217;s uniqueIdentifier property &#8212; was officially marked as deprecated. This probably wasn&#8217;t much of a surprise to anyone involved in mobile privacy and application development. For over a year, researchers have been pointing out [...]]]></description>
			<content:encoded><![CDATA[<p>In iOS 5.0, the call to retrieve the device-specific unique identifier (&#8220;UDID&#8221;) of an iOS device &#8212; specifically, the accessor to UIDevice&#8217;s uniqueIdentifier property &#8212; was officially <a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIDevice_Class/DeprecationAppendix/AppendixADeprecatedAPI.html">marked as deprecated</a>. This probably wasn&#8217;t much of a surprise to anyone involved in mobile privacy and application development. For over a year, researchers have been pointing out numerous instances in which popular mobile applications exfiltrate device-specific data to remote sites, sometimes without encryption. This often includes the UDID, but also can include the device&#8217;s model information (or more personal data, like address book information). Some examples of this research are <a href="http://seclab.cs.ucsb.edu/media/uploads/papers/egele-ndss11.pdf">the PiOS project</a> and <a href="http://www.pskl.us/wp/wp-content/uploads/2010/09/iPhone-Applications-Privacy-Issues.pdf">Eric Smith&#8217;s 2010 paper</a>. Although the deprecation was a warning to developers that they shouldn&#8217;t rely on uniqueIdentifier in the future, the call was still present and implemented in the API. It remains so to this day. Around the same time, Apple also directed some more <a href="http://www.insidemobileapps.com/2012/02/16/apple-steps-up-outreach-to-developers-over-moving-away-from-udids/">pointed warnings</a> at some large developers, asking them to move away from using the global ID.</p>
<div id="related_posts">
<div id="related_posts_content">
<div>
<h4>Editor&#8217;s Pick</h4>
<p><a href="http://www.veracode.com/blog/2011/05/possible-playstation-network-attack-vectors/" rel="bookmark" title="Possible PlayStation Network Attack Vectors">Possible PlayStation Network Attack Vectors</a></p>
<p><a href="http://www.veracode.com/blog/2012/01/delivering-unhappiness/" rel="bookmark" title="Delivering  Unhappiness">Delivering Unhappiness</a></p>
<p><a href="http://www.veracode.com/blog/2008/08/mbta-hack-is-it-really-this-easy/" rel="bookmark" title="MBTA Hack: Is It Really This Easy?">MBTA Hack: Is It Really This Easy?</a></p>
<p><a href="http://www.veracode.com/blog/2009/07/blackberry-spyware-dissected/" rel="bookmark" title="BlackBerry Spyware Dissected">BlackBerry Spyware Dissected</a></p>
<p><a href="http://www.veracode.com/blog/2008/09/learning-from-sarah-palin-yahoo-email-compromise/" rel="bookmark" title="Learning From Sarah Palin’s Yahoo Mail Compromise">Learning From Sarah Palin’s Yahoo Mail Compromise</a></p>
</div>
</div>
</div>
<p>More recently (in March), App Store review teams <a href="http://techcrunch.com/2012/03/24/apple-udids/">began to reject applications</a> that used this method. Although you&#8217;re free to use it during development and in applications distributed using ad-hoc or in-house distribution (e.g. pushed from a Mobile Device Management server), this call is no longer allowed in the App Store. There is now no way for applications to retrieve an ID that is both globally available to all applications and guaranteed to be unique across all iOS devices. (The MAC address of the primary wireless device comes close, but isn&#8217;t guaranteed; see below). Undoubtedly this made some privacy advocates and device users happy, as there will no longer be an immutable key for application publishers and mobile ad/analytics networks to track. However, those unique-ID users promptly went to work in creating replacement ID schemes that they could use to track a device across multiple, not-necessarily-related applications. This is a gap that needed to be filled quickly for many businesses in the mobile space; if you&#8217;re interested in the details of how these IDs are used, a good writeup of one use case recently appeared in <a href="http://www.mopub.com/2012/03/29/udid/">this post on the MoPub blog</a>. The short version: they use(d) UDIDs to correlate new application installations or in-app purchases with previous ad clicks. This is worth pointing out, because it&#8217;s at the heart of their business, and other companies like it: the need to track devices in a persistent way did not disappear along with the API call.</p>
<p>This post is about ongoing developments in the device-wide ID space, with a special focus on two dueling schemes and codebases that have gained users and attention: OpenUDID and SecureUDID. If you&#8217;re an iOS developer, this could (hopefully) serve as a quick introduction to the details of these systems, including their limitations and potential for information leakage.</p>
<h3>Problem statement: The challenges of creating a new unique ID</h3>
<p>Developing an alternative to the UDID isn&#8217;t as straightforward as it might seem to someone unfamiliar with modern mobile-app environments. Although there&#8217;s <a href="http://techcrunch.com/2012/04/22/udid-alternatives/">anecdotal evidence</a> that some ad networks are moving towards fingerprinting/time-correlation/IP collection techniques to track events, others are merely choosing a new scheme to generate an ID and using their existing backend infrastructure. We can place these new schemes into two general categories: those that try to derive an ID value from unique data that is already globally accessible on the device; and those that generate a new ID and publish it to other applications using a particular scheme-specific storage protocol.</p>
<p>The former approach was a natural leap for developers. Article comments, <a href="http://www.insidemobileapps.com/2011/11/01/the-new-alternative-to-udids-seems-to-be-the-mac-address-but-privacy-issues-still-loom/">blog posts</a>, and <a href="http://stackoverflow.com/questions/9743880/ios-udid-deprecated-mac-address">Stack Overflow answer</a> suggested forms of this soon after the uniqueIdentifier deprecation. In fact, the ODIN working group&#8217;s approach is quite simple: it is merely a SHA-1 hash of the raw MAC address of en0, which is present on every iDevice. (Specfically, their ID is the uppercase-hex-string format of the SHA1 hash. See <a href="http://code.google.com/p/odinmobile/source/browse/Sample%20Code/iOS/trunk/ODIN.m">http://code.google.com/p/odinmobile/source/browse/Sample%20Code/iOS/trunk/ODIN.m</a>.) Others SHA1 over a message containing the MAC address and an app-specific ID &#8212; generally the application&#8217;s bundle ID. <a href="https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5">Here&#8217;s</a> an example of that approach. These solutions, while clever, often do a poor job of protecting the MAC itself; if an attacker can capture MAC addresses from a network on which mobile devices are joined, he or she can correlate those with UDIDs stored and saved elsewhere. Even if the schemes involved hashes more computationally expensive than a single round of SHA1, the space for a dictionary attack against all Apple OUI prefixes is quite small. The <a href="http://standards.ieee.org/develop/regauth/oui/oui.txt">current OUI list</a>, as of 4/25/2012, includes 147 prefixes assigned to &#8220;Apple Inc&#8221; or &#8220;Apple Computer&#8221; (or some variation thereof). Each of those allows for a maximum of 2^24 = 16777216 MAC addresses, or ~2.47 * 10^9 addresses overall. Furthermore, this scheme doesn&#8217;t afford users control over their IDs &#8212; the ability to reset them entirely, as is possible with cookies, browser local storage, and Flash cookies. (As research like <a href="http://samy.pl/evercookie/">Evercookie</a> shows, battling persistent fingerprinting on a mobile device is child&#8217;s play compared to trying to stop a modern desktop browser from being tracked by a determined attacker/ad network with sufficient reach.)</p>
<p>The second approach that UDID replacement schemes use &#8212; generating an ID and publishing it to other applications &#8212; isn&#8217;t perfect either. These schemes work like this:</p>
<ol>
<li>Look for an ID published by any other application. If one exists, use it.</li>
<li>Otherwise, generate a new ID. Publish the new ID, then use it.</li>
<li>(optional) Cache the ID being used to app-local storage (filesystem, NSUserDefaults, keychain, etc.)</li>
</ol>
<p>All that&#8217;s left to work out is the publishing mechanism. Effective sandboxing allows for very few reliable ways for iOS applications to exchange data on a device, particularly when the applications aren&#8217;t running at the same time. The two primary supported mechanisms for persistent, bidirectional information exchange that don&#8217;t involve external services are keychain items and the pasteboard. The <a href="http://developer.apple.com/library/ios/#DOCUMENTATION/Security/Reference/keychainservices/Reference/reference.html">kSecAttrAccessGroup keychain query option</a> requires applications to share a common publisher and application-ID prefix; because of this, keychain sharing isn&#8217;t a general solution for storing a global ID. Custom URL schemes, used by many applications as a go-to for unidirectional IPC, wouldn&#8217;t work here either &#8212; there&#8217;s no way to get data back from a call to UIApplication -openURL:.</p>
<p>All that&#8217;s left is custom pasteboards. On iOS, UIPasteboards are used not only for sharing cut-and-paste data between applications, but also as a general key-value store accessible by all applications. They&#8217;re even persistent across phone reboots, and the application that created a pasteboard doesn&#8217;t need to be running for it to be accessible to other applications on a device. However, when the application that created a UIPasteboard item is removed from a device, so is the pasteboard. Because users install and remove applications fairly regularly, using a single location to store your ID isn&#8217;t wise: as soon as the user deletes the application that created the ID, the pasteboard disappears. This means that schemes can&#8217;t use a single, global UIPasteboard to store their ID; they must diversify.</p>
<p>Before the examples, a quick note on the above. Although the documentation does say that pasteboards created by an application are to be removed on application uninstallation, we&#8217;ve failed to observe this after trying multiple applications on a real device. In all cases, a UIPasteboard marked as persistent persists even after its creator is removed and a system reboot occurs (iPhone 4S, iOS 5.0.1). If you&#8217;re an iOS developer, keep this in mind. It looks like <a href="http://stackoverflow.com/questions/8727816/the-persistancy-on-my-uipasteboard-is-still-active-when-the-app-is-uninstalled">we&#8217;re not the only ones to observe this</a>, either. And in any case, UIPasteboard entries are globally mutable, with exceptions for the special system pasteboards. Any other application may read, write, or remove any other entry at will.</p>
<p>Now, let&#8217;s take a look at some real-world examples.</p>
<h3>OpenUDID (<a href="https://github.com/ylechelle/OpenUDID">https://github.com/ylechelle/OpenUDID</a>)</h3>
<p>OpenUDID is designed as a drop-in replacement for UIDevice -uniqueIdentifier &#8212; a small API that provides a device-wide unique ID, that is shared across all applications that use the OpenUDID scheme. OpenUDID uses a 160-bit ID. The first 128 bits are the result of a single round of MD5 on the return value of NSProcessInfo -globallyUniqueString, which is derived from the device&#8217;s hostname (typically based off of the owner&#8217;s name), the pid of the running app, and a timestamp (docs <a href="https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSProcessInfo_Class/Reference/Reference.html">here</a>). The latter 32 bits are the output of arc4random(). Like the original UDID, this is retrieved by the OpenUDID API as an NSString in lowercase-hex format.</p>
<p>OpenUDID&#8217;s persistence is achieved using the UIPasteboard, as discussed above. To ensure persistence past application removal, OpenUDID doesn&#8217;t use a single custom pasteboard item, but <em>many</em> custom pasteboard items &#8212; 100, to be exact &#8212; named &#8220;org.OpenUDID.slot.N&#8221;, where N is [0, 99]. Each application that uses OpenUDID chooses one of these &#8220;slots&#8221; (saving its choice locally in NSUserDefaults), and saves a copy of its idea of the current OpenUDID inside it. These slots are all public, so if there&#8217;s no cached OpenUDID, the code goes through all 100 slots and chooses the UDID that is represented most frequently. If and only if all slots are empty (or corrupted), a new OpenUDID is generated by the scheme listed above.</p>
<p>OpenUDID&#8217;s optout functionality works by setting a value in the NSDictionary stored inside the pasteboard slot for a given application. This value is not propagated from other applications&#8217; slots, like the UDID is. For this reason, there&#8217;s no global opt-out functionality respected by OpenUDID. However, since UIPasteboard objects are mutable, and the data in the slots are unencrypted, it&#8217;s possible for another application to rewrite all populated UIPasteboard slots with values that include opt-out functionality.</p>
<h3>SecureUDID (<a href="http://secureudid.com">http://secureudid.com</a>)</h3>
<p>SecureUDID&#8217;s design goals are a bit different from OpenUDID and the original UIDevice UDID. Instead of providing a common ID shared across all applications, SecureUDID shares an ID across multiple applications that share a secret. The ID is encrypted using the secret as the key; the secret is then embedded in the binary, and ostensibly shared across all other users of your ID. This is intended to limit the spread of tracking applications to those authorized by a specific subset of SecureUDID users.</p>
<p>Persistence: Like OpenUDID, SecureUDID uses UIPasteboard &#8220;slots&#8221; (64 of them) to store copies of an ID along with some metadata. Unlike OpenUDID, it doesn&#8217;t claim one slot per application &#8212; instead, it&#8217;s one application per <em>secret</em>. This potentially has implications for persistence: if the application that created the UIPasteboard entry is removed, the UIPasteboard documentation says that the slot will be removed as well. (As noted above, in practice this doesn&#8217;t happen, but it might in the future.)</p>
<p>SecureUDID&#8217;s IDs are generated by CFUUIDCreate() which results in a 128-bit value that is derived from hardware values (including, likely, the MAC address, according to <a href="https://developer.apple.com/library/mac/#documentation/CoreFoundation/Reference/CFUUIDRef/Reference/reference.html">the documentation</a>) but guaranteed to be unique. It also features opt-out functionality, but SecureUDID honors opt-out flags from <em>all</em> other SecureUDID slots, even those which aren&#8217;t using an ID encrypted with the (domain,key) pair used by the checking application. For users, this means that if you opt out of SecureUDID in one location, this will propagate to other applications that use SecureUDID as well.</p>
<p>SecureUDID&#8217;s secret (the crypto key) is a SHA1 hash of the concatenation of two values, both passed to SecureUDID&#8217;s +UDIDForDomain:usingKey: method. Although the documentation implies that one of these is intended to be public knowledge (bundle ID) and the other is a private key, the effective secrecy of these values is identical if they&#8217;re both embedded in the binary. If this is the case, then they are visible to anyone with a copy of the application&#8217;s binary or a running device. As such, there are no technical barriers preventing unauthorized applications from using these secrets to decrypt and read SecureUDIDs created by from existing, published applications.</p>
<p>Another interesting feature of SecureUDID is that its pasteboard slots (&#8220;org.secureudid-N&#8221;, where N is [0, 63]) store an unencrypted NSDate value that contains the last time a given key was accessed. All applications that use a given SecureUDID secret update this value; it&#8217;s used to evict an existing UIPasteboard slots when all 64 are full. Since this value is global, it means that unscrupulous developers could write applications that can use this value to nefarious purposes &#8212; effectively getting information on how often applications that share a common secret are used&#8211; even without knowing the key or decrypting the SecureUDID.</p>
<h3>End</h3>
<p>It&#8217;s worth pointing out that these schemes are still very much in development. In particular, opt-out functionality is still being ironed out, particularly with respect to UI options. Even though versions of these schemes are in shipping code today, this may change in the future. However, the fundamental challenges remain, as will analytics/advertising networks&#8217; need for tracking.</p>
<p>Still, it&#8217;s difficult to say whether there&#8217;s any net change here. Although an easy-to-use (and much-berated) unique ID mechanism is now gone, some companies&#8217; need to track users across multiple applications has not changed. It&#8217;s relatively easy for ad or analytics networks to get their users to incorporate new schemes like those dissected here &#8212; in fact, it&#8217;s standard operating procedure to hand users a bundle of code that&#8217;s fairly easy to integrate. Users can expect to see variations on these tracking schemes for the foreseeable future. Technical changes (such as Apple&#8217;s decision to remove the call) can only go so far without breaking much-desired features &#8212; at some point, the responsibility lies with individual application publishers to decide exactly what kind of tracking/identification technology they decide to use. These publishers are ultimately the ones that decide what goes in applications that people use, and how much control users have over their personal usage data. As for savvy users, they&#8217;re left with limited options: in some cases, learning about these schemes opens up avenues for interference (e.g. write an application that deletes or rewrites all tracking-related UIPasteboard items); in others, the only option is to either accept some amount of usage tracking or not use certain applications at all.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2012/04/a-brief-field-guide-to-post-udid-unique-ids-on-ios/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Verizon Data Breach Investigative Report 2012 &#8212; Application Security Specific Highlights</title>
		<link>http://www.veracode.com/blog/2012/03/verizon-data-breach-investigative-report-2012-application-security-specific-highlights/</link>
		<comments>http://www.veracode.com/blog/2012/03/verizon-data-breach-investigative-report-2012-application-security-specific-highlights/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 13:06:23 +0000</pubDate>
		<dc:creator>Chris Wysopal</dc:creator>
				<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=4058</guid>
		<description><![CDATA[Verizon just released its 2012 Data Breach Investigative Report which contains findings contributed by global agencies such as the U.S. Secret Service, the Dutch High Tech Crime Unit, the Irish Reporting and Information Service, the Australian Federal Police and the London Metropolitan Police. I thought it would be good to put together a quick summary [...]]]></description>
			<content:encoded><![CDATA[<p>Verizon just released its <a href="http://go.terremark.com/2012-dbir-registration" target="_blank">2012 Data Breach Investigative Report </a>which contains findings contributed by global agencies such as the U.S. Secret Service, the Dutch High Tech Crime Unit, the Irish Reporting and Information Service, the Australian Federal Police and the London Metropolitan Police. I thought it would be good to put together a quick summary covering application security specific highlights in the report. Enjoy! </p>
<p>81% of attacks utilized some sort of Hacking.  Within hacking there is a stark difference between large and small organizations.  SQL injection comes in 3rd after use of stolen login credentials and exploitation of backdoor or command and control channel.  It is tied with dictionary attacks.  This data shows large organizations have much more <a href="http://www.veracode.com/about">application security risk</a> than small organizations.</p>
<p><a href="http://www.veracode.com/blog/wp-content/uploads/2012/03/DBIR-1.png"><img src="http://www.veracode.com/blog/wp-content/uploads/2012/03/DBIR-1.png" alt="" title="DBIR-1" width="628" height="407" class="aligncenter size-full wp-image-4064" /></a><br />
Source: Verizon DBIR Report</p>
<p>SQL Injection comes in 8th overall for threat action when malware, physical, and social engineering are included.</p>
<p><a href="http://www.veracode.com/blog/wp-content/uploads/2012/03/DBIR-2.png"><img src="http://www.veracode.com/blog/wp-content/uploads/2012/03/DBIR-2.png" alt="" title="DBIR-2" width="622" height="297" class="aligncenter size-full wp-image-4065" /></a><br />
Source: Verizon DBIR Report</p>
<p>This breakdown by larger organizations in this year’s DBIR helps highlight our target customer pain much better.  10% of all hacking breaches were <a href="http://www.veracode.com/products/products-overview">web application</a> related for all orgs but 54% for large organizations! How can a large organization not have a <a href="http://www.veracode.com/">web application security</a> program after seeing this data?</p>
<p><a href="http://www.veracode.com/blog/wp-content/uploads/2012/03/DBIR-3.png"><img src="http://www.veracode.com/blog/wp-content/uploads/2012/03/DBIR-3.png" alt="" title="DBIR-3" width="369" height="327" class="aligncenter size-full wp-image-4066" /></a><br />
Source: Verizon DBIR Report</p>
<p>And finally <a href="http://www.veracode.com/security/sql-injection" title="SQL Injection">SQL Injection makes the top list of risk reduction recommendations</a>. </p>
<p>Our recommendations will be driven off of Table 8, which is in the Threat Action Overview section, and shows the top ten threat actions against larger organizations. Rather than repeat the whole list here, we’ll summarize the points we think represent the largest opportunities to reduce our collective exposure to loss:</p>
<ul>
<li> Keyloggers and the use of stolen credentials
<li> Backdoors and command control
<li> Tampering
<li> Pretexting
<li> Phishing
<li> Brute force
<li> SQL Injection
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2012/03/verizon-data-breach-investigative-report-2012-application-security-specific-highlights/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Demystifying Binary Static Analysis</title>
		<link>http://www.veracode.com/blog/2012/03/demystifying-binary-static-analysis/</link>
		<comments>http://www.veracode.com/blog/2012/03/demystifying-binary-static-analysis/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 13:06:48 +0000</pubDate>
		<dc:creator>Chris Wysopal</dc:creator>
				<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=3937</guid>
		<description><![CDATA[Last Wednesday I was honored to be able to present a talk on Binary Static Analysis to an Intro to Security class at Tufts University. The instructor, Ming Chow, approached me to speak to his class as he likes to bring in security practioners who are delivering security to their customers. The slide to my [...]]]></description>
			<content:encoded><![CDATA[<p>Last Wednesday I was honored to be able to present a talk on Binary Static Analysis to an Intro to Security class at Tufts University. The instructor, Ming Chow, approached me to speak to his class as he likes to bring in security practioners who are delivering security to their customers.  </p>
<p>The slide to my presentation are here <a href="http://www.cs.tufts.edu/comp/116/lectures/static-binary-analysis-wysopal-tufts-comp-116.pdf" title="Binary Static Analysis">http://www.cs.tufts.edu/comp/116/lectures/static-binary-analysis-wysopal-tufts-comp-116.pdf</a></p>
<p>There does seem to be some mystery still to static binary analysis even though Veracode has been delivering this application security testing process to hundreds of customers with tens of thousands of applications for almost 5 years now.  One of my goals in this presentation is to make it clear that there is nothing source code analysis can do that binary analysis can’t.  Binary analysis even has benefits over source code analysis.  It may seem counter-intuitive so you will want to see the presentation.</p>
<div id="related_posts">
<div id="related_posts_content">
<div>
<h4>Editor&#8217;s Pick</h4>
<p><a href="http://www.veracode.com/blog/2012/03/safe-coding-and-software-security-infographic/" rel="bookmark" title="Safe Coding and Software Security Infographic">Safe Coding and Software Security Infographic</a></p>
<p><a href="http://www.veracode.com/blog/2009/05/but-thats-impossible/" rel="bookmark" title="But That’s Impossible!">But That’s Impossible!</a></p>
<p><a href="http://www.veracode.com/blog/2010/06/which-tastes-better-for-security-java-or-net/" rel="bookmark" title="Which Tastes Better for Security, Java or .NET?">Which Tastes Better for Security, Java or .NET?</a></p>
<p><a href="http://www.veracode.com/blog/2009/04/decoding-the-dbir-2009-cover/" rel="bookmark" title="Decoding the Verizon DBIR 2009 Cover">Decoding the Verizon DBIR 2009 Cover</a></p>
<p><a href="http://www.veracode.com/blog/2009/01/cwesans-top-25-most-dangerous-programming-errors/" rel="bookmark" title="CWE/SANS Top 25 Most Dangerous Programming Errors">CWE/SANS Top 25 Most Dangerous Programming Errors</a></p>
</div>
</div>
</div>
<p>The students at Tufts asked about 20 questions after my presentation.  They were the best questions I have ever gotten from a group.  There were only a couple that I hadn’t fielded before but I had never had so much coverage of interesting questions that I had received before from one group.  There was one I struggled with about our control flow optimization.  I almost deferred to Sam Guyer, a Tufts professor who also works for Veracode who was in the audience but I think I answered it well enough.  The question was apt as there is always a depth of analysis tradeoff when dealing with large programs.</p>
<p>It was a very pleasurable talk and I was impressed by the students at Tufts.  I hope you go into app sec.  We can use you!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2012/03/demystifying-binary-static-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finding the Veracode Research Team at RSA</title>
		<link>http://www.veracode.com/blog/2012/02/finding-the-veracode-research-team-at-rsa/</link>
		<comments>http://www.veracode.com/blog/2012/02/finding-the-veracode-research-team-at-rsa/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 15:48:54 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=3568</guid>
		<description><![CDATA[We&#8217;re all getting ready for the yearly RSA pilgrimage. I thought I&#8217;d put together a quick post on where you can find Veracode founders and members of the Veracode Research team out at RSA. We&#8217;re looking forward to some great conversations and networking. Conference Presentations Chris Wysopal, Monday 9:30-10:20am. PANEL: National and International Security Standards [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re all getting ready for the yearly RSA pilgrimage.  I thought I&#8217;d put together a quick post on where you can find Veracode founders and members of the Veracode Research team out at RSA.  We&#8217;re looking forward to some great conversations and networking.</p>
<h3>Conference Presentations</h3>
<ul>
<li><a href="http://www.veracode.com/blog/chris-wysopal-co-founder-and-chief-technology-officer/">Chris Wysopal</a>, Monday 9:30-10:20am. <strong>PANEL: National and International Security Standards &#8212; The Viability of Cross-Jurisdictional Solutions</strong>, (<a href="https://cloudsecurityalliance.org/events/csa-summit-rsa-2012/">Cloud Security Alliance Summit</a>), Gateway Room 102/103</li>
<li><a href="http://www.veracode.com/blog/chris-eng-director-of-security-services/">Chris Eng</a>, Monday 2:00-3:10pm. <strong>Security Testing</strong> (<a href="https://ae.rsaconference.com/US12/scheduler/modifySession.do?SESSION_ID=11241">SEM-002</a>), Room 305</li>
<li>Chris Eng, Monday 3:30-4:30pm. <strong>PANEL: Data Mining for Enterprise Security</strong>, (<a href="http://www.securitymetrics.org/content/Wiki.jsp?page=Metricon6.5">Mini-Metricon 6.5</a>), SFSU @ 835 Market Street, Rooms 626-627</li>
<li>Chris Wysopal, Wednesday 3:50-5:00pm. <strong>Defending Behind the Device: Mobile Application Risks</strong> (<a href="https://ae.rsaconference.com/US12/scheduler/modifySession.do?SESSION_ID=9080">HT2-108</a>), Room 104</li>
<li><a href="http://www.veracode.com/blog/tyler-shields-senior-security-researcher/">Tyler Shields</a>, Thursday 8:00-9:10am. <strong>PANEL: Mobile Device Security: Is the Enterprise Up for the Challenge?</strong> (<a href="https://ae.rsaconference.com/US12/scheduler/modifySession.do?SESSION_ID=8602">MBS-301</a>), Room 305</li>
</ul>
<h3>Veracode Booth (#1853 in the <a href="http://www.rsaconference.com/events/2012/usa/pdf/rsac2012-floor-plan.pdf">Expo Hall</a>)</h3>
<ul>
<li>Chris Eng, Monday 6-8pm, Tuesday 11am-1pm, Wednesday 2-4pm</li>
<li>Tyler Shields, Tuesday 11am-2pm, Wednesday 4-6pm</li>
<li><a href="http://www.veracode.com/blog/christien-rioux-co-founder-and-chief-scientist/">Christien Rioux</a>, Tuesday 1-4pm, Wednesday 11am-2pm, Thursday 1-3pm</li>
<li>Chris Wysopal, Wednesday 11am-2pm</li>
</ul>
<h3>Booth Mini-Presentations</h3>
<p>These are short 10-minute talks that we&#8217;ll be doing in the booth.  Our product management and marketing teams will be doing short presentations too (<a href="http://www.veracode.com/images/pdf/wicked-smart-security-sessions.pdf">complete schedule</a>).</p>
<ul>
<li>Chris Eng, Monday 7pm. <strong>State of Software Security (Technical Findings)</strong>
<li>Tyler Shields, Tuesday 12pm. <strong>Mobile AppSec Threat Landscape</strong></li>
<li>Christien Rioux, Tuesday 2pm. <strong>Why Binary is Better</strong></li>
<li>Chris Wysopal, Wednesday 12pm. <strong>People and Apps are the New Perimeter (APT &#038; Spearphising)</strong></li>
<li>Tyler Shields, Wednesday 4pm. <strong>Mobile AppSec Threat Landscape</strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2012/02/finding-the-veracode-research-team-at-rsa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AdiOS: Say Goodbye to Nosy iPhone Apps</title>
		<link>http://www.veracode.com/blog/2012/02/adios-say-goodbye-to-nosy-iphone-apps/</link>
		<comments>http://www.veracode.com/blog/2012/02/adios-say-goodbye-to-nosy-iphone-apps/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 15:43:50 +0000</pubDate>
		<dc:creator>Mark Kriegsman</dc:creator>
				<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=3591</guid>
		<description><![CDATA[Veracoder Mark Kriegsman created a free utility, called AdiOS, that lets iOS users quickly scan the apps they've downloaded to see which have access to their complete address book. After downloading the utility, users can see which applications are accessing using this tool. Read about the utility and download it to see which of your apps are transmitting your phone book data. ]]></description>
			<content:encoded><![CDATA[<p><!-- AddThis Button BEGIN --></p>
<div class="addthis_toolbox" style="display: inline-block;float: left; width: 300px;"><a class="addthis_button_facebook_like" style="float:left;width:85px;"></a><a class="addthis_button_tweet" style="float:left;width:100px;"></a><a class="addthis_button_google_plusone" style="float:left;width:60px;padding-top:2px;"></a></div>
<p><script src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4e80d12b3f023972" type="text/javascript"></script><br />
<!-- AddThis Button END --></p>
<p>Over the past week there have been a few <a href="http://mclov.in/2012/02/08/path-uploads-your-entire-address-book-to-their-servers.html">big stories</a> on iOS apps transmitting users’ address books as a convenience feature.  Apple has even found themselves on the congressional hot seat this week about their device’s address book privacy. <a href="https://allthingsd.com/20120215/apple-app-access-to-contact-data-will-require-explicit-user-permission/">AllThingsD reports</a> that Apple, faced with growing criticism that they have given iOS developers far too much access to private data without requiring a user prompt, has pledged that apps dumping address book data will soon require explicit user permission to do so.</p>
<div id="related_posts">
<div id="related_posts_content">
<div>
<h4>Editor&#8217;s Pick</h4>
<p><a href="http://www.veracode.com/blog/2010/12/mobile-app-top-10-list/" rel="bookmark" title="Mobile App Top 10 List">Mobile App Top 10 List</a></p>
<p><a href="http://www.veracode.com/blog/2008/07/poor-security-quality-in-software-someone-is-watching-over-me/" rel="bookmark" title="Poor Security Quality In Software; Someone Is Watching Over Me">Poor Security Quality In Software; Someone Is Watching Over Me</a></p>
<p><a href="http://www.veracode.com/blog/2012/05/data-mining-a-mountain-of-zero-day-vulnerabilities-webinar-qa/" rel="bookmark" title="Data Mining A Mountain of Zero Day Vulnerabilities – Webinar Q&#038;A">Data Mining A Mountain of Zero Day Vulnerabilities – Webinar Q&#038;A</a></p>
<p><a href="http://www.veracode.com/blog/2012/05/software-security-a-chief-financial-officers-perspective/" rel="bookmark" title="Software Security: A Chief Financial Officer’s Perspective">Software Security: A Chief Financial Officer’s Perspective</a></p>
</div>
</div>
</div>
<p>Dieter Bohn at The Verge <a href="http://www.theverge.com/2012/2/14/2798008/ios-apps-and-the-address-book-what-you-need-to-know">states the problem best</a>: &#8220;Any iOS app has complete access to a large amount of data stored on your iPhone, including your address book and calendar. Any iOS app can, without asking for your permission, upload all of the information stored in your address book to its servers. From there, the app developer can either use it to help find your friends, store it in perpetuity, or do any number of other things with it.&#8221;</p>
<h3>Introducing AdiOS</h3>
<p>To find out how many of my iPhone apps were dumping the address book, I put together a utility called AdiOS (Addressbook Detector for iOS) that lets Mac users scan the iOS apps in your iTunes directory to see if they have the potential to dump your phone book externally.  AdiOS detects apps that access your entire address book, by using a binary grep to look for use of the <a href="https://developer.apple.com/library/ios/documentation/AddressBook/Reference/ABPersonRef_iPhoneOS/Reference/reference.html#//apple_ref/c/func/ABAddressBookCopyArrayOfAllPeople"><code>ABAddressBookCopyArrayOfAllPeople</code></a> API call.  AdiOS quickly and easily finds all the apps that have the potential to violate your privacy.  It could also be used to see if your apps are complying with the new policies Apple is rolling out around protection of Address book information.  </p>
<h3>Using AdiOS to Audit Your Privacy</h3>
<p>AdiOS allows Mac users to see what apps have potential privacy problems. Using AdiOS is easy. Just <a href="/tools/AdiOS/AdiOS.app.zip">download AdiOS</a>, unzip, double click on AdiOS.app, and let it run.  If you have a few hundred apps, it&#8217;ll take a couple minutes to complete.</p>
<p>Output will look something like this:</p>
<p><center><img src="http://www.veracode.com/blog/wp-content/uploads/2012/02/adios.gif" alt="" title="adios" width="516" height="423" class="aligncenter size-full wp-image-3622" /></center></p>
<h3>What We Discovered</h3>
<p>A few of us in Veracode just tested AdiOS on our own machines.  Of the roughly 450 iOS apps on my Mac, 50 of them appear to call <code>ABAddressBookCopyArrayOfAllPeople</code>.  That by itself doesn&#8217;t mean the app is transmitting any data, or doing so behind your back, but it does raise questions.  Angry Birds does it.  Citibank does it.  Several Google apps do it.  A number of lesser-known games do it, too.  Why do all of these apps need to dump my entire address book?  The quantity of apps with this ability really caught us off guard.  </p>
<p>Most apps that have email functionality (e.g. &#8220;send this to a friend&#8221;) wouldn&#8217;t ever need to use <code>ABAddressBookCopyArrayOfAllPeople</code>. They could just use the standard view controller for contact info, the <a href="https://developer.apple.com/library/ios/#DOCUMENTATION/AddressBookUI/Reference/ABPeoplePickerNavigationController_Class/Reference/Reference.html"><code>ABPeoplePickerNavigationController</code></a>.  If they wanted a custom UI for the picker, then they have no choice but to dump the address book.</p>
<p>In order to check whether the app is actually transmitting the address book information, you&#8217;d need to perform a full static analysis, or a manual test using a tool such as <a href="http://mitmproxy.org/">mitmproxy</a>.</p>
<h3>Don&#8217;t Panic!</h3>
<p>Lots of apps access your whole contact list for legitimate reasons! Social networking apps do it so you can make connections. Maps/directions/GPS apps do it for convenient access to all of your friends&#8217; addresses. Many games do it so that you can &#8220;share your highscores&#8221;, etc. But still, it&#8217;s interesting to see which apps have the potential to do what with your personal address book data.</p>
<h3>Should We Really Be Surprised?</h3>
<p>Talking to the Veracode Research team about this iOS address book madness, the consensus was that none of this should come to a surprise to anyone who’s been following mobile development or security research for mobile platforms.  </p>
<p>At Veracode, we&#8217;ve already detected this issue in some of the mobile applications that we&#8217;ve scanned for our customers.  More importantly, we can automatically determine if the app is actually transmitting the address book information once it has been retrieved.  Obviously that requires much deeper analysis than this quick binary grep tool can provide!  The deep static binary analysis  service that we offer our customers uses data flow graphs to connect the output of <code>ABAddressBookCopyArrayOfAllPeople</code> with downstream network APIs in order to confirm a privacy leak.  </p>
<p>Along with running AdiOS, consumers of mobile apps should ask their providers to perform binary static analysis on the apps they offer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2012/02/adios-say-goodbye-to-nosy-iphone-apps/feed/</wfw:commentRss>
		<slash:comments>88</slash:comments>
		</item>
		<item>
		<title>FBI Gets Bitten by Operational Security</title>
		<link>http://www.veracode.com/blog/2012/02/fbi-gets-bitten-by-operational-security/</link>
		<comments>http://www.veracode.com/blog/2012/02/fbi-gets-bitten-by-operational-security/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 15:46:46 +0000</pubDate>
		<dc:creator>Chris Wysopal</dc:creator>
				<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=3402</guid>
		<description><![CDATA[At corporations and government offices around the world a security failure happens every day. Employees forward confidential calendar events and messages to personal calendars and personal email accounts. This may make their jobs easier but it can put their companies at risk. A recent security incident involving the FBI can teach us something about corporate [...]]]></description>
			<content:encoded><![CDATA[<p>At corporations and government offices around the world a security failure happens every day. Employees forward confidential calendar events and messages to personal calendars and personal email accounts.  This may make their jobs easier but it can put their companies at risk. A recent security incident involving the FBI can teach us something about corporate security.  </p>
<p>Excerpts in italics from <a href="http://online.wsj.com/article/SB10001424052970203711104577200872061278502.html">Hackers Intercept FBI Call With U.K.</a><br />
<em>
<ul>
<blockquote><p>The Federal Bureau of Investigation said cybercriminals hacked into a cybercrime conference call between its agents and law enforcement officials overseas.</p>
<p>The 16-minute call was posted on the Internet on Friday. The hacker collective Anonymous claimed responsibility, though the FBI didn&#8217;t name the group and said a criminal investigation was under way.</p></blockquote>
</ul>
<p></em></p>
<p><center><br />
<a href="http://www.veracode.com/blog/wp-content/uploads/2012/02/evil-linguini-2.png"><img src="http://www.veracode.com/blog/wp-content/uploads/2012/02/evil-linguini-2.png" alt="" title="evil-linguini-2" width="400" height="287" class="aligncenter size-full wp-image-3408" /></a><br />
</center></p>
<p>As a security person I am not content to know what happened.  I need to know how it happened. Without understanding the how, we can’t prevent it in the future. In reading the news stories it has become clear how this happened.<br />
<em>
<ul>
<blockquote><p>The FBI said the breach wasn&#8217;t made on the agency&#8217;s secure email or other computer systems. Instead it appeared to be result of a law enforcement officer overseas who was invited to be on the FBI call and who forwarded the information to his private email account, which was compromised by hackers.</p></blockquote>
</ul>
<p></em></p>
<p>Anonymous had been working to compromise the personal email accounts (gmail, yahoo, hotmail, etc) of federal agents from multiple countries.  Personal accounts are MUCH easier to compromise than corporate/internal mail accounts:</p>
<ul>
<li>The authentication and password reset forms can be reached by any attacker over the internet</li>
<li>There is typically no password strength enforcement</li>
<li>Users reuse passwords and the password associated with this email account may have been compromised in another breach</li>
<li>There are automated password reset mechanisms.</li>
</ul>
<p>Anonymous successfully compromised at least one agent’s personal email account.  When you have a large group as a target all you need is one weak account.</p>
<p>An international law enforcement conference call was scheduled to discuss the Anonymous investigation.  A few dozen agents from 5 countries were sent meeting invitations over secure email channels to their internal official accounts.  These invitations contained the dial in number and passcode to a conference bridge.</p>
<p>At least one of the agents forwarded the invitation to their personal email account.  At least one of the agent’s personal email account had already been compromised by Anonymous. Now Anonymous had the conference bridge information.  They dialed into the conference call.  The agents running the call did not audit individuals joining the call. Anonymous was able to eavesdrop on the call and deal an embarrassing  setback to the investigation.</p>
<p>There are a few lessons we can learn from this besides not forwarding confidential mail to personal email accounts.  You need a strong password on personal email, and ideally use 2 factor authentication (like Google supports) if available.  Make sure you are using the strongest password reset mechanism if there are multiple offered.  Don’t use a secret question where the answer is public information or easily guesable.  Paris Hilton used “What is the name of your dog?” on her T-Mobile account. Not a good choice.  Finally, if sensitive information is discussed on a conference bridge, audit the people joining the call.  There is a reason the service beeps when people join.</p>
<p>As you can see the attackers are crafty and unrelenting.  You need to stick to secure operating procedures or you will be easily compromised.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2012/02/fbi-gets-bitten-by-operational-security/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<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="http://www.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>
<div id="related_posts">
<div id="related_posts_content">
<div>
<h4>Editor&#8217;s Pick</h4>
<p><a href="http://www.veracode.com/blog/2012/03/what-is-a-data-breach/" rel="bookmark" title="What is a Data Breach? Definition, Costs &#038; Security Around Data Breaches">What is a Data Breach? Definition, Costs &#038; Security Around Data Breaches</a></p>
<p><a href="http://www.veracode.com/blog/2009/05/but-thats-impossible/" rel="bookmark" title="But That’s Impossible!">But That’s Impossible!</a></p>
<p><a href="http://www.veracode.com/blog/2009/01/how-to-protect-your-users-from-password-theft/" rel="bookmark" title="How To Protect Your Users From Password Theft">How To Protect Your Users From Password Theft</a></p>
</div>
</div>
</div>
<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>The Thought Leader&#8230; One Year Later</title>
		<link>http://www.veracode.com/blog/2011/12/the-thought-leader-one-year-later/</link>
		<comments>http://www.veracode.com/blog/2011/12/the-thought-leader-one-year-later/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 14:00:47 +0000</pubDate>
		<dc:creator>Chris Eng</dc:creator>
				<category><![CDATA[Application Security]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[RESEARCH]]></category>

		<guid isPermaLink="false">http://www.veracode.com/blog/?p=2836</guid>
		<description><![CDATA[When we last left our intrepid hero, he was embarking on an quest to become an information security thought leader. A year has passed; let&#8217;s see how he&#8217;s doing! Enjoy.]]></description>
			<content:encoded><![CDATA[<p>When we last left our intrepid hero, he was embarking on an quest to <a href="http://www.veracode.com/blog/2010/12/how-to-become-an-information-security-thought-leader/">become an information security thought leader</a>. A year has passed; let&#8217;s see how he&#8217;s doing!  Enjoy.</p>
<p><center><iframe id="xtranormal_Thought leadership, part 2" name="xtranormal_Thought leadership, part 2" style="width:480px;height:299px;" src="http://www.xtranormal.com/xtraplayr/12849060/thought-leadership-part-2" marginwidth="0" marginheight="0" border="0" frameborder="0" scrolling="auto"></iframe></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.veracode.com/blog/2011/12/the-thought-leader-one-year-later/feed/</wfw:commentRss>
		<slash:comments>5</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>
	</channel>
</rss>

