<?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>Justice League Blog &#187; Software Security</title>
	<atom:link href="http://www.cigital.com/justice-league-blog/category/software-security/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cigital.com/justice-league-blog</link>
	<description></description>
	<lastBuildDate>Fri, 04 May 2012 18:54:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Can Gadgets Betray Us?</title>
		<link>http://www.cigital.com/justice-league-blog/2012/05/04/can-gadgets-betray-us/</link>
		<comments>http://www.cigital.com/justice-league-blog/2012/05/04/can-gadgets-betray-us/#comments</comments>
		<pubDate>Fri, 04 May 2012 18:54:24 +0000</pubDate>
		<dc:creator>gem</dc:creator>
				<category><![CDATA[Software Security]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justice-league-blog/?p=1097</guid>
		<description><![CDATA[The most recent episode of Silver Bullet features a chat with Robert Vamosi, a long time tech reporter who has written about computer security for years.  Robert is the author of When Gadgets Betray Us, a book about what happens when the faith we put in our gadgets may not be justified. From a security [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/When-Gadgets-Betray-Infatuation-Technologies/dp/0465019587"><img src="http://www.cigital.com/justice-league-blog/files/2012/05/9780465019588.jpg" alt="" title="When Gadgets Betray Us" width="100" height="151" class="alignnone size-full wp-image-1098" align="left" border="0" style="padding: 0 10px 10px 0;" /></a>The <a href="http://www.cigital.com/silver-bullet/show-073/">most recent episode of Silver Bullet</a> features a chat with Robert Vamosi, a long time tech reporter who has written about computer security for years.  Robert is the author of <em><a href="http://www.amazon.com/When-Gadgets-Betray-Infatuation-Technologies/dp/B0071UHEFQ/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1335881990&amp;sr=1-1">When Gadgets Betray Us</a></em>, a book about what happens when the faith we put in our gadgets may not be justified.</p>
<p>From a security perspective, gadgets let us down all the time.   Sometimes it is because they compromise our privacy in the name of convenience.  Sometimes it is because the information they provide us is fallible.  Sometimes it is because they were not designed with security in mind.</p>
<p>The real question is whether its the gadgets themselves that are betraying us or rather the humans who designed and built the gadgets.  I would say the latter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2012/05/04/can-gadgets-betray-us/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Caching Security Architecture Knowledge with Design Patterns</title>
		<link>http://www.cigital.com/justice-league-blog/2012/04/29/caching-security-architecture-knowledge-with-design-patterns/</link>
		<comments>http://www.cigital.com/justice-league-blog/2012/04/29/caching-security-architecture-knowledge-with-design-patterns/#comments</comments>
		<pubDate>Sun, 29 Apr 2012 21:26:18 +0000</pubDate>
		<dc:creator>jOHN</dc:creator>
				<category><![CDATA[Software Security]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justice-league-blog/?p=1070</guid>
		<description><![CDATA[Cigital has always done architecture work. In the past clients replaced their legacy systems with ‘new-fangled’ JavaEE. As they explored platform features, an ecosystem of web frameworks, and related commercial products (Netegrity’s SiteMinder). Realizing they needed help, they looked to Cigital for: Standards/Policy JEE Platform Security Guide JEE Security Specification (Requirements) Technology-specific standards Reference Architecture [...]]]></description>
			<content:encoded><![CDATA[<p>Cigital has always done architecture work. In the past clients replaced their legacy systems with ‘new-fangled’ JavaEE. As they explored platform features, an ecosystem of web frameworks, and related commercial products (Netegrity’s SiteMinder). Realizing they needed help, they looked to Cigital for:</p>
<ul style="margin-bottom: 10px;">
<li>Standards/Policy</li>
<ul style="margin-left: 15px;">
<li>JEE Platform Security Guide</li>
<li>JEE Security Specification (Requirements)</li>
<li>Technology-specific standards</li>
</ul>
<li>Reference Architecture</li>
<ul style="margin-left: 15px;">
<li>Security Design: MVC, JAAS, IV/OE, Encryption</li>
</ul>
<li>Architecture Assessments</li>
<li>“Project Rescue” (re-architecting, refactoring systems)</li>
<li>Training</li>
</ul>
<p>Historically organizations wanted “one expert” and their ultimate goal usually aimed at something we might still call a “reference architecture”. They were building their own security API or securing a framework and would say, “You know JEE Security really well, ‘write us the book on how to do XXX’.”</p>
<p>Organizations no longer want one expert to “write the book”. They want five-to-ten smart architects to shepherd applications through upgrading design/implementation so assessments cease finding the same vulnerability over and over again. But, hiring this many sharp architects proves a real challenge. One technique has consistently made preparing individuals for this job easier for me. Step-wise:</p>
<ol style="margin-bottom: 10px;">
<li>Identify design patterns commonly used in today’s architectures/designs</li>
<li>Choose a pattern, writing up its:</li>
<ol style="margin-left: 15px;">
<li>Constituent structural and behavioral elements</li>
<li>The functional responsibilities of elements</li>
</ol>
<li>Brainstorm security responsibilities (functional &amp; non-functional) of pattern elements</li>
<li>Identify elements’ technology-specific implementations in appropriate frameworks</li>
<li>Build a review checklist of security responsibilities for implementations</li>
<li>Use this checklist as you would code reviewing for known vulns.</li>
</ol>
<p>This scheme decomposes a system in a dramatically different way than <a href="http://msdn.microsoft.com/en-us/library/ee823878(v=cs.20).aspx">STRIDE</a> (one of Microsoft’s 2+ threat modeling approaches). Whereas STRIDE proposes a set of conceptual attacks (such as spoofing or tampering) the above approach takes a software-centric stance. Just like STRIDE, this approach applied alone would not be thorough; one still must consider a system’s assets and risks. But, using this scheme you can make understanding security architecture of even large, unknown, or scary designs seem more simple. Let’s try it:</p>
<p><strong>1 – Identify Design Patterns</strong></p>
<p>One of the most common patterns in play in a n-tier web system has historically been the MVC (or <a href="http://ootips.org/mvc-pattern.html">model view controller</a>). So herein I decompose that pattern. As you’ll see, many security responsibilities fall on this pattern’s controller element.</p>
<p><strong>2.1 – Structural Elements</strong></p>
<p>Unlike some patterns the MVC’s elements are self-evident:</p>
<p><a href="http://www.cigital.com/justice-league-blog/files/2012/04/controller.png"><img src="http://www.cigital.com/justice-league-blog/files/2012/04/controller.png" alt="" title="controller" width="600" height="319" class="alignnone size-full wp-image-1085" /></a></p>
<p>The figure above displays, in an n-tier architecture, what elements of the MVC pattern are and, to some extent, where they live. In the case of MVC, its elements are structural in nature. <a href="http://www.gofpatterns.com/design-patterns/module6/define-behavioral-patterns.php">Behavioral patterns</a> such as the <a href="http://www.oodesign.com/chain-of-responsibility-pattern.html">chain of responsibility</a> (which Spring’s <a href="http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch16s04.html#mvc-handlermapping-interceptor">interceptors</a> implement) will decompose differently.</p>
<p>For this post’s remainder, I focus on the controller element. Though, when tearing an architecture apart, one must consider each pattern element.</p>
<p><strong>2.2 – functional responsibilities</strong></p>
<p>What is MVC’s controller meant to do? The answer varies depending on the architect you speak to and this variance is reflected in each MVC framework’s implementation. Generically speaking, responsibilities break down as follows:</p>
<ul style="margin-bottom: 10px;">
<li>View – Display UI for user</li>
<li>Controller -</li>
<ul>
<li>Route user requests to implementation</li>
</ul>
<li>Model -</li>
<ul>
<li>Represent and persist business entities</li>
<li>Conduct business logic transactions</li>
</ul>
</ul>
<p>We could be more exacting in the functional responsibilities but we’ll find that the above suffices. Remember too, it’s not necessary to get things thoroughly correct the first pass through. Iterate and improve.</p>
<p><strong>3 – security responsibilities</strong></p>
<p>Taking as input the functional element responsibilities ask yourself, “What security impact might each of these have if abused?” If you can, think to yourself, “What does the user expect–from security–when this component does its job?”. Doing so, we come up with the following security responsibilities, by MVC element, as viewed from the general JavaEE perspective:</p>
<p><a href="http://www.cigital.com/justice-league-blog/files/2012/04/responsibilities.jpg"><img src="http://www.cigital.com/justice-league-blog/files/2012/04/responsibilities.jpg" alt="" title="responsibilities" width="600" height="258" class="alignnone size-full wp-image-1088" /></a></p>
<p>Summarizing, our controller must:</p>
<ol style="margin-bottom: 10px;">
<li>Make sure a user is allowed to conduct an action</li>
<li>Filter and correctly format any input required to conduct the action</li>
<li>Route the correct action</li>
<li>Maintain appropriate transaction state and ensure valid state-transitions</li>
</ol>
<p>Again, at this point one should dig into the model and view in turn. The diagram above was built in ’05. Experience has taught us a lot since then and it’s probably painful to see view without more clear responsibility around output encoding and escaping. Likewise, model not being charged with canonical form may bother some.</p>
<p><strong>4 – Identify Implementation Components</strong></p>
<p>Above we describe the general JavaEE MVC framework. Interestingly, the first responsibility (making sure a user can conduct an action or ‘authorization’), pre-supposes the system know with whom it’s dealing. Since the JavaEE platform didn’t tackle that problem prior to pushing developers into the MVC paradigm, it should shock none of us that a ecosystem of commercial URL-based authentication packages sprouted up: the market simply addressed an evidently necessary but missing responsibility.</p>
<p>Remember that other MVC frameworks represent other architects’ similar but slightly different take on the same pattern. So, in their cases, security responsibilities may slide from component X to component Y. Luckily, most framework documentation actively advertises its philosophy, design, and features. Often, “tutorial” and “hello world” <a href="http://static.springsource.org/spring-security/site/features.html">example sites/documents quickly provide the curious</a> with pointers to specific components that implement a pattern element.</p>
<p>Often, however, the hardest part of this process is <a href="http://en.wikipedia.org/wiki/There's_more_than_one_way_to_do_it">TIMTOWDI</a>. APIs, frameworks, and platforms evolve over time and typically accrete several ways (rarely deprecating) for applications to instantiate their structural elements and integrate against their security features. For instance, in <a href="http://www.springsource.com/">Spring</a>, elements of an application’s controller can be defined through text file, XML, class inheritance, method and/or class annotation, and convention. Tracking these down thoroughly (in a security assessment) can be challenging.</p>
<p><strong>5 – Create the Checklist</strong></p>
<p>Knowing what the responsibilities need to be is a good start but it doesn’t help conduct a targeted SCR or developer interview. Key questions:</p>
<ul>
<li>I’m about to wade into millions of lines of code–what do I look for, and where do I find it?</li>
<li>When I begin the process of secure design, where exactly do I suggest people place the fix?</li>
</ul>
<p>In essence, one must glue together #3 Security Responsibilities with #4 implementations of key design pattern elements. See the figure below:</p>
<p><a href="http://www.cigital.com/justice-league-blog/files/2012/04/checklist.jpg"><img src="http://www.cigital.com/justice-league-blog/files/2012/04/checklist.jpg" alt="" title="checklist" width="544" height="452" class="alignnone size-full wp-image-1089" /></a></p>
<p>In essence, a checklist exists in the diagram above at its right. The controller’s responsibility to understand a request’s authorization translates to AuthN and AuthZ. Note that each outlined controller responsibility is represented in the side bar.</p>
<p>Notice that the side bar includes common security concerns not within our stated controller responsibilities. You may want to check a pattern element’s responsibilities, as enumerated in section #3, against a more comprehensive list of security concerns to assure that you didn’t forget one. In the example above, the diagram colors particular concerns either 1) outside our controller’s responsibilities or that 2) I didn’t want to address more thoroughly in my first analysis pass. Again, iterate and improve rather than attempting to nail everything flawless the first time around.</p>
<p><strong>So we’re done here?</strong></p>
<p>No, not really. Even within MVC we could stand to give View and Model more thought.</p>
<p><em>ANYTHING (AND EVERYTHING) MAY BE OF INTEREST</em><br />
Notice that we considered decidedly pedestrian functional elements of our application in order to see particular security concerns fully manifest. For instance, an organization-specific <a href="http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/servlet/DispatcherServlet.html">DispatcherServlet</a> and <a href="http://static.springsource.org/spring-security/site/docs/2.0.x/apidocs/org/springframework/security/providers/ldap/LdapAuthenticationProvider.html">DirectoryAdaptor</a> may have profound effect on our first responsibility (AuthN/Authz). And, no organization with which I’ve dealt considers their home-rolled DispatcherServlet a security control. Likewise, when considering an organizations extensions to a framework’s <a href="http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/web/portlet/mvc/SimpleFormController.html">FormController</a> we’ll learn a lot about mandatory application of input processing and filtration.</p>
<p><em>PROGRESS</em></p>
<blockquote><p>“Technological progress is like an axe in the hands of a pathological criminal” – Albert Einstein</p></blockquote>
<p>And, of course, MVC sounded a lot better on paper than it felt in code. Development has since shifted. As more dynamic languages have given rise to more dynamic application/UI frameworks they typically ‘push down’ application-layer controller logic. More recent web frameworks favor use of key conventions in application-level logic that direct a framework-layer controller otherwise ‘invisible’ to the developer. Frameworks such as Python’s <a href="https://www.djangoproject.com/">Django</a>, and Cocoa’s <a href="https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaBindings/Concepts/WhatAreBindings.html">KVO/KVC</a> pull this trick and JavaEE APIs like <a href="http://www.springsource.org/">Spring‘s</a> <a href="http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/web/servlet/ModelAndView.html">ModelAndView</a> have followed suit. If the controller has been pushed down into the framework, it invalidates the decomposition I’ve written above and we have to reconsider our step-wise process coming up with a new assignment of responsibilities and checklist.</p>
<p><em>DIRECTIONALITY AND ARCHITECTURE/PATTERN DIAGRAMS</em></p>
<p>Pay particular attention to this “vertical” (up/down) dimension of the architecture. The layer in which a security concern manifests itself in an application implies things about how much control we have over vulnerability and mitigations. Below you’ll see another view on the same system:</p>
<p><a href="http://www.cigital.com/justice-league-blog/files/2012/04/where.jpg"><img src="http://www.cigital.com/justice-league-blog/files/2012/04/where.jpg" alt="" title="where" width="600" height="430" class="alignnone size-full wp-image-1090" /></a></p>
<p>From an application developer’s perspective, the further “down” in the diagram a security concern appears the more “invisible” or effort-free  it is. Features the developer must add themselves must be 1) carefully considered for their implementation’s correctness, 2) correct configuration and use, and 3) thorough and consistent use. At first glance, developers prefer APIs, frameworks, and shared libraries because they only consider concerns #2 and #3. Their application may be automatic because of inheritance, the <a href="http://www.oodesign.com/template-method-pattern.html">template</a> pattern, or similar scheme. In these cases, the developer can skip concern #3. However, these situations assume the called component’s developer tackled #1: implementation correctness. If property #1  fails the developer they’re often hard-pressed to fix the situation as compared to that which they implemented in their code. Trade-offs.</p>
<p>Remember these properties as you write your checklist. Those responsibilities borne by developers must be checked for 1) implementation correctness, 2) correct configuration and use, and 3) consistent and thorough usage.</p>
<p>Responsibilities in APIs, frameworks, and shared services should be 1) audited once for correctness and, when used, 2) audited for appropriateness, 3) correct configuration and use, and if applied on a discretionary basis, 4) audited for consistent and thorough use. Platform properties and features require the same checks.</p>
<p><strong>Go Forth and Decompose</strong></p>
<p>Hopefully, with a little practice, you’ll be able to go out and look at common architectures, identify their usage of patterns, attribute to them responsibilities, build a checklist for their correct implementation, and then decide how and where to harden them.</p>
<p>-jOHN</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2012/04/29/caching-security-architecture-knowledge-with-design-patterns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IEEE Security &amp; Privacy Magazine Tenth Anniversary Edition Loaded with Cigital</title>
		<link>http://www.cigital.com/justice-league-blog/2012/02/21/ieee-security-privacy-magazine-tenth-anniversary-edition-loaded-with-cigital/</link>
		<comments>http://www.cigital.com/justice-league-blog/2012/02/21/ieee-security-privacy-magazine-tenth-anniversary-edition-loaded-with-cigital/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 21:17:14 +0000</pubDate>
		<dc:creator>gem</dc:creator>
				<category><![CDATA[Software Security]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justice-league-blog/?p=1055</guid>
		<description><![CDATA[The January/February 2012 issue of IEEE Security &#038; Privacy magazine, which is also the tenth anniversary edition (!), features three Cigital articles that you should read. Invincea CEO Anup Ghosh (who incidentally once ran Cigital Labs many years ago) and I collaborate on a point/counterpoint titled &#8220;Lost Decade or Golden Era: Computer Security since 9/11&#8220;. [...]]]></description>
			<content:encoded><![CDATA[<p>The January/February 2012 issue of <a href="http://www.computer.org/portal/web/computingnow/securityandprivacy"><em>IEEE Security &#038; Privacy</em> magazine</a>, which is also the tenth anniversary edition (!), features three Cigital articles that you should read.</p>
<p>Invincea CEO Anup Ghosh (who incidentally once ran Cigital Labs many years ago) and I collaborate on a point/counterpoint titled &#8220;<a href="http://www.computer.org/csdl/mags/sp/2012/01/msp2012010006-abs.html">Lost Decade or Golden Era: Computer Security since 9/11</a>&#8220;.  Though Anup and I agree on most technical issues, we disagree on whether Computer Security is moving forward as a field.  Anup thinks not.  I think yes.  What do you think?</p>
<p>Our conversation in that piece closes with a discussion around innovation.  My <a href="https://ae.rsaconference.com/US12/scheduler/modifySession.do?SESSION_ID=9081&#038;back=true">upcoming panel at RSA</a> is devoted to the topic, as is a recent edition of <a href="http://www.computer.org/portal/web/computingnow/archive/february2012?src=cnhome-v1"><em>Computing Now</em></a>. If you&#8217;re interested and provoked by what you read there, please plan to join us in San Francisco at the RSA Conference for a distinguished panel on Innovation and Technology Transfer in Security — leap day, February 29, at 8 AM. The panel includes Peter Denning, Brian Chess, Carl Landwehr, and Paul Kocher. Listen to a short promo for the panel <a href="http://media.computer.org/sponsored/extras/cn/audio/GaryMcGrawPromo.mp3">here</a>. (We hope to see you at RSA.)</p>
<p><img src="http://www.cigital.com/justice-league-blog/files/2012/02/ieeesp2012-01.jpg" alt="" title="ieeesp2012-01" width="150" height="203" class="alignnone size-full wp-image-1059" align="right" />Back to the S&#038;P issue.  Cigital Principal Scott Matsumoto participated in a big name roundtable on Authentication hosted by PayPal&#8217;s Markus Jakobsson.  The <a href="http://www.computer.org/csdl/mags/sp/2012/01/msp2012010022-abs.html">lively discussion</a> includes diverse opinions about the biggest problems in authentication, potential solutions, and the direction in which the field is moving.</p>
<p>Finally, the S&#038;P issue also includes a <a href="http://www.computer.org/csdl/mags/sp/2012/01/msp2012010011.html">Silver Bullet transcript</a> (as each and every issue does).  This edition covers my <a href="http://www.cigital.com/silver-bullet/show-055/">Show 55</a> conversation with Deb Frincke, a member of the Defense Intelligence Senior Executive Service and deputy director for research at the National Security Agency (NSA).</p>
<p><em>IEEE Security &#038; Privacy</em> plays an important role in the field at the critical intersection point between peer reviewed science and applied technology.  Cigital is proud to play such a big role in the tenth anniversary edition.</p>
<p>Happy birthday S&#038;P!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2012/02/21/ieee-security-privacy-magazine-tenth-anniversary-edition-loaded-with-cigital/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://media.computer.org/sponsored/extras/cn/audio/GaryMcGrawPromo.mp3" length="0" type="audio/mpeg" />
		</item>
		<item>
		<title>2011 CTO Year in Review</title>
		<link>http://www.cigital.com/justice-league-blog/2011/12/07/2011-cto-year-in-review/</link>
		<comments>http://www.cigital.com/justice-league-blog/2011/12/07/2011-cto-year-in-review/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 13:47:47 +0000</pubDate>
		<dc:creator>gem</dc:creator>
				<category><![CDATA[Software Security]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justice-league-blog/?p=1028</guid>
		<description><![CDATA[Part of my job as software security pundit and &#8220;hood ornament&#8221; of Cigital is spreading the word about software security far and wide. 2011 was a year like many others in that respect. Here is a &#8220;tripometer&#8221; graph showing talks I give and trips I take each year going back a decade. The good news [...]]]></description>
			<content:encoded><![CDATA[<p>Part of my job as software security pundit and &#8220;hood ornament&#8221; of Cigital is spreading the word about software security far and wide.  2011 was a year like many others in that respect.  Here is a &#8220;tripometer&#8221; graph showing talks I give and trips I take each year going back a decade.</p>
<p align="center"><img src="http://www.cigital.com/justiceleague/wp-content/uploads/2011/12/trips2011.png" alt="" title="trips2011" width="450" height="351" class="alignnone size-full wp-image-1039" /></p>
<p>The good news from my perspective is that talks are up (clocking in at 40) even while trips are down (coming in at 27).  Those are the kinds of trends I can live with.</p>
<p>I gave nine keynote talks this year to large audiences.  They included:</p>
<ul>
<li><em>Software Security and the BSIMM</em>, Fannie Mae CSO Security Summit (Washington, DC)</li>
<li><em>Architecture Risk Analysis</em>, RSA Innovation Sandbox (San Francisco, CA)</li>
<li><a href="http://www.htng.org/events/nammc/2011/agenda_detailed.htm"><em>How Do I Secure my Software?</em></a>, Hotel Technology Next Generation (San Diego, CA)</li>
<li><em>Software Security: State of the Practice</em>, SAP Quality Day (Heidelberg, Germany)</li>
<li><a href="http://www.computer.org/portal/web/computingnow/sw/ses11?utm_source=bronto&#038;utm_medium=email&#038;utm_term=Get+Inspired+and+Motivated+by+Top+Software+Industry+Professionals&#038;utm_content=gem%40cigital.com&#038;utm_campaign=BYC+21+March%2C+2011"><em>Software Security and the BSIMM</em></a>, Software Experts Summit (Mountain View, CA)</li>
<li><a href="http://www.ares-conference.eu/conf/"><em>Software Security and the BSIMM</em></a>, AERES (Vienna, Austria)</li>
<li><em>Attack Trends 2012</em>, SNI Security Summit (Knoxville, TN)</li>
<li><em>Attack Trends 2012</em>, Automated Control Systems Security (Washington, DC)</li>
<li><em>The Building Security In Maturity Model</em>, NESSOS, Internet Days EU (Poznan, Poland)</li>
</ul>
<p>I also gave talks at thirteen universities, including Uva, Harvard, Umass, NCSU, Georgetown, the Naval Postgraduate School, JHU, UMd, Northern Kentucky University, Columbia, Indiana University, JMU, and UC Santa Barbara.  It is always a blast to interact with students.  They seem to get younger every year.</p>
<p>If you have a speaking opportunity for us, we would love to hear from you!  Cigital has a bunch of very talented speakers.</p>
<p>My monthly column for informIT continues apace into its fifth year.  Here is a listing of the last 12 articles in the series (still working on December&#8217;s).  I think my favorite one is the Zombies paper…that one should live on for a while.</p>
<ul>
<li><a href="http://www.informit.com/articles/article.aspx?p=1809143">Third-Party Software and Security</a> (November 30, 2011)</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1767770">Software Security Training</a> (October 31, 2011)</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1755416">BSIMM3</a> (September 27, 2011)</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1750195">Balancing All the Breaking with some Building</a> (August 30, 2011)</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1739924">Software Security Zombies</a> (July 21, 2011)</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1719778">Computer Security and International Norms</a> (May 30, 2011)</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1703668">vBSIMM (BSIMM for Vendors)</a> (April 12, 2011)</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1695979">Modern Malware</a> (March 22, 2011)</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1687636">Software Patents and Fault Injection</a> (February 28, 2011)</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1680863">Comparing Apples, Oranges, and Aardvarks (or, All Static Analysis Tools Are Not Created Equal)</a> (January 31, 2011)</li>
<li><a href="http://www.informit.com/articles/article.aspx?p=1671924">Driving Efficiency and Effectiveness in Software Security</a> (December 29, 2010)</li>
</ul>
<p>My 2011 writing also included interaction with the Washington D.C. policy wonks at the <a href="http://www.cnas.org/">Center for a New American Security</a>.  CNAS ran a study on cyber security for policymakers.  CNAS CEO and Iraq War author <a href="http://www.amazon.com/One-Bullet-Away-Making-Officer/dp/B002ECETVS/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1323271797&#038;sr=1-1">Nate Fick</a> co-authored a paper with me meant to inform lawmakers about what cyber security really should be: <a href="http://www.cigital.com/papers/download/mcgraw-fick-CNAS.pdf">Separating the Threat from the Hype: What Washington Needs to Know About Cyber Security in AMERICA&#8217;S CYBER FUTURE: SECURITY AND PROSPERITY IN THE INFORMATION AGE VOLUMES I AND II, Center for a New Amercian Security</a> [PDF] (June 2011).</p>
<p>With the <a href="http://www.forbes.com/sites/andygreenberg/2010/08/18/hps-fortify-buyout-numbers-tell-lucrative-story-for-software-security/?boxes=Homepagechannels">purchase of Fortify Software by HP at the end of 2010</a>, a long and very successful technology transfer path was completed.  From our invention of security scanning in the labs at Cigital, through Kleiner-Perkins, to worldwide distribution through HP, code review for security is here to stay.  I wrote the story up in <em>IEEE Software</em>: <a href="http://www.cigital.com/papers/download/09-11_Software0511.pdf">Technology Transfer: A Software Security Marketplace Case Study</a> [PDF] (September/October 2011).</p>
<p>And there is always the Silver Bullet security podcast.  The last 12 interviews included some really solid episodes.  I think my favorite this year was an <a href="/silverbullet/show-059/">in depth interview with Ralph Langner</a> about Stuxnet.  Ralph is the guy who discovered that the payload was aimed at Siemens Control systems.</p>
<ol start="58">
<li><a href="/silverbullet/show-058/">John Savage</a></li>
<li><a href="/silverbullet/show-059/">Ralph Langner</a></li>
<li><a href="/silverbullet/show-060/">Neil Daswani</a></li>
<li><a href="/silverbullet/show-061/">Carl Landwehr</a></li>
<li><a href="/silverbullet/show-062/">Halvar Flake</a></li>
<li><a href="/silverbullet/show-063/">Craig Miller</a></li>
<li><a href="/silverbullet/show-064/">Markus Schumacher</a></li>
<li><a href="/silverbullet/show-065/">Giovanni Vigna</a></li>
<li><a href="/silverbullet/show-066/">Shari Lawrence Pfleeger</a></li>
<li><a href="/silverbullet/show-067/">Bill Pugh</a></li>
<li><a href="/silverbullet/show-068/">John Steven</a></li>
</ol>
<p>2012 should look much the same when it comes to trips and talks, though one of these years I need to find the time to write another book!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2011/12/07/2011-cto-year-in-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UK Spooks&#8217; Recruiting Tactic: Very Low Pound to Genius Ratio</title>
		<link>http://www.cigital.com/justice-league-blog/2011/12/02/uk-spooks-recruiting-tactic-very-low-pound-to-genius-ratio/</link>
		<comments>http://www.cigital.com/justice-league-blog/2011/12/02/uk-spooks-recruiting-tactic-very-low-pound-to-genius-ratio/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 16:29:08 +0000</pubDate>
		<dc:creator>Cigital</dc:creator>
				<category><![CDATA[Cyber Security]]></category>
		<category><![CDATA[Software Security]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justice-league-blog/?p=1022</guid>
		<description><![CDATA[(This is a guest post by Adam Zabrocki, a consultant at Cigital.) The UK intelligence agency, GCHQ, (roughly analogous to the US&#8217;s NSA) posted an online challenge recently at http://canyoucrackit.co.uk/ (read more). Given essentially no information other than what are pretty obviously hex digits, candidates are invited to attempt to &#8220;crack&#8221; an opaque puzzle. It [...]]]></description>
			<content:encoded><![CDATA[<p><em>(This is a guest post by Adam Zabrocki, a consultant at Cigital.)</em></p>
<p>The UK intelligence agency, GCHQ, (roughly analogous to the US&#8217;s NSA) posted an online challenge recently at <a href="http://canyoucrackit.co.uk/">http://canyoucrackit.co.uk/</a> (<a href="http://www.dailymail.co.uk/sciencetech/article-2068452/GCHQ-launches-online-code-cracking-puzzle-recruit-cyber-savvy-spies-future.html">read more</a>). Given essentially no information other than what are pretty obviously hex digits, candidates are invited to attempt to &#8220;crack&#8221; an opaque puzzle. It isn&#8217;t even clear what the puzzle is (is it an encrypted document? is it a program? Is it a virus?).</p>
<p>Ostensibly the puzzle will help GCHQ identify very clever candidates to come work at the agency, fighting the good fight in cyberwarfare. Other high-profile companies have tried similar strategies in the past (like <a href="http://mathworld.wolfram.com/news/2004-10-13/google/">Google</a> and Microsoft) to find highly qualified candidates.</p>
<p>The puzzle requires unraveling x86 instructions, finding a few bits of essential data hidden steganographically in the image itself, and putting it all together into a program that reveals a final URL to visit. The skills required to do this are similar to those required for reverse engineering unknown malware and trying to figure out what it does&#8211;especially when only part of it is present. It&#8217;s part systematic sleuthing, part guesswork, and part forensics.</p>
<p>As the UK, the US, and many other wealthy nations attempt to build their defences against cybercrime (and cyberwar), they are trying to identify good guys who have what it takes to understand what the bad guys do. It&#8217;s great fun to solve a problem like this, and it&#8217;s great fun to imagine doing that for a living to serve your country. But when you discover that the government&#8217;s salary is a fraction of the salary of being a private-sector good guy (not to mention what the bad guys might make), it&#8217;s no wonder they are struggling to find recruits.</p>
<p>The details of how I solved it are on <a href="http://blog.pi3.com.pl/?p=213">my personal blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2011/12/02/uk-spooks-recruiting-tactic-very-low-pound-to-genius-ratio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Third-Party Software, Vendor Control, and the BSIMM Community</title>
		<link>http://www.cigital.com/justice-league-blog/2011/11/30/third-party-software-vendor-control-and-the-bsimm-community/</link>
		<comments>http://www.cigital.com/justice-league-blog/2011/11/30/third-party-software-vendor-control-and-the-bsimm-community/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 21:36:20 +0000</pubDate>
		<dc:creator>gem</dc:creator>
				<category><![CDATA[BSIMM]]></category>
		<category><![CDATA[Software Security]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justiceleague/?p=1019</guid>
		<description><![CDATA[Cigital recently hosted a second BSIMM Community Conference near Portland, Oregon. The Conference was outstanding, and was a great opportunity for like-minded software security professionals to compare notes. Firms participating in the BSIMM include: Adobe Aon Bank of America Capital One The Depository Trust &#38; Clearing Corporation (DTCC) EMC Fannie Mae Fidelity Google Intel Intuit [...]]]></description>
			<content:encoded><![CDATA[<p>Cigital recently hosted a second BSIMM Community Conference near Portland, Oregon.  The Conference was outstanding, and was a great opportunity for like-minded software security professionals to compare notes.  Firms participating in the BSIMM include: </p>
<div style="width: 450px;margin: auto">
<div style="float: left">
<ul>
<li>Adobe</li>
<li>Aon</li>
<li>Bank of America</li>
<li>Capital One</li>
<li>The Depository Trust &amp;<br />
          Clearing Corporation (DTCC)</li>
<li>EMC</li>
<li>Fannie Mae</li>
<li>Fidelity</li>
<li>Google</li>
</ul>
</div>
<div style="float: left">
<ul>
<li>Intel</li>
<li>Intuit</li>
<li>Mashery</li>
<li>McKesson</li>
<li>Microsoft</li>
<li>Nokia</li>
<li>QUALCOMM</li>
<li>Sallie Mae</li>
<li>SAP</li>
<li>Scripps Networks Interactive</li>
</ul>
</div>
<div style="clear: both;float: left">
<ul>
<li>Sony Ericsson</li>
<li>Standard Life</li>
<li>SWIFT</li>
<li>Symantec</li>
<li>Telecom Italia</li>
<li>Thomson Reuters</li>
<li>Visa</li>
<li>VMware</li>
<li>Wells Fargo</li>
<li>Zynga</li>
</ul>
</div>
</div>
<div style="clear: both"></div>
<p>The BSIMM project describes and measures the work of 786 SSG members, who together with a satellite of 1750 people, have direct impact on the work of 185,316 developers.  (<a href="http://bsimm.com/download/">Download a copy today</a> and <a href="http://bsimm.com/community/">get your firm involved</a> in the BSIMM Project.)</p>
<p>The BSIMM is mostly about SSDL activities and governance.  However, third-party software plays a major role in all of the BSIMM firms and is an important risk factor that must be managed.  In addition to talks from member firms, the BSIMM Community Conference also featured a workshop on third-party software and security.</p>
<p>Sammy, Brian, and I wrote up the results in an <a href="http://www.informit.com/articles/article.aspx?p=1809143">informIT article</a> that was posted today.</p>
<p>The interesting aspect of our workshop was that it was made up approximately of 50% software vendors and 50% financial services firms.  This made for a very interesting conversation around vendor control. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2011/11/30/third-party-software-vendor-control-and-the-bsimm-community/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Training by the Numbers</title>
		<link>http://www.cigital.com/justice-league-blog/2011/11/07/training-by-the-numbers/</link>
		<comments>http://www.cigital.com/justice-league-blog/2011/11/07/training-by-the-numbers/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 20:18:35 +0000</pubDate>
		<dc:creator>sammy</dc:creator>
				<category><![CDATA[Software Security]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[software security training]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justiceleague/?p=968</guid>
		<description><![CDATA[1992: Cigital (then Reliable Software Technologies) gets started and also delivers some training on software quality “a few hundred”: ILT days delivered from 1992 through 2006 5,000: ILT students trained from 1992 through 2006 575: ILT and tutorial days delivered from 2007 through today 9,000: ILT students trained from 2007 through today 100,000: current students [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><strong>1992:</strong> Cigital (then Reliable Software Technologies) gets started and also delivers some training on software quality</li>
<li><strong>“a few hundred”:</strong> ILT days delivered from 1992 through 2006</li>
<li><strong>5,000:</strong> ILT students trained from 1992 through 2006</li>
<li><strong>575:</strong> ILT and tutorial days delivered from 2007 through today</li>
<li><strong>9,000:</strong> ILT students trained from 2007 through today</li>
<li><strong>100,000:</strong> current students with access to our eLearning</li>
</ul>
<p>Here are those numbers again in the context of a few things we’ve learned:</p>
<p>Cigital has always included instructor-led training (ILT) as part of its knowledge transfer to clients. From our founding in 1992 through 2006, we trained an estimated 5000 students on various aspects of software quality and software security.  This was done in only “a few hundred” sessions. In addition, from the launch of our formal training offerings in January 2007 through September 2011, we delivered approximately 525 ILT days to over 7700 students. Throw in “about 50” conference tutorial sessions and other non-client-specific training sessions (but not normal conference talks or similar things) and the student number grows to about 9000, for a total of about 14,000.</p>
<p>There has been some shift in demand over that time. For the first 10 years or so, everything was custom. We typically spent weeks and even months building training that was very specific to platforms, frameworks, coding standards, policies, and even specific problems-of-the-day. This training was usually for relatively small numbers of people all working on something very similar. For the firm, that becomes a very expensive proposition when you get to hundreds or even thousands of developers working in multiple technologies, stacks, languages, tools, and related items. There simply isn’t enough time or dollars to make custom training for everyone.</p>
<p>Starting in 2006, we saw a real market demand for more standardized software security training (as differentiated from the plethora of network security, tool-specific, and generic “security” training in the marketplace, or the deep-dive, single-topic courses for things like reversing malware or DLL hooking). This demand was and continues to be much more centered on foundational training for all SDLC stakeholders (business analysts, architects, developers, quality testers, pen testers, audit, risk/compliance, and so on) and advanced training for small groups (e.g., lead architects and developers).</p>
<p>From early 2007 through October 2011, Cigital also deployed eLearning to firms that represent over 100,000 students who are developers, architects, testers, managers, business analysts, security operations folks, and others. The majority of clients are using our eLearning in their internal learning management systems for access by employees as well as contractors integrated into the client’s ecosystem. For external contractors without access to internal client systems, clients are using our training portal.</p>
<p>There has been shift in the eLearning landscape as well.</p>
<ul>
<li>We see almost all large firms having their own learning management system and wanting to take our material in-house. Meanwhile, smaller firms are looking to out-source everything and simply purchase access to our LMS for a given number of seats.</li>
<li>There is a growing demand for tightly-focused topical modules that can be consumed in an hour or less.</li>
<li>There was an initial demand for custom eLearning and then off-the-shelf became all the rage as the economy changed.</li>
<li>There’s a trend to moving training closer to the activity. For example, inserting some defensive programming training directly into the developer’s IDE. We’ve actually developed plug-in technology for this one.</li>
<li>As everyone sees the possibilities represented by more advanced instructional design, there is an increasing demand for what can only be described as virtual reality and flying monkeys with every image and word indexed and a holographic interface that instantly takes the student to the exact second in the module that answers with cut-and-paste content whatever question the student is pondering. Oh, and it needs to run on any device from laptops to smart phones to microwaves and in-dash satellite radios. Of course, we’re all over this, too.</li>
</ul>
<p>As an off-shoot of our continuing BSIMM activities, Gary and I also recently wrote an <a href="http://www.informit.com/articles/article.aspx?p=1767770">article on software security training</a>. Here are some additional thoughts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2011/11/07/training-by-the-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cigital helps to create cyber security plans</title>
		<link>http://www.cigital.com/justice-league-blog/2011/10/11/cigital-helps-to-create-cyber-security-plans/</link>
		<comments>http://www.cigital.com/justice-league-blog/2011/10/11/cigital-helps-to-create-cyber-security-plans/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 18:59:32 +0000</pubDate>
		<dc:creator>Cigital</dc:creator>
				<category><![CDATA[Cyber Security]]></category>
		<category><![CDATA[Software Security]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justiceleague/?p=959</guid>
		<description><![CDATA[(This is a guest post by Evgeny Lebanidze, a managing consultant at Cigital.) Cigital has been working one-on-one with Rural Electric Co-ops across the US to help them raise their cyber security bar, starting with the creation of their own custom cyber security plan. To facilitate this process, Cigital provided the Co-ops with several artifacts, [...]]]></description>
			<content:encoded><![CDATA[<p><em>(This is a guest post by Evgeny Lebanidze, a managing consultant at Cigital.)</em></p>
<p>Cigital has been working one-on-one with Rural Electric Co-ops across the US to help them raise their cyber security bar, starting with the creation of their own custom cyber security plan.  To facilitate this process, Cigital provided the Co-ops with several artifacts, including a <a href="http://www.cigital.com/news/index.php?pg=art&amp;artid=179">Guide to Developing a Cyber Security and Risk Mitigation Plan</a> and an associated Cyber Security Plan Template, developed by Cigital for the National Rural Electric Cooperative Association (NRECA).  The following video captures testimonials from Rural Electric Co-ops that have worked with Cigital to create their cyber security plans, along with feedback from industry experts and practitioners on the cyber security risk management approach and toolkit developed by Cigital.</p>
<p align="center">
<p align="center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="480"  height="270"  id="V2Player"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="true" /><param name="movie" value="http://http.vitalstreamcdn.com/flashskins/V2Player.swf" /><param name="quality" value="high" /><param name="flashvars"  value="stream1=CRN/CRN_cybersecurity_3.1&#038;serverAppInstName=rtmp://nreca.flash.internapcdn.net/nreca_vitalstream_com/_definst_&#038;debug=false" /><embed src="http://http.vitalstreamcdn.com/flashskins/V2Player.swf"  flashvars="stream1=CRN/CRN_cybersecurity_3.1&#038;serverAppInstName=rtmp://nreca.flash.internapcdn.net/nreca_vitalstream_com/_definst_&#038;debug=false"  quality="high"  width="480"  height="270"  name="V2Player"  allowScriptAccess="sameDomain"  allowFullScreen="true"  type="application/x-shockwave-flash"  pluginspage="http://www.macromedia.com/go/getflashplayer" /><br />
</object></p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2011/10/11/cigital-helps-to-create-cyber-security-plans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing BSIMM3</title>
		<link>http://www.cigital.com/justice-league-blog/2011/09/27/announcing-bsimm3/</link>
		<comments>http://www.cigital.com/justice-league-blog/2011/09/27/announcing-bsimm3/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 12:30:56 +0000</pubDate>
		<dc:creator>sammy</dc:creator>
				<category><![CDATA[BSIMM]]></category>
		<category><![CDATA[Software Security]]></category>
		<category><![CDATA[bsimm]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justiceleague/?p=956</guid>
		<description><![CDATA[We announced BSIMM in March 2009 and BSIMM2 in May 2010. It’s now time for BSIMM3. Long live the BSIMM. Since the first BSIMM interview in October 2008, we’ve progressed from nine to 30 to 42 firms (and more, at this point). We’ve also measured 11 firms twice—about 19 months between measurements on average—and that [...]]]></description>
			<content:encoded><![CDATA[<p>We announced BSIMM in March 2009 and BSIMM2 in May 2010. It’s now time for BSIMM3. Long live the BSIMM.</p>
<p>Since the first BSIMM interview in October 2008, we’ve progressed from nine to 30 to 42 firms (and more, at this point). We’ve also measured 11 firms twice—about 19 months between measurements on average—and that has provided the BSIMM community with some unique insight on how software security initiatives change over time. Assessing 42 individual firms and performing 11 re-assessments required 81 sets of interviews in just a shade less than three years.</p>
<p>For my money, that’s not bad for a backyard project.</p>
<p>Of the 42 firms in the data pool, 27 have graciously allowed us to name them as BSIMM participants. They are: Adobe, Aon, Bank of America, Capital One, The Depository Trust &amp; Clearing Corporation (DTCC), EMC, Fannie Mae, Google, Intel, Intuit, McKesson, Microsoft, Nokia, QUALCOMM, Sallie Mae, SAP, Scripps Networks Interactive, Sony Ericsson, Standard Life, SWIFT, Symantec, Telecom Italia, Thomson Reuters, Visa, VMware, Wells Fargo, and Zynga. To these and the other 15 firms, thank you very much for participating. You are directly responsible for advancing the cause of software security.</p>
<p>The BSIMM3 document is freely available under a Creative Commons license. You can get it from <a href="http://bsimm.com">http://bsimm.com</a>. Go ahead; it’s a good read. Even if you’re down the road with your software security initiative, you can get a glimpse into the actual software security activities conducted by your peers and competitors. If you’ve yet to get started, BSIMM will give you some great ideas.</p>
<p>As always, we are looking for more people who are interested in participating in the BSIMM study. We’d love to hear from you.</p>
<p>&#8211;Sammy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2011/09/27/announcing-bsimm3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BEAST and SSL/TLS</title>
		<link>http://www.cigital.com/justice-league-blog/2011/09/26/beast-and-ssltls/</link>
		<comments>http://www.cigital.com/justice-league-blog/2011/09/26/beast-and-ssltls/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 15:02:59 +0000</pubDate>
		<dc:creator>Cigital</dc:creator>
				<category><![CDATA[Defects, Bugs, and Flaws]]></category>
		<category><![CDATA[Software Security]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justiceleague/?p=950</guid>
		<description><![CDATA[This is a guest post by Amit Sethi, Technical Manager at Cigital. There has been a lot of talk about BEAST (Browser Exploit Against SSL/TLS) lately. The attack against SSL 3.0 / TLS 1.0 was recently publicized by Thai Duong and Juliano Rizzo. Do you know what the risks are, and how to protect yourself? [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is a guest post by Amit Sethi, Technical Manager at Cigital.</em></p>
<p>There has been a lot of talk about BEAST (Browser Exploit Against SSL/TLS) lately. The attack against SSL 3.0 / TLS 1.0 was recently publicized by Thai Duong and Juliano Rizzo. Do you know what the risks are, and how to protect yourself?</p>
<p><strong>How does it work?</strong></p>
<p>The attack has two components, and the goal is for the attacker to get your cookie so that he can hijack your session:</p>
<ul>
<li>Some client-side code (Java applet, Silverlight application, etc.) that is injected into a page delivered over HTTP that can make requests to a site that uses HTTPS. This may require bypassing (or finding loopholes in) same-origin security policies.</li>
<li>A sniffer on the network that the victim is on, to record encrypted data generated by the client-side code. The sniffer and the client-side code need to communicate with each other for the attack to work.</li>
<p>The easiest way to carry out this attack is over a public Wi-Fi network; however, attackers on other types of networks including wired networks can also do this. The main requirement is that the attacker and the victim need to be on the same LAN. The attacker will need to conduct a man-in-the-middle attack to inject malicious code into a HTTP page that can make requests to the targeted HTTPS site. This attack only works if the HTTPS connection is established using SSL 3.0 or TLS 1.0 and a block cipher (e.g. 3DES or AES) in CBC mode is chosen. Unfortunately, most HTTPS sites currently support only SSL 3.0 and TLS 1.0, and prefer using block ciphers in CBC mode.</li>
</ul>
<p><strong>Some technical details</strong></p>
<p>The main techniques used by the attack are described below. Feel free to skip this section if you don’t care about the technical details.</p>
<ul>
<li>Some types of client-side code (Java applets, Silverlight applications, etc.) have the ability to send partial HTTPS requests. They keep the SSL/TLS connection open, and send data as it becomes available. With SSL 3.0 / TLS 1.0, each time a new block of data is sent, a new random initialization vector is not generated. The data is simply appended to the previous stream. An attacker who sees the last ciphertext block and can control the next plaintext block can gain complete control over the next ciphertext block (this is a consequence of how CBC mode works).</li>
<li>Since HTTP headers preceding cookie headers are predictable and can be obtained by an attacker who sniffs a single HTTP request from the victim, and since the attacker can control the URL of requests, he can control exactly where the cookie header’s bytes end up in relation to ciphertext block boundaries.</li>
<li>If an attacker knows the previous block of ciphertext and can completely control the next block of plaintext, he can determine whether a previously seen block of ciphertext corresponded to a given block of plaintext. Let’s assume that the attacker wants to determine whether the plaintext, <em>P<sub>i</sub></em>, for a previously seen block of ciphertext, <em>C<sub>i</sub></em> was <em>x</em>. Now, the attacker knows <em>C<sub>j-1</sub></em>, the last block of ciphertext, and wants to set <em>P<sub>j</sub></em>, the next block of plaintext to be encrypted, to a value that helps him determine whether <em>P<sub>i</sub></em> was equal to <em>x</em>. If he sets <em>P<sub>j</sub></em> = <em>C<sub>j-1</sub></em> &#x2295; <em>C<sub>i-1</sub></em><em>P<sub>i</sub></em> &#x2295; <em>x</em> (note that <em>C<sub>j-1</sub></em> and <em>C<sub>i-1</sub></em> are sniffed from the network, and <em>x</em> is the attacker’s guess), and <em>P<sub>i</sub></em> was indeed equal to <em>x</em>, then <em>C<sub>j</sub></em> = E(<em>C<sub>j-1</sub></em> &#x2295; <em>P<sub>j</sub></em>) = E(<em>C<sub>j-1</sub></em> &#x2295; <em>C<sub>j-1</sub></em> &#x2295; <em>C<sub>i-1</sub></em> &#x2295; <em>x</em>) = E(<em>C<sub>i-1</sub></em> &#x2295; <em>x</em>) = E(<em>C<sub>i-1</sub></em> &#x2295; <em>P<sub>i</sub></em>) = <em>C<sub>i</sub></em>. Therefore, if the attacker’s guess is correct, then the next block of ciphertext, <em>C<sub>j</sub></em>, will equal the previously seen block of ciphertext, <em>C<sub>i</sub></em>.</li>
</ul>
<p>Given the above details, let’s say that an attacker makes a request to /AAAAAAAAAA, and knows that it will result in a block of ciphertext containing part of the cookie header: “ookie: x” (this is realistic if a 3DES cipher suite is used). Now, the attacker can make all 256 possible guesses for x, and can determine the first byte of the cookie header. Next, the attacker can make a new HTTP request to /AAAAAAAAA (one less A, which shifts the cookie header one position to the left such that the ciphertext block is now “okie: xy”) and can guess y. The attacker can continue in this manner until he guesses all bytes of the cookie. In reality, there are a lot less than 256 possibilities for each byte of the cookie header, and so the attack requires less work. There are also several details required for the attack to work that are omitted here.</p>
<p><strong>Why the problem can’t be fixed quickly</strong></p>
<p>TLS 1.1, which fixes this issue, was defined in April 2006. As you may have guessed, this problem was known before April 2006. However, it was considered mostly a theoretical issue until Thai Duong and Juliano Rizzo showed how it can be used to decrypt cookies sent over HTTPS. Even though this issue has been known for a while, it is probably not going to be fixed anytime soon because most websites do not support TLS 1.1 or TLS 1.2. According to Opera, only about 0.25 percent of web servers support TLS 1.1, and <a href="http://news.cnet.com/8301-30685_3-20108633-264/researchers-to-detail-hole-in-web-encryption/">only 0.02 percent of web servers support TLS 1.2</a>. There are workarounds that some browser vendors are currently implementing and testing; however, this problem is not going to be completely fixed until most web servers start supporting TLS 1.1 or TLS 1.2.</p>
<p><strong>Risks</strong></p>
<p>Should you be worried? Probably not. This does not significantly increase the risk of connecting to untrusted networks. There are easier attacks that can be used to steal your cookies (or your username and password) for many websites, or even install arbitrary software on your computer if you connect to untrusted networks. Some examples are:</p>
<ul>
<li>Many websites do not set the ‘secure’ flag on their session cookies, which means that a tool like sslstrip can be used by an attacker on your network to get your cookie.
<li>Many websites provide login forms over HTTP (even though your password may actually submitted over HTTPS), and attackers on your network can modify the login pages to get your username and password.
<li>Many users ignore certificate warnings provided by browsers, or may not even notice that a tool like sslstrip is being used and that they are not actually accessing a site over HTTPS before entering their credentials.
<li>Tools such as Evilgrade can be used to install arbitrary software on your computer by leveraging software that has insecure automatic update mechanisms.
</ul>
<p><strong>Protecting yourself</strong></p>
<p>If you want to protect yourself against BEAST-like attacks, you can take several steps:</p>
<ul>
<li>Delete all your cookies before you connect to an untrusted network.</li>
<li>Limit the amount of time you spend authenticated to HTTPS sites on untrusted networks, and remember to log out as soon as you are done.</li>
<li>Until your browser vendor releases a fix, disable all cipher suites that use block ciphers in your browser (leave only cipher suites with RC4 enabled).</li>
</ul>
<p>Note that the last workaround may cause you to be unable to access many websites. Of course, when browser vendors release security updates, install them immediately.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2011/09/26/beast-and-ssltls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

