<?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; Security Features</title>
	<atom:link href="http://www.cigital.com/justice-league-blog/category/security-features/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cigital.com/justice-league-blog</link>
	<description></description>
	<lastBuildDate>Thu, 09 Feb 2012 19:09:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Scrap Static Tools, just &#8220;Fix your code&#8221;?</title>
		<link>http://www.cigital.com/justice-league-blog/2011/02/23/scrap-static-tools-just-fix-your-code/</link>
		<comments>http://www.cigital.com/justice-league-blog/2011/02/23/scrap-static-tools-just-fix-your-code/#comments</comments>
		<pubDate>Wed, 23 Feb 2011 15:32:13 +0000</pubDate>
		<dc:creator>jOHN</dc:creator>
				<category><![CDATA[Assurance]]></category>
		<category><![CDATA[BSIMM]]></category>
		<category><![CDATA[Security Features]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[Software Security]]></category>
		<category><![CDATA[Software Security Touchpoints]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justiceleague/?p=541</guid>
		<description><![CDATA[Recently, Gary and I collaborated on an InformIT article on static analysis. you will find our observations regarding static analysis shared by others. It&#8217;s encouraging to note that Flash Sheridan observes many of the same difficulties and more formally treats them in his ISSRE &#8217;10 publication. It&#8217;s worth a read. A few commentators shared some [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, Gary and I collaborated on an <a href="http://www.informit.com/articles/article.aspx?p=1680863">InformIT article</a> on static analysis.</p>
<p>you will find our observations regarding static analysis shared by others. It&#8217;s encouraging to note that Flash Sheridan observes many of the same difficulties and more formally treats them in his <a href="http://pobox.com/~flash/Static_Analysis_Deployment_Pitfalls.pdf">ISSRE &#8217;10 publication</a>.  It&#8217;s worth a read. </p>
<p>A few commentators shared some decent points I wanted to address in a comment. I&#8217;m cross-posting my commentary here:</p>
<p>Comments treating the application of static tools as a distinct (and unfavorable) alternative to &#8220;fixing your SDLC&#8221; disappoint me, especially from the OWASP community (of which I am a contributing paid member). In fact, the community&#8217;s OpenSAMM project actively prescribes use of static analysis in not one but four (4) unique activities. So, both BSIMM and SAMM see static analysis as a part of fixing one&#8217;s SDL. **Note that in both models, all activities are not compulsory.</p>
<p>&#8220;Fix your code&#8221; is another red-herring alternative to static analysis. I believe static analysis inseparable from effective usage of a secure programming toolkit (such as OWASP&#8217;s ESAPI or an organization&#8217;s own toolkit)  because static analysis tools can meet the need for organizations to 1) detect consistent and thorough use of secure APIs (and non-use of dangerous ones) as well as 2) detect incorrect usage of such APIs (whether through broken call-order, un-paired functions, or other bugs). We shouldn&#8217;t forget, as Mr. Manico indicates, 3) running static tools on these security toolkits themselves finds problems that careful review may not otherwise have found. </p>
<p>So, secure SDL models indicate usage and we&#8211;as a community&#8211;see use in these tools in helping remind developers how to correctly build secure code. I think we have to agree static analysis tools find exploitable bugs (even though sometimes in an overly expensive or time-consuming way). So, I think we&#8217;re stuck with them as a &#8216;best practice&#8217; in the short term, however little some of us may like them. To dynamic vendors out there, I&#8217;d even go so far as saying, &#8220;Early adopters have begun to over-rely on static means to find problems more effectively/efficiently found with dynamic tools. Don&#8217;t worry, the ones I&#8217;m working with will begin to tilt the balance back using assessment data&#8221;.</p>
<p>I would like to put a face-and-name on the key notion that almost all commentators have thus-far touched: the static analysis tool that gets used by a majority of application developers out there, in the future, will likely not look like the ones we have today.  And that&#8217;s fine too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2011/02/23/scrap-static-tools-just-fix-your-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Externalizing Access Control Quandary</title>
		<link>http://www.cigital.com/justice-league-blog/2008/04/08/externalizing-access-control-quandary/</link>
		<comments>http://www.cigital.com/justice-league-blog/2008/04/08/externalizing-access-control-quandary/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 15:16:41 +0000</pubDate>
		<dc:creator>scott</dc:creator>
				<category><![CDATA[Security Features]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justiceleague/2008/04/08/externalizing-access-control-quandary/</guid>
		<description><![CDATA[This entry started as an email to a co-worker: Will. I&#8217;ve edited to make it a bit more readable, but in an attempt to blog more often and less formally, I&#8217;m only applying the thinnest editing veneer. We were discussing whether (again) moving entitlement/access control decisions out of the application code really made sense. Will [...]]]></description>
			<content:encoded><![CDATA[<p>This entry started as an email to a co-worker: Will.  I&#8217;ve edited to make it a bit more readable, but in an attempt to blog more often and less formally, I&#8217;m only applying the thinnest editing veneer.  We were discussing whether (again) moving entitlement/access control decisions out of the application code really made sense.  Will was concerned about not making the developer responsible for implementing access control for an interface.  I&#8217;m putting words in his mouth, but how can one &#8220;build in&#8221; security if the responsibility for one of the more fundamental security controls is taken away from the developer?</p>
<p>The notion of externalizing the access control is spot-on from a design standpoint.   There are many reasons to externalize and one can argue that many of the problems with web application security is that the auth/auth got shoved into the application and the application developers were not qualified to write such code.</p>
<p>I think what was making Will nervous was the question of WHO makes the decisions when configuring this externalized mechanism.  It&#8217;s also the case that WHEN do these configuration questions get handled. The answer to date is that there is some sys-admin or app-admin that does this after the application is deployed.</p>
<p>Historically, this hasn&#8217;t been done very well and/or the RBAC systems put in place to configure and manage such auth decisions have been notoriously difficult to administer at scale.  I will, however, say that one of the arguments for externalizing the mechanism is that the job of implementing auth/auth requires more than the PDPs/PEPs in the app; it&#8217;s all of the additional software for managing/updating the PIPs where the bulk of the work resides in building a robust access control mechanism.  Again, the app-dev guys aren&#8217;t the best person to write all of the management software and you wind up with the problem  where administrative functions is just a series of configurations handled through a command shell or your favorite editor.</p>
<p>This still doesn&#8217;t properly answer the question of WHO.  Admins don&#8217;t have the knowledge to properly configure and the developers don&#8217;t have a proper notion of who should be using the interfaces they create.</p>
<p>This is really an architects job, but while the architect has the breadth of knowledge to make the decision yo (trying out this new gender-neutral pronoun) lacks the tool to understand the actual interfaces that exist.  The architect will have pre-defined about 80% of the actual interfaces, but the implementers will have created others to solve implementation level problems.  So, 20% of the interfaces will be entitled without much thought.</p>
<p>So, let me make another point of externalizing the auth/auth mechanism.  That is what we need here is a tool that can turn all of the code into (UML) descriptions of all the interfaces.  We need to decorate that list with the entitlement data, but we can only do so if there is a canonical way for the tool to read the entitlement information about said interface.  If we can do this, now we&#8217;re cooking with gas since we could then write some kNN-like algorithms to compare each interface with other interfaces like it so we could see where there are potential, logical inconsistencies.</p>
<p>[tags]access control, entitlements, design, architecture[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2008/04/08/externalizing-access-control-quandary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aspect-Oriented Service Architecture: &#8220;Built In&#8221; or &#8220;Bolted On&#8221; Security?</title>
		<link>http://www.cigital.com/justice-league-blog/2007/03/01/aspect-oriented-service-architecture-built-in-or-bolted-on-security/</link>
		<comments>http://www.cigital.com/justice-league-blog/2007/03/01/aspect-oriented-service-architecture-built-in-or-bolted-on-security/#comments</comments>
		<pubDate>Thu, 01 Mar 2007 14:48:36 +0000</pubDate>
		<dc:creator>scott</dc:creator>
				<category><![CDATA[Security Features]]></category>
		<category><![CDATA[SOA and Web 2.0]]></category>

		<guid isPermaLink="false">http://www.cigital.com/justiceleague/2007/03/01/aspect-oriented-service-architecture-built-in-or-bolted-on-security/</guid>
		<description><![CDATA[I&#8217;ve been looking at how people have been implementing input validation and entitlement evaluation within service-oriented architectures (SOA). One of the nice properties of an SOA is service composition, so transformation and validation can be implemented as an independent utility service and then composed with other services. But service composition has the drawback that one [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking at how people have been implementing input validation and entitlement evaluation within service-oriented architectures (SOA).  One of the nice properties of an SOA is service composition, so transformation and validation can be implemented as an independent utility service and then composed with other services.  But service composition has the drawback that one must remember to compose, so in some implementations input validation is implemented through an interception mechanism rather than through composition.  </p>
<p>Another example of this interception technique is visible in some XACML implementations. In XACML, the Policy Enforcement Point (PEP) is decoupled from the application logic.  Several of the implementations of PEP&#8217;s I&#8217;ve looked at use some form of interception in front of the web service to hook the service invocation. The PEP can then extract the information it needs to perform the entitlements check.</p>
<p>This interception technique raised the question amongst one of my colleagues as to whether using such a scheme represented &#8220;bolt-on&#8221; security or &#8220;built-in&#8221; security.  I believe that the concern is that, when used for input validation, the interception mechanism allows the validation to be done outside of service.  In fact, the validation can be developed even after the service has been deployed.</p>
<p>I argue that this mechanism is &#8220;built-in&#8221; and not &#8220;bolt-on&#8221; security.  I believe that this technique merely represents an extension of the aspect-oriented programming (AOP) concept of a cross-cutting concern within the context of a service-oriented architecture.  It&#8217;s like &#8220;aspect-oriented service architecture.&#8221;  Having aspects within a service-based architecture is good for all of the same reasons that aspects are good within a programming framework.</p>
<p>Now, I&#8217;m not suggesting that all uses of interception can be classified as &#8220;built-in.&#8221;  I think that for such security aspects to be considered &#8220;built-in&#8221; that there must be some level of binding between it and the action.  For example, for input validation to be considered &#8220;built-in,&#8221; the validation aspect must be able to have access to all of the input data values and must perform specific validations based on the semantics of the service being invoked.  It&#8217;s not sufficient to have some lame black-list filter that looks for &#8220;&lt;&#8221; and claim that this is &#8220;built-in&#8221; security.  No, the input validation aspect must know about the data types and semantics of all the data coming into the service and have specific validation for each datum.</p>
<p>Maybe I&#8217;m over generalizing the notion of cross-cutting concern in service architectures.  Maybe these two aspects (and they are conceptually closely related) are the only two aspects that can be factored out of the application logic so cleanly. But, just because they can be factored out and implemented independently from the application logic, I don&#8217;t think that the factoring justifies it being called &#8220;bolted on.&#8221;</p>
<p>[tags]soa, software security[/tags] </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cigital.com/justice-league-blog/2007/03/01/aspect-oriented-service-architecture-built-in-or-bolted-on-security/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

