<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.communities.hp.com/securitysoftware/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Following the White Rabbit Blog : process</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/process/default.aspx</link><description>Tags: process</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Defining Security as a Business Requirement</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/02/05/defining-security-as-a-business-requirement.aspx</link><pubDate>Thu, 05 Feb 2009 04:53:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:87792</guid><dc:creator>RafalLos</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.communities.hp.com/securitysoftware/blogs/rafal/rsscomments.aspx?PostID=87792</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2009/02/05/defining-security-as-a-business-requirement.aspx#comments</comments><description>&lt;p&gt;This post is a follow-up to the previous one on QA: Defect vs. Vulnerability.&amp;nbsp; All the highly-intelligent responses I received got me thinking further, and so here I present my additional thoughts.&lt;/p&gt;&lt;p&gt;This may not be revolutionary - but given the response I received regarding the terminology difference between defect and vulnerability I think the only logical conclusion we can reach is that &lt;b&gt;if security is not a foundational business requirement, we&amp;#39;re sunk&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;To expand on this point a little more I think it&amp;#39;s important to follow non-technical critical-thinking here.&amp;nbsp; Anything that does not make it into the functional specification of an application [web or otherwise] is an afterthought.&amp;nbsp; It has been conclusively [and repeatedly] proven that anything that is not &amp;quot;baked in&amp;quot; as a requirement is nearly impossible to &lt;i&gt;fix&lt;/i&gt; later on, as an after-thought.&amp;nbsp; So we&amp;#39;re presented with a puzzler.&amp;nbsp; &lt;i&gt;Security&lt;/i&gt; must be a business-level requirement.&amp;nbsp; So how then does one translate vulnerabilities into a business requirement, sanely?&amp;nbsp; Simply stating &amp;quot;... the application shall be free of unintended design flaws and security vulnerabilities&amp;quot; is like asking an architect to build a structure that will withstand every known (and unknown) possible attack - it&amp;#39;s simply illogical.&lt;/p&gt;&lt;p&gt;Strangely, program leads that manage these large-scale web applications at the heart of nearly every major breach want concise, identified things to &lt;i&gt;not put into the code&lt;/i&gt;... but since that list is a moving target the security team gets penalized for the nature of security itself.&amp;nbsp; This is the reason why black-listing input is a losing proposition... you&amp;#39;re always going to be in an arms race with the &lt;i&gt;bad guys&lt;/i&gt;... and you&amp;#39;ll never win.&lt;/p&gt;&lt;p&gt;I&amp;#39;ve heard some recent conversations hit the wire around using the CWE Top 25 or some other list as a definitive list of &lt;i&gt;coding errors to avoid in web applications&lt;/i&gt; but I&amp;#39;m not sure if that will actually solve the problem.&amp;nbsp; The problem with this approach is and will be that these lists are exclusionary measures.&amp;nbsp; These lists illustrate what we must &lt;i&gt;exclude&lt;/i&gt; to be [more] secure.&amp;nbsp; Turning it around and making statements like &lt;i&gt;validate all input&lt;/i&gt; makes little more sense, especially given that &lt;i&gt;input validation&lt;/i&gt; must be defined in the context of the situation, and there is never a one-size-fits-all answer.&amp;nbsp; To illustrate the point further - input validation may mean excluding certain character sets/patterns &lt;i&gt;and&lt;/i&gt; pre-defining acceptable input options ... but this does not account for things like free-form input or other use-case specific examples.&lt;/p&gt;&lt;p&gt;In the end, the crux of the problem lies in the nature of security vulnerabilities.&amp;nbsp; Security vulnerabilities are a moving target and although they can be loosely defined and lumpted into Top 7/10/25 lists it is not logical to consider these lists complete or even functional for designing software.&amp;nbsp; Will a web application be &lt;i&gt;secure&lt;/i&gt; if it follows the CWE Top 25 and addresses those issues?&amp;nbsp; What about the OWASP Top 10?&amp;nbsp; I don&amp;#39;t think anyone has that answer, or at least is willing to stake their reputation on it.&lt;/p&gt;&lt;p&gt;So back to defining &lt;i&gt;security&lt;/i&gt; as a &lt;i&gt;business-level requirement&lt;/i&gt;... can it be done?&amp;nbsp; Can one clearly articulate requirements to secure data/transactions/processes/whatever *before* the technologists get involved; meaning, before the means to execution are defined?&amp;nbsp; I will leave that up for debate. &lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=87792" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/functional+specification/default.aspx">functional specification</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/quality/default.aspx">quality</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/process/default.aspx">process</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/application+security/default.aspx">application security</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/web+application+security+business+case/default.aspx">web application security business case</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/software+quality/default.aspx">software quality</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/software+security/default.aspx">software security</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/QA/default.aspx">QA</category></item><item><title>Misunderstanding the Purpose of Automated Tools</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/06/11/misunderstanding-the-purpose-of-automated-tools.aspx</link><pubDate>Wed, 11 Jun 2008 02:29:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:83208</guid><dc:creator>RafalLos</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.communities.hp.com/securitysoftware/blogs/rafal/rsscomments.aspx?PostID=83208</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/06/11/misunderstanding-the-purpose-of-automated-tools.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp; Let&amp;#39;s get this out in the open - &lt;u&gt;there is a misunderstood purpose of automated tools in web application security&lt;/u&gt;.&amp;nbsp; Based on my personal experiences&amp;nbsp;in front of&amp;nbsp;both management and engineering teams in the last few months, I feel this needs to be addressed, and addressed now.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; I know that as a vendor of tools, we would like everyone to use our wares to find and mitigate their web application security vulnerabilities - but no one here is dilusional.&amp;nbsp; No one here in the HP ASC will ever tell you that buying/implementing our tools&amp;nbsp;will give you&amp;nbsp;total security for your web applications.&amp;nbsp; No one here will ever advocate our tools as the sole solution to an enterprise web application security strategy.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; So why do other vendors do it?&amp;nbsp; More to the point - why is it that I am often asked the question... &amp;quot;&lt;em&gt;So can you tell me if we implement (the HP ASC Security Suite, or some subset thereof) we will have secure web applications?&lt;/em&gt;&amp;quot;&amp;nbsp; Still scarrier - why do people get upset at me when I answer them with a stout &amp;quot;&lt;em&gt;No... our tools are but one part of a holistic strategy&lt;/em&gt;&amp;quot;.&amp;nbsp; Before you think that this can&amp;#39;t possibly be anyone you know, or any manager you work for... think again.&amp;nbsp; The list of places and teams that have posed this question starts in government, leads to the education sector and trails into large enterprises just the same.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; I know there is some level of education that has to happen, and to some degree vendors are to blame for trying to sell &amp;quot;Magic Bullet&amp;quot; solutions at times to make the sale but the reality is no one piece of software will fix your web security woes holistically.&amp;nbsp; Let me elaborate, and explain my case.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; First, tools are just one piece of the security pyramid (People -&amp;nbsp;Process -&amp;nbsp;Tools).&amp;nbsp; I&amp;#39;ve had that slide in my presentations as far back as I can remember presenting, and it&amp;#39;s served me well but I do think it&amp;#39;s time to preach that a little more emphatically.&amp;nbsp; People and Process are the other two key factors to a successful web-app-sec strategy - without them the tools are of very little use.&amp;nbsp; It&amp;#39;s like having a 500Hp sports car with a nice manual gearbox and not being able to drive a manual and having no gas in the tank.&amp;nbsp; Building a successful&amp;nbsp;practice takes all 3 pieces of the pyramid to be well-established in order to function.&amp;nbsp; While the *people* are the foundation of the whole pyramid, the processes and tools keep the pyramid from collapsing on itself.&amp;nbsp; Without the other 2, no one piece can stand alone... &lt;/p&gt;
&lt;p&gt;&amp;nbsp; I&amp;#39;m writing a piece on the P-P-T (People/Process/Tools), but in the mean time ... this should give you something to think about.&amp;nbsp; Let&amp;#39;s just be clear one more time... no &amp;quot;tools&amp;quot; can solve the web application security problem holistically... but I will continue to argue that HP&amp;#39;s ASC Suite provides the most comprehensive, most complete lifecycle solution out there, bar-none.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=83208" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/process/default.aspx">process</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/holistic+security/default.aspx">holistic security</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/web+application+security/default.aspx">web application security</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/automated+tools/default.aspx">automated tools</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/automated+testing/default.aspx">automated testing</category></item><item><title>Overcomplicating the developer-security relationship</title><link>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/06/05/overcomplicating-the-developer-security-relationship.aspx</link><pubDate>Thu, 05 Jun 2008 20:39:00 GMT</pubDate><guid isPermaLink="false">94bda21f-7d63-4095-85de-7c2a68fb172c:83157</guid><dc:creator>RafalLos</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.communities.hp.com/securitysoftware/blogs/rafal/rsscomments.aspx?PostID=83157</wfw:commentRss><comments>http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/2008/06/05/overcomplicating-the-developer-security-relationship.aspx#comments</comments><description>&lt;p&gt;Greetings readers.&amp;nbsp; As I travel and meet with large enterprise customers of HP&amp;#39;s I&amp;#39;ve learned something new that I wanted to share.&amp;nbsp; Maybe it&amp;#39;s only obvious to me, and maybe I&amp;#39;m behind the times - but it appears to me that we (and by &amp;quot;we&amp;quot; I mean us security folks) have vastly over-complicated our relationship with developers.&amp;nbsp; Shame on us.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;If you don&amp;#39;t agree with me, read on.&amp;nbsp; If you already agree, simply nod your head and move on, as I&amp;#39;ll be preaching to the choir.&lt;/p&gt;
&lt;p&gt;My point is that as the IT Security function we have entirely forgotten what makes a good security process work - simplicity and adoption.&amp;nbsp; We&amp;#39;ve made our proceses so hard to follow that our adoption rates are abismal and yet we wonder why our application security programs are failing.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Without telling you what tools you should be using (so I don&amp;#39;t sound like a sales pitch) here are the things that work more than they fail...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;K.I.S.S. - &lt;strong&gt;&lt;font color="#ff0000"&gt;K&lt;/font&gt;&lt;/strong&gt;eep &lt;strong&gt;&lt;font color="#ff0000"&gt;I&lt;/font&gt;&lt;/strong&gt;t &lt;strong&gt;&lt;font color="#ff0000"&gt;S&lt;/font&gt;&lt;/strong&gt;imple &lt;strong&gt;&lt;font color="#ff0000"&gt;S&lt;/font&gt;&lt;/strong&gt;ecurity!&amp;nbsp; Why do things need to be complicated to be powerful&amp;nbsp;&amp;amp; effective?&lt;/div&gt;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;Model your process around the target audience - find out how your developers work and make sure the tools you recommend are inline with that function.&amp;nbsp; If your developers do weekly builds but write code all day long ask yourself if it makes sense to &amp;quot;security check&amp;quot; that code at build time, or from within the IDE as they write it?&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Check --&amp;gt; Understand --&amp;gt; Remediate - Your process must be this simple.&amp;nbsp; The security check must be ultra-simple to execute, it must give developers the ability to understand what is wrong (watch the false positives!) and it must provide them with immediate feedback on how to remedy the situation&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;li&gt;
&lt;div&gt;Use the &lt;strong&gt;carrot&lt;/strong&gt;, not the &lt;strong&gt;stick&lt;/strong&gt; - Forcing people to use something makes you a tyrant; helping them succeed makes you a trusted advisor&lt;/div&gt;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;Gather metrics&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Use metrics to reward those developers who are getting better&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Public floggings are&amp;nbsp;a great way to make sure people are too afraid of the results to use your process&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;li&gt;
&lt;div&gt;Avoid work duplication&lt;/div&gt;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;Developers love shortcuts; quite simply - help your developers do something right once and then re-use that process/module for the future&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Allow others to learn from the lessons of the one.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;Just some thoughts... don&amp;#39;t take my word for it though.&amp;nbsp; Sit down with your developers.&amp;nbsp; Ask them what would make &amp;quot;security&amp;quot; work for them and you&amp;#39;ll hear many of the above things said!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Good luck.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.communities.hp.com/securitysoftware/aggbug.aspx?PostID=83157" width="1" height="1"&gt;</description><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/security+relationship/default.aspx">security relationship</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/educating+developers/default.aspx">educating developers</category><category domain="http://www.communities.hp.com/securitysoftware/blogs/rafal/archive/tags/process/default.aspx">process</category></item></channel></rss>